vscale-api 0.2.45 → 0.2.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 89fa87eeb45f99da9ffea89b99520c150f994af0
4
- data.tar.gz: cd66725465b9d5b4231952a32b70a84862d790b2
3
+ metadata.gz: 55a759f760acb59de98213ddd7055077549dba0e
4
+ data.tar.gz: bc740e8e471c5388b910deb7653cc65824f53c59
5
5
  SHA512:
6
- metadata.gz: 935bafcefa0562a89052e5934a5a16b079240305cdf1c35eb5cefb433a6c942a4f4dd8c1da4cb5c7b955778f4d2c7a9557e8131e5569cb47005a58be6708d45c
7
- data.tar.gz: 0411e31f4454df3e518f4120ff31570a21d05bd5b7bba5384fdb8e42706e25285c2bd62e65ca97054df323e67c9126867b38c28ca281b3f599da674f60d1ac0d
6
+ metadata.gz: b38bfbd7ff70d9547f44b6f249013c3798ce6ed7c381bea5a4d40612bf6ad35f438fd2cb90c67bd1e27759146d463fb4b40879eb9d3c2d0c28a820557644eca3
7
+ data.tar.gz: 75b8771f65ed1f374902ebf3d7cc325cf9b01137dac5df7c1130bb38692de6bc16e2dc1a7cfd535a15abe7855b72213b24213efa4c5e2fed72671f639070e3e6
@@ -1,13 +1,13 @@
1
1
  language: ruby
2
- cache: bundler
3
2
 
4
3
  rvm:
5
- - 2.2.2
6
- - 2.2.3
4
+ - 2.2.5
5
+
6
+ script: rspec spec
7
7
 
8
8
  notifications:
9
9
  email:
10
10
  recipients:
11
11
  - ilya@codeplay.ru
12
12
  on_failure: change
13
- on_success: never
13
+ on_success: never
data/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![Coverage Status](https://coveralls.io/repos/Smolget/vscale-api/badge.svg?branch=master&service=github)](https://coveralls.io/github/Smolget/vscale-api?branch=master)
4
4
  [![Build Status](https://travis-ci.org/Smolget/vscale-api.svg?branch=master)](https://travis-ci.org/Smolget/vscale-api)
5
5
  [![Gem Version](https://badge.fury.io/rb/vscale-api.svg)](https://badge.fury.io/rb/vscale-api)
6
+ ![](http://ruby-gem-downloads-badge.herokuapp.com/vscale-api?type=total)
6
7
 
7
8
  ## Vscale API v1
8
9
 
@@ -30,4 +31,9 @@ api.images
30
31
  02. Change
31
32
  03. PR
32
33
 
34
+ ## TODO
35
+ * [ ] Refactoring
36
+ * [ ] Usage examples
37
+ * [ ] Tests
38
+
33
39
  *WIP*
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ desc 'Default: run specs.'
5
+ task :default => :spec
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
@@ -6,56 +6,65 @@ require 'uri'
6
6
 
7
7
  require 'vscale/api/account'
8
8
  require 'vscale/api/background'
9
+ require 'vscale/api/backups'
9
10
  require 'vscale/api/billing'
10
11
  require 'vscale/api/configurations'
12
+ require 'vscale/api/domains'
13
+ require 'vscale/api/notifications'
11
14
  require 'vscale/api/request'
12
15
  require 'vscale/api/servers'
13
16
  require 'vscale/api/sshkeys'
14
- require 'vscale/api/tickets'
15
- require 'vscale/api/tokens'
16
17
  require 'vscale/api/version'
17
18
 
19
+ ## TODO :
20
+ ## API Chain: api.add_tag(params).restart_server(id)
21
+ ## Batch Request: API_queue{job1, job2, job3}.batch
22
+
18
23
  module Vscale
19
24
  module Api
20
25
  class Client
21
26
  include Account
22
27
  include Background
28
+ include Backups
23
29
  include Billing
24
30
  include Configurations
31
+ include Domains
32
+ include Notifications
25
33
  include Request
26
34
  include Servers
27
35
  include SSHKeys
28
- include Tickets
29
- include Tokens
36
+
30
37
  def initialize(token, api_endpoint = API_ENDPOINT)
31
38
  @token = token
32
39
  @api_endpoint = api_endpoint
33
40
 
34
41
  uri = URI.parse(@api_endpoint)
35
42
 
43
+ # TODO: rescue StandardError
36
44
  @http = Net::HTTP.start(uri.host, uri.port, use_ssl: true)
37
45
  @http.verify_mode = OpenSSL::SSL::VERIFY_PEER
38
46
  @http.ssl_version = :TLSv1_2
39
47
  end
40
48
 
41
- private
42
-
43
- def request_json(method, path, params)
44
- response = request(method, path, params)
45
- body = JSON.parse(response.body)
49
+ private
46
50
 
51
+ def request_json(meth, path, params = {})
52
+ response = request(meth, path, params)
53
+ body = JSON.parse(response.body)
47
54
  OpenStruct.new(code: response.code, body: body)
48
-
49
55
  rescue JSON::ParserError
50
- response
56
+ response # TODO: convert to Hash
51
57
  end
52
58
 
53
- def request(method, path, params = {})
59
+ def request(meth, path, params = {})
54
60
  full_path = encode_path_params(@api_endpoint + path, params)
55
- request = VERB_MAP[method.to_sym].new(full_path)
61
+ request = VERB_MAP[meth.to_sym].new(full_path)
56
62
  request['Accept'] = 'application/json, text/plain'
57
63
  request['Content-Type'] = 'application/json'
58
64
  request['X-Token'] = @token
65
+
66
+ request.set_form_data(params) if ['post', 'put', 'patch'].include?(meth)
67
+
59
68
  @http.request(request)
60
69
  end
61
70
 
@@ -3,9 +3,5 @@ module Vscale
3
3
  def account
4
4
  get('account')
5
5
  end
6
-
7
- def auth
8
- get('auth')
9
- end
10
6
  end
11
7
  end
@@ -0,0 +1,15 @@
1
+ module Vscale
2
+ module Backups
3
+ def backups
4
+ get('backups')
5
+ end
6
+
7
+ def backup(id)
8
+ get("backups/#{id}")
9
+ end
10
+
11
+ def delete_backup(backup_id)
12
+ delete("backups/#{backup_id}")
13
+ end
14
+ end
15
+ end
@@ -1,7 +1,7 @@
1
1
  module Vscale
2
2
  module Billing
3
3
  def payments
4
- get('billing/payments')
4
+ get('billing/payments/')
5
5
  end
6
6
 
7
7
  def consumption(params)
@@ -0,0 +1,97 @@
1
+ module Vscale
2
+ module Domains
3
+ def domains
4
+ get('domains/')
5
+ end
6
+
7
+ def add_domain(params = {})
8
+ post('domains/', params)
9
+ end
10
+
11
+ def domain_id(id)
12
+ get("domains/#{id}")
13
+ end
14
+
15
+ alias_method :find_domain, :domain_id
16
+ alias_method :domain_info, :domain_id
17
+
18
+ def update_domain(domain_id, params = {})
19
+ patch("domains/#{domain_id}", params)
20
+ end
21
+
22
+ alias_method :change_domain, :update_domain
23
+
24
+ def remove_domain(domain_id)
25
+ delete("domains/#{domain_id}")
26
+ end
27
+
28
+ alias_method :delete_domain, :remove_domain
29
+ alias_method :rm_domain, :remove_domain
30
+
31
+ ## Domains Records
32
+
33
+ def domain_records(domain_id)
34
+ get("domains/#{domain_id}/records/")
35
+ end
36
+
37
+ def add_domain_record(domain_id, params = {})
38
+ post("domains/#{domain_id}/records/", params)
39
+ end
40
+
41
+ def update_domain_record(domain_id, record_id, params = {})
42
+ put("domains/#{domain_id}/records/#{record_id}", params)
43
+ end
44
+
45
+ def remove_domain_record(domain_id, record_id)
46
+ delete("domains/#{domain_id}/records/#{record_id}")
47
+ end
48
+
49
+ def domain_record(domain_id, record_id)
50
+ get("domains/#{domain_id}/records/#{record_id}")
51
+ end
52
+
53
+ ## Domains Tags
54
+
55
+ def add_domains_tags(params = {})
56
+ post('domains/tags/', params)
57
+ end
58
+
59
+ def domains_tags
60
+ get('domains/tags/')
61
+ end
62
+
63
+ def domains_tag_id(tag_id)
64
+ get("domains/tags/#{tag_id}")
65
+ end
66
+
67
+ def update_domains_tag(tag_id, params = {})
68
+ put("domains/tags/#{tag_id}", params)
69
+ end
70
+
71
+ def remove_domains_tag(tag_id)
72
+ delete("domains/tags/#{tag_id}")
73
+ end
74
+
75
+ ## PTR Records
76
+
77
+ def add_domains_ptr(params = {})
78
+ post('domains/ptr/', params)
79
+ end
80
+
81
+ def domains_ptr
82
+ get('domains/ptr/')
83
+ end
84
+
85
+ def domains_ptr_id(ptr_id)
86
+ get("domains/ptr/#{ptr_id}")
87
+ end
88
+
89
+ def update_ptr_id(ptr_id, params = {})
90
+ put("domains/ptr/#{ptr_id}", params)
91
+ end
92
+
93
+ def remove_ptr_id(ptr_id)
94
+ delete("domains/ptr/#{ptr_id}")
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,11 @@
1
+ module Vscale
2
+ module Notifications
3
+ def notify
4
+ get('billing/notify')
5
+ end
6
+
7
+ def update_notify(params = {})
8
+ put('billing/notify', params)
9
+ end
10
+ end
11
+ end
@@ -22,8 +22,8 @@ module Vscale
22
22
  request_json :put, path, params
23
23
  end
24
24
 
25
- def delete(path, params = {})
26
- request_json :delete, path, params
25
+ def delete(path)
26
+ request_json :delete, path
27
27
  end
28
28
 
29
29
  def patch(path, params = {})
@@ -36,8 +36,28 @@ module Vscale
36
36
  get('tasks')
37
37
  end
38
38
 
39
- def scalet_sshkeys(params)
39
+ def scalet_sshkeys(id, params)
40
40
  patch("sshkeys/scalets/#{id}", params)
41
41
  end
42
+
43
+ def add_scalet_tag(params)
44
+ post('scalets/tags', params)
45
+ end
46
+
47
+ def scalets_tags
48
+ get('scalets/tags')
49
+ end
50
+
51
+ def scalet_tag(tag_id)
52
+ get("scalets/tags/#{tag_id}")
53
+ end
54
+
55
+ def update_scalet_tag(tag_id, params)
56
+ put("scalets/tags/#{tag_id}", params)
57
+ end
58
+
59
+ def remove_scalet_tag(tag_id)
60
+ delete("scalets/tags/#{tag_id}")
61
+ end
42
62
  end
43
63
  end
@@ -1,5 +1,5 @@
1
1
  module Vscale
2
2
  module Api
3
- VERSION = '0.2.45' # TODO: {APIversion}.10
3
+ VERSION = '0.2.46' # TODO: {APIversion}.10
4
4
  end
5
5
  end
@@ -27,9 +27,11 @@ Gem::Specification.new do |spec|
27
27
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
28
  spec.bindir = 'exe'
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
30
31
  spec.require_paths = ['lib']
31
32
 
32
- spec.add_development_dependency 'bundler', '~> 1.9'
33
+ spec.add_development_dependency 'bundler', '~> 1.7'
33
34
  spec.add_development_dependency 'rake', '~> 10.0'
34
- spec.add_development_dependency 'coveralls'
35
+ spec.add_development_dependency 'rspec'
36
+ spec.add_development_dependency 'rubocop'
35
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vscale-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.45
4
+ version: 0.2.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya V
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-20 00:00:00.000000000 Z
11
+ date: 2016-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.9'
19
+ version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.9'
26
+ version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: coveralls
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -52,8 +52,21 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: |2
56
- Vscale API v1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: " Vscale API v1\n"
57
70
  email:
58
71
  - ilya@codeplay.ru
59
72
  executables: []
@@ -61,15 +74,6 @@ extensions: []
61
74
  extra_rdoc_files: []
62
75
  files:
63
76
  - ".gitignore"
64
- - ".idea/.name"
65
- - ".idea/.rakeTasks"
66
- - ".idea/encodings.xml"
67
- - ".idea/misc.xml"
68
- - ".idea/modules.xml"
69
- - ".idea/ruby-vscale-api.iml"
70
- - ".idea/scopes/scope_settings.xml"
71
- - ".idea/vcs.xml"
72
- - ".idea/workspace.xml"
73
77
  - ".rubocop.yml"
74
78
  - ".travis.yml"
75
79
  - CODE_OF_CONDUCT.md
@@ -83,13 +87,14 @@ files:
83
87
  - lib/vscale/api.rb
84
88
  - lib/vscale/api/account.rb
85
89
  - lib/vscale/api/background.rb
90
+ - lib/vscale/api/backups.rb
86
91
  - lib/vscale/api/billing.rb
87
92
  - lib/vscale/api/configurations.rb
93
+ - lib/vscale/api/domains.rb
94
+ - lib/vscale/api/notifications.rb
88
95
  - lib/vscale/api/request.rb
89
96
  - lib/vscale/api/servers.rb
90
97
  - lib/vscale/api/sshkeys.rb
91
- - lib/vscale/api/tickets.rb
92
- - lib/vscale/api/tokens.rb
93
98
  - lib/vscale/api/version.rb
94
99
  - vscale-api.gemspec
95
100
  homepage: https://github.com/Smolget/vscale-api
@@ -113,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
118
  version: '0'
114
119
  requirements: []
115
120
  rubyforge_project:
116
- rubygems_version: 2.4.5.1
121
+ rubygems_version: 2.5.1
117
122
  signing_key:
118
123
  specification_version: 4
119
124
  summary: Vscale API v1
@@ -1,23 +0,0 @@
1
- module Vscale
2
- module Tickets
3
- def tickets
4
- get('tickets')
5
- end
6
-
7
- def tickets_new(params)
8
- post('tickets', params)
9
- end
10
-
11
- def ticket_comments
12
- get("tickets/#{id}/comments")
13
- end
14
-
15
- def tickets_add_comment(params)
16
- post('tickets', params)
17
- end
18
-
19
- def tickets_close(id)
20
- post("tickets/#{id}/close")
21
- end
22
- end
23
- end
@@ -1,19 +0,0 @@
1
- module Vscale
2
- module Tokens
3
- def tokens(params = {})
4
- params.empty? ? get('tokens') : post('tokens', params)
5
- end
6
-
7
- def find_token(id)
8
- get("tokens/#{id}")
9
- end
10
-
11
- def update_token(id, params)
12
- post("tokens/#{id}", params)
13
- end
14
-
15
- def remove_token(id)
16
- delete("tokens/#{id}")
17
- end
18
- end
19
- end