fog-terremark 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
![Gem Version](https://badge.fury.io/rb/fog-terremark.svg) [![Build Status](https://travis-ci.org/fog/fog-terremark.svg?branch=master)](https://travis-ci.org/fog/fog-terremark) [![Dependency Status](https://gemnasium.com/fog/fog-terremark.svg)](https://gemnasium.com/fog/fog-terremark) [![Coverage Status](https://img.shields.io/coveralls/fog/fog-terremark.svg)](https://coveralls.io/r/fog/fog-terremark?branch=master) [![Code Climate](https://codeclimate.com/github/fog/fog-terremark.png)](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
|