vultr 0.1.1 → 0.2.0

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: 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.