fog-azure-rm 0.0.1 → 0.0.2
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/CONTRIBUTING.md +19 -8
- data/LICENSE.md +1 -1
- data/README.md +9 -8
- data/lib/fog/azurerm/models/compute/availability_set.rb +17 -3
- data/lib/fog/azurerm/models/compute/availability_sets.rb +2 -6
- data/lib/fog/azurerm/models/compute/server.rb +1 -1
- data/lib/fog/azurerm/models/compute/servers.rb +3 -1
- data/lib/fog/azurerm/models/dns/record_set.rb +31 -3
- data/lib/fog/azurerm/models/dns/record_sets.rb +7 -17
- data/lib/fog/azurerm/models/dns/zone.rb +26 -3
- data/lib/fog/azurerm/models/dns/zones.rb +8 -6
- data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +32 -0
- data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +27 -0
- data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +29 -0
- data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
- data/lib/fog/azurerm/models/network/load_balancers.rb +27 -0
- data/lib/fog/azurerm/models/network/load_balancing_rule.rb +42 -0
- data/lib/fog/azurerm/models/network/network_interface.rb +46 -7
- data/lib/fog/azurerm/models/network/network_interfaces.rb +2 -8
- data/lib/fog/azurerm/models/network/network_security_group.rb +89 -0
- data/lib/fog/azurerm/models/network/network_security_groups.rb +27 -0
- data/lib/fog/azurerm/models/network/network_security_rule.rb +40 -0
- data/lib/fog/azurerm/models/network/probe.rb +29 -0
- data/lib/fog/azurerm/models/network/public_ip.rb +32 -4
- data/lib/fog/azurerm/models/network/public_ips.rb +2 -8
- data/lib/fog/azurerm/models/network/subnet.rb +20 -12
- data/lib/fog/azurerm/models/network/subnets.rb +1 -7
- data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +63 -0
- data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +29 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +59 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +24 -0
- data/lib/fog/azurerm/models/network/virtual_network.rb +19 -6
- data/lib/fog/azurerm/models/network/virtual_networks.rb +4 -9
- data/lib/fog/azurerm/models/resources/resource_group.rb +2 -1
- data/lib/fog/azurerm/models/resources/resource_groups.rb +1 -9
- data/lib/fog/azurerm/models/storage/storage_account.rb +5 -7
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +5 -6
- data/lib/fog/azurerm/network.rb +30 -0
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +13 -2
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +60 -2
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +57 -1
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +16 -1
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +27 -1
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/dns/check_for_zone.rb +16 -17
- data/lib/fog/azurerm/requests/dns/create_record_set.rb +80 -37
- data/lib/fog/azurerm/requests/dns/create_zone.rb +43 -27
- data/lib/fog/azurerm/requests/dns/delete_record_set.rb +17 -19
- data/lib/fog/azurerm/requests/dns/delete_zone.rb +16 -19
- data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +29 -28
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +49 -23
- data/lib/fog/azurerm/requests/dns/list_zones.rb +57 -23
- data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +3 -1
- data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +4 -2
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +208 -0
- data/lib/fog/azurerm/requests/network/create_network_interface.rb +42 -4
- data/lib/fog/azurerm/requests/network/create_network_security_group.rb +200 -0
- data/lib/fog/azurerm/requests/network/create_public_ip.rb +19 -5
- data/lib/fog/azurerm/requests/network/create_subnet.rb +19 -6
- data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +78 -0
- data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +127 -0
- data/lib/fog/azurerm/requests/network/create_virtual_network.rb +40 -5
- data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +5 -3
- data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +29 -0
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -2
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +10 -8
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +8 -6
- data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +96 -0
- data/lib/fog/azurerm/requests/network/list_load_balancers.rb +31 -0
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +41 -9
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +171 -0
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +21 -9
- data/lib/fog/azurerm/requests/network/list_subnets.rb +34 -11
- data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +98 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +53 -8
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +11 -2
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +4 -2
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +23 -7
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +2 -0
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +14 -8
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +4 -3
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +33 -2
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +32 -5
- data/lib/fog/azurerm/storage.rb +0 -1
- data/lib/fog/azurerm/version.rb +1 -1
- metadata +35 -10
@@ -12,21 +12,16 @@ module Fog
|
|
12
12
|
requires :resource_group
|
13
13
|
virtual_networks = []
|
14
14
|
service.list_virtual_networks(resource_group).each do |vnet|
|
15
|
-
|
16
|
-
vnet.instance_variables.each do |var|
|
17
|
-
hash[var.to_s.delete('@')] = vnet.instance_variable_get(var)
|
18
|
-
end
|
19
|
-
hash['resource_group'] = vnet.instance_variable_get('@id').split('/')[4]
|
20
|
-
virtual_networks << hash
|
15
|
+
virtual_networks << Fog::Network::AzureRM::VirtualNetwork.parse(vnet)
|
21
16
|
end
|
22
17
|
load(virtual_networks)
|
23
18
|
end
|
24
19
|
|
25
|
-
def get(identity
|
26
|
-
all.find { |f| f.name == identity
|
20
|
+
def get(identity)
|
21
|
+
all.find { |f| f.name == identity }
|
27
22
|
end
|
28
23
|
|
29
|
-
def check_if_exists(
|
24
|
+
def check_if_exists(resource_group, name)
|
30
25
|
Fog::Logger.debug "Checkng if Virtual Network #{name} exists."
|
31
26
|
if service.check_for_virtual_network(name, resource_group)
|
32
27
|
Fog::Logger.debug "Virtual Network #{name} exists."
|
@@ -8,15 +8,7 @@ module Fog
|
|
8
8
|
model Fog::Resources::AzureRM::ResourceGroup
|
9
9
|
|
10
10
|
def all
|
11
|
-
|
12
|
-
service.list_resource_groups.each do |rg|
|
13
|
-
hash = {}
|
14
|
-
rg.instance_variables.each do |var|
|
15
|
-
hash[var.to_s.delete('@')] = rg.instance_variable_get(var)
|
16
|
-
end
|
17
|
-
resource_groups << hash
|
18
|
-
end
|
19
|
-
load(resource_groups)
|
11
|
+
load(service.list_resource_groups)
|
20
12
|
end
|
21
13
|
|
22
14
|
def get(identity)
|
@@ -1,23 +1,19 @@
|
|
1
|
-
# rubocop:disable LineLength
|
2
|
-
# rubocop:disable MethodLength
|
3
1
|
module Fog
|
4
2
|
module Storage
|
5
3
|
class AzureRM
|
6
4
|
# This class is giving implementation of create/save and
|
7
5
|
# delete/destroy for storage account.
|
8
6
|
class StorageAccount < Fog::Model
|
9
|
-
attribute :id
|
10
7
|
identity :name
|
11
|
-
attribute :type
|
12
8
|
attribute :location
|
13
|
-
attribute :tags
|
14
9
|
attribute :resource_group
|
15
|
-
attribute :
|
10
|
+
attribute :account_type
|
16
11
|
|
17
12
|
def save
|
18
13
|
requires :name
|
19
14
|
requires :location
|
20
15
|
requires :resource_group
|
16
|
+
hash = {}
|
21
17
|
# Create a model for new storage account.
|
22
18
|
properties = Azure::ARM::Storage::Models::StorageAccountPropertiesCreateParameters.new
|
23
19
|
properties.account_type = 'Standard_LRS' # This might change in the near future!
|
@@ -25,7 +21,9 @@ module Fog
|
|
25
21
|
params = Azure::ARM::Storage::Models::StorageAccountCreateParameters.new
|
26
22
|
params.properties = properties
|
27
23
|
params.location = location
|
28
|
-
service.create_storage_account(resource_group, name, params)
|
24
|
+
sa = service.create_storage_account(resource_group, name, params)
|
25
|
+
hash['account_type'] = sa['properties']['accountType']
|
26
|
+
merge_attributes(hash)
|
29
27
|
end
|
30
28
|
|
31
29
|
def destroy
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'fog/core/collection'
|
2
2
|
require 'fog/azurerm/models/storage/storage_account'
|
3
|
-
|
4
|
-
# rubocop:disable MethodLength
|
5
|
-
# rubocop:disable AbcSize
|
3
|
+
|
6
4
|
module Fog
|
7
5
|
module Storage
|
8
6
|
class AzureRM
|
@@ -21,9 +19,10 @@ module Fog
|
|
21
19
|
end
|
22
20
|
hash_of_storage_accounts.each do |account|
|
23
21
|
hash = {}
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
hash['name'] = account['name']
|
23
|
+
hash['location'] = account['location']
|
24
|
+
hash['resource_group'] = account['id'].split('/')[4]
|
25
|
+
hash['account_type'] = account['properties']['accountType']
|
27
26
|
accounts << hash
|
28
27
|
end
|
29
28
|
load(accounts)
|
data/lib/fog/azurerm/network.rb
CHANGED
@@ -24,6 +24,18 @@ module Fog
|
|
24
24
|
request :create_network_interface
|
25
25
|
request :delete_network_interface
|
26
26
|
request :list_network_interfaces
|
27
|
+
request :create_load_balancer
|
28
|
+
request :delete_load_balancer
|
29
|
+
request :list_load_balancers
|
30
|
+
request :create_network_security_group
|
31
|
+
request :delete_network_security_group
|
32
|
+
request :list_network_security_groups
|
33
|
+
request :create_traffic_manager_profile
|
34
|
+
request :get_traffic_manager_profile
|
35
|
+
request :delete_traffic_manager_profile
|
36
|
+
request :list_traffic_manager_profiles
|
37
|
+
request :create_traffic_manager_endpoint
|
38
|
+
request :delete_traffic_manager_endpoint
|
27
39
|
|
28
40
|
model_path 'fog/azurerm/models/network'
|
29
41
|
model :virtual_network
|
@@ -34,6 +46,20 @@ module Fog
|
|
34
46
|
collection :subnets
|
35
47
|
model :network_interface
|
36
48
|
collection :network_interfaces
|
49
|
+
model :load_balancer
|
50
|
+
collection :load_balancers
|
51
|
+
model :frontend_ip_configuration
|
52
|
+
model :inbound_nat_pool
|
53
|
+
model :inbound_nat_rule
|
54
|
+
model :load_balancing_rule
|
55
|
+
model :probe
|
56
|
+
model :network_security_group
|
57
|
+
collection :network_security_groups
|
58
|
+
model :network_security_rule
|
59
|
+
model :traffic_manager_profile
|
60
|
+
collection :traffic_manager_profiles
|
61
|
+
model :traffic_manager_end_point
|
62
|
+
collection :traffic_manager_end_points
|
37
63
|
|
38
64
|
# Mock class for Network Service
|
39
65
|
class Mock
|
@@ -60,6 +86,10 @@ module Fog
|
|
60
86
|
credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
|
61
87
|
@network_client = ::Azure::ARM::Network::NetworkManagementClient.new(credentials)
|
62
88
|
@network_client.subscription_id = options[:subscription_id]
|
89
|
+
@tenant_id = options[:tenant_id]
|
90
|
+
@client_id = options[:client_id]
|
91
|
+
@client_secret = options[:client_secret]
|
92
|
+
@subscription_id = options[:subscription_id]
|
63
93
|
end
|
64
94
|
end
|
65
95
|
end
|
@@ -12,7 +12,7 @@ module Fog
|
|
12
12
|
promise = @compute_mgmt_client.availability_sets.create_or_update(resource_group, name, avail_set_props)
|
13
13
|
result = promise.value!
|
14
14
|
Fog::Logger.debug "Availability Set #{name} created successfully."
|
15
|
-
result
|
15
|
+
Azure::ARM::Compute::Models::AvailabilitySet.serialize_object(result.body)
|
16
16
|
rescue MsRestAzure::AzureOperationError => e
|
17
17
|
msg = "Exception creating Availability Set #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
18
18
|
raise msg
|
@@ -37,7 +37,18 @@ module Fog
|
|
37
37
|
end
|
38
38
|
# This class provides the mock implementation for unit tests.
|
39
39
|
class Mock
|
40
|
-
def create_availability_set(resource_group, name,
|
40
|
+
def create_availability_set(resource_group, name, location)
|
41
|
+
{
|
42
|
+
'location' => location,
|
43
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Compute/availabilitySets/#{name}",
|
44
|
+
'name' => name,
|
45
|
+
'type' => 'Microsoft.Compute/availabilitySets',
|
46
|
+
'properties' =>
|
47
|
+
{
|
48
|
+
'platformUpdateDomainCount' => 2,
|
49
|
+
'platformFaultDomainCount' => 2
|
50
|
+
}
|
51
|
+
}
|
41
52
|
end
|
42
53
|
end
|
43
54
|
end
|
@@ -3,7 +3,7 @@ module Fog
|
|
3
3
|
class AzureRM
|
4
4
|
# This class provides the actual implementation for service calls.
|
5
5
|
class Real
|
6
|
-
def create_virtual_machine(name, location,
|
6
|
+
def create_virtual_machine(resource_group, name, location, vm_size, storage_account_name,
|
7
7
|
username, password, disable_password_authentication,
|
8
8
|
ssh_key_path, ssh_key_data, network_interface_card_id,
|
9
9
|
availability_set_id, publisher, offer, sku, version)
|
@@ -92,7 +92,65 @@ module Fog
|
|
92
92
|
end
|
93
93
|
# This class provides the mock implementation for unit tests.
|
94
94
|
class Mock
|
95
|
-
def create_virtual_machine
|
95
|
+
def create_virtual_machine(resource_group, name, location, vm_size, storage_account_name,
|
96
|
+
username, password, disable_password_authentication,
|
97
|
+
ssh_key_path, ssh_key_data, network_interface_card_id,
|
98
|
+
availability_set_id, publisher, offer, sku, version)
|
99
|
+
{
|
100
|
+
"location"=>location,
|
101
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Compute/virtualMachines/#{name}",
|
102
|
+
"name"=>name,
|
103
|
+
"type"=>"Microsoft.Compute/virtualMachines",
|
104
|
+
"properties"=>
|
105
|
+
{
|
106
|
+
"hardwareProfile"=>
|
107
|
+
{
|
108
|
+
"vmSize"=>vm_size
|
109
|
+
},
|
110
|
+
"storageProfile"=>
|
111
|
+
{
|
112
|
+
"imageReference"=>
|
113
|
+
{
|
114
|
+
"publisher"=>publisher,
|
115
|
+
"offer"=>offer,
|
116
|
+
"sku"=>sku,
|
117
|
+
"version"=>version
|
118
|
+
},
|
119
|
+
"osDisk"=>
|
120
|
+
{
|
121
|
+
"name"=>"#{name}_os_disk",
|
122
|
+
"vhd"=>
|
123
|
+
{
|
124
|
+
"uri"=>"http://#{storage_account_name}.blob.core.windows.net/vhds/#{name}_os_disk.vhd"
|
125
|
+
},
|
126
|
+
"createOption"=>"FromImage",
|
127
|
+
"osType"=>"Linux",
|
128
|
+
"caching"=>"ReadWrite"
|
129
|
+
},
|
130
|
+
"dataDisks"=>[]
|
131
|
+
},
|
132
|
+
"osProfile"=>
|
133
|
+
{
|
134
|
+
"computerName"=>name,
|
135
|
+
"adminUsername"=>username,
|
136
|
+
"linuxConfiguration"=>
|
137
|
+
{
|
138
|
+
"disablePasswordAuthentication"=>disable_password_authentication
|
139
|
+
},
|
140
|
+
"secrets"=>[]
|
141
|
+
},
|
142
|
+
"networkProfile"=>
|
143
|
+
{
|
144
|
+
"networkInterfaces"=>
|
145
|
+
[
|
146
|
+
{
|
147
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/#{network_interface_card_id.split('/')[8]}"
|
148
|
+
}
|
149
|
+
]
|
150
|
+
},
|
151
|
+
"provisioningState"=>"Succeeded"
|
152
|
+
}
|
153
|
+
}
|
96
154
|
end
|
97
155
|
end
|
98
156
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Deallocating Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.deallocate(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Deallocated Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Deallocating Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def deallocate_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Deallocated successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
begin
|
8
8
|
Fog::Logger.debug "Deleting Availability Set: #{name}."
|
9
9
|
promise = @compute_mgmt_client.availability_sets.delete(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Availability Set #{name} deleted successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Exception deleting Availability Set #{name} in Resourse Group #{resource_group}. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def delete_availability_set(resource_group, name)
|
22
|
+
Fog::Logger.debug "Availability Set #{name} from Resource group #{resource_group} deleted successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Deleting Virtual Machine #{name} from Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.delete(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Deleted Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Deleting Virtual Machine '#{name}' from Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def delete_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} deleted successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Generalizing Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.generalize(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Generalized Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Generalizing Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def generalize_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Generalized successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,7 +7,7 @@ module Fog
|
|
7
7
|
begin
|
8
8
|
promise = @compute_mgmt_client.virtual_machines.get(resource_group, name)
|
9
9
|
response = promise.value!
|
10
|
-
response.body
|
10
|
+
Azure::ARM::Compute::Models::VirtualMachine.serialize_object(response.body)
|
11
11
|
rescue MsRestAzure::AzureOperationError => e
|
12
12
|
msg = "Exception getting Virtual Machine #{name} from Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
13
13
|
raise msg
|
@@ -17,6 +17,62 @@ module Fog
|
|
17
17
|
# This class provides the mock implementation for unit tests.
|
18
18
|
class Mock
|
19
19
|
def get_virtual_machine(resource_group, name)
|
20
|
+
{
|
21
|
+
"location"=>"westus",
|
22
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Compute/virtualMachines/#{name}",
|
23
|
+
"name"=>name,
|
24
|
+
"type"=>"Microsoft.Compute/virtualMachines",
|
25
|
+
"properties"=>
|
26
|
+
{
|
27
|
+
"hardwareProfile"=>
|
28
|
+
{
|
29
|
+
"vmSize"=>"Basic_A0"
|
30
|
+
},
|
31
|
+
"storageProfile"=>
|
32
|
+
{
|
33
|
+
"imageReference"=>
|
34
|
+
{
|
35
|
+
"publisher"=>"Canonical",
|
36
|
+
"offer"=>"UbuntuServer",
|
37
|
+
"sku"=>"14.04.2-LTS",
|
38
|
+
"version"=>"latest"
|
39
|
+
},
|
40
|
+
"osDisk"=>
|
41
|
+
{
|
42
|
+
"name"=>"#{name}_os_disk",
|
43
|
+
"vhd"=>
|
44
|
+
{
|
45
|
+
"uri"=>"http://fogtestsafirst.blob.core.windows.net/vhds/testVM_os_disk.vhd"
|
46
|
+
},
|
47
|
+
"createOption"=>"FromImage",
|
48
|
+
"osType"=>"Linux",
|
49
|
+
"caching"=>"ReadWrite"
|
50
|
+
},
|
51
|
+
"dataDisks"=>[]
|
52
|
+
},
|
53
|
+
"osProfile"=>
|
54
|
+
{
|
55
|
+
"computerName"=>name,
|
56
|
+
"adminUsername"=>"testfog",
|
57
|
+
"linuxConfiguration"=>
|
58
|
+
{
|
59
|
+
"disablePasswordAuthentication"=>false
|
60
|
+
},
|
61
|
+
"secrets"=>[]
|
62
|
+
},
|
63
|
+
"networkProfile"=>
|
64
|
+
{
|
65
|
+
"networkInterfaces"=>
|
66
|
+
[
|
67
|
+
{
|
68
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/testNIC"
|
69
|
+
}
|
70
|
+
]
|
71
|
+
},
|
72
|
+
"provisioningState"=>"Succeeded"
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
20
76
|
end
|
21
77
|
end
|
22
78
|
end
|
@@ -7,7 +7,7 @@ module Fog
|
|
7
7
|
begin
|
8
8
|
promise = @compute_mgmt_client.availability_sets.list(resource_group)
|
9
9
|
response = promise.value!
|
10
|
-
response.body
|
10
|
+
Azure::ARM::Compute::Models::AvailabilitySetListResult.serialize_object(response.body)['value']
|
11
11
|
rescue MsRestAzure::AzureOperationError => e
|
12
12
|
msg = "Exception listing availability sets in Resource Group #{resource_group}. #{e.body['error']['message']}"
|
13
13
|
raise msg
|
@@ -17,6 +17,21 @@ module Fog
|
|
17
17
|
# This class provides the mock implementation for unit tests.
|
18
18
|
class Mock
|
19
19
|
def list_availability_sets(resource_group)
|
20
|
+
[
|
21
|
+
{
|
22
|
+
"id"=>"/subscriptions/{subscription-id}/resourceGroups/#{resource_group}/providers/Microsoft.Compute/availabilitySets/test_availability_set",
|
23
|
+
"name"=>"test_availability_set",
|
24
|
+
"type"=>"Microsoft.Compute/availabilitySets",
|
25
|
+
"location"=>"westus",
|
26
|
+
"tags"=> {},
|
27
|
+
"properties"=>
|
28
|
+
{
|
29
|
+
"platformUpdateDomainCount"=>5,
|
30
|
+
"platformFaultDomainCount"=>3,
|
31
|
+
"virtualMachines"=>[]
|
32
|
+
}
|
33
|
+
}
|
34
|
+
]
|
20
35
|
end
|
21
36
|
end
|
22
37
|
end
|