vultr 0.1.1 → 0.2.0

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: e142d816214635f78fab04817c5f7f4b412565c6
4
- data.tar.gz: 21277d12ff5b76a024a218a64643ad61c5ec5b49
3
+ metadata.gz: c428225f99bc80811b7ebbfa42b9bacf074c5fe4
4
+ data.tar.gz: 2b4fe6635a7f49f67e0c2d5341acd9d7b54ba547
5
5
  SHA512:
6
- metadata.gz: ba2bd17e851b7ea401feb348a77b604922162438f011cd4568b740aeb365b5948376af7e92383634e2bd0dd86300472984172267aca5b0a1628e1e189c68bad8
7
- data.tar.gz: 89b80771fbf11942c10463c884a3b5fc1eeb538df9bd01f87c9e142adf9fc7d7279fa35f5fa64f1c75a1ceee743f03023934428203005c477cb934c7bc7e30a3
6
+ metadata.gz: a65134fbd21bcab4282070048f407be8b21e7fd86fca86ce2e5ca08f931d7128a517399ce115a0db4bb99f87b7940f0971e03a002105caa594068fdae26220f9
7
+ data.tar.gz: e9ad85b9f133716db8b16fa7d3219ed37101814639df393aead026d918c83ba1bdea545f84ec5ed58afef8cd574a1d7857b6ca6546d00f9d8511be2617c9c617
data/README.md CHANGED
@@ -24,11 +24,11 @@ Add this line to your application's Gemfile:
24
24
 
25
25
  And then execute:
26
26
 
27
- bundle
27
+ $ bundle
28
28
 
29
29
  Or install it yourself as:
30
30
 
31
- gem install vultr
31
+ $ gem install vultr
32
32
 
33
33
  ## Usage
34
34
 
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
- require "bundler/gem_tasks"
2
-
1
+ require 'bundler/gem_tasks'
data/lib/vultr.rb CHANGED
@@ -1,40 +1,85 @@
1
- require "faraday"
2
- require "faraday_middleware"
3
- require "vultr/version"
1
+ require 'faraday'
2
+ require 'faraday_middleware'
3
+ require 'vultr/version'
4
4
 
5
5
  module Vultr
6
6
  extend self
7
7
 
8
8
  DEFINITIONS = {
9
- Snapshot: {
10
- list: [:get, "/v1/snapshot/list?api_key=[api_key]"],
11
- destroy: [:post, "/v1/snapshot/destroy?api_key=[api_key]", "SNAPSHOTID"],
12
- create: [:post, "/v1/snapshot/create?api_key=[api_key]", "SUBID"]
9
+ Account: {
10
+ info: [:get, '/v1/account/info?api_key=[api_key]']
11
+ },
12
+ App: {
13
+ list: [:get, '/v1/app/list']
14
+ },
15
+ Backup: {
16
+ list: [:get, '/v1/backup/list?api_key=[api_key]']
17
+ },
18
+ DNS: {
19
+ create_domain: [:post, '/v1/dns/create_domain?api_key=[api_key]', ['domain', 'serverip']],
20
+ delete_domain: [:post, '/v1/dns/delete_domain?api_key=[api_key]', ['domain']],
21
+ create_record: [:post, '/v1/dns/create_record?api_key=[api_key]', ['domain', 'name', 'type', 'data', 'ttl', 'priority']],
22
+ delete_record: [:post, '/v1/dns/delete_record?api_key=[api_key]', ['domain', 'RECORDID']],
23
+ list: [:get, '/v1/dns/list?api_key=[api_key]'],
24
+ records: [:get, '/v1/dns/records?api_key=[api_key]&domain=[domain]']
25
+ },
26
+ ISO: {
27
+ list: [:get, '/v1/iso/list?api_key=[api_key]']
28
+ },
29
+ OS: {
30
+ list: [:get, '/v1/os/list']
13
31
  },
14
32
  Plan: {
15
- list: [:get, "/v1/plans/list"]
33
+ list: [:get, '/v1/plans/list']
16
34
  },
17
35
  Region: {
18
- list: [:get, "/v1/regions/list"],
19
- availability: [:get, "/v1/regions/availability?DCID=[DCID]"]
20
- },
21
- StartupScript: {
22
- list: [:get, "/v1/startupscript/list?api_key=[api_key]"],
23
- destroy: [:post, "/v1/startupscript/destroy?api_key=[api_key]", "SCRIPTID"],
24
- create: [:post, "/v1/startupscript/create?api_key=[api_key]", ["name", "script"]]
36
+ list: [:get, '/v1/regions/list'],
37
+ availability: [:get, '/v1/regions/availability?DCID=[DCID]']
25
38
  },
26
39
  Server: {
27
- list: [:get, "/v1/server/list?api_key=[api_key]"],
28
- reboot: [:post, "/v1/server/reboot?api_key=[api_key]", "SUBID"],
29
- halt: [:post, "/v1/server/halt?api_key=[api_key]", "SUBID"],
30
- start: [:post, "/v1/server/start?api_key=[api_key]", "SUBID"],
31
- destroy: [:post, "/v1/server/destroy?api_key=[api_key]", "SUBID"],
32
- create: [:post, "/v1/server/create?api_key=[api_key]",
33
- ["DCID", "VPSPLANID", "OSID", "ipxe_chain_url", "SCRIPTID", "SNAPSHOTID"]]
40
+ list: [:get, '/v1/server/list?api_key=[api_key]'],
41
+ reboot: [:post, '/v1/server/reboot?api_key=[api_key]', ['SUBID']],
42
+ halt: [:post, '/v1/server/halt?api_key=[api_key]', ['SUBID']],
43
+ start: [:post, '/v1/server/start?api_key=[api_key]', ['SUBID']],
44
+ destroy: [:post, '/v1/server/destroy?api_key=[api_key]', ['SUBID']],
45
+ create: [:post, '/v1/server/create?api_key=[api_key]',
46
+ ['DCID', 'VPSPLANID', 'OSID', 'ipxe_chain_url', 'ISOID', 'SCRIPTID', 'SNAPSHOTID',
47
+ 'enable_ipv6', 'enable_private_network', 'label', 'SSHKEYID', 'auto_backups', 'APPID']],
48
+ list_ipv4: [:get, '/v1/server/list_ipv4?api_key=[api_key]&SUBID=[SUBID]'],
49
+ create_ipv4: [:post, '/v1/server/create_ipv4?api_key=[api_key]', ['SUBID']],
50
+ destroy_ipv4: [:post, '/v1/server/destroy_ipv4?api_key=[api_key]', ['SUBID']],
51
+ list_ipv6: [:get, '/v1/server/list_ipv6?api_key=[api_key]&SUBID=[SUBID]'],
52
+ label_set: [:post, '/v1/server/label_set?api_key=[api_key]', ['SUBID', 'label']],
53
+ os_change: [:post, '/v1/server/os_change?api_key=[api_key]', ['SUBID', 'OSID']],
54
+ os_change_list: [:get, '/v1/server/os_change_list?api_key=[api_key]&SUBID=[SUBID]'],
55
+ reinstall: [:post, '/v1/server/reinstall?api_key=[api_key]', ['SUBID']],
56
+ restore_backup: [:post, '/v1/server/restore_backup?api_key=[api_key]', ['SUBID', 'BACKUPID']],
57
+ restore_snapshot: [:post, '/v1/server/restore_snapshot?api_key=[api_key]', ['SUBID', 'SNAPSHOTID']],
58
+ reverse_default_ipv4: [:post, '/v1/server/reverse_default_ipv4?api_key=[api_key]', ['SUBID', 'ip']],
59
+ reverse_delete_ipv6: [:post, '/v1/server/reverse_delete_ipv6?api_key=[api_key]', ['SUBID']],
60
+ reverse_list_ipv6: [:get, '/v1/server/reverse_list_ipv6?api_key=[api_key]&SUBID=[SUBID]'],
61
+ reverse_set_ipv4: [:post, '/v1/server/reverse_set_ipv4?api_key=[api_key]', ['SUBID', 'ip']],
62
+ reverse_set_ipv6: [:post, '/v1/server/reverse_set_ipv6?api_key=[api_key]', ['SUBID', 'ip']],
63
+ upgrade_plan: [:post, '/v1/server/upgrade_plan?api_key=[api_key]', ['SUBID', 'VPSPLANID']],
64
+ upgrade_plan_list: [:get, '/v1/server/upgrade_plan_list?api_key=[api_key]&SUBID=[SUBID]']
65
+ },
66
+ Snapshot: {
67
+ list: [:get, '/v1/snapshot/list?api_key=[api_key]'],
68
+ destroy: [:post, '/v1/snapshot/destroy?api_key=[api_key]', ['SNAPSHOTID']],
69
+ create: [:post, '/v1/snapshot/create?api_key=[api_key]', ['SUBID']]
70
+ },
71
+ SSHKey: {
72
+ list: [:get, '/v1/sshkey/list?api_key=[api_key]'],
73
+ create: [:post, '/v1/sshkey/create?api_key=[api_key]', ['name', 'ssh_key']],
74
+ destroy: [:post, '/v1/sshkey/destroy?api_key=[api_key]', ['SSHKEYID']],
75
+ update: [:post, '/v1/sshkey/update?api_key=[api_key]', ['SSHKEYID', 'name', 'ssh_key']]
76
+ },
77
+ StartupScript: {
78
+ list: [:get, '/v1/startupscript/list?api_key=[api_key]'],
79
+ create: [:post, '/v1/startupscript/create?api_key=[api_key]', ['name', 'script', 'type']],
80
+ destroy: [:post, '/v1/startupscript/destroy?api_key=[api_key]', ['SCRIPTID']],
81
+ update: [:post, '/v1/startupscript/update?api_key=[api_key]', ['SCRIPTID', 'name', 'script']]
34
82
  },
35
- OS: {
36
- list: [:get, "/v1/os/list"]
37
- }
38
83
  }
39
84
 
40
85
  DEFINITIONS.each do |resource|
@@ -43,17 +88,17 @@ module Vultr
43
88
  resource_class = Class.new(Object) do
44
89
  DEFINITIONS[resource_name].each do |action, array|
45
90
  method_name = array[0]
46
- path, query = array[1].split("?")
91
+ path, query = array[1].split('?')
47
92
  params = array[2]
48
93
 
49
94
  define_singleton_method "_#{action}" do |*args|
50
95
  query_for_method = Vultr.process_query_args_from_path(query, args)
51
- url = [Vultr.api_endpoint, path].join("")
96
+ url = [Vultr.api_endpoint, path].join('')
52
97
 
53
98
  if query_for_method.nil?
54
99
  url
55
100
  else
56
- [url, query_for_method].join("?")
101
+ [url, query_for_method].join('?')
57
102
  end
58
103
  end
59
104
 
@@ -84,11 +129,11 @@ module Vultr
84
129
 
85
130
  def api_key
86
131
  return @api_key if @api_key
87
- "api_key_required"
132
+ 'api_key_required'
88
133
  end
89
134
 
90
135
  def api_endpoint
91
- "https://api.vultr.com"
136
+ 'https://api.vultr.com'
92
137
  end
93
138
 
94
139
  def request_and_respond(method_name, url, body = nil)
@@ -101,8 +146,8 @@ module Vultr
101
146
  end
102
147
 
103
148
  def process_api_key(parts)
104
- api_key_index = parts.index "api_key="
105
- api_key_index = parts.index "&api_key=" if !api_key_index
149
+ api_key_index = parts.index 'api_key='
150
+ api_key_index = parts.index '&api_key=' unless api_key_index
106
151
  parts[api_key_index + 1] = api_key if api_key_index
107
152
 
108
153
  parts
@@ -119,7 +164,7 @@ module Vultr
119
164
  hash.each do |key, value|
120
165
  query_setter = "#{key}="
121
166
  query_arg_index = parts.index query_setter
122
- query_arg_index = parts.index "&#{query_setter}" if !query_arg_index
167
+ query_arg_index = parts.index "&#{query_setter}" unless query_arg_index
123
168
 
124
169
  unless query_arg_index.nil?
125
170
  parts[query_arg_index+1] = value
@@ -127,7 +172,7 @@ module Vultr
127
172
  end
128
173
  end
129
174
 
130
- parts.join("")
175
+ parts.join('')
131
176
  end
132
177
 
133
178
  def process_params_args_from_keys(params, args)
@@ -137,7 +182,7 @@ module Vultr
137
182
  hash = args[-1]
138
183
  if hash.is_a?(Hash)
139
184
  hash.each do |key, value|
140
- body[key] = value unless params.include? key
185
+ body[key] = value if params.include? key.to_s
141
186
  end
142
187
  end
143
188
 
@@ -148,13 +193,13 @@ module Vultr
148
193
 
149
194
  def setup_request!
150
195
  options = {
151
- headers: {"Accept" => "application/json"},
196
+ headers: {:Accept => 'application/json'},
152
197
  ssl: {verify: false}
153
198
  }
154
199
 
155
200
  Vultr.request = Faraday.new(options) do |faraday|
156
201
  faraday.request :url_encoded
157
- faraday.response :json, :content_type => "application/json"
202
+ faraday.response :json, :content_type => 'application/json'
158
203
  faraday.response :follow_redirects
159
204
  faraday.adapter Faraday.default_adapter
160
205
  end
data/lib/vultr/version.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  module Vultr
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 1
5
- TINY = 1
4
+ MINOR = 2
5
+ TINY = 0
6
6
  PRE = nil
7
7
 
8
- STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
8
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
9
  end
10
10
  end
@@ -1,13 +1,24 @@
1
- require "vultr"
2
- require "minitest/autorun"
1
+ require 'vultr'
2
+ require 'minitest/autorun'
3
3
 
4
4
  describe Vultr::OS do
5
5
 
6
6
  let(:os) { Vultr::OS }
7
7
 
8
- it "needs to verify list os url" do
9
- url = os._list
8
+ it 'needs to verify list os url' do
9
+ Vultr.api_key = ENV['VULTR_API_KEY']
10
10
 
11
- url.must_equal "https://api.vultr.com/v1/os/list"
11
+ assert_equal os._list, 'https://api.vultr.com/v1/os/list'
12
+
13
+ r = os.list
14
+
15
+ assert r.has_key? :status
16
+ assert_equal r[:status], 200
17
+
18
+ assert r.has_key? :result
19
+ r[:result].each do |k, v|
20
+ assert v.has_key?('OSID')
21
+ assert_equal k.to_i, v['OSID'].to_i
22
+ end
12
23
  end
13
24
  end
@@ -1,13 +1,25 @@
1
- require "vultr"
2
- require "minitest/autorun"
1
+ require 'vultr'
2
+ require 'minitest/autorun'
3
3
 
4
4
  describe Vultr::Plan do
5
5
 
6
6
  let(:plan) { Vultr::Plan }
7
7
 
8
- it "needs to verify list plan url" do
9
- url = plan._list
8
+ it 'needs to verify list plan url' do
9
+ assert ENV.has_key? 'VULTR_API_KEY'
10
+ Vultr.api_key = ENV['VULTR_API_KEY']
10
11
 
11
- url.must_equal "https://api.vultr.com/v1/plans/list"
12
+ assert_equal plan._list, 'https://api.vultr.com/v1/plans/list'
13
+
14
+ r = plan.list
15
+
16
+ assert r.has_key? :status
17
+ assert_equal r[:status], 200
18
+
19
+ assert r.has_key? :result
20
+ r[:result].each do |k, v|
21
+ assert v.has_key?('VPSPLANID')
22
+ assert_equal k.to_i, v['VPSPLANID'].to_i
23
+ end
12
24
  end
13
- end
25
+ end
@@ -1,19 +1,19 @@
1
- require "vultr"
2
- require "minitest/autorun"
1
+ require 'vultr'
2
+ require 'minitest/autorun'
3
3
 
4
4
  describe Vultr::Region do
5
5
 
6
6
  let(:region) { Vultr::Region }
7
7
 
8
- it "needs to verify list region url" do
8
+ it 'needs to verify list region url' do
9
9
  url = region._list
10
10
 
11
- url.must_equal "https://api.vultr.com/v1/regions/list"
11
+ url.must_equal 'https://api.vultr.com/v1/regions/list'
12
12
  end
13
13
 
14
- it "needs to verify availability region url" do
15
- DCID = "1234"
16
- url = region._availability("DCID" => "1234")
14
+ it 'needs to verify availability region url' do
15
+ DCID = '1234'
16
+ url = region._availability('DCID' => '1234')
17
17
 
18
18
  url.must_equal "https://api.vultr.com/v1/regions/availability?DCID=#{DCID}"
19
19
  end
@@ -1,4 +1,4 @@
1
- require "vultr"
1
+ require 'vultr'
2
2
  require "minitest/autorun"
3
3
 
4
4
  describe Vultr::Snapshot do
@@ -5,7 +5,7 @@ describe Vultr::StartupScript do
5
5
 
6
6
  let(:startupscript) { Vultr::StartupScript }
7
7
 
8
- it "needs to verify list snapshot url" do
8
+ it 'needs to verify list snapshot url' do
9
9
  url = startupscript._list
10
10
 
11
11
  url.must_equal "https://api.vultr.com/v1/startupscript/list?api_key=api_key_required"
data/vultr.gemspec CHANGED
@@ -4,24 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'vultr/version'
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "vultr"
7
+ s.name = 'vultr'
8
8
  s.version = Vultr::VERSION::STRING
9
- s.authors = ["Tolbkni Kao"]
10
- s.email = ["tolbkni@gmail.com"]
9
+ s.authors = ['Tolbkni Kao']
10
+ s.email = ['tolbkni@gmail.com']
11
11
  s.summary = %q{Ruby bindings for VULTR API.}
12
12
  s.description = %q{Ruby bindings for VULTR API.}
13
- s.homepage = "https://github.com/tolbkni/vultr"
14
- s.license = "MIT"
13
+ s.homepage = 'https://github.com/tolbkni/vultr'
14
+ s.license = 'MIT'
15
15
 
16
16
  s.files = `git ls-files -z`.split("\x0")
17
17
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
- s.require_paths = ["lib"]
19
+ s.require_paths = ['lib']
20
20
 
21
- s.add_dependency "faraday", "~> 0.9.0"
22
- s.add_dependency "faraday_middleware", "~> 0.9.1"
21
+ s.add_dependency 'faraday', '~> 0.9.1'
22
+ s.add_dependency 'faraday_middleware', '~> 0.9.1'
23
23
 
24
- s.add_development_dependency "bundler", "~> 1.6"
25
- s.add_development_dependency "rake"
26
- s.add_development_dependency "minitest"
24
+ s.add_development_dependency 'bundler', '~> 1.6'
25
+ s.add_development_dependency 'rake'
26
+ s.add_development_dependency 'minitest'
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vultr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tolbkni Kao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-10 00:00:00.000000000 Z
11
+ date: 2015-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
19
+ version: 0.9.1
20
20
  type: :runtime
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: 0.9.0
26
+ version: 0.9.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  requirements: []
124
124
  rubyforge_project:
125
- rubygems_version: 2.2.2
125
+ rubygems_version: 2.4.5
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Ruby bindings for VULTR API.