fog-terremark 0.0.4 → 0.1.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 +4 -4
- data/.rubocop.yml +3 -0
- data/Gemfile +1 -1
- data/README.md +3 -3
- data/Rakefile +4 -4
- data/fog-terremark.gemspec +4 -1
- data/gemfiles/Gemfile.1.9.2- +5 -5
- data/gemfiles/Gemfile.1.9.3+ +4 -4
- data/lib/fog/compute/terremark.rb +6 -6
- data/lib/fog/compute/terremark/mock.rb +4 -4
- data/lib/fog/compute/terremark/models/address.rb +2 -2
- data/lib/fog/compute/terremark/models/addresses.rb +1 -1
- data/lib/fog/compute/terremark/models/image.rb +1 -1
- data/lib/fog/compute/terremark/models/images.rb +2 -2
- data/lib/fog/compute/terremark/models/internetservice.rb +5 -5
- data/lib/fog/compute/terremark/models/network.rb +2 -2
- data/lib/fog/compute/terremark/models/networks.rb +1 -1
- data/lib/fog/compute/terremark/models/nodeservice.rb +7 -9
- data/lib/fog/compute/terremark/models/server.rb +8 -8
- data/lib/fog/compute/terremark/models/servers.rb +2 -2
- data/lib/fog/compute/terremark/models/task.rb +12 -12
- data/lib/fog/compute/terremark/models/tasks.rb +2 -2
- data/lib/fog/compute/terremark/models/vdc.rb +1 -1
- data/lib/fog/compute/terremark/models/vdcs.rb +2 -2
- data/lib/fog/compute/terremark/parser.rb +5 -5
- data/lib/fog/compute/terremark/requests/add_internet_service.rb +18 -18
- data/lib/fog/compute/terremark/requests/add_node_service.rb +18 -18
- data/lib/fog/compute/terremark/requests/configure_vapp.rb +9 -9
- data/lib/fog/compute/terremark/requests/create_internet_service.rb +14 -14
- data/lib/fog/compute/terremark/requests/delete_internet_service.rb +4 -4
- data/lib/fog/compute/terremark/requests/delete_node_service.rb +4 -4
- data/lib/fog/compute/terremark/requests/delete_public_ip.rb +4 -4
- data/lib/fog/compute/terremark/requests/delete_vapp.rb +3 -3
- data/lib/fog/compute/terremark/requests/deploy_vapp.rb +13 -13
- data/lib/fog/compute/terremark/requests/get_catalog.rb +10 -10
- data/lib/fog/compute/terremark/requests/get_catalog_item.rb +10 -10
- data/lib/fog/compute/terremark/requests/get_internet_services.rb +11 -11
- data/lib/fog/compute/terremark/requests/get_keys_list.rb +11 -11
- data/lib/fog/compute/terremark/requests/get_network.rb +12 -12
- data/lib/fog/compute/terremark/requests/get_network_ips.rb +4 -4
- data/lib/fog/compute/terremark/requests/get_node_services.rb +5 -5
- data/lib/fog/compute/terremark/requests/get_organization.rb +18 -18
- data/lib/fog/compute/terremark/requests/get_organizations.rb +5 -4
- data/lib/fog/compute/terremark/requests/get_public_ip.rb +7 -7
- data/lib/fog/compute/terremark/requests/get_public_ips.rb +15 -15
- data/lib/fog/compute/terremark/requests/get_task.rb +17 -17
- data/lib/fog/compute/terremark/requests/get_tasks_list.rb +10 -10
- data/lib/fog/compute/terremark/requests/get_vapp.rb +17 -17
- data/lib/fog/compute/terremark/requests/get_vapp_template.rb +10 -10
- data/lib/fog/compute/terremark/requests/get_vdc.rb +50 -50
- data/lib/fog/compute/terremark/requests/instantiate_vapp_template.rb +15 -15
- data/lib/fog/compute/terremark/requests/power_off.rb +13 -13
- data/lib/fog/compute/terremark/requests/power_on.rb +13 -13
- data/lib/fog/compute/terremark/requests/power_reset.rb +13 -13
- data/lib/fog/compute/terremark/requests/power_shutdown.rb +3 -3
- data/lib/fog/parsers/terremark.rb +20 -20
- data/lib/fog/parsers/terremark/get_catalog.rb +9 -9
- data/lib/fog/parsers/terremark/get_catalog_item.rb +10 -10
- data/lib/fog/parsers/terremark/get_internet_services.rb +30 -30
- data/lib/fog/parsers/terremark/get_keys_list.rb +14 -14
- data/lib/fog/parsers/terremark/get_network_ips.rb +6 -6
- data/lib/fog/parsers/terremark/get_node_services.rb +14 -14
- data/lib/fog/parsers/terremark/get_organization.rb +23 -23
- data/lib/fog/parsers/terremark/get_organizations.rb +3 -3
- data/lib/fog/parsers/terremark/get_public_ips.rb +8 -8
- data/lib/fog/parsers/terremark/get_tasks_list.rb +11 -11
- data/lib/fog/parsers/terremark/get_vapp_template.rb +9 -9
- data/lib/fog/parsers/terremark/get_vdc.rb +57 -57
- data/lib/fog/parsers/terremark/instantiate_vapp_template.rb +7 -7
- data/lib/fog/parsers/terremark/internet_service.rb +33 -33
- data/lib/fog/parsers/terremark/network.rb +13 -13
- data/lib/fog/parsers/terremark/node_service.rb +10 -10
- data/lib/fog/parsers/terremark/public_ip.rb +4 -4
- data/lib/fog/parsers/terremark/task.rb +6 -6
- data/lib/fog/parsers/terremark/vapp.rb +36 -36
- data/lib/fog/terremark.rb +6 -6
- data/lib/fog/terremark/vcloud.rb +5 -5
- data/lib/fog/terremark/vcloud/real.rb +8 -8
- data/lib/fog/terremark/version.rb +1 -1
- data/spec/cassettes/get_login_token.yml +2 -2
- data/spec/minitest_helper.rb +2 -2
- metadata +2 -3
- data/.hound.yml +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a3cac4c4c63dfc2713dc2e76cff93d0229b3879
|
4
|
+
data.tar.gz: 12bdd7107a03e6c9b5b40c4718c37ab0cf947673
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb2241e5444cc818ae01c949346b03e95e9fbd3ac8f43e24498480fbcf78093290c00e5af9ef76ad8e43fc6d272796638084099c40377eadb1f44b0129a20e0
|
7
|
+
data.tar.gz: 8bc3ed5f9d3c83abefbbac0bdc2956c39d0df5b1c868edd5df152d87be5bd36abc85b0419a6c0cca4395ffcf208d1073ba51898f931a6400fcb6a28c6d46238c
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
 [](https://travis-ci.org/fog/fog-terremark) [](https://gemnasium.com/fog/fog-terremark) [](https://coveralls.io/r/fog/fog-terremark?branch=master) [](https://codeclimate.com/github/fog/fog-terremark)
|
4
4
|
|
5
|
-
Module for the
|
5
|
+
Module for the "fog" gem to support Terremark vCloud
|
6
6
|
|
7
7
|
## Help Needed
|
8
8
|
|
@@ -14,7 +14,7 @@ This gem needs a maintainer. If you want to work on it, please contact
|
|
14
14
|
Add this line to your application's Gemfile:
|
15
15
|
|
16
16
|
```ruby
|
17
|
-
gem
|
17
|
+
gem "fog-terremark"
|
18
18
|
```
|
19
19
|
|
20
20
|
And then execute:
|
@@ -33,6 +33,6 @@ TODO: Write usage instructions here
|
|
33
33
|
|
34
34
|
1. Fork it ( https://github.com/fog/fog-terremark/fork )
|
35
35
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
36
|
-
3. Commit your changes (`git commit -am
|
36
|
+
3. Commit your changes (`git commit -am "Add some feature"`)
|
37
37
|
4. Push to the branch (`git push origin my-new-feature`)
|
38
38
|
5. Create a new Pull Request
|
data/Rakefile
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
3
|
|
4
4
|
Rake::TestTask.new do |t|
|
5
5
|
t.libs.push %w(spec)
|
6
|
-
t.test_files = FileList[
|
6
|
+
t.test_files = FileList["spec/**/*_spec.rb"]
|
7
7
|
t.verbose = true
|
8
8
|
end
|
9
9
|
|
10
|
-
desc
|
10
|
+
desc "Default Task"
|
11
11
|
task :default => :test
|
data/fog-terremark.gemspec
CHANGED
@@ -17,7 +17,10 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.homepage = ""
|
18
18
|
spec.license = "MIT"
|
19
19
|
|
20
|
-
|
20
|
+
files = `git ls-files -z`.split("\x0")
|
21
|
+
files.delete(".hound.yml")
|
22
|
+
spec.files = files
|
23
|
+
|
21
24
|
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
22
25
|
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
23
26
|
spec.require_paths = ["lib"]
|
data/gemfiles/Gemfile.1.9.2-
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
source :rubygems
|
2
2
|
|
3
|
-
gem
|
4
|
-
gem
|
5
|
-
gem
|
6
|
-
gem
|
3
|
+
gem "mime-types", "< 2.0"
|
4
|
+
gem "nokogiri", "< 1.6"
|
5
|
+
gem "rest-client", "~> 1.6.8"
|
6
|
+
gem "fog-core"
|
7
7
|
|
8
|
-
gemspec :path =>
|
8
|
+
gemspec :path => "../"
|
data/gemfiles/Gemfile.1.9.3+
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module Fog
|
2
2
|
module Compute
|
3
3
|
class Terremark < Fog::Service
|
4
|
-
autoload :Common,
|
5
|
-
autoload :Parser,
|
6
|
-
autoload :Real,
|
7
|
-
autoload :Mock,
|
4
|
+
autoload :Common, File.expand_path("../terremark/common", __FILE__)
|
5
|
+
autoload :Parser, File.expand_path("../terremark/parser", __FILE__)
|
6
|
+
autoload :Real, File.expand_path("../terremark/real", __FILE__)
|
7
|
+
autoload :Mock, File.expand_path("../terremark/mock", __FILE__)
|
8
8
|
|
9
9
|
requires :terremark_vcloud_username, :terremark_vcloud_password
|
10
10
|
|
11
|
-
model_path
|
11
|
+
model_path "fog/compute/terremark/models"
|
12
12
|
model :address
|
13
13
|
collection :addresses
|
14
14
|
model :image
|
@@ -26,7 +26,7 @@ module Fog
|
|
26
26
|
model :vdc
|
27
27
|
collection :vdcs
|
28
28
|
|
29
|
-
request_path
|
29
|
+
request_path "fog/compute/terremark/requests"
|
30
30
|
request :add_internet_service
|
31
31
|
request :add_node_service
|
32
32
|
request :configure_vapp
|
@@ -121,13 +121,13 @@ module Fog
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def initialize(_options={})
|
124
|
-
self.class.instance_eval
|
124
|
+
self.class.instance_eval "
|
125
125
|
def self.data
|
126
126
|
@data ||= Hash.new do |hash, key|
|
127
127
|
hash[key] = Fog::Compute::Terremark::Mock.mock_data
|
128
128
|
end
|
129
|
-
end
|
130
|
-
self.class.instance_eval
|
129
|
+
end"
|
130
|
+
self.class.instance_eval "
|
131
131
|
def self.reset
|
132
132
|
@data = nil
|
133
133
|
end
|
@@ -136,7 +136,7 @@ module Fog
|
|
136
136
|
for key in [*keys]
|
137
137
|
data.delete(key)
|
138
138
|
end
|
139
|
-
end
|
139
|
+
end"
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
@@ -4,7 +4,7 @@ module Fog
|
|
4
4
|
class Address < Fog::Model
|
5
5
|
identity :id
|
6
6
|
|
7
|
-
attribute :ip, :aliases =>
|
7
|
+
attribute :ip, :aliases => "name"
|
8
8
|
|
9
9
|
def destroy
|
10
10
|
requires :id
|
@@ -15,7 +15,7 @@ module Fog
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def href=(new_href)
|
18
|
-
self.id = new_href.split(
|
18
|
+
self.id = new_href.split("/").last.to_i
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -5,8 +5,8 @@ module Fog
|
|
5
5
|
model Fog::Compute::Terremark::Image
|
6
6
|
|
7
7
|
def all
|
8
|
-
data = service.get_catalog(vdc_id).body[
|
9
|
-
entity[
|
8
|
+
data = service.get_catalog(vdc_id).body["CatalogItems"].select do |entity|
|
9
|
+
entity["type"] == "application/vnd.vmware.vcloud.catalogItem+xml"
|
10
10
|
end
|
11
11
|
load(data)
|
12
12
|
end
|
@@ -27,8 +27,8 @@ module Fog
|
|
27
27
|
protocol = self.Protocol,
|
28
28
|
port = self.Port,
|
29
29
|
options = {
|
30
|
-
|
31
|
-
|
30
|
+
"Enabled" => "true",
|
31
|
+
"Description" => self.Name
|
32
32
|
}
|
33
33
|
)
|
34
34
|
else
|
@@ -39,8 +39,8 @@ module Fog
|
|
39
39
|
protocol = self.Protocol,
|
40
40
|
port = self.Port,
|
41
41
|
options = {
|
42
|
-
|
43
|
-
|
42
|
+
"Enabled" => "true",
|
43
|
+
"Description" => self.Name
|
44
44
|
}
|
45
45
|
)
|
46
46
|
end
|
@@ -52,7 +52,7 @@ module Fog
|
|
52
52
|
attr_writer :type, :size, :Links
|
53
53
|
|
54
54
|
def href=(new_href)
|
55
|
-
self.id = new_href.split(
|
55
|
+
self.id = new_href.split("/").last.to_i
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
@@ -13,13 +13,13 @@ module Fog
|
|
13
13
|
|
14
14
|
def ips
|
15
15
|
#Until there is a real models for these ?
|
16
|
-
service.get_network_ips(id).body[
|
16
|
+
service.get_network_ips(id).body["IpAddresses"]
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def href=(new_href)
|
22
|
-
self.id = new_href.split(
|
22
|
+
self.id = new_href.split("/").last.to_i
|
23
23
|
end
|
24
24
|
|
25
25
|
def type=(_new_type); end
|
@@ -5,7 +5,7 @@ module Fog
|
|
5
5
|
model Fog::Compute::Terremark::Network
|
6
6
|
|
7
7
|
def all
|
8
|
-
data = service.get_vdc(vdc_id).body[
|
8
|
+
data = service.get_vdc(vdc_id).body["AvailableNetworks"].map do |network|
|
9
9
|
service.get_network(network["href"].split("/").last).body
|
10
10
|
end
|
11
11
|
load(data)
|
@@ -18,14 +18,12 @@ module Fog
|
|
18
18
|
def save
|
19
19
|
requires :Name, :Port, :InternetServiceId
|
20
20
|
data = service.add_node_service(
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
}
|
28
|
-
|
21
|
+
self.InternetServiceId,
|
22
|
+
self.IpAddress,
|
23
|
+
self.Name,
|
24
|
+
self.Port,
|
25
|
+
"Enabled" => "true",
|
26
|
+
"Description" => self.Name
|
29
27
|
)
|
30
28
|
merge_attributes(data.body)
|
31
29
|
true
|
@@ -36,7 +34,7 @@ module Fog
|
|
36
34
|
attr_writer :type, :size, :Links
|
37
35
|
|
38
36
|
def href=(new_href)
|
39
|
-
self.id = new_href.split(
|
37
|
+
self.id = new_href.split("/").last.to_i
|
40
38
|
end
|
41
39
|
end
|
42
40
|
end
|
@@ -66,7 +66,7 @@ module Fog
|
|
66
66
|
true
|
67
67
|
end
|
68
68
|
|
69
|
-
# {
|
69
|
+
# { "0" => "Being created", "2" => "Powered Off", "4" => "Powered On"}
|
70
70
|
def ready?
|
71
71
|
status == VAppStatus::POWERED_OFF
|
72
72
|
end
|
@@ -84,7 +84,7 @@ module Fog
|
|
84
84
|
begin
|
85
85
|
service.power_on(id)
|
86
86
|
rescue Excon::Errors::InternalServerError => e
|
87
|
-
#Frankly we
|
87
|
+
# Frankly we shoudln't get here ...
|
88
88
|
raise e unless e.to_s =~ /because it is already powered on/
|
89
89
|
end
|
90
90
|
true
|
@@ -95,7 +95,7 @@ module Fog
|
|
95
95
|
begin
|
96
96
|
service.power_off(id)
|
97
97
|
rescue Excon::Errors::InternalServerError => e
|
98
|
-
#Frankly we
|
98
|
+
# Frankly we shoudln't get here ...
|
99
99
|
raise e unless e.to_s =~ /because it is already powered off/
|
100
100
|
end
|
101
101
|
true
|
@@ -106,7 +106,7 @@ module Fog
|
|
106
106
|
begin
|
107
107
|
service.power_shutdown(id)
|
108
108
|
rescue Excon::Errors::InternalServerError => e
|
109
|
-
#Frankly we
|
109
|
+
# Frankly we shoudln't get here ...
|
110
110
|
raise e unless e.to_s =~ /because it is already powered off/
|
111
111
|
end
|
112
112
|
true
|
@@ -171,9 +171,9 @@ module Fog
|
|
171
171
|
server_name=name,
|
172
172
|
vapp_template=image,
|
173
173
|
options={
|
174
|
-
|
175
|
-
|
176
|
-
|
174
|
+
"ssh_key_fingerprint" => sshkeyFingerPrint,
|
175
|
+
"cpus" => vcpus,
|
176
|
+
"memory" => memory
|
177
177
|
})
|
178
178
|
|
179
179
|
merge_attributes(data.body)
|
@@ -193,7 +193,7 @@ module Fog
|
|
193
193
|
attr_writer :type, :size, :Links
|
194
194
|
|
195
195
|
def href=(new_href)
|
196
|
-
self.id = new_href.split(
|
196
|
+
self.id = new_href.split("/").last.to_i
|
197
197
|
end
|
198
198
|
end
|
199
199
|
end
|
@@ -6,8 +6,8 @@ module Fog
|
|
6
6
|
|
7
7
|
def all
|
8
8
|
data = []
|
9
|
-
service.get_vdc(vdc_id).body[
|
10
|
-
data << service.servers.get(entity["href"].split(
|
9
|
+
service.get_vdc(vdc_id).body["ResourceEntities"].select do |entity|
|
10
|
+
data << service.servers.get(entity["href"].split("/").last)
|
11
11
|
end
|
12
12
|
data
|
13
13
|
end
|
@@ -4,19 +4,19 @@ module Fog
|
|
4
4
|
class Task < Fog::Model
|
5
5
|
identity :id
|
6
6
|
|
7
|
-
attribute :end_time, :aliases =>
|
8
|
-
attribute :owner, :aliases =>
|
9
|
-
attribute :result, :aliases =>
|
10
|
-
attribute :start_time, :aliases =>
|
7
|
+
attribute :end_time, :aliases => "endTime"
|
8
|
+
attribute :owner, :aliases => "Owner"
|
9
|
+
attribute :result, :aliases => "Result"
|
10
|
+
attribute :start_time, :aliases => "startTime"
|
11
11
|
attribute :status
|
12
|
-
attribute :link, :aliases =>
|
13
|
-
attribute :error, :aliases =>
|
12
|
+
attribute :link, :aliases => "Link"
|
13
|
+
attribute :error, :aliases => "Error"
|
14
14
|
|
15
15
|
def initialize(attributes = {})
|
16
|
-
new_owner = attributes.delete(
|
17
|
-
new_result = attributes.delete(
|
18
|
-
new_error = attributes.delete(
|
19
|
-
new_cancel_link = attributes.delete(
|
16
|
+
new_owner = attributes.delete("Owner")
|
17
|
+
new_result = attributes.delete("Result")
|
18
|
+
new_error = attributes.delete("Error")
|
19
|
+
new_cancel_link = attributes.delete("Link")
|
20
20
|
|
21
21
|
super
|
22
22
|
self.owner = service.parse(new_owner)
|
@@ -28,13 +28,13 @@ module Fog
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def ready?
|
31
|
-
@status ==
|
31
|
+
@status == "success"
|
32
32
|
end
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def href=(new_href)
|
37
|
-
@id = new_href.split(
|
37
|
+
@id = new_href.split("/").last.to_i
|
38
38
|
end
|
39
39
|
|
40
40
|
def type=(_new_type); end
|
@@ -5,7 +5,7 @@ module Fog
|
|
5
5
|
model Fog::Compute::Terremark::Task
|
6
6
|
|
7
7
|
def all
|
8
|
-
data = service.get_tasks_list(task_list_id).body[
|
8
|
+
data = service.get_tasks_list(task_list_id).body["Tasks"]
|
9
9
|
load(data)
|
10
10
|
end
|
11
11
|
|
@@ -24,7 +24,7 @@ module Fog
|
|
24
24
|
organization = service.get_organization(service.default_organization_id).body
|
25
25
|
@task_list_id ||=
|
26
26
|
if service.default_organization_id && organization
|
27
|
-
organization[
|
27
|
+
organization["Links"].detect { |link| link["type"] == "application/vnd.vmware.vcloud.tasksList+xml" }["href"].split("/").last.to_i
|
28
28
|
else
|
29
29
|
nil
|
30
30
|
end
|
@@ -5,8 +5,8 @@ module Fog
|
|
5
5
|
model Fog::Compute::Terremark::Vdc
|
6
6
|
|
7
7
|
def all
|
8
|
-
data = service.get_organization(organization_id).body[
|
9
|
-
entity[
|
8
|
+
data = service.get_organization(organization_id).body["Links"].select do |entity|
|
9
|
+
entity["type"] == "application/vnd.vmware.vcloud.vdc+xml"
|
10
10
|
end
|
11
11
|
load(data)
|
12
12
|
end
|