fog-azure-rm 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.arclint +8 -0
- data/CHANGELOG.md +10 -0
- data/CONTRIBUTORS.md +4 -0
- data/lib/fog/azurerm/compute.rb +1 -0
- data/lib/fog/azurerm/docs/application_gateway.md +6 -7
- data/lib/fog/azurerm/docs/compute.md +45 -11
- data/lib/fog/azurerm/docs/dns.md +4 -1
- data/lib/fog/azurerm/docs/key_vault.md +3 -0
- data/lib/fog/azurerm/docs/network.md +18 -13
- data/lib/fog/azurerm/docs/resources.md +11 -8
- data/lib/fog/azurerm/docs/sql.md +18 -16
- data/lib/fog/azurerm/docs/storage.md +13 -78
- data/lib/fog/azurerm/docs/traffic_manager.md +7 -6
- data/lib/fog/azurerm/models/application_gateway/gateway.rb +5 -1
- data/lib/fog/azurerm/models/compute/availability_set.rb +4 -1
- data/lib/fog/azurerm/models/compute/creation_data.rb +4 -2
- data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
- data/lib/fog/azurerm/models/compute/managed_disk.rb +4 -4
- data/lib/fog/azurerm/models/compute/server.rb +31 -5
- data/lib/fog/azurerm/models/key_vault/vault.rb +3 -1
- data/lib/fog/azurerm/models/network/load_balancer.rb +3 -1
- data/lib/fog/azurerm/models/network/local_network_gateway.rb +3 -1
- data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
- data/lib/fog/azurerm/models/network/network_security_group.rb +4 -2
- data/lib/fog/azurerm/models/network/public_ip.rb +4 -2
- data/lib/fog/azurerm/models/network/virtual_network.rb +4 -2
- data/lib/fog/azurerm/models/resources/resource_group.rb +3 -1
- data/lib/fog/azurerm/models/sql/sql_database.rb +3 -3
- data/lib/fog/azurerm/models/sql/sql_server.rb +3 -2
- data/lib/fog/azurerm/models/storage/storage_account.rb +4 -1
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +3 -1
- data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +1 -0
- data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +49 -13
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +4 -2
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +38 -36
- data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +1 -2
- data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +1 -2
- data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +1 -0
- data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +1 -1
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +4 -4
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +1 -1
- data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +1 -2
- data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
- data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +4 -3
- data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +5 -3
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +4 -3
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +1 -1
- data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +1 -1
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +2 -1
- data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +4 -4
- data/lib/fog/azurerm/requests/resources/tag_resource.rb +4 -4
- data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +13 -10
- data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +8 -5
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +4 -2
- data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +13 -3
- data/lib/fog/azurerm/storage.rb +0 -19
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/api_stub.rb +0 -2
- data/test/api_stub/models/compute/server.rb +62 -0
- data/test/api_stub/requests/compute/virtual_machine.rb +75 -0
- data/test/api_stub/requests/resources/resource_group.rb +1 -1
- data/test/integration/application_gateway.rb +8 -1
- data/test/integration/availability_set.rb +9 -2
- data/test/integration/external_load_balancer.rb +2 -1
- data/test/integration/internal_load_balancer.rb +2 -1
- data/test/integration/key_vault.rb +2 -1
- data/test/integration/managed_disk.rb +10 -5
- data/test/integration/network_interface.rb +2 -1
- data/test/integration/network_security_group.rb +2 -1
- data/test/integration/public_ip.rb +2 -1
- data/test/integration/resource_group.rb +5 -2
- data/test/integration/resource_tag.rb +4 -2
- data/test/integration/server.rb +81 -3
- data/test/integration/sql_server.rb +10 -2
- data/test/integration/storage_account.rb +32 -20
- data/test/integration/traffic_manager.rb +6 -1
- data/test/integration/virtual_network.rb +2 -1
- data/test/integration/virtual_network_gateway_connection.rb +3 -3
- data/test/models/application_gateway/test_gateway.rb +2 -1
- data/test/models/compute/test_availability_set.rb +2 -1
- data/test/models/{storage → compute}/test_data_disk.rb +2 -2
- data/test/models/compute/test_managed_disk.rb +2 -1
- data/test/models/compute/test_server.rb +31 -2
- data/test/models/dns/test_zone.rb +2 -1
- data/test/models/key_vault/test_vault.rb +2 -1
- data/test/models/network/test_load_balancer.rb +2 -1
- data/test/models/network/test_network_interface.rb +2 -1
- data/test/models/network/test_network_security_group.rb +2 -1
- data/test/models/network/test_public_ip.rb +2 -1
- data/test/models/network/test_virtual_network.rb +2 -1
- data/test/models/resources/test_resource_group.rb +2 -1
- data/test/models/sql/test_database.rb +2 -1
- data/test/models/sql/test_sql_server.rb +2 -1
- data/test/models/storage/test_storage_account.rb +2 -1
- data/test/models/traffic_manager/test_traffic_manager_profile.rb +2 -1
- data/test/requests/compute/test_attach_data_disk_to_vm.rb +21 -6
- data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
- data/test/requests/network/test_create_load_balancer.rb +3 -2
- data/test/requests/network/test_create_network_interface.rb +4 -3
- data/test/requests/network/test_create_or_update_network_security_group.rb +3 -2
- data/test/requests/network/test_create_or_update_virtual_network.rb +5 -3
- data/test/requests/network/test_create_public_ip.rb +3 -2
- data/test/requests/network/test_update_public_ip.rb +3 -2
- data/test/requests/resources/test_create_resource_group.rb +3 -2
- data/test/requests/resources/test_delete_resource_tag.rb +3 -3
- data/test/requests/resources/test_tag_resource.rb +3 -3
- data/test/test_helper.rb +0 -14
- metadata +5 -36
- data/lib/fog/azurerm/models/storage/data_disk.rb +0 -27
- data/lib/fog/azurerm/models/storage/recovery_vault.rb +0 -50
- data/lib/fog/azurerm/models/storage/recovery_vaults.rb +0 -27
- data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +0 -54
- data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +0 -35
- data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +0 -60
- data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +0 -61
- data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +0 -56
- data/lib/fog/azurerm/requests/storage/get_backup_container.rb +0 -53
- data/lib/fog/azurerm/requests/storage/get_backup_item.rb +0 -58
- data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +0 -53
- data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +0 -64
- data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +0 -49
- data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +0 -48
- data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +0 -36
- data/lib/fog/azurerm/requests/storage/start_backup.rb +0 -54
- data/test/api_stub/models/storage/recovery_vault.rb +0 -23
- data/test/api_stub/requests/storage/recovery_vault.rb +0 -189
- data/test/models/storage/test_recovery_vault.rb +0 -61
- data/test/models/storage/test_recovery_vaults.rb +0 -47
- data/test/requests/storage/test_create_recovery_vault.rb +0 -35
- data/test/requests/storage/test_delete_recovery_vault.rb +0 -34
- data/test/requests/storage/test_disable_backup_protection.rb +0 -52
- data/test/requests/storage/test_enable_backup_protection.rb +0 -66
- data/test/requests/storage/test_get_all_backup_jobs.rb +0 -35
- data/test/requests/storage/test_get_backup_container.rb +0 -35
- data/test/requests/storage/test_get_backup_item.rb +0 -35
- data/test/requests/storage/test_get_backup_job_for_vm.rb +0 -26
- data/test/requests/storage/test_get_backup_protection_policy.rb +0 -35
- data/test/requests/storage/test_get_recovery_vault.rb +0 -35
- data/test/requests/storage/test_list_recovery_vault.rb +0 -35
- data/test/requests/storage/test_set_recovery_vault_context.rb +0 -34
- data/test/requests/storage/test_start_backup.rb +0 -55
@@ -23,13 +23,12 @@ module Fog
|
|
23
23
|
attribute :requested_service_objective_name, aliases: %w(requestedServiceObjectiveName)
|
24
24
|
attribute :service_level_objective, aliases: %w(serviceLevelObjective)
|
25
25
|
attribute :source_database_id, aliases: %w(sourceDatabaseId)
|
26
|
+
attribute :tags
|
26
27
|
|
27
28
|
def self.parse(database)
|
28
29
|
database_hash = get_hash_from_object(database)
|
29
|
-
|
30
30
|
database_hash['resource_group'] = get_resource_group_from_id(database.id)
|
31
31
|
database_hash['server_name'] = get_resource_from_resource_id(database.id, 8)
|
32
|
-
|
33
32
|
database_hash
|
34
33
|
end
|
35
34
|
|
@@ -58,7 +57,8 @@ module Fog
|
|
58
57
|
max_size_bytes: max_size_bytes,
|
59
58
|
requested_service_objective_name: requested_service_objective_name,
|
60
59
|
elastic_pool_name: elastic_pool_name,
|
61
|
-
requested_service_objective_id: requested_service_objective_id
|
60
|
+
requested_service_objective_id: requested_service_objective_id,
|
61
|
+
tags: tags
|
62
62
|
}
|
63
63
|
end
|
64
64
|
end
|
@@ -13,11 +13,11 @@ module Fog
|
|
13
13
|
attribute :administrator_login
|
14
14
|
attribute :administrator_login_password
|
15
15
|
attribute :fully_qualified_domain_name, aliases: %w(fullyQualifiedDomainName)
|
16
|
+
attribute :tags
|
16
17
|
|
17
18
|
def self.parse(server)
|
18
19
|
sql_server_hash = get_hash_from_object(server)
|
19
20
|
sql_server_hash['resource_group'] = get_resource_group_from_id(server.id)
|
20
|
-
|
21
21
|
sql_server_hash
|
22
22
|
end
|
23
23
|
|
@@ -40,7 +40,8 @@ module Fog
|
|
40
40
|
version: version,
|
41
41
|
location: location,
|
42
42
|
administrator_login: administrator_login,
|
43
|
-
administrator_login_password: administrator_login_password
|
43
|
+
administrator_login_password: administrator_login_password,
|
44
|
+
tags: tags
|
44
45
|
}
|
45
46
|
end
|
46
47
|
end
|
@@ -11,6 +11,7 @@ module Fog
|
|
11
11
|
attribute :sku_name
|
12
12
|
attribute :replication
|
13
13
|
attribute :encryption
|
14
|
+
attribute :tags
|
14
15
|
|
15
16
|
def self.parse(storage_account)
|
16
17
|
hash = {}
|
@@ -21,6 +22,7 @@ module Fog
|
|
21
22
|
hash['sku_name'] = storage_account.sku.name.split('_').first
|
22
23
|
hash['replication'] = storage_account.sku.name.split('_').last
|
23
24
|
hash['encryption'] = storage_account.encryption.services.blob.enabled unless storage_account.encryption.nil?
|
25
|
+
hash['tags'] = storage_account.tags
|
24
26
|
hash
|
25
27
|
end
|
26
28
|
|
@@ -43,7 +45,8 @@ module Fog
|
|
43
45
|
sku_name: sku_name,
|
44
46
|
location: location,
|
45
47
|
replication: replication,
|
46
|
-
encryption: encryption
|
48
|
+
encryption: encryption,
|
49
|
+
tags: tags
|
47
50
|
}
|
48
51
|
end
|
49
52
|
|
@@ -17,6 +17,7 @@ module Fog
|
|
17
17
|
attribute :port
|
18
18
|
attribute :path
|
19
19
|
attribute :endpoints
|
20
|
+
attribute :tags
|
20
21
|
|
21
22
|
def self.parse(profile)
|
22
23
|
traffic_manager_profile = get_hash_from_object(profile)
|
@@ -79,7 +80,8 @@ module Fog
|
|
79
80
|
protocol: protocol,
|
80
81
|
port: port,
|
81
82
|
path: path,
|
82
|
-
endpoints: endpoints
|
83
|
+
endpoints: endpoints,
|
84
|
+
tags: tags
|
83
85
|
}
|
84
86
|
end
|
85
87
|
end
|
@@ -33,6 +33,7 @@ module Fog
|
|
33
33
|
application_gateway.http_listeners = define_http_listeners(gateway_params[:http_listeners]) if gateway_params[:http_listeners]
|
34
34
|
application_gateway.url_path_maps = define_url_path_maps(gateway_params[:url_path_maps]) if gateway_params[:url_path_maps]
|
35
35
|
application_gateway.request_routing_rules = define_request_routing_rules(gateway_params[:request_routing_rules]) if gateway_params[:request_routing_rules]
|
36
|
+
application_gateway.tags = gateway_params[:tags]
|
36
37
|
|
37
38
|
gateway_sku = Azure::ARM::Network::Models::ApplicationGatewaySku.new
|
38
39
|
gateway_sku.name = gateway_params[:sku_name]
|
@@ -3,20 +3,35 @@ module Fog
|
|
3
3
|
class AzureRM
|
4
4
|
# This class provides the actual implementation for service calls.
|
5
5
|
class Real
|
6
|
-
def attach_data_disk_to_vm(
|
7
|
-
|
6
|
+
def attach_data_disk_to_vm(disk_params, async)
|
7
|
+
# Variable un-packing for easy access
|
8
|
+
vm_name = disk_params[:vm_name]
|
9
|
+
vm_resource_group = disk_params[:vm_resource_group]
|
10
|
+
disk_name = disk_params[:disk_name]
|
11
|
+
disk_resource_group = disk_params[:disk_resource_group]
|
12
|
+
disk_size = disk_params[:disk_size_gb]
|
13
|
+
storage_account_name = disk_params[:storage_account_name]
|
14
|
+
|
15
|
+
msg = "Attaching Data Disk #{disk_name} to Virtual Machine #{vm_name} in Resource Group #{vm_resource_group}"
|
8
16
|
Fog::Logger.debug msg
|
9
|
-
vm = get_virtual_machine_instance(
|
17
|
+
vm = get_virtual_machine_instance(vm_resource_group, vm_name)
|
10
18
|
lun = get_logical_unit_number(vm.storage_profile.data_disks)
|
11
|
-
|
12
|
-
|
19
|
+
|
20
|
+
# Attach data disk to VM
|
21
|
+
if storage_account_name
|
22
|
+
# Un-managed data disk
|
23
|
+
access_key = get_storage_access_key(vm_resource_group, storage_account_name)
|
24
|
+
data_disk = get_unmanaged_disk_object(disk_name, disk_size, lun, storage_account_name, access_key)
|
25
|
+
elsif disk_resource_group
|
26
|
+
# Managed data disk
|
27
|
+
data_disk = get_data_disk_object(disk_resource_group, disk_name, lun)
|
28
|
+
end
|
13
29
|
vm.storage_profile.data_disks.push(data_disk)
|
14
|
-
vm.resources = nil
|
15
30
|
begin
|
16
31
|
if async
|
17
|
-
response = @compute_mgmt_client.virtual_machines.create_or_update_async(
|
32
|
+
response = @compute_mgmt_client.virtual_machines.create_or_update_async(vm_resource_group, vm_name, vm)
|
18
33
|
else
|
19
|
-
virtual_machine = @compute_mgmt_client.virtual_machines.create_or_update(
|
34
|
+
virtual_machine = @compute_mgmt_client.virtual_machines.create_or_update(vm_resource_group, vm_name, vm)
|
20
35
|
end
|
21
36
|
rescue MsRestAzure::AzureOperationError => e
|
22
37
|
if e.body.to_s =~ /InvalidParameter/ && e.body.to_s =~ /already exists/
|
@@ -35,11 +50,11 @@ module Fog
|
|
35
50
|
|
36
51
|
private
|
37
52
|
|
38
|
-
def get_virtual_machine_instance(resource_group, vm_name
|
53
|
+
def get_virtual_machine_instance(resource_group, vm_name)
|
39
54
|
msg = "Getting Virtual Machine #{vm_name} from Resource Group #{resource_group}"
|
40
55
|
Fog::Logger.debug msg
|
41
56
|
begin
|
42
|
-
virtual_machine =
|
57
|
+
virtual_machine = @compute_mgmt_client.virtual_machines.get(resource_group, vm_name)
|
43
58
|
rescue MsRestAzure::AzureOperationError => e
|
44
59
|
raise_azure_exception(e, msg)
|
45
60
|
end
|
@@ -60,11 +75,32 @@ module Fog
|
|
60
75
|
lun_range_list[0]
|
61
76
|
end
|
62
77
|
|
63
|
-
def
|
78
|
+
def get_data_disk_object(disk_resource_group, disk_name, lun)
|
79
|
+
msg = "Getting Managed Disk #{disk_name} from Resource Group #{disk_resource_group}"
|
80
|
+
begin
|
81
|
+
disk = @compute_mgmt_client.disks.get(disk_resource_group, disk_name)
|
82
|
+
rescue MsRestAzure::AzureOperationError => e
|
83
|
+
Fog::Logger.debug msg
|
84
|
+
raise_azure_exception(e, msg)
|
85
|
+
end
|
86
|
+
managed_disk = Azure::ARM::Compute::Models::DataDisk.new
|
87
|
+
managed_disk.name = disk_name
|
88
|
+
managed_disk.lun = lun
|
89
|
+
managed_disk.create_option = Azure::ARM::Compute::Models::DiskCreateOptionTypes::Attach
|
90
|
+
|
91
|
+
# Managed disk parameter
|
92
|
+
managed_disk_params = Azure::ARM::Compute::Models::ManagedDiskParameters.new
|
93
|
+
managed_disk_params.id = disk.id
|
94
|
+
managed_disk.managed_disk = managed_disk_params
|
95
|
+
|
96
|
+
managed_disk
|
97
|
+
end
|
98
|
+
|
99
|
+
def get_storage_access_key(resource_group, storage_account_name)
|
64
100
|
msg = "Getting Storage Access Keys from Resource Group #{resource_group}"
|
65
101
|
Fog::Logger.debug msg
|
66
102
|
begin
|
67
|
-
storage_account_keys =
|
103
|
+
storage_account_keys = @storage_mgmt_client.storage_accounts.list_keys(resource_group, storage_account_name)
|
68
104
|
rescue MsRestAzure::AzureOperationError => e
|
69
105
|
raise_azure_exception(e, msg)
|
70
106
|
end
|
@@ -72,7 +108,7 @@ module Fog
|
|
72
108
|
storage_account_keys.keys[0].value
|
73
109
|
end
|
74
110
|
|
75
|
-
def
|
111
|
+
def get_unmanaged_disk_object(disk_name, disk_size, lun, storage_account_name, access_key)
|
76
112
|
data_disk = Azure::ARM::Compute::Models::DataDisk.new
|
77
113
|
data_disk.name = disk_name
|
78
114
|
data_disk.lun = lun
|
@@ -10,10 +10,11 @@ module Fog
|
|
10
10
|
fault_domain_count = availability_set_params[:platform_fault_domain_count]
|
11
11
|
update_domain_count = availability_set_params[:platform_update_domain_count]
|
12
12
|
use_managed_disk = availability_set_params[:use_managed_disk].nil? ? false : availability_set_params[:use_managed_disk]
|
13
|
+
tags = availability_set_params[:tags]
|
13
14
|
|
14
15
|
msg = "Creating Availability Set '#{name}' in #{location} region."
|
15
16
|
Fog::Logger.debug msg
|
16
|
-
avail_set_params = get_availability_set_properties(location, fault_domain_count, update_domain_count, use_managed_disk)
|
17
|
+
avail_set_params = get_availability_set_properties(location, fault_domain_count, update_domain_count, use_managed_disk, tags)
|
17
18
|
|
18
19
|
begin
|
19
20
|
availability_set = @compute_mgmt_client.availability_sets.create_or_update(resource_group, name, avail_set_params)
|
@@ -25,12 +26,13 @@ module Fog
|
|
25
26
|
end
|
26
27
|
|
27
28
|
# create the properties object for creating availability sets
|
28
|
-
def get_availability_set_properties(location, fault_domain_count, update_domain_count, use_managed_disk)
|
29
|
+
def get_availability_set_properties(location, fault_domain_count, update_domain_count, use_managed_disk, tags)
|
29
30
|
avail_set = Azure::ARM::Compute::Models::AvailabilitySet.new
|
30
31
|
avail_set.location = location
|
31
32
|
avail_set.sku = create_availability_set_sku(use_managed_disk)
|
32
33
|
avail_set.platform_fault_domain_count = fault_domain_count.nil? ? FAULT_DOMAIN_COUNT : fault_domain_count
|
33
34
|
avail_set.platform_update_domain_count = update_domain_count.nil? ? UPDATE_DOMAIN_COUNT : update_domain_count
|
35
|
+
avail_set.tags = tags
|
34
36
|
avail_set
|
35
37
|
end
|
36
38
|
|
@@ -6,61 +6,63 @@ module Fog
|
|
6
6
|
class AzureRM
|
7
7
|
# This class provides the actual implementation for service calls.
|
8
8
|
class Real
|
9
|
-
def create_virtual_machine(
|
10
|
-
msg = "Creating Virtual Machine #{
|
9
|
+
def create_virtual_machine(vm_config, async = false)
|
10
|
+
msg = "Creating Virtual Machine #{vm_config[:name]} in Resource Group #{vm_config[:resource_group]}."
|
11
11
|
Fog::Logger.debug msg
|
12
12
|
virtual_machine = Azure::ARM::Compute::Models::VirtualMachine.new
|
13
13
|
|
14
|
-
unless
|
14
|
+
unless vm_config[:availability_set_id].nil?
|
15
15
|
sub_resource = MsRestAzure::SubResource.new
|
16
|
-
sub_resource.id =
|
16
|
+
sub_resource.id = vm_config[:availability_set_id]
|
17
17
|
virtual_machine.availability_set = sub_resource
|
18
18
|
end
|
19
19
|
|
20
|
-
string_data =
|
20
|
+
string_data = vm_config[:custom_data]
|
21
21
|
string_data = WHITE_SPACE if string_data.nil?
|
22
22
|
encoded_data = Base64.strict_encode64(string_data)
|
23
|
-
virtual_machine.hardware_profile = define_hardware_profile(
|
24
|
-
virtual_machine.storage_profile = define_storage_profile(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
23
|
+
virtual_machine.hardware_profile = define_hardware_profile(vm_config[:vm_size])
|
24
|
+
virtual_machine.storage_profile = define_storage_profile(vm_config[:name],
|
25
|
+
vm_config[:storage_account_name],
|
26
|
+
vm_config[:publisher],
|
27
|
+
vm_config[:offer],
|
28
|
+
vm_config[:sku],
|
29
|
+
vm_config[:version],
|
30
|
+
vm_config[:vhd_path],
|
31
|
+
vm_config[:os_disk_caching],
|
32
|
+
vm_config[:platform],
|
33
|
+
vm_config[:resource_group],
|
34
|
+
vm_config[:managed_disk_storage_type],
|
35
|
+
vm_config[:os_disk_size])
|
35
36
|
|
36
|
-
virtual_machine.os_profile = if
|
37
|
-
define_windows_os_profile(
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
virtual_machine.os_profile = if vm_config[:platform].casecmp(WINDOWS).zero?
|
38
|
+
define_windows_os_profile(vm_config[:name],
|
39
|
+
vm_config[:username],
|
40
|
+
vm_config[:password],
|
41
|
+
vm_config[:provision_vm_agent],
|
42
|
+
vm_config[:enable_automatic_updates],
|
42
43
|
encoded_data)
|
43
44
|
else
|
44
|
-
define_linux_os_profile(
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
define_linux_os_profile(vm_config[:name],
|
46
|
+
vm_config[:username],
|
47
|
+
vm_config[:password],
|
48
|
+
vm_config[:disable_password_authentication],
|
49
|
+
vm_config[:ssh_key_path],
|
50
|
+
vm_config[:ssh_key_data],
|
50
51
|
encoded_data)
|
51
52
|
end
|
52
|
-
virtual_machine.network_profile = define_network_profile(
|
53
|
-
virtual_machine.location =
|
53
|
+
virtual_machine.network_profile = define_network_profile(vm_config[:network_interface_card_ids])
|
54
|
+
virtual_machine.location = vm_config[:location]
|
55
|
+
virtual_machine.tags = vm_config[:tags]
|
54
56
|
begin
|
55
57
|
response = if async
|
56
|
-
@compute_mgmt_client.virtual_machines.create_or_update_async(
|
58
|
+
@compute_mgmt_client.virtual_machines.create_or_update_async(vm_config[:resource_group], vm_config[:name], virtual_machine)
|
57
59
|
else
|
58
|
-
@compute_mgmt_client.virtual_machines.create_or_update(
|
60
|
+
@compute_mgmt_client.virtual_machines.create_or_update(vm_config[:resource_group], vm_config[:name], virtual_machine)
|
59
61
|
end
|
60
62
|
rescue MsRestAzure::AzureOperationError => e
|
61
63
|
raise_azure_exception(e, msg)
|
62
64
|
end
|
63
|
-
Fog::Logger.debug "Virtual Machine #{
|
65
|
+
Fog::Logger.debug "Virtual Machine #{vm_config[:name]} Created Successfully." unless async
|
64
66
|
response
|
65
67
|
end
|
66
68
|
|
@@ -81,7 +83,7 @@ module Fog
|
|
81
83
|
image_reference
|
82
84
|
end
|
83
85
|
|
84
|
-
def define_storage_profile(vm_name, storage_account_name, publisher, offer, sku, version, vhd_path, os_disk_caching, platform, resource_group, managed_disk_storage_type)
|
86
|
+
def define_storage_profile(vm_name, storage_account_name, publisher, offer, sku, version, vhd_path, os_disk_caching, platform, resource_group, managed_disk_storage_type, os_disk_size)
|
85
87
|
storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
|
86
88
|
storage_profile.image_reference = image_reference(publisher, offer, sku, version)
|
87
89
|
os_disk = Azure::ARM::Compute::Models::OSDisk.new
|
@@ -129,7 +131,7 @@ module Fog
|
|
129
131
|
|
130
132
|
os_disk.name = "#{vm_name}_os_disk"
|
131
133
|
os_disk.os_type = platform
|
132
|
-
|
134
|
+
os_disk.disk_size_gb = os_disk_size unless os_disk_size.nil?
|
133
135
|
os_disk.create_option = Azure::ARM::Compute::Models::DiskCreateOptionTypes::FromImage
|
134
136
|
os_disk.caching = unless os_disk_caching.nil?
|
135
137
|
case os_disk_caching
|
@@ -6,13 +6,12 @@ module Fog
|
|
6
6
|
def detach_data_disk_from_vm(resource_group, vm_name, disk_name, async)
|
7
7
|
msg = "Detaching Data Disk #{disk_name} from Virtual Machine #{vm_name} in Resource Group #{resource_group}."
|
8
8
|
Fog::Logger.debug msg
|
9
|
-
vm = get_virtual_machine_instance(resource_group, vm_name
|
9
|
+
vm = get_virtual_machine_instance(resource_group, vm_name)
|
10
10
|
vm.storage_profile.data_disks.each_with_index do |disk, index|
|
11
11
|
if disk.name == disk_name
|
12
12
|
vm.storage_profile.data_disks.delete_at(index)
|
13
13
|
end
|
14
14
|
end
|
15
|
-
vm.resources = nil
|
16
15
|
begin
|
17
16
|
if async
|
18
17
|
response = @compute_mgmt_client.virtual_machines.create_or_update_async(resource_group, vm_name, vm)
|
@@ -25,9 +25,8 @@ module Fog
|
|
25
25
|
zone.type = zone_params[:type]
|
26
26
|
zone.number_of_record_sets = zone_params[:number_of_record_sets]
|
27
27
|
zone.max_number_of_record_sets = zone_params[:max_number_of_record_sets]
|
28
|
-
zone.tags = zone_params[:tags]
|
28
|
+
zone.tags = zone_params[:tags]
|
29
29
|
zone.etag = zone_params[:etag]
|
30
|
-
|
31
30
|
zone
|
32
31
|
end
|
33
32
|
end
|
@@ -21,6 +21,7 @@ module Fog
|
|
21
21
|
def get_vault_param_object(vault_hash)
|
22
22
|
vault_param = Azure::ARM::KeyVault::Models::VaultCreateOrUpdateParameters.new
|
23
23
|
vault_param.location = vault_hash[:location]
|
24
|
+
vault_param.tags = vault_hash[:tags]
|
24
25
|
vault_param.properties = get_vault_properties_object(vault_hash)
|
25
26
|
vault_param
|
26
27
|
end
|
@@ -11,7 +11,7 @@ module Fog
|
|
11
11
|
Fog::Logger.debug "Express Route Circuit Authorization #{authorization_name} exists."
|
12
12
|
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
|
-
if e.body['error']['code'] == '
|
14
|
+
if e.body['error']['code'] == 'NotFound'
|
15
15
|
Fog::Logger.debug "Express Route Circuit Authorization #{authorization_name} doesn't exist."
|
16
16
|
false
|
17
17
|
else
|
@@ -3,10 +3,10 @@ module Fog
|
|
3
3
|
class AzureRM
|
4
4
|
# Real class for Load-Balancer Request
|
5
5
|
class Real
|
6
|
-
def create_load_balancer(name, location, resource_group, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
|
6
|
+
def create_load_balancer(name, location, resource_group, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools, tags)
|
7
7
|
msg = "Creating Load-Balancer: #{name}"
|
8
8
|
Fog::Logger.debug msg
|
9
|
-
load_balancer = define_load_balancer(name, location, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
|
9
|
+
load_balancer = define_load_balancer(name, location, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools, tags)
|
10
10
|
begin
|
11
11
|
load_balancer = @network_client.load_balancers.create_or_update(resource_group, name, load_balancer)
|
12
12
|
rescue MsRestAzure::AzureOperationError => e
|
@@ -18,11 +18,11 @@ module Fog
|
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
|
-
def define_load_balancer(name, location, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
|
21
|
+
def define_load_balancer(name, location, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools, tags)
|
22
22
|
load_balancer = Azure::ARM::Network::Models::LoadBalancer.new
|
23
23
|
load_balancer.name = name
|
24
24
|
load_balancer.location = location
|
25
|
-
|
25
|
+
load_balancer.tags = tags
|
26
26
|
if frontend_ip_configurations
|
27
27
|
frontend_ip_configuration_arr = define_lb_frontend_ip_configurations(frontend_ip_configurations)
|
28
28
|
load_balancer.frontend_ipconfigurations = frontend_ip_configuration_arr
|
@@ -47,7 +47,7 @@ module Fog
|
|
47
47
|
express_route_circuit.name = circuit_name
|
48
48
|
express_route_circuit.location = location
|
49
49
|
express_route_circuit.sku = sku
|
50
|
-
express_route_circuit.tags = tags
|
50
|
+
express_route_circuit.tags = tags
|
51
51
|
express_route_circuit
|
52
52
|
end
|
53
53
|
|
@@ -25,13 +25,12 @@ module Fog
|
|
25
25
|
local_network_gateway.local_network_address_space = get_local_network_address_space_object(local_network_gateway_params[:local_network_address_space_prefixes]) if local_network_gateway_params[:local_network_address_space_prefixes]
|
26
26
|
local_network_gateway.gateway_ip_address = local_network_gateway_params[:gateway_ip_address] if local_network_gateway_params[:gateway_ip_address]
|
27
27
|
local_network_gateway.bgp_settings = get_bgp_settings_object(local_network_gateway_params)
|
28
|
-
|
29
28
|
local_network_gateway.name = local_network_gateway_params[:name]
|
30
29
|
local_network_gateway.type = local_network_gateway_params[:type]
|
31
30
|
local_network_gateway.location = local_network_gateway_params[:location]
|
32
31
|
local_network_gateway.tags = local_network_gateway_params[:tags] if local_network_gateway.tags.nil?
|
33
32
|
local_network_gateway.provisioning_state = local_network_gateway_params[:provisioning_state]
|
34
|
-
|
33
|
+
local_network_gateway.tags = local_network_gateway_params[:tags]
|
35
34
|
local_network_gateway
|
36
35
|
end
|
37
36
|
|