fog 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/Rakefile +90 -1
- data/bin/fog +5 -1
- data/changelog.txt +156 -0
- data/docs/_layouts/default.html +1 -0
- data/docs/about/press.markdown +4 -0
- data/docs/compute/index.markdown +4 -0
- data/docs/storage/index.markdown +4 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/iam.rb +7 -6
- data/lib/fog/aws/models/rds/server.rb +27 -23
- data/lib/fog/aws/parsers/iam/get_group.rb +2 -2
- data/lib/fog/aws/requests/iam/update_server_certificate.rb +37 -0
- data/lib/fog/bin.rb +2 -1
- data/lib/fog/bin/dynect.rb +30 -0
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/cdn.rb +4 -0
- data/lib/fog/cdn/aws.rb +6 -0
- data/lib/fog/cdn/parsers/aws/get_invalidation_list.rb +43 -0
- data/lib/fog/cdn/parsers/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/parsers/aws/streaming_distribution.rb +59 -0
- data/lib/fog/cdn/requests/aws/delete_streaming_distribution.rb +28 -0
- data/lib/fog/cdn/requests/aws/get_invalidation_list.rb +42 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution.rb +50 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/requests/aws/post_streaming_distribution.rb +78 -0
- data/lib/fog/cdn/requests/aws/put_streaming_distribution_config.rb +83 -0
- data/lib/fog/compute.rb +6 -2
- data/lib/fog/compute/aws.rb +12 -1
- data/lib/fog/compute/brightbox.rb +22 -12
- data/lib/fog/compute/models/aws/image.rb +5 -0
- data/lib/fog/compute/models/aws/server.rb +19 -22
- data/lib/fog/compute/models/aws/tag.rb +1 -1
- data/lib/fog/compute/models/bluebox/server.rb +2 -18
- data/lib/fog/compute/models/brightbox/account.rb +1 -1
- data/lib/fog/compute/models/brightbox/server.rb +2 -2
- data/lib/fog/compute/models/go_grid/server.rb +2 -18
- data/lib/fog/compute/models/linode/server.rb +5 -5
- data/lib/fog/compute/models/ninefold/server.rb +2 -2
- data/lib/fog/compute/models/rackspace/server.rb +2 -18
- data/lib/fog/compute/models/server.rb +27 -0
- data/lib/fog/compute/models/slicehost/server.rb +2 -18
- data/lib/fog/compute/models/storm_on_demand/server.rb +3 -3
- data/lib/fog/compute/models/voxel/server.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_images.rb +15 -3
- data/lib/fog/compute/parsers/aws/describe_instances.rb +1 -1
- data/lib/fog/compute/parsers/aws/describe_security_groups.rb +31 -7
- data/lib/fog/compute/requests/aws/describe_images.rb +33 -14
- data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -0
- data/lib/fog/compute/requests/aws/modify_image_attribute.rb +39 -0
- data/lib/fog/compute/requests/aws/modify_instance_attribute.rb +37 -0
- data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +10 -10
- data/lib/fog/compute/requests/aws/register_image.rb +54 -13
- data/lib/fog/compute/requests/aws/run_instances.rb +5 -0
- data/lib/fog/compute/requests/aws/stop_instances.rb +2 -1
- data/lib/fog/compute/requests/brightbox/activate_console_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_interface.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server_type.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_user.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_zone.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_api_clients.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_images.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_server_types.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_servers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_users.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_zones.rb +2 -8
- data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/shutdown_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/snapshot_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/start_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/stop_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_user.rb +2 -8
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/credentials.rb +1 -1
- data/lib/fog/core/errors.rb +3 -1
- data/lib/fog/core/json.rb +20 -0
- data/lib/fog/core/provider.rb +3 -1
- data/lib/fog/core/service.rb +5 -0
- data/lib/fog/dns.rb +8 -1
- data/lib/fog/dns/dynect.rb +80 -0
- data/lib/fog/dns/models/dynect/record.rb +67 -0
- data/lib/fog/dns/models/dynect/records.rb +53 -0
- data/lib/fog/dns/models/dynect/zone.rb +60 -0
- data/lib/fog/dns/models/dynect/zones.rb +29 -0
- data/lib/fog/dns/requests/dynect/delete_record.rb +24 -0
- data/lib/fog/dns/requests/dynect/delete_zone.rb +21 -0
- data/lib/fog/dns/requests/dynect/get_node_list.rb +23 -0
- data/lib/fog/dns/requests/dynect/get_record.rb +25 -0
- data/lib/fog/dns/requests/dynect/get_zone.rb +22 -0
- data/lib/fog/dns/requests/dynect/post_record.rb +27 -0
- data/lib/fog/dns/requests/dynect/post_session.rb +36 -0
- data/lib/fog/dns/requests/dynect/post_zone.rb +32 -0
- data/lib/fog/dns/requests/dynect/put_zone.rb +26 -0
- data/lib/fog/dns/zerigo.rb +1 -1
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/providers/dynect.rb +14 -0
- data/lib/fog/providers/rackspace.rb +1 -0
- data/lib/fog/rackspace/load_balancers.rb +179 -0
- data/lib/fog/rackspace/models/load_balancers/access_rule.rb +39 -0
- data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +216 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +27 -0
- data/lib/fog/rackspace/models/load_balancers/node.rb +58 -0
- data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +35 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
- data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +26 -0
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +27 -0
- data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +17 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
- data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
- data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/update_node.rb +26 -0
- data/lib/fog/storage.rb +5 -1
- data/lib/fog/storage/aws.rb +3 -0
- data/lib/fog/storage/models/aws/directory.rb +1 -3
- data/lib/fog/storage/models/aws/file.rb +1 -1
- data/lib/fog/storage/models/google/file.rb +1 -1
- data/lib/fog/storage/models/local/file.rb +8 -6
- data/lib/fog/storage/models/ninefold/file.rb +0 -1
- data/lib/fog/storage/requests/aws/copy_object.rb +1 -1
- data/lib/fog/storage/requests/aws/get_bucket.rb +14 -11
- data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +2 -4
- data/tests/aws/models/rds/server_tests.rb +4 -4
- data/tests/compute/models/aws/server_tests.rb +15 -1
- data/tests/compute/requests/aws/helper.rb +0 -4
- data/tests/compute/requests/aws/image_tests.rb +40 -9
- data/tests/compute/requests/brightbox/account_tests.rb +1 -1
- data/tests/compute/requests/brightbox/helper.rb +3 -0
- data/tests/compute/requests/brightbox/load_balancer_tests.rb +1 -1
- data/tests/compute/requests/voxel/server_tests.rb +2 -2
- data/tests/dns/helper.rb +18 -0
- data/tests/dns/models/record_tests.rb +3 -2
- data/tests/dns/models/records_tests.rb +2 -2
- data/tests/dns/models/zone_tests.rb +2 -2
- data/tests/dns/models/zones_tests.rb +1 -1
- data/tests/dns/requests/bluebox/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsimple/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsmadeeasy/dns_tests.rb +0 -12
- data/tests/dns/requests/dynect/dns_tests.rb +132 -0
- data/tests/dns/requests/linode/dns_tests.rb +1 -13
- data/tests/dns/requests/slicehost/dns_tests.rb +1 -13
- data/tests/helper.rb +1 -1
- data/tests/helpers/collection_helper.rb +2 -2
- data/tests/helpers/formats_helper.rb +2 -0
- data/tests/helpers/mock_helper.rb +4 -1
- data/tests/rackspace/helper.rb +24 -0
- data/tests/rackspace/load_balancer_tests.rb +21 -0
- data/tests/rackspace/models/access_list_tests.rb +12 -0
- data/tests/rackspace/models/access_lists_tests.rb +12 -0
- data/tests/rackspace/models/load_balancer_tests.rb +116 -0
- data/tests/rackspace/models/load_balancers_tests.rb +19 -0
- data/tests/rackspace/models/node_tests.rb +19 -0
- data/tests/rackspace/models/nodes_tests.rb +12 -0
- data/tests/rackspace/models/virtual_ip_tests.rb +16 -0
- data/tests/rackspace/models/virtual_ips_tests.rb +12 -0
- data/tests/rackspace/requests/access_list_tests.rb +56 -0
- data/tests/rackspace/requests/algorithm_tests.rb +19 -0
- data/tests/rackspace/requests/connection_logging_tests.rb +25 -0
- data/tests/rackspace/requests/connection_throttling_tests.rb +37 -0
- data/tests/rackspace/requests/helper.rb +112 -0
- data/tests/rackspace/requests/load_balancer_tests.rb +63 -0
- data/tests/rackspace/requests/load_balancer_usage_tests.rb +19 -0
- data/tests/rackspace/requests/monitor_tests.rb +46 -0
- data/tests/rackspace/requests/node_tests.rb +87 -0
- data/tests/rackspace/requests/protocol_tests.rb +21 -0
- data/tests/rackspace/requests/session_persistence_tests.rb +33 -0
- data/tests/rackspace/requests/usage_tests.rb +17 -0
- data/tests/rackspace/requests/virtual_ip_tests.rb +40 -0
- data/tests/storage/requests/aws/bucket_tests.rb +53 -0
- metadata +127 -8
- data/lib/fog/compute/requests/aws/modify_image_attributes.rb +0 -37
@@ -23,7 +23,7 @@ module Fog
|
|
23
23
|
attribute :telephone_verified
|
24
24
|
attribute :ram_limit
|
25
25
|
attribute :ram_used
|
26
|
-
attribute :
|
26
|
+
attribute :cloud_ips_limit
|
27
27
|
attribute :library_ftp_host
|
28
28
|
attribute :library_ftp_user
|
29
29
|
# This is always returned as null/nil unless performing a reset_ftp_password request
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
@@ -6,7 +6,7 @@ module Fog
|
|
6
6
|
|
7
7
|
class BlockInstantiationError < StandardError; end
|
8
8
|
|
9
|
-
class Server < Fog::
|
9
|
+
class Server < Fog::Compute::Server
|
10
10
|
extend Fog::Deprecation
|
11
11
|
deprecate(:ip, :public_ip_address)
|
12
12
|
|
@@ -70,22 +70,6 @@ module Fog
|
|
70
70
|
true
|
71
71
|
end
|
72
72
|
|
73
|
-
def ssh(commands)
|
74
|
-
requires :identity, :public_ip_address, :username
|
75
|
-
|
76
|
-
options = {}
|
77
|
-
options[:key_data] = [private_key] if private_key
|
78
|
-
Fog::SSH.new(public_ip_address, username, options).run(commands)
|
79
|
-
end
|
80
|
-
|
81
|
-
def scp(local_path, remote_path, upload_options = {})
|
82
|
-
requires :public_ip_address, :username
|
83
|
-
|
84
|
-
scp_options = {}
|
85
|
-
scp_options[:key_data] = [private_key] if private_key
|
86
|
-
Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
|
87
|
-
end
|
88
|
-
|
89
73
|
def setup(credentials = {})
|
90
74
|
requires :identity, :public_ip_address, :public_key, :username
|
91
75
|
Fog::SSH.new(public_ip_address, username, credentials).run([
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
5
5
|
class Linode
|
6
|
-
class Server < Fog::
|
6
|
+
class Server < Fog::Compute::Server
|
7
7
|
attr_reader :stack_script
|
8
8
|
identity :id
|
9
9
|
attribute :name
|
@@ -31,7 +31,7 @@ module Fog
|
|
31
31
|
|
32
32
|
def boot
|
33
33
|
connection.linode_boot id, config
|
34
|
-
end
|
34
|
+
end
|
35
35
|
|
36
36
|
def save
|
37
37
|
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
|
@@ -61,14 +61,14 @@ module Fog
|
|
61
61
|
def config
|
62
62
|
connection.linode_config_list(id).body['DATA'].first['ConfigID']
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
def create_linode
|
66
66
|
self.id = connection.linode_create(@data_center.id, @flavor.id, @payment_terms).body['DATA']['LinodeID']
|
67
67
|
connection.linode_update id, :label => @name
|
68
68
|
ips.create
|
69
69
|
reload
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
def create_disks
|
73
73
|
@swap = disks.create :type => :swap, :name => @name, :size => @flavor.ram
|
74
74
|
@disk = disks.create(:type => @type, :image => @image, :stack_script => @stack_script,
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
5
5
|
class Ninefold
|
6
6
|
|
7
|
-
class Server < Fog::
|
7
|
+
class Server < Fog::Compute::Server
|
8
8
|
extend Fog::Deprecation
|
9
9
|
deprecate :serviceofferingid, :flavor_id
|
10
10
|
deprecate :templateid, :image_id
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
5
5
|
class Rackspace
|
6
6
|
|
7
|
-
class Server < Fog::
|
7
|
+
class Server < Fog::Compute::Server
|
8
8
|
|
9
9
|
identity :id
|
10
10
|
|
@@ -112,22 +112,6 @@ module Fog
|
|
112
112
|
retry
|
113
113
|
end
|
114
114
|
|
115
|
-
def ssh(commands)
|
116
|
-
requires :public_ip_address, :identity, :username
|
117
|
-
|
118
|
-
options = {}
|
119
|
-
options[:key_data] = [private_key] if private_key
|
120
|
-
Fog::SSH.new(public_ip_address, username, options).run(commands)
|
121
|
-
end
|
122
|
-
|
123
|
-
def scp(local_path, remote_path, upload_options = {})
|
124
|
-
requires :public_ip_address, :username
|
125
|
-
|
126
|
-
scp_options = {}
|
127
|
-
scp_options[:key_data] = [private_key] if private_key
|
128
|
-
Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
|
129
|
-
end
|
130
|
-
|
131
115
|
def username
|
132
116
|
@username ||= 'root'
|
133
117
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Server < Fog::Model
|
6
|
+
|
7
|
+
def scp(local_path, remote_path, upload_options = {})
|
8
|
+
require 'net/scp'
|
9
|
+
requires :public_ip_address, :username
|
10
|
+
|
11
|
+
scp_options = {}
|
12
|
+
scp_options[:key_data] = [private_key] if private_key
|
13
|
+
Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def ssh(commands)
|
17
|
+
require 'net/ssh'
|
18
|
+
requires :public_ip_address, :username
|
19
|
+
|
20
|
+
options = {}
|
21
|
+
options[:key_data] = [private_key] if private_key
|
22
|
+
Fog::SSH.new(public_ip_address, username, options).run(commands)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
5
5
|
class Slicehost
|
6
6
|
|
7
|
-
class Server < Fog::
|
7
|
+
class Server < Fog::Compute::Server
|
8
8
|
|
9
9
|
identity :id
|
10
10
|
|
@@ -102,22 +102,6 @@ module Fog
|
|
102
102
|
retry
|
103
103
|
end
|
104
104
|
|
105
|
-
def ssh(commands)
|
106
|
-
requires :addresses, :identity, :username
|
107
|
-
|
108
|
-
options = {}
|
109
|
-
options[:key_data] = [private_key] if private_key
|
110
|
-
Fog::SSH.new(addresses.first, username, options).run(commands)
|
111
|
-
end
|
112
|
-
|
113
|
-
def scp(local_path, remote_path, upload_options = {})
|
114
|
-
requires :addresses, :username
|
115
|
-
|
116
|
-
scp_options = {}
|
117
|
-
scp_options[:key_data] = [private_key] if private_key
|
118
|
-
Fog::SCP.new(addresses.first, username, scp_options).upload(local_path, remote_path, upload_options)
|
119
|
-
end
|
120
|
-
|
121
105
|
def username
|
122
106
|
@username ||= 'root'
|
123
107
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'fog/
|
1
|
+
require 'fog/compute/models/server'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Compute
|
5
5
|
class StormOnDemand
|
6
6
|
|
7
|
-
class Server < Fog::
|
7
|
+
class Server < Fog::Compute::Server
|
8
8
|
identity :uniq_id
|
9
9
|
|
10
10
|
attribute :accnt
|
@@ -25,7 +25,7 @@ module Fog
|
|
25
25
|
attribute :template_description
|
26
26
|
attribute :zone
|
27
27
|
attribute :active
|
28
|
-
|
28
|
+
|
29
29
|
attr_writer :password, :username
|
30
30
|
|
31
31
|
def initialize(attributes={})
|
@@ -7,8 +7,9 @@ module Fog
|
|
7
7
|
|
8
8
|
def reset
|
9
9
|
@block_device_mapping = {}
|
10
|
-
@image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'tagSet' => {} }
|
10
|
+
@image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'stateReason' => {}, 'tagSet' => {} }
|
11
11
|
@response = { 'imagesSet' => [] }
|
12
|
+
@state_reason = {}
|
12
13
|
@tag = {}
|
13
14
|
end
|
14
15
|
|
@@ -17,6 +18,8 @@ module Fog
|
|
17
18
|
case name
|
18
19
|
when 'blockDeviceMapping'
|
19
20
|
@in_block_device_mapping = true
|
21
|
+
when 'stateReason'
|
22
|
+
@in_state_reason = true
|
20
23
|
when 'tagSet'
|
21
24
|
@in_tag_set = true
|
22
25
|
end
|
@@ -45,9 +48,18 @@ module Fog
|
|
45
48
|
@image['blockDeviceMapping'] << @block_device_mapping
|
46
49
|
@block_device_mapping = {}
|
47
50
|
end
|
51
|
+
elsif @in_state_reason
|
52
|
+
case name
|
53
|
+
when 'code', 'message'
|
54
|
+
@state_reason[name] = value
|
55
|
+
when 'stateReason'
|
56
|
+
@image['stateReason'] = @state_reason
|
57
|
+
@state_reason = {}
|
58
|
+
@in_state_reason = false
|
59
|
+
end
|
48
60
|
else
|
49
61
|
case name
|
50
|
-
when 'architecture', 'description', 'imageId', 'imageLocation', 'imageOwnerId', 'imageState', 'imageType', 'kernelId', 'name', 'platform', 'ramdiskId', 'rootDeviceType','rootDeviceName','virtualizationType'
|
62
|
+
when 'architecture', 'description', 'hypervisor', 'imageId', 'imageLocation', 'imageOwnerAlias', 'imageOwnerId', 'imageState', 'imageType', 'kernelId', 'name', 'platform', 'ramdiskId', 'rootDeviceType','rootDeviceName','virtualizationType'
|
51
63
|
@image[name] = value
|
52
64
|
when 'isPublic'
|
53
65
|
if value == 'true'
|
@@ -57,7 +69,7 @@ module Fog
|
|
57
69
|
end
|
58
70
|
when 'item'
|
59
71
|
@response['imagesSet'] << @image
|
60
|
-
@image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'tagSet' => {} }
|
72
|
+
@image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'stateReason' => {}, 'tagSet' => {} }
|
61
73
|
when 'productCode'
|
62
74
|
@image['productCodes'] << value
|
63
75
|
when 'requestId'
|
@@ -30,7 +30,7 @@ module Fog
|
|
30
30
|
@instance['placement'][name] = value
|
31
31
|
when 'architecture', 'clientToken', 'dnsName', 'imageId',
|
32
32
|
'instanceId', 'instanceType', 'ipAddress', 'kernelId',
|
33
|
-
'keyName', 'privateDnsName', 'privateIpAddress', 'ramdiskId',
|
33
|
+
'keyName', 'platform', 'privateDnsName', 'privateIpAddress', 'ramdiskId',
|
34
34
|
'reason', 'rootDeviceType'
|
35
35
|
@instance[name] = value
|
36
36
|
when 'attachTime'
|
@@ -8,8 +8,9 @@ module Fog
|
|
8
8
|
def reset
|
9
9
|
@group = {}
|
10
10
|
@ip_permission = { 'groups' => [], 'ipRanges' => []}
|
11
|
+
@ip_permission_egress = { 'groups' => [], 'ipRanges' => []}
|
11
12
|
@ip_range = {}
|
12
|
-
@security_group = { 'ipPermissions' => [] }
|
13
|
+
@security_group = { 'ipPermissions' => [], 'ipPermissionsEgress' => [] }
|
13
14
|
@response = { 'securityGroupInfo' => [] }
|
14
15
|
end
|
15
16
|
|
@@ -20,6 +21,8 @@ module Fog
|
|
20
21
|
@in_groups = true
|
21
22
|
when 'ipPermissions'
|
22
23
|
@in_ip_permissions = true
|
24
|
+
when 'ipPermissionsEgress'
|
25
|
+
@in_ip_permissions_egress = true
|
23
26
|
when 'ipRanges'
|
24
27
|
@in_ip_ranges = true
|
25
28
|
end
|
@@ -30,7 +33,11 @@ module Fog
|
|
30
33
|
when 'cidrIp'
|
31
34
|
@ip_range[name] = value
|
32
35
|
when 'fromPort', 'toPort'
|
33
|
-
@
|
36
|
+
if @in_ip_permissions_egress
|
37
|
+
@ip_permission_egress[name] = value.to_i
|
38
|
+
else
|
39
|
+
@ip_permission[name] = value.to_i
|
40
|
+
end
|
34
41
|
when 'groups'
|
35
42
|
@in_groups = false
|
36
43
|
when 'groupDescription', 'ownerId'
|
@@ -43,23 +50,40 @@ module Fog
|
|
43
50
|
end
|
44
51
|
when 'ipPermissions'
|
45
52
|
@in_ip_permissions = false
|
53
|
+
when 'ipPermissionsEgress'
|
54
|
+
@in_ip_permissions_egress = false
|
46
55
|
when 'ipProtocol'
|
47
|
-
@
|
56
|
+
if @in_ip_permissions_egress
|
57
|
+
@ip_permission_egress[name] = value
|
58
|
+
else
|
59
|
+
@ip_permission[name] = value
|
60
|
+
end
|
48
61
|
when 'ipRanges'
|
49
62
|
@in_ip_ranges = false
|
50
63
|
when 'item'
|
51
64
|
if @in_groups
|
52
|
-
|
65
|
+
if @in_ip_permissions_egress
|
66
|
+
@ip_permission_egress['group'] << @group
|
67
|
+
else
|
68
|
+
@ip_permission['groups'] << @group
|
69
|
+
end
|
53
70
|
@group = {}
|
54
71
|
elsif @in_ip_ranges
|
55
|
-
|
72
|
+
if @in_ip_permissions_egress
|
73
|
+
@ip_permission_egress['ipRanges'] << @ip_range
|
74
|
+
else
|
75
|
+
@ip_permission['ipRanges'] << @ip_range
|
76
|
+
end
|
56
77
|
@ip_range = {}
|
57
78
|
elsif @in_ip_permissions
|
58
79
|
@security_group['ipPermissions'] << @ip_permission
|
59
80
|
@ip_permission = { 'groups' => [], 'ipRanges' => []}
|
60
|
-
|
81
|
+
elsif @in_ip_permissions_egress
|
82
|
+
@security_group['ipPermissionsEgress'] << @ip_permission_egress
|
83
|
+
@ip_permission_egress = { 'groups' => [], 'ipRanges' => []}
|
84
|
+
else
|
61
85
|
@response['securityGroupInfo'] << @security_group
|
62
|
-
@security_group = { 'ipPermissions' => [] }
|
86
|
+
@security_group = { 'ipPermissions' => [], 'ipPermissionsEgress' => [] }
|
63
87
|
end
|
64
88
|
when 'requestId'
|
65
89
|
@response[name] = value
|
@@ -25,6 +25,7 @@ module Fog
|
|
25
25
|
# * 'description'<~String> - Description of image
|
26
26
|
# * 'imageId'<~String> - Id of the image
|
27
27
|
# * 'imageLocation'<~String> - Location of the image
|
28
|
+
# * 'imageOwnerAlias'<~String> - Alias of the owner of the image
|
28
29
|
# * 'imageOwnerId'<~String> - Id of the owner of the image
|
29
30
|
# * 'imageState'<~String> - State of the image
|
30
31
|
# * 'imageType'<~String> - Type of the image
|
@@ -59,22 +60,25 @@ module Fog
|
|
59
60
|
|
60
61
|
def describe_images(filters = {})
|
61
62
|
unless filters.is_a?(Hash)
|
62
|
-
Formatador.display_line("[yellow][WARN] describe_images with #{filters.class} param is deprecated, use
|
63
|
-
filters = {'
|
63
|
+
Formatador.display_line("[yellow][WARN] describe_images with #{filters.class} param is deprecated, use describe_images('image-id' => []) instead[/] [light_black](#{caller.first})[/]")
|
64
|
+
filters = {'image-id' => [*filters]}
|
64
65
|
end
|
65
|
-
|
66
|
+
|
66
67
|
if filters.keys.any? {|key| key =~ /^block-device/}
|
67
68
|
Formatador.display_line("[yellow][WARN] describe_images block-device-mapping filters are not yet mocked[/] [light_black](#{caller.first})[/]")
|
68
69
|
Fog::Mock.not_implemented
|
69
70
|
end
|
70
|
-
|
71
|
-
if filters.
|
72
|
-
|
73
|
-
|
71
|
+
|
72
|
+
if owner = filters.delete('Owner')
|
73
|
+
if owner == 'self'
|
74
|
+
filters['owner-id'] = self.data[:owner_id]
|
75
|
+
else
|
76
|
+
filters['owner-alias'] = owner
|
77
|
+
end
|
74
78
|
end
|
75
|
-
|
79
|
+
|
76
80
|
response = Excon::Response.new
|
77
|
-
|
81
|
+
|
78
82
|
aliases = {
|
79
83
|
'architecture' => 'architecture',
|
80
84
|
'description' => 'description',
|
@@ -84,7 +88,8 @@ module Fog
|
|
84
88
|
'is-public' => 'isPublic',
|
85
89
|
'kernel-id' => 'kernelId',
|
86
90
|
'manifest-location' => 'manifestLocation',
|
87
|
-
'name' => 'name',
|
91
|
+
'name' => 'name',
|
92
|
+
'owner-alias' => 'imageOwnerAlias',
|
88
93
|
'owner-id' => 'imageOwnerId',
|
89
94
|
'ramdisk-id' => 'ramdiskId',
|
90
95
|
'root-device-name' => 'rootDeviceName',
|
@@ -92,12 +97,26 @@ module Fog
|
|
92
97
|
'state' => 'imageState',
|
93
98
|
'virtualization-type' => 'virtualizationType'
|
94
99
|
}
|
95
|
-
|
100
|
+
|
96
101
|
image_set = self.data[:images].values
|
97
|
-
|
102
|
+
|
98
103
|
for filter_key, filter_value in filters
|
99
|
-
|
100
|
-
|
104
|
+
if tag_key = filter_key.split('tag:')[1]
|
105
|
+
image_set = image_set.reject{|image| ![*filter_value].include?(image['tagSet'][tag_key])}
|
106
|
+
else
|
107
|
+
aliased_key = aliases[filter_key]
|
108
|
+
image_set = image_set.reject{|image| ![*filter_value].include?(image[aliased_key])}
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
image_set = image_set.map do |image|
|
113
|
+
case image['imageState']
|
114
|
+
when 'pending'
|
115
|
+
if Time.now - image['registered'] >= Fog::Mock.delay
|
116
|
+
image['imageState'] = 'available'
|
117
|
+
end
|
118
|
+
end
|
119
|
+
image.reject { |key, value| ['registered'].include?(key) }
|
101
120
|
end
|
102
121
|
|
103
122
|
response.status = 200
|