vscale-api 0.2.45 → 0.2.46

Sign up to get free protection for your applications and to get access to all the features.
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