fog-maestrodev 1.18.0.20131209091424 → 1.18.0.20131218202447
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CONTRIBUTING.md +22 -0
- data/LICENSE.md +20 -0
- data/README.md +29 -42
- data/fog.gemspec +3 -3
- data/lib/fog/aws/compute.rb +1 -0
- data/lib/fog/aws/models/compute/subnet.rb +4 -0
- data/lib/fog/aws/models/compute/vpc.rb +5 -0
- data/lib/fog/aws/models/rds/server.rb +2 -0
- data/lib/fog/aws/models/storage/file.rb +2 -2
- data/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb +25 -0
- data/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb +60 -0
- data/lib/fog/aws/requests/compute/describe_subnets.rb +8 -0
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +8 -0
- data/lib/fog/cloudstack.rb +1 -1
- data/lib/fog/core/connection.rb +1 -2
- data/lib/fog/core/hmac.rb +3 -3
- data/lib/fog/core/mock.rb +2 -2
- data/lib/fog/core/wait_for.rb +1 -1
- data/lib/fog/core/{timeout.rb → wait_for_defaults.rb} +10 -0
- data/lib/fog/core.rb +1 -1
- data/lib/fog/google/compute.rb +19 -11
- data/lib/fog/google/examples/create.rb +12 -1
- data/lib/fog/google/examples/eric-fail.rb +13 -2
- data/lib/fog/google/examples/image_create.rb +0 -1
- data/lib/fog/google/examples/launch_micro_instance.rb +1 -2
- data/lib/fog/google/examples/metadata.rb +14 -2
- data/lib/fog/google/examples/network.rb +13 -2
- data/lib/fog/google/models/compute/disk.rb +10 -8
- data/lib/fog/google/models/compute/image.rb +8 -3
- data/lib/fog/google/models/compute/server.rb +19 -4
- data/lib/fog/google/models/compute/servers.rb +25 -9
- data/lib/fog/google/requests/compute/insert_disk.rb +6 -3
- data/lib/fog/google/requests/compute/insert_image.rb +1 -5
- data/lib/fog/google/requests/compute/insert_server.rb +8 -21
- data/lib/fog/openstack/compute.rb +3 -0
- data/lib/fog/openstack/models/compute/host.rb +1 -0
- data/lib/fog/openstack/models/compute/security_group.rb +18 -4
- data/lib/fog/openstack/models/compute/security_group_rule.rb +32 -0
- data/lib/fog/openstack/models/compute/security_group_rules.rb +22 -0
- data/lib/fog/openstack/network.rb +33 -3
- data/lib/fog/openstack/requests/compute/create_security_group.rb +3 -3
- data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +12 -5
- data/lib/fog/openstack/requests/compute/delete_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_security_group_rule.rb +2 -0
- data/lib/fog/openstack/requests/compute/get_security_group.rb +14 -24
- data/lib/fog/openstack/requests/compute/get_security_group_rule.rb +38 -0
- data/lib/fog/openstack/requests/compute/list_hosts.rb +3 -3
- data/lib/fog/openstack/volume.rb +3 -1
- data/lib/fog/rackspace/docs/auto_scale.md +9 -9
- data/lib/fog/rackspace/docs/getting_started.md +1 -0
- data/lib/fog/rackspace/docs/queues.md +312 -0
- data/lib/fog/vcloud_director/README.md +2 -0
- data/lib/fog/vcloud_director/compute.rb +78 -8
- data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +91 -0
- data/lib/fog/vcloud_director/generators/compute/vapp.rb +30 -0
- data/lib/fog/vcloud_director/models/compute/vm_customization.rb +2 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +2 -0
- data/lib/fog/vcloud_director/requests/compute/delete_network.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +433 -333
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +3 -1
- data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +1 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +37 -0
- data/lib/fog/vsphere/models/compute/server.rb +1 -1
- data/lib/fog/xenserver/compute.rb +35 -0
- data/lib/fog/xenserver/models/compute/blob.rb +22 -0
- data/lib/fog/xenserver/models/compute/blobs.rb +25 -0
- data/lib/fog/xenserver/models/compute/bond.rb +23 -0
- data/lib/fog/xenserver/models/compute/bonds.rb +25 -0
- data/lib/fog/xenserver/models/compute/console.rb +3 -1
- data/lib/fog/xenserver/models/compute/crash_dump.rb +19 -0
- data/lib/fog/xenserver/models/compute/crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/dr_task.rb +17 -0
- data/lib/fog/xenserver/models/compute/dr_tasks.rb +25 -0
- data/lib/fog/xenserver/models/compute/gpu_group.rb +22 -0
- data/lib/fog/xenserver/models/compute/gpu_groups.rb +25 -0
- data/lib/fog/xenserver/models/compute/guest_metrics.rb +2 -1
- data/lib/fog/xenserver/models/compute/host.rb +41 -8
- data/lib/fog/xenserver/models/compute/host_cpu.rb +2 -1
- data/lib/fog/xenserver/models/compute/host_crash_dump.rb +20 -0
- data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_metrics.rb +1 -1
- data/lib/fog/xenserver/models/compute/host_patch.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/network.rb +7 -6
- data/lib/fog/xenserver/models/compute/pbd.rb +3 -1
- data/lib/fog/xenserver/models/compute/pci.rb +22 -0
- data/lib/fog/xenserver/models/compute/pcis.rb +25 -0
- data/lib/fog/xenserver/models/compute/pgpu.rb +20 -0
- data/lib/fog/xenserver/models/compute/pgpus.rb +25 -0
- data/lib/fog/xenserver/models/compute/pif.rb +19 -8
- data/lib/fog/xenserver/models/compute/pif_metrics.rb +28 -0
- data/lib/fog/xenserver/models/compute/pifs_metrics.rb +25 -0
- data/lib/fog/xenserver/models/compute/pool.rb +18 -1
- data/lib/fog/xenserver/models/compute/pool_patch.rb +24 -0
- data/lib/fog/xenserver/models/compute/pool_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/role.rb +19 -0
- data/lib/fog/xenserver/models/compute/roles.rb +25 -0
- data/lib/fog/xenserver/models/compute/server.rb +59 -26
- data/lib/fog/xenserver/models/compute/server_appliance.rb +21 -0
- data/lib/fog/xenserver/models/compute/server_appliances.rb +25 -0
- data/lib/fog/xenserver/models/compute/storage_manager.rb +28 -0
- data/lib/fog/xenserver/models/compute/storage_managers.rb +25 -0
- data/lib/fog/xenserver/models/compute/storage_repository.rb +4 -1
- data/lib/fog/xenserver/models/compute/tunnel.rb +20 -0
- data/lib/fog/xenserver/models/compute/tunnels.rb +25 -0
- data/lib/fog/xenserver/models/compute/vbd.rb +3 -2
- data/lib/fog/xenserver/models/compute/vbd_metrics.rb +1 -1
- data/lib/fog/xenserver/models/compute/vdi.rb +4 -1
- data/lib/fog/xenserver/models/compute/vif.rb +11 -2
- data/lib/fog/xenserver/models/compute/vlan.rb +2 -1
- data/lib/fog/xenserver/models/compute/vmpp.rb +35 -0
- data/lib/fog/xenserver/models/compute/vmpps.rb +25 -0
- data/lib/fog/xenserver/models/compute/vtpm.rb +18 -0
- data/lib/fog/xenserver/models/compute/vtpms.rb +25 -0
- data/tests/aws/requests/compute/assign_private_ip_tests.rb +52 -0
- data/tests/google/models/compute/servers_tests.rb +12 -1
- data/tests/google/requests/compute/image_tests.rb +0 -1
- data/tests/helpers/mock_helper.rb +1 -1
- data/tests/openstack/models/compute/security_group_tests.rb +54 -0
- data/tests/openstack/requests/compute/security_group_tests.rb +22 -20
- data/tests/openstack/requests/network/network_tests.rb +8 -8
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +17 -8
- data/tests/vcloud_director/requests/compute/network_tests.rb +25 -1
- data/tests/vcloud_director/requests/compute/query_tests.rb +67 -2
- metadata +125 -132
- checksums.yaml +0 -15
@@ -0,0 +1,91 @@
|
|
1
|
+
module Fog
|
2
|
+
module Generators
|
3
|
+
module Compute
|
4
|
+
module VcloudDirector
|
5
|
+
|
6
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/types/OrgVdcNetworkType.html
|
7
|
+
class OrgVdcNetwork
|
8
|
+
attr_reader :options
|
9
|
+
|
10
|
+
def initialize(options={})
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_xml
|
15
|
+
|
16
|
+
body = Nokogiri::XML::Builder.new do
|
17
|
+
attrs = {
|
18
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
19
|
+
:name => options[:name]
|
20
|
+
}
|
21
|
+
OrgVdcNetwork(attrs) {
|
22
|
+
Description options[:Description] if options.key?(:Description)
|
23
|
+
if configuration = options[:Configuration]
|
24
|
+
Configuration {
|
25
|
+
if ip_scopes = configuration[:IpScopes]
|
26
|
+
IpScopes {
|
27
|
+
if ip_scope = ip_scopes[:IpScope]
|
28
|
+
IpScope {
|
29
|
+
IsInherited ip_scope[:IsInherited] if ip_scope.key?(:IsInherited)
|
30
|
+
Gateway ip_scope[:Gateway] if ip_scope.key?(:Gateway)
|
31
|
+
Netmask ip_scope[:Netmask] if ip_scope.key?(:Netmask)
|
32
|
+
Dns1 ip_scope[:Dns1] if ip_scope.key?(:Dns1)
|
33
|
+
Dns2 ip_scope[:Dns2] if ip_scope.key?(:Dns2)
|
34
|
+
DnsSuffix ip_scope[:DnsSuffix] if ip_scope.key?(:DnsSuffix)
|
35
|
+
IsEnabled ip_scope[:IsEnabled] if ip_scope.key?(:IsEnabled)
|
36
|
+
if ip_ranges = ip_scope[:IpRanges]
|
37
|
+
IpRanges {
|
38
|
+
ip_ranges.each do |h|
|
39
|
+
if h.key?(:IpRange)
|
40
|
+
IpRange {
|
41
|
+
StartAddress h[:IpRange][:StartAddress]
|
42
|
+
EndAddress h[:IpRange][:EndAddress]
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
}
|
47
|
+
end
|
48
|
+
}
|
49
|
+
end
|
50
|
+
}
|
51
|
+
end
|
52
|
+
FenceMode configuration[:FenceMode]
|
53
|
+
if router_info = configuration[:RouterInfo]
|
54
|
+
RouterInfoType {
|
55
|
+
ExternalIp router_info[:ExternalIp]
|
56
|
+
}
|
57
|
+
end
|
58
|
+
}
|
59
|
+
end # Configuration
|
60
|
+
|
61
|
+
if edgegw = options[:EdgeGateway] and configuration[:FenceMode] != 'isolated'
|
62
|
+
EdgeGateway(edgegw)
|
63
|
+
elsif options[:Configuration] && options[:Configuration][:FenceMode] == 'isolated'
|
64
|
+
# isolated networks can specify ServiceConfig
|
65
|
+
if sc = options[:ServiceConfig]
|
66
|
+
ServiceConfig {
|
67
|
+
if dhcp = sc[:GatewayDhcpService]
|
68
|
+
IsEnabled dhcp[:IsEnabled] if dhcp[:IsEnabled]
|
69
|
+
if pool = dhcp[:Pool]
|
70
|
+
IsEnabled pool[:IsEnabled]
|
71
|
+
DefaultLeaseTime pool[:DefaultLeaseTime]
|
72
|
+
MaxLeaseTime pool[:MaxLeaseTime]
|
73
|
+
LowIpAddress pool[:LowIpAddress]
|
74
|
+
HighIpAddress pool[:HighIpAddress]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
IsShared options[:IsShared] if options.key?(:IsShared)
|
82
|
+
|
83
|
+
}
|
84
|
+
end.to_xml
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Generators
|
3
|
+
module Compute
|
4
|
+
module VcloudDirector
|
5
|
+
|
6
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/types/VAppType.html
|
7
|
+
class Vapp
|
8
|
+
attr_reader :name, :options
|
9
|
+
|
10
|
+
def initialize(name, options={})
|
11
|
+
@name = name
|
12
|
+
@options = options
|
13
|
+
end
|
14
|
+
|
15
|
+
def generate_xml
|
16
|
+
attrs = @attrs
|
17
|
+
Nokogiri::XML::Builder.new do
|
18
|
+
VApp('xmlns' => 'http://www.vmware.com/vcloud/v1.5',
|
19
|
+
'name' => name
|
20
|
+
) {
|
21
|
+
Description options[:Description] if options.key?(:Description)
|
22
|
+
}
|
23
|
+
end.to_xml
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -14,6 +14,8 @@ module Fog
|
|
14
14
|
attribute :change_sid
|
15
15
|
attribute :join_domain_enabled
|
16
16
|
attribute :use_org_settings
|
17
|
+
attribute :admin_password_auto
|
18
|
+
attribute :admin_password
|
17
19
|
attribute :admin_password_enabled
|
18
20
|
attribute :reset_password_required
|
19
21
|
attribute :virtual_machine_id
|
@@ -32,6 +32,8 @@ module Fog
|
|
32
32
|
@response[:join_domain_enabled] = (value == "true")
|
33
33
|
when 'UseOrgSettings'
|
34
34
|
@response[:use_org_settings] = (value == "true")
|
35
|
+
when 'AdminPassword'
|
36
|
+
@response[:admin_password] = value
|
35
37
|
when 'AdminPasswordEnabled'
|
36
38
|
@response[:admin_password_enabled] = (value == "true")
|
37
39
|
when 'AdminPasswordAuto'
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class VcloudDirector
|
4
|
+
class Real
|
5
|
+
# Delete an OrgVdcNetwork
|
6
|
+
#
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
8
|
+
# monitor to track the progress of the request.
|
9
|
+
#
|
10
|
+
# @param [String] id Object identifier of the OrgVdcNetwork.
|
11
|
+
# @return [Excon::Response]
|
12
|
+
# * body<~Hash>:
|
13
|
+
#
|
14
|
+
# @raise [Fog::Compute::VcloudDirector::BadRequest]
|
15
|
+
#
|
16
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/DELETE-Network.html
|
17
|
+
# @since vCloud API version 0.9
|
18
|
+
def delete_network(id)
|
19
|
+
request(
|
20
|
+
:expects => 202,
|
21
|
+
:method => 'DELETE',
|
22
|
+
:parser => Fog::ToHashDocument.new,
|
23
|
+
:path => "admin/network/#{id}"
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Mock
|
29
|
+
def delete_network(id)
|
30
|
+
|
31
|
+
unless data[:networks][id]
|
32
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
33
|
+
"No access to entity \"(com.vmware.vcloud.entity.orgVdcNetwork:#{id})\""
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
owner = {
|
38
|
+
:href => make_href("network/#{id}"),
|
39
|
+
:type => 'application/vnd.vmware.vcloud.network+xml'
|
40
|
+
}
|
41
|
+
task_id = enqueue_task(
|
42
|
+
"Deleting Network(#{id})", 'DeleteNetwork', owner,
|
43
|
+
:on_success => lambda do
|
44
|
+
data[:networks].delete(id)
|
45
|
+
end
|
46
|
+
)
|
47
|
+
|
48
|
+
body = {
|
49
|
+
:xmlns => xmlns,
|
50
|
+
:xmlns_xsi => xmlns_xsi,
|
51
|
+
:xsi_schemaLocation => xsi_schema_location,
|
52
|
+
}.merge(task_body(task_id))
|
53
|
+
|
54
|
+
Excon::Response.new(
|
55
|
+
:status => 202,
|
56
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
57
|
+
:body => body
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|