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
@@ -15,11 +15,11 @@ Next, create a connection to the Traffic Manager Service:
15
15
 
16
16
  ```ruby
17
17
  azure_traffic_manager_service = Fog::TrafficManager::AzureRM.new(
18
- tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
19
- client_id: '<Clientid>', # Client id of Azure Active Directory Application
20
- client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
21
- subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account
22
- :environment => '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
18
+ tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
19
+ client_id: '<Clientid>', # Client id of Azure Active Directory Application
20
+ client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
21
+ subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account
22
+ environment: '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
23
23
  )
24
24
  ```
25
25
 
@@ -42,7 +42,8 @@ Create a new Traffic Manager Profile. The parameter 'traffic_routing_method' can
42
42
  ttl: '30',
43
43
  protocol: 'http',
44
44
  port: '80',
45
- path: '/monitorpage.aspx'
45
+ path: '/monitorpage.aspx',
46
+ tags: { key1: "value1", key2: "value2", keyN: "valueN" } # [Optional]
46
47
  )
47
48
  ```
48
49
 
@@ -22,6 +22,7 @@ module Fog
22
22
  attribute :http_listeners
23
23
  attribute :url_path_maps
24
24
  attribute :request_routing_rules
25
+ attribute :tags
25
26
 
26
27
  def self.parse(gateway)
27
28
  hash = {}
@@ -96,6 +97,8 @@ module Fog
96
97
  request_routing_rule = Fog::ApplicationGateway::AzureRM::RequestRoutingRule.new
97
98
  hash['request_routing_rules'] << request_routing_rule.merge_attributes(Fog::ApplicationGateway::AzureRM::RequestRoutingRule.parse(rule))
98
99
  end unless gateway.request_routing_rules.nil?
100
+
101
+ hash['tags'] = gateway.tags
99
102
  hash
100
103
  end
101
104
 
@@ -133,7 +136,8 @@ module Fog
133
136
  backend_http_settings_list: backend_http_settings_list,
134
137
  http_listeners: http_listeners,
135
138
  url_path_maps: url_path_maps,
136
- request_routing_rules: request_routing_rules
139
+ request_routing_rules: request_routing_rules,
140
+ tags: tags
137
141
  }
138
142
  end
139
143
 
@@ -13,6 +13,7 @@ module Fog
13
13
  attribute :platform_fault_domain_count
14
14
  attribute :use_managed_disk
15
15
  attribute :sku_name
16
+ attribute :tags
16
17
 
17
18
  def self.parse(availability_set)
18
19
  hash = {}
@@ -29,6 +30,7 @@ module Fog
29
30
  hash['use_managed_disk'] = availability_set.sku.name.eql?(AS_SKU_ALIGNED)
30
31
  end
31
32
 
33
+ hash['tags'] = availability_set.tags
32
34
  hash
33
35
  end
34
36
 
@@ -55,7 +57,8 @@ module Fog
55
57
  resource_group: resource_group,
56
58
  platform_fault_domain_count: platform_fault_domain_count,
57
59
  platform_update_domain_count: platform_update_domain_count,
58
- use_managed_disk: use_managed_disk
60
+ use_managed_disk: use_managed_disk,
61
+ tags: tags
59
62
  }
60
63
  end
61
64
  end
@@ -11,8 +11,10 @@ module Fog
11
11
 
12
12
  def self.parse(creation_data)
13
13
  data = get_hash_from_object(creation_data)
14
- image_reference = Fog::Compute::AzureRM::ImageDiskReference.new
15
- data['image_reference'] = image_reference.merge_attributes(Fog::Compute::AzureRM::ImageDiskReference.parse(creation_data.image_reference))
14
+ unless creation_data.image_reference.nil?
15
+ image_reference = Fog::Compute::AzureRM::ImageDiskReference.new
16
+ data['image_reference'] = image_reference.merge_attributes(Fog::Compute::AzureRM::ImageDiskReference.parse(creation_data.image_reference))
17
+ end
16
18
  data
17
19
  end
18
20
  end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Compute
3
+ class AzureRM
4
+ # DataDisk Model for Compute Service
5
+ class DataDisk < Fog::Model
6
+ identity :name
7
+ attribute :disk_size_gb
8
+ attribute :lun
9
+ attribute :caching
10
+ attribute :create_option
11
+ # For these composite objects we ONLY need one field
12
+ attribute :vhd_uri
13
+ attribute :image_uri
14
+ attribute :managed_disk_id
15
+
16
+ def self.parse(disk)
17
+ disk_hash = get_hash_from_object(disk)
18
+ disk_hash['vhd_uri'] = disk.vhd.uri if disk.vhd
19
+ disk_hash['image_uri'] = disk.image.uri if disk.image
20
+ disk_hash['managed_disk_id'] = disk.managed_disk.id if disk.managed_disk
21
+ disk_hash
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -6,17 +6,17 @@ module Fog
6
6
  class ManagedDisk < Fog::Model
7
7
  attribute :id
8
8
  identity :name
9
- attribute :resource_group_name
10
9
  attribute :type
11
10
  attribute :location
11
+ attribute :resource_group_name
12
12
  attribute :account_type
13
- attribute :time_created
14
- attribute :os_type
15
13
  attribute :disk_size_gb
16
14
  attribute :owner_id
17
15
  attribute :provisioning_state
18
16
  attribute :tags
17
+ attribute :time_created
19
18
  attribute :creation_data
19
+ attribute :os_type
20
20
  attribute :encryption_settings
21
21
 
22
22
  def self.parse(managed_disk)
@@ -39,7 +39,7 @@ module Fog
39
39
 
40
40
  def save
41
41
  requires :name, :location, :resource_group_name, :creation_data
42
- requires :disk_size_gb if creation_data[:create_option] == 'Empty'
42
+ requires :disk_size_gb, :account_type
43
43
  validate_creation_data_params(creation_data)
44
44
 
45
45
  disk = service.create_or_update_managed_disk(managed_disk_params)
@@ -31,6 +31,8 @@ module Fog
31
31
  attribute :custom_data
32
32
  attribute :vhd_path
33
33
  attribute :managed_disk_storage_type
34
+ attribute :os_disk_size
35
+ attribute :tags
34
36
 
35
37
  def self.parse(vm)
36
38
  hash = {}
@@ -41,7 +43,7 @@ module Fog
41
43
  hash['vm_size'] = vm.hardware_profile.vm_size unless vm.hardware_profile.vm_size.nil?
42
44
  unless vm.storage_profile.nil?
43
45
  hash['os_disk_name'] = vm.storage_profile.os_disk.name
44
-
46
+ hash['os_disk_size'] = vm.storage_profile.os_disk.disk_size_gb
45
47
  if vm.storage_profile.os_disk.vhd.nil?
46
48
  hash['managed_disk_storage_type'] = vm.storage_profile.os_disk.managed_disk.storage_account_type
47
49
  else
@@ -63,8 +65,8 @@ module Fog
63
65
 
64
66
  unless vm.storage_profile.data_disks.nil?
65
67
  vm.storage_profile.data_disks.each do |disk|
66
- data_disk = Fog::Storage::AzureRM::DataDisk.new
67
- hash['data_disks'] << data_disk.merge_attributes(Fog::Storage::AzureRM::DataDisk.parse(disk))
68
+ data_disk = Fog::Compute::AzureRM::DataDisk.new
69
+ hash['data_disks'] << data_disk.merge_attributes(Fog::Compute::AzureRM::DataDisk.parse(disk))
68
70
  end
69
71
  end
70
72
 
@@ -76,6 +78,7 @@ module Fog
76
78
  end
77
79
  hash['network_interface_card_ids'] = vm.network_profile.network_interfaces.map(&:id)
78
80
  hash['availability_set_id'] = vm.availability_set.id unless vm.availability_set.nil?
81
+ hash['tags'] = vm.tags
79
82
 
80
83
  hash
81
84
  end
@@ -146,7 +149,7 @@ module Fog
146
149
  end
147
150
 
148
151
  def attach_data_disk(disk_name, disk_size, storage_account_name, async = false)
149
- response = service.attach_data_disk_to_vm(resource_group, name, disk_name, disk_size, storage_account_name, async)
152
+ response = service.attach_data_disk_to_vm(data_disk_params(disk_name, disk_size, storage_account_name), async)
150
153
  async ? create_fog_async_response(response) : merge_attributes(Fog::Compute::AzureRM::Server.parse(response))
151
154
  end
152
155
 
@@ -155,6 +158,16 @@ module Fog
155
158
  async ? create_fog_async_response(response) : merge_attributes(Fog::Compute::AzureRM::Server.parse(response))
156
159
  end
157
160
 
161
+ def attach_managed_disk(disk_name, disk_resource_group, async = false)
162
+ response = service.attach_data_disk_to_vm(data_disk_params(disk_name, nil, nil, disk_resource_group), async)
163
+ async ? create_fog_async_response(response) : merge_attributes(Fog::Compute::AzureRM::Server.parse(response))
164
+ end
165
+
166
+ def detach_managed_disk(disk_name, async = false)
167
+ response = service.detach_data_disk_from_vm(resource_group, name, disk_name, async)
168
+ async ? create_fog_async_response(response) : merge_attributes(Fog::Compute::AzureRM::Server.parse(response))
169
+ end
170
+
158
171
  private
159
172
 
160
173
  def platform_is_linux?(platform)
@@ -190,7 +203,20 @@ module Fog
190
203
  custom_data: custom_data,
191
204
  vhd_path: vhd_path,
192
205
  os_disk_caching: os_disk_caching,
193
- managed_disk_storage_type: managed_disk_storage_type
206
+ managed_disk_storage_type: managed_disk_storage_type,
207
+ os_disk_size: os_disk_size,
208
+ tags: tags
209
+ }
210
+ end
211
+
212
+ def data_disk_params(disk_name, disk_size = nil, storage_account = nil, disk_resource_group = nil)
213
+ {
214
+ vm_name: name,
215
+ vm_resource_group: resource_group,
216
+ disk_name: disk_name,
217
+ disk_size_gb: disk_size,
218
+ storage_account_name: storage_account,
219
+ disk_resource_group: disk_resource_group
194
220
  }
195
221
  end
196
222
  end
@@ -15,6 +15,7 @@ module Fog
15
15
  attribute :enabled_for_deployment
16
16
  attribute :enabled_for_disk_encryption
17
17
  attribute :enabled_for_template_deployment
18
+ attribute :tags
18
19
 
19
20
  def self.parse(vault)
20
21
  vault_hash = get_hash_from_object(vault)
@@ -67,7 +68,8 @@ module Fog
67
68
  tenant_id: tenant_id,
68
69
  sku_family: sku_family,
69
70
  sku_name: sku_name,
70
- access_policies: access_policies
71
+ access_policies: access_policies,
72
+ tags: tags
71
73
  }
72
74
  end
73
75
  end
@@ -13,6 +13,7 @@ module Fog
13
13
  attribute :probes
14
14
  attribute :inbound_nat_rules
15
15
  attribute :inbound_nat_pools
16
+ attribute :tags
16
17
 
17
18
  # @param [Object] load_balancer
18
19
  def self.parse(load_balancer)
@@ -22,6 +23,7 @@ module Fog
22
23
  hash['location'] = load_balancer.location
23
24
  hash['resource_group'] = get_resource_group_from_id(load_balancer.id)
24
25
  hash['backend_address_pool_names'] = load_balancer.backend_address_pools.map(&:id) unless load_balancer.backend_address_pools.nil?
26
+ hash['tags'] = load_balancer.tags
25
27
 
26
28
  hash['frontend_ip_configurations'] = []
27
29
  load_balancer.frontend_ipconfigurations.each do |fic|
@@ -65,7 +67,7 @@ module Fog
65
67
  validate_inbound_nat_rules(inbound_nat_rules) unless inbound_nat_rules.nil?
66
68
  validate_inbound_nat_pools(inbound_nat_pools) unless inbound_nat_pools.nil?
67
69
 
68
- load_balancer = service.create_load_balancer(name, location, resource_group, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
70
+ load_balancer = service.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)
69
71
 
70
72
  merge_attributes(Fog::Network::AzureRM::LoadBalancer.parse(load_balancer))
71
73
  end
@@ -15,6 +15,7 @@ module Fog
15
15
  attribute :bgp_peering_address
16
16
  attribute :peer_weight
17
17
  attribute :provisioning_state
18
+ attribute :tags
18
19
 
19
20
  def self.parse(local_network_gateway)
20
21
  local_network_gateway_hash = get_hash_from_object(local_network_gateway)
@@ -51,7 +52,8 @@ module Fog
51
52
  gateway_ip_address: gateway_ip_address,
52
53
  asn: asn,
53
54
  bgp_peering_address: bgp_peering_address,
54
- peer_weight: peer_weight
55
+ peer_weight: peer_weight,
56
+ tags: tags
55
57
  }
56
58
  end
57
59
  end
@@ -22,6 +22,7 @@ module Fog
22
22
  attribute :applied_dns_servers
23
23
  attribute :internal_dns_name_label
24
24
  attribute :internal_fqd
25
+ attribute :tags
25
26
 
26
27
  def self.parse(nic)
27
28
  hash = {}
@@ -33,6 +34,7 @@ module Fog
33
34
  hash['mac_address'] = nic.mac_address unless nic.mac_address.nil?
34
35
  hash['network_security_group_id'] = nil
35
36
  hash['network_security_group_id'] = nic.network_security_group.id unless nic.network_security_group.nil?
37
+ hash['tags'] = nic.tags
36
38
  ip_configuration = nic.ip_configurations[0] unless nic.ip_configurations.nil?
37
39
  unless ip_configuration.nil?
38
40
  hash['ip_configuration_name'] = ip_configuration.name
@@ -62,7 +64,7 @@ module Fog
62
64
  requires :subnet_id
63
65
  requires :ip_configuration_name
64
66
  requires :private_ip_allocation_method
65
- nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids)
67
+ nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
66
68
  merge_attributes(Fog::Network::AzureRM::NetworkInterface.parse(nic))
67
69
  end
68
70
 
@@ -11,6 +11,7 @@ module Fog
11
11
  attribute :subnets_ids
12
12
  attribute :security_rules
13
13
  attribute :default_security_rules
14
+ attribute :tags
14
15
 
15
16
  def self.parse(nsg)
16
17
  hash = {}
@@ -22,6 +23,7 @@ module Fog
22
23
  hash['subnets_ids'] = nsg.subnets.map(&:id) unless nsg.subnets.nil?
23
24
  hash['security_rules'] = []
24
25
  hash['default_security_rules'] = []
26
+ hash['tags'] = nsg.tags
25
27
 
26
28
  nsg.security_rules.each do |sr|
27
29
  security_rule = Fog::Network::AzureRM::NetworkSecurityRule.new
@@ -40,7 +42,7 @@ module Fog
40
42
  requires :name, :location, :resource_group
41
43
 
42
44
  validate_security_rules(security_rules) unless security_rules.nil?
43
- nsg = service.create_or_update_network_security_group(resource_group, name, location, security_rules)
45
+ nsg = service.create_or_update_network_security_group(resource_group, name, location, security_rules, tags)
44
46
  merge_attributes(Fog::Network::AzureRM::NetworkSecurityGroup.parse(nsg))
45
47
  end
46
48
 
@@ -54,7 +56,7 @@ module Fog
54
56
  if !security_rule_hash[:security_rules].nil? && security_rule_hash.length == 1
55
57
  validate_security_rules(security_rule_hash[:security_rules])
56
58
  merge_attributes(security_rule_hash)
57
- nsg = service.create_or_update_network_security_group(resource_group, name, location, security_rules)
59
+ nsg = service.create_or_update_network_security_group(resource_group, name, location, security_rules, tags)
58
60
  return merge_attributes(Fog::Network::AzureRM::NetworkSecurityGroup.parse(nsg))
59
61
  end
60
62
  raise 'Invalid hash key.'
@@ -14,6 +14,7 @@ module Fog
14
14
  attribute :domain_name_label
15
15
  attribute :fqdn
16
16
  attribute :reverse_fqdn
17
+ attribute :tags
17
18
 
18
19
  def self.parse(public_ip)
19
20
  hash = {}
@@ -25,6 +26,7 @@ module Fog
25
26
  hash['ip_address'] = public_ip.ip_address
26
27
  hash['idle_timeout_in_minutes'] = public_ip.idle_timeout_in_minutes
27
28
  hash['ip_configuration_id'] = public_ip.ip_configuration.id unless public_ip.ip_configuration.nil?
29
+ hash['tags'] = public_ip.tags
28
30
 
29
31
  unless public_ip.dns_settings.nil?
30
32
  hash['domain_name_label'] = public_ip.dns_settings.domain_name_label
@@ -40,7 +42,7 @@ module Fog
40
42
  requires :public_ip_allocation_method
41
43
  requires :location
42
44
  requires :resource_group
43
- public_ip = service.create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label)
45
+ public_ip = service.create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label, tags)
44
46
  merge_attributes(Fog::Network::AzureRM::PublicIp.parse(public_ip))
45
47
  end
46
48
 
@@ -51,7 +53,7 @@ module Fog
51
53
  def update(input_hash)
52
54
  validate_input(input_hash)
53
55
  merge_attributes(input_hash)
54
- pip = service.create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label)
56
+ pip = service.create_or_update_public_ip(resource_group, name, location, public_ip_allocation_method, idle_timeout_in_minutes, domain_name_label, tags)
55
57
  merge_attributes(Fog::Network::AzureRM::PublicIp.parse(pip))
56
58
  end
57
59
 
@@ -11,6 +11,7 @@ module Fog
11
11
  attribute :dns_servers
12
12
  attribute :subnets
13
13
  attribute :address_prefixes
14
+ attribute :tags
14
15
 
15
16
  def self.parse(vnet)
16
17
  hash = {}
@@ -20,6 +21,7 @@ module Fog
20
21
  hash['location'] = vnet.location
21
22
  hash['dns_servers'] = vnet.dhcp_options.dns_servers unless vnet.dhcp_options.nil?
22
23
  hash['address_prefixes'] = vnet.address_space.address_prefixes unless vnet.address_space.address_prefixes.nil?
24
+ hash['tags'] = vnet.tags
23
25
 
24
26
  subnets = []
25
27
  vnet.subnets.each do |subnet|
@@ -36,7 +38,7 @@ module Fog
36
38
  requires :resource_group
37
39
  validate_subnets!(subnets) unless subnets.nil?
38
40
 
39
- virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes)
41
+ virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes, tags)
40
42
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
41
43
  end
42
44
 
@@ -75,7 +77,7 @@ module Fog
75
77
  raise('Provided hash can not be empty.') if vnet_hash.empty? || vnet_hash.nil?
76
78
  validate_update_attributes!(vnet_hash)
77
79
  merge_attributes(vnet_hash)
78
- virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes)
80
+ virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes, tags)
79
81
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
80
82
  end
81
83
 
@@ -7,19 +7,21 @@ module Fog
7
7
  identity :name
8
8
  attribute :id
9
9
  attribute :location
10
+ attribute :tags
10
11
 
11
12
  def self.parse(resource_group)
12
13
  hash = {}
13
14
  hash['id'] = resource_group.id
14
15
  hash['name'] = resource_group.name
15
16
  hash['location'] = resource_group.location
17
+ hash['tags'] = resource_group.tags
16
18
  hash
17
19
  end
18
20
 
19
21
  def save
20
22
  requires :name
21
23
  requires :location
22
- resource_group = service.create_resource_group(name, location)
24
+ resource_group = service.create_resource_group(name, location, tags)
23
25
  merge_attributes(Fog::Resources::AzureRM::ResourceGroup.parse(resource_group))
24
26
  end
25
27