fog-azure-rm 0.3.3 → 0.3.4

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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/.arclint +8 -0
  3. data/CHANGELOG.md +10 -0
  4. data/CONTRIBUTORS.md +4 -0
  5. data/lib/fog/azurerm/compute.rb +1 -0
  6. data/lib/fog/azurerm/docs/application_gateway.md +6 -7
  7. data/lib/fog/azurerm/docs/compute.md +45 -11
  8. data/lib/fog/azurerm/docs/dns.md +4 -1
  9. data/lib/fog/azurerm/docs/key_vault.md +3 -0
  10. data/lib/fog/azurerm/docs/network.md +18 -13
  11. data/lib/fog/azurerm/docs/resources.md +11 -8
  12. data/lib/fog/azurerm/docs/sql.md +18 -16
  13. data/lib/fog/azurerm/docs/storage.md +13 -78
  14. data/lib/fog/azurerm/docs/traffic_manager.md +7 -6
  15. data/lib/fog/azurerm/models/application_gateway/gateway.rb +5 -1
  16. data/lib/fog/azurerm/models/compute/availability_set.rb +4 -1
  17. data/lib/fog/azurerm/models/compute/creation_data.rb +4 -2
  18. data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
  19. data/lib/fog/azurerm/models/compute/managed_disk.rb +4 -4
  20. data/lib/fog/azurerm/models/compute/server.rb +31 -5
  21. data/lib/fog/azurerm/models/key_vault/vault.rb +3 -1
  22. data/lib/fog/azurerm/models/network/load_balancer.rb +3 -1
  23. data/lib/fog/azurerm/models/network/local_network_gateway.rb +3 -1
  24. data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
  25. data/lib/fog/azurerm/models/network/network_security_group.rb +4 -2
  26. data/lib/fog/azurerm/models/network/public_ip.rb +4 -2
  27. data/lib/fog/azurerm/models/network/virtual_network.rb +4 -2
  28. data/lib/fog/azurerm/models/resources/resource_group.rb +3 -1
  29. data/lib/fog/azurerm/models/sql/sql_database.rb +3 -3
  30. data/lib/fog/azurerm/models/sql/sql_server.rb +3 -2
  31. data/lib/fog/azurerm/models/storage/storage_account.rb +4 -1
  32. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +3 -1
  33. data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +1 -0
  34. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +49 -13
  35. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +4 -2
  36. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +38 -36
  37. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +1 -2
  38. data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +1 -2
  39. data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +1 -0
  40. data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +1 -1
  41. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +4 -4
  42. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +1 -1
  43. data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +1 -2
  44. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
  45. data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +4 -3
  46. data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +5 -3
  47. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +4 -3
  48. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +1 -1
  49. data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +1 -1
  50. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +2 -1
  51. data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +4 -4
  52. data/lib/fog/azurerm/requests/resources/tag_resource.rb +4 -4
  53. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +13 -10
  54. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +8 -5
  55. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +4 -2
  56. data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +13 -3
  57. data/lib/fog/azurerm/storage.rb +0 -19
  58. data/lib/fog/azurerm/version.rb +1 -1
  59. data/test/api_stub.rb +0 -2
  60. data/test/api_stub/models/compute/server.rb +62 -0
  61. data/test/api_stub/requests/compute/virtual_machine.rb +75 -0
  62. data/test/api_stub/requests/resources/resource_group.rb +1 -1
  63. data/test/integration/application_gateway.rb +8 -1
  64. data/test/integration/availability_set.rb +9 -2
  65. data/test/integration/external_load_balancer.rb +2 -1
  66. data/test/integration/internal_load_balancer.rb +2 -1
  67. data/test/integration/key_vault.rb +2 -1
  68. data/test/integration/managed_disk.rb +10 -5
  69. data/test/integration/network_interface.rb +2 -1
  70. data/test/integration/network_security_group.rb +2 -1
  71. data/test/integration/public_ip.rb +2 -1
  72. data/test/integration/resource_group.rb +5 -2
  73. data/test/integration/resource_tag.rb +4 -2
  74. data/test/integration/server.rb +81 -3
  75. data/test/integration/sql_server.rb +10 -2
  76. data/test/integration/storage_account.rb +32 -20
  77. data/test/integration/traffic_manager.rb +6 -1
  78. data/test/integration/virtual_network.rb +2 -1
  79. data/test/integration/virtual_network_gateway_connection.rb +3 -3
  80. data/test/models/application_gateway/test_gateway.rb +2 -1
  81. data/test/models/compute/test_availability_set.rb +2 -1
  82. data/test/models/{storage → compute}/test_data_disk.rb +2 -2
  83. data/test/models/compute/test_managed_disk.rb +2 -1
  84. data/test/models/compute/test_server.rb +31 -2
  85. data/test/models/dns/test_zone.rb +2 -1
  86. data/test/models/key_vault/test_vault.rb +2 -1
  87. data/test/models/network/test_load_balancer.rb +2 -1
  88. data/test/models/network/test_network_interface.rb +2 -1
  89. data/test/models/network/test_network_security_group.rb +2 -1
  90. data/test/models/network/test_public_ip.rb +2 -1
  91. data/test/models/network/test_virtual_network.rb +2 -1
  92. data/test/models/resources/test_resource_group.rb +2 -1
  93. data/test/models/sql/test_database.rb +2 -1
  94. data/test/models/sql/test_sql_server.rb +2 -1
  95. data/test/models/storage/test_storage_account.rb +2 -1
  96. data/test/models/traffic_manager/test_traffic_manager_profile.rb +2 -1
  97. data/test/requests/compute/test_attach_data_disk_to_vm.rb +21 -6
  98. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
  99. data/test/requests/network/test_create_load_balancer.rb +3 -2
  100. data/test/requests/network/test_create_network_interface.rb +4 -3
  101. data/test/requests/network/test_create_or_update_network_security_group.rb +3 -2
  102. data/test/requests/network/test_create_or_update_virtual_network.rb +5 -3
  103. data/test/requests/network/test_create_public_ip.rb +3 -2
  104. data/test/requests/network/test_update_public_ip.rb +3 -2
  105. data/test/requests/resources/test_create_resource_group.rb +3 -2
  106. data/test/requests/resources/test_delete_resource_tag.rb +3 -3
  107. data/test/requests/resources/test_tag_resource.rb +3 -3
  108. data/test/test_helper.rb +0 -14
  109. metadata +5 -36
  110. data/lib/fog/azurerm/models/storage/data_disk.rb +0 -27
  111. data/lib/fog/azurerm/models/storage/recovery_vault.rb +0 -50
  112. data/lib/fog/azurerm/models/storage/recovery_vaults.rb +0 -27
  113. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +0 -54
  114. data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +0 -35
  115. data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +0 -60
  116. data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +0 -61
  117. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +0 -56
  118. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +0 -53
  119. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +0 -58
  120. data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +0 -53
  121. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +0 -64
  122. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +0 -49
  123. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +0 -48
  124. data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +0 -36
  125. data/lib/fog/azurerm/requests/storage/start_backup.rb +0 -54
  126. data/test/api_stub/models/storage/recovery_vault.rb +0 -23
  127. data/test/api_stub/requests/storage/recovery_vault.rb +0 -189
  128. data/test/models/storage/test_recovery_vault.rb +0 -61
  129. data/test/models/storage/test_recovery_vaults.rb +0 -47
  130. data/test/requests/storage/test_create_recovery_vault.rb +0 -35
  131. data/test/requests/storage/test_delete_recovery_vault.rb +0 -34
  132. data/test/requests/storage/test_disable_backup_protection.rb +0 -52
  133. data/test/requests/storage/test_enable_backup_protection.rb +0 -66
  134. data/test/requests/storage/test_get_all_backup_jobs.rb +0 -35
  135. data/test/requests/storage/test_get_backup_container.rb +0 -35
  136. data/test/requests/storage/test_get_backup_item.rb +0 -35
  137. data/test/requests/storage/test_get_backup_job_for_vm.rb +0 -26
  138. data/test/requests/storage/test_get_backup_protection_policy.rb +0 -35
  139. data/test/requests/storage/test_get_recovery_vault.rb +0 -35
  140. data/test/requests/storage/test_list_recovery_vault.rb +0 -35
  141. data/test/requests/storage/test_set_recovery_vault_context.rb +0 -34
  142. data/test/requests/storage/test_start_backup.rb +0 -55
@@ -4,10 +4,10 @@ module Fog
4
4
  class AzureRM
5
5
  # Real class for Network Request
6
6
  class Real
7
- def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids)
7
+ def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
8
8
  msg = "Creating/Updating Network Interface Card: #{name}"
9
9
  Fog::Logger.debug msg
10
- network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids)
10
+ network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
11
11
  begin
12
12
  network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
13
13
  rescue MsRestAzure::AzureOperationError => e
@@ -19,7 +19,7 @@ module Fog
19
19
 
20
20
  private
21
21
 
22
- def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids)
22
+ def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
23
23
  if public_ip_address_id
24
24
  public_ipaddress = Azure::ARM::Network::Models::PublicIPAddress.new
25
25
  public_ipaddress.id = public_ip_address_id
@@ -59,6 +59,7 @@ module Fog
59
59
  network_interface.name = name
60
60
  network_interface.location = location
61
61
  network_interface.ip_configurations = [ip_configs]
62
+ network_interface.tags = tags
62
63
 
63
64
  if network_security_group_id
64
65
  network_security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
@@ -3,11 +3,11 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
6
+ def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules, tags)
7
7
  msg = "Creating/Updating Network Security Group #{security_group_name} in Resource Group #{resource_group_name}."
8
8
  Fog::Logger.debug msg
9
9
 
10
- security_group = get_security_group_object(security_rules, location)
10
+ security_group = get_security_group_object(security_rules, location, tags)
11
11
 
12
12
  begin
13
13
  security_group = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, security_group)
@@ -21,10 +21,11 @@ module Fog
21
21
 
22
22
  private
23
23
 
24
- def get_security_group_object(security_rules, location)
24
+ def get_security_group_object(security_rules, location, tags)
25
25
  security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
26
26
  security_group.security_rules = get_security_rule_objects(security_rules)
27
27
  security_group.location = location
28
+ security_group.tags = tags
28
29
  security_group
29
30
  end
30
31
 
@@ -3,10 +3,10 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label)
6
+ def create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label, tags)
7
7
  msg = "Creating/Updating PublicIP #{name} in Resource Group #{resource_group}."
8
8
  Fog::Logger.debug msg
9
- public_ip = get_public_ip_object(name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label)
9
+ public_ip = get_public_ip_object(name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label, tags)
10
10
  begin
11
11
  public_ip_obj = @network_client.public_ipaddresses.create_or_update(resource_group, name, public_ip)
12
12
  rescue MsRestAzure::AzureOperationError => e
@@ -18,12 +18,14 @@ module Fog
18
18
 
19
19
  private
20
20
 
21
- def get_public_ip_object(name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label)
21
+ def get_public_ip_object(name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label, tags)
22
22
  public_ip = Azure::ARM::Network::Models::PublicIPAddress.new
23
23
  public_ip.name = name
24
24
  public_ip.location = location
25
25
  public_ip.public_ipallocation_method = public_ip_allocation_method unless public_ip_allocation_method.nil?
26
26
  public_ip.idle_timeout_in_minutes = idle_timeout_in_minutes unless idle_timeout_in_minutes.nil?
27
+ public_ip.tags = tags
28
+
27
29
  unless domain_name_label.nil?
28
30
  public_ip.dns_settings = Azure::ARM::Network::Models::PublicIPAddressDnsSettings.new
29
31
  public_ip.dns_settings.domain_name_label = domain_name_label
@@ -3,8 +3,8 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes)
7
- virtual_network = define_vnet_object(location, address_prefixes, dns_servers, subnets)
6
+ def create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes, tags)
7
+ virtual_network = define_vnet_object(location, address_prefixes, dns_servers, subnets, tags)
8
8
  create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
9
9
  end
10
10
 
@@ -22,9 +22,10 @@ module Fog
22
22
  virtual_network
23
23
  end
24
24
 
25
- def define_vnet_object(location, address_prefixes, dns_servers, subnets)
25
+ def define_vnet_object(location, address_prefixes, dns_servers, subnets, tags)
26
26
  virtual_network = Azure::ARM::Network::Models::VirtualNetwork.new
27
27
  virtual_network.location = location
28
+ virtual_network.tags = tags
28
29
 
29
30
  if address_prefixes.nil? || !address_prefixes.any?
30
31
  address_space = Azure::ARM::Network::Models::AddressSpace.new
@@ -26,7 +26,7 @@ module Fog
26
26
 
27
27
  gateway_connection.name = gateway_connection_params[:name]
28
28
  gateway_connection.location = gateway_connection_params[:location]
29
- gateway_connection.tags = gateway_connection_params[:tags] if gateway_connection.tags.nil?
29
+ gateway_connection.tags = gateway_connection_params[:tags]
30
30
 
31
31
  if gateway_connection_params[:virtual_network_gateway1]
32
32
  gateway_connection.virtual_network_gateway1 = get_virtual_network_gateway(gateway_connection_params[:virtual_network_gateway1][:resource_group], gateway_connection_params[:virtual_network_gateway1][:name])
@@ -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 check_azure_resource_exists(resource_id, api_version)
6
+ def check_azure_resource_exists(resource_id, api_version = API_VERSION)
7
7
  split_resource = resource_id.split('/') unless resource_id.nil?
8
8
  raise 'Invalid Resource Id' if split_resource.count != 9
9
9
 
@@ -3,11 +3,12 @@ module Fog
3
3
  class AzureRM
4
4
  # This class provides the actual implementation for service calls.
5
5
  class Real
6
- def create_resource_group(name, location)
6
+ def create_resource_group(name, location, tags)
7
7
  msg = "Creating Resource Group: #{name}."
8
8
  Fog::Logger.debug msg
9
9
  resource_group = Azure::ARM::Resources::Models::ResourceGroup.new
10
10
  resource_group.location = location
11
+ resource_group.tags = tags
11
12
  begin
12
13
  resource_group = @rmc.resource_groups.create_or_update(name, resource_group)
13
14
  rescue MsRestAzure::AzureOperationError => e
@@ -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 delete_resource_tag(resource_id, tag_name, tag_value)
6
+ def delete_resource_tag(resource_id, tag_name, tag_value, api_version = API_VERSION)
7
7
  split_resource = resource_id.split('/') unless resource_id.nil?
8
8
  if split_resource.count != 9
9
9
  raise 'Invalid Resource Id'
@@ -18,12 +18,12 @@ module Fog
18
18
  Fog::Logger.debug msg
19
19
 
20
20
  begin
21
- resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, API_VERSION)
21
+ resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, api_version)
22
22
 
23
23
  if resource.tags.key?(tag_name)
24
24
  resource.tags.delete_if { |key, value| key == tag_name && value == tag_value }
25
25
  end
26
- @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, API_VERSION, resource)
26
+ @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, api_version, resource)
27
27
  rescue MsRestAzure::AzureOperationError => e
28
28
  raise_azure_exception(e, msg)
29
29
  end
@@ -34,7 +34,7 @@ module Fog
34
34
 
35
35
  # This class provides the mock implementation for unit tests.
36
36
  class Mock
37
- def delete_resource_tag(_resource_id, tag_name, _tag_value)
37
+ def delete_resource_tag(_resource_id, tag_name, _tag_value, _api_version)
38
38
  Fog::Logger.debug "Tag #{tag_name} deleted successfully from Resource your-resource-name"
39
39
  true
40
40
  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 tag_resource(resource_id, tag_name, tag_value)
6
+ def tag_resource(resource_id, tag_name, tag_value, api_version = API_VERSION)
7
7
  split_resource = resource_id.split('/') unless resource_id.nil?
8
8
  if split_resource.count != 9
9
9
  raise 'Invalid Resource Id'
@@ -19,10 +19,10 @@ module Fog
19
19
  Fog::Logger.debug msg
20
20
 
21
21
  begin
22
- resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, API_VERSION)
22
+ resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, api_version)
23
23
  resource.tags = {} if resource.tags.nil?
24
24
  resource.tags[tag_name] = tag_value
25
- @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, API_VERSION, resource)
25
+ @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, api_version, resource)
26
26
  rescue MsRestAzure::AzureOperationError => e
27
27
  raise_azure_exception(e, msg)
28
28
  end
@@ -33,7 +33,7 @@ module Fog
33
33
 
34
34
  # This class provides the mock implementation for unit tests.
35
35
  class Mock
36
- def tag_resource(_resource_id, tag_name, _tag_value)
36
+ def tag_resource(_resource_id, tag_name, _tag_value, _api_version)
37
37
  Fog::Logger.debug "Tag #{tag_name} created successfully for Resource 'resource_name'"
38
38
  true
39
39
  end
@@ -6,19 +6,21 @@ module Fog
6
6
  def create_or_update_database(database_hash)
7
7
  msg = "Creating SQL Database: #{database_hash[:name]}."
8
8
  Fog::Logger.debug msg
9
+ formatted_database_params = format_database_parameters(database_hash[:location],
10
+ database_hash[:create_mode],
11
+ database_hash[:edition],
12
+ database_hash[:source_database_id],
13
+ database_hash[:collation],
14
+ database_hash[:max_size_bytes],
15
+ database_hash[:requested_service_objective_name],
16
+ database_hash[:elastic_pool_name],
17
+ database_hash[:requested_service_objective_id],
18
+ database_hash[:tags])
9
19
  begin
10
20
  sql_database = @sql_mgmt_client.databases.create_or_update(database_hash[:resource_group],
11
21
  database_hash[:server_name],
12
22
  database_hash[:name],
13
- format_database_parameters(database_hash[:location],
14
- database_hash[:create_mode],
15
- database_hash[:edition],
16
- database_hash[:source_database_id],
17
- database_hash[:collation],
18
- database_hash[:max_size_bytes],
19
- database_hash[:requested_service_objective_name],
20
- database_hash[:elastic_pool_name],
21
- database_hash[:requested_service_objective_id]))
23
+ formatted_database_params)
22
24
  rescue MsRestAzure::AzureOperationError => e
23
25
  raise_azure_exception(e, msg)
24
26
  end
@@ -28,7 +30,7 @@ module Fog
28
30
 
29
31
  private
30
32
 
31
- def format_database_parameters(location, create_mode, edition, source_database_id, collation, max_size_bytes, requested_service_objective_name, elastic_pool_name, requested_service_objective_id)
33
+ def format_database_parameters(location, create_mode, edition, source_database_id, collation, max_size_bytes, requested_service_objective_name, elastic_pool_name, requested_service_objective_id, tags)
32
34
  database = Azure::ARM::SQL::Models::Database.new
33
35
  database.location = location
34
36
  database.edition = edition unless edition.nil?
@@ -39,6 +41,7 @@ module Fog
39
41
  database.source_database_id = source_database_id unless source_database_id.nil?
40
42
  database.requested_service_objective_id = requested_service_objective_id unless requested_service_objective_id.nil?
41
43
  database.requested_service_objective_name = requested_service_objective_name unless requested_service_objective_name.nil?
44
+ database.tags = tags
42
45
  database
43
46
  end
44
47
  end
@@ -6,13 +6,15 @@ module Fog
6
6
  def create_or_update_sql_server(server_hash)
7
7
  msg = "Creating SQL Server: #{server_hash[:name]}."
8
8
  Fog::Logger.debug msg
9
+ formatted_server_params = format_server_parameters(server_hash[:location],
10
+ server_hash[:version],
11
+ server_hash[:administrator_login],
12
+ server_hash[:administrator_login_password],
13
+ server_hash[:tags])
9
14
  begin
10
15
  sql_server = @sql_mgmt_client.servers.create_or_update(server_hash[:resource_group],
11
16
  server_hash[:name],
12
- format_server_parameters(server_hash[:location],
13
- server_hash[:version],
14
- server_hash[:administrator_login],
15
- server_hash[:administrator_login_password]))
17
+ formatted_server_params)
16
18
  rescue MsRestAzure::AzureOperationError => e
17
19
  raise_azure_exception(e, msg)
18
20
  end
@@ -22,12 +24,13 @@ module Fog
22
24
 
23
25
  private
24
26
 
25
- def format_server_parameters(location, version, admin_login, admin_password)
27
+ def format_server_parameters(location, version, admin_login, admin_password, tags)
26
28
  server = Azure::ARM::SQL::Models::Server.new
27
29
  server.version = version
28
30
  server.location = location
29
31
  server.administrator_login = admin_login
30
32
  server.administrator_login_password = admin_password
33
+ server.tags = tags
31
34
  server
32
35
  end
33
36
  end
@@ -9,7 +9,8 @@ module Fog
9
9
  storage_account_params = get_storage_account_params(storage_account_hash[:sku_name],
10
10
  storage_account_hash[:location],
11
11
  storage_account_hash[:replication],
12
- storage_account_hash[:encryption])
12
+ storage_account_hash[:encryption],
13
+ storage_account_hash[:tags])
13
14
  begin
14
15
  storage_account = @storage_mgmt_client.storage_accounts.create(storage_account_hash[:resource_group],
15
16
  storage_account_hash[:name],
@@ -23,7 +24,7 @@ module Fog
23
24
 
24
25
  private
25
26
 
26
- def get_storage_account_params(sku_name, location, replication, encryption_enabled)
27
+ def get_storage_account_params(sku_name, location, replication, encryption_enabled, tags)
27
28
  params = Azure::ARM::Storage::Models::StorageAccountCreateParameters.new
28
29
  sku = Azure::ARM::Storage::Models::Sku.new
29
30
  sku.name = "#{sku_name}_#{replication}"
@@ -40,6 +41,7 @@ module Fog
40
41
  encryption.services = encryption_services
41
42
  params.encryption = encryption
42
43
  end
44
+ params.tags = tags
43
45
  params
44
46
  end
45
47
  end
@@ -6,9 +6,18 @@ module Fog
6
6
  def create_or_update_traffic_manager_profile(profile_hash)
7
7
  msg = "Creating Traffic Manager Profile: #{profile_hash[:name]}."
8
8
  Fog::Logger.debug msg
9
- profile_parameters = get_profile_object(profile_hash[:traffic_routing_method], profile_hash[:relative_name], profile_hash[:ttl], profile_hash[:protocol], profile_hash[:port], profile_hash[:path], profile_hash[:endpoints])
9
+ profile_parameters = get_profile_object(profile_hash[:traffic_routing_method],
10
+ profile_hash[:relative_name],
11
+ profile_hash[:ttl],
12
+ profile_hash[:protocol],
13
+ profile_hash[:port],
14
+ profile_hash[:path],
15
+ profile_hash[:endpoints],
16
+ profile_hash[:tags])
10
17
  begin
11
- traffic_manager_profile = @traffic_mgmt_client.profiles.create_or_update(profile_hash[:resource_group], profile_hash[:name], profile_parameters)
18
+ traffic_manager_profile = @traffic_mgmt_client.profiles.create_or_update(profile_hash[:resource_group],
19
+ profile_hash[:name],
20
+ profile_parameters)
12
21
  rescue MsRestAzure::AzureOperationError => e
13
22
  raise_azure_exception(e, msg)
14
23
  end
@@ -18,7 +27,7 @@ module Fog
18
27
 
19
28
  private
20
29
 
21
- def get_profile_object(traffic_routing_method, relative_name, ttl, protocol, port, path, endpoints)
30
+ def get_profile_object(traffic_routing_method, relative_name, ttl, protocol, port, path, endpoints, tags)
22
31
  traffic_manager_profile = Azure::ARM::TrafficManager::Models::Profile.new
23
32
  traffic_manager_profile.traffic_routing_method = traffic_routing_method
24
33
  traffic_manager_profile.location = GLOBAL
@@ -26,6 +35,7 @@ module Fog
26
35
  traffic_manager_profile.dns_config = get_traffic_manager_dns_config(relative_name, ttl)
27
36
  traffic_manager_profile.monitor_config = get_traffic_manager_monitor_config(protocol, port, path)
28
37
  traffic_manager_profile.endpoints = get_endpoints(endpoints) unless endpoints.nil?
38
+ traffic_manager_profile.tags = tags
29
39
  traffic_manager_profile
30
40
  end
31
41
 
@@ -64,32 +64,13 @@ module Fog
64
64
  request :save_page_blob
65
65
  request :multipart_save_block_blob
66
66
 
67
- # Azure Recovery Vault requests
68
- request :create_or_update_recovery_vault
69
- request :get_recovery_vault
70
- request :list_recovery_vaults
71
- request :delete_recovery_vault
72
- request :enable_backup_protection
73
- request :set_recovery_vault_context
74
- request :get_backup_protection_policy
75
- request :start_backup
76
- request :get_backup_item
77
- request :get_backup_container
78
- request :disable_backup_protection
79
- request :get_all_backup_jobs
80
- request :get_all_backup_jobs
81
- request :get_backup_job_for_vm
82
-
83
67
  model_path 'fog/azurerm/models/storage'
84
68
  model :storage_account
85
69
  collection :storage_accounts
86
- model :data_disk
87
70
  model :directory
88
71
  collection :directories
89
72
  model :file
90
73
  collection :files
91
- model :recovery_vault
92
- collection :recovery_vaults
93
74
 
94
75
  # This class provides the mock implementation for unit tests.
95
76
  class Mock
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AzureRM
3
- VERSION = '0.3.3'.freeze
3
+ VERSION = '0.3.4'.freeze
4
4
  end
5
5
  end
data/test/api_stub.rb CHANGED
@@ -18,7 +18,6 @@ module ApiStub
18
18
  autoload :StorageAccount, File.expand_path('api_stub/models/storage/storageaccount', __dir__)
19
19
  autoload :File, ::File.expand_path('api_stub/models/storage/file', __dir__)
20
20
  autoload :Directory, ::File.expand_path('api_stub/models/storage/directory', __dir__)
21
- autoload :RecoveryVault, ::File.expand_path('api_stub/models/storage/recovery_vault', __dir__)
22
21
  end
23
22
 
24
23
  module Network
@@ -81,7 +80,6 @@ module ApiStub
81
80
  autoload :StorageAccount, File.expand_path('api_stub/requests/storage/storageaccount', __dir__)
82
81
  autoload :File, ::File.expand_path('api_stub/requests/storage/file', __dir__)
83
82
  autoload :Directory, ::File.expand_path('api_stub/requests/storage/directory', __dir__)
84
- autoload :RecoveryVault, ::File.expand_path('api_stub/requests/storage/recovery_vault', __dir__)
85
83
  end
86
84
 
87
85
  module Network
@@ -124,6 +124,68 @@ module ApiStub
124
124
  compute_client.deserialize(vm_mapper, Fog::JSON.decode(body), 'result.body').value
125
125
  end
126
126
 
127
+ def self.attach_managed_disk_response(compute_client)
128
+ body = {
129
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Compute/virtualMachines/fog-test-server',
130
+ 'name' => 'fog-test-server',
131
+ 'location' => 'West US',
132
+ 'properties' => {
133
+ 'hardwareProfile' => {
134
+ 'vmSize' => 'Basic_A0'
135
+ },
136
+ 'storageProfile' => {
137
+ 'imageReference' => {
138
+ 'publisher' => 'Canonical',
139
+ 'offer' => 'UbuntuServer',
140
+ 'sku' => '14.04.2-LTS',
141
+ 'version' => 'latest'
142
+ },
143
+ 'osDisk' => {
144
+ 'name' => 'fog-test-server_os_disk',
145
+ 'vhd' => {
146
+ 'uri' => 'http://storageAccount.blob.core.windows.net/vhds/fog-test-server_os_disk.vhd'
147
+ }
148
+ },
149
+ 'dataDisks' => [
150
+ {
151
+ 'name' => 'disk1',
152
+ 'diskSizeGB' => '10',
153
+ 'lun' => 0,
154
+ 'vhd' => {
155
+ 'uri' => 'http://mystorage1.blob.core.windows.net/vhds/disk1.vhd'
156
+ }
157
+ },
158
+ {
159
+ 'lun' => 1, # add new managed datadisk
160
+ 'name' => 'datadisk2',
161
+ 'managedDisk' => {
162
+ 'id' => '/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/disks/myDisk2',
163
+ 'storageAccountType' => 'Standard_LRS'
164
+ },
165
+ 'createOption' => 'attach'
166
+ }
167
+ ]
168
+ },
169
+ 'osProfile' => {
170
+ 'computerName' => 'fog-test-server',
171
+ 'adminUsername' => 'shaffan',
172
+ 'linuxConfiguration' => {
173
+ 'disablePasswordAuthentication' => false
174
+ }
175
+ },
176
+ 'networkProfile' => {
177
+ 'networkInterfaces' => [
178
+ {
179
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Network/networkInterfaces/fogtestnetworkinterface'
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ }
185
+ vm_mapper = Azure::ARM::Compute::Models::VirtualMachine.mapper
186
+ compute_client.deserialize(vm_mapper, body, 'result.body')
187
+ end
188
+
127
189
  def self.attach_data_disk_response(compute_client)
128
190
  body = {
129
191
  'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Compute/virtualMachines/fog-test-server',