fog-azure-rm 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +64 -0
  3. data/README.md +5 -0
  4. data/lib/fog/azurerm.rb +10 -10
  5. data/lib/fog/azurerm/compute.rb +9 -1
  6. data/lib/fog/azurerm/config.rb +1 -1
  7. data/lib/fog/azurerm/core.rb +1 -0
  8. data/lib/fog/azurerm/credentials.rb +4 -4
  9. data/lib/fog/azurerm/dns.rb +9 -5
  10. data/lib/fog/azurerm/models/compute/availability_set.rb +0 -2
  11. data/lib/fog/azurerm/models/compute/availability_sets.rb +0 -1
  12. data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
  13. data/lib/fog/azurerm/models/compute/server.rb +46 -9
  14. data/lib/fog/azurerm/models/compute/servers.rb +4 -4
  15. data/lib/fog/azurerm/models/dns/record_set.rb +13 -13
  16. data/lib/fog/azurerm/models/network/application_gateway.rb +456 -0
  17. data/lib/fog/azurerm/models/network/application_gateway_backend_address_pool.rb +24 -0
  18. data/lib/fog/azurerm/models/network/application_gateway_backend_http_setting.rb +30 -0
  19. data/lib/fog/azurerm/models/network/application_gateway_frontend_ip_configuration.rb +30 -0
  20. data/lib/fog/azurerm/models/network/application_gateway_frontend_port.rb +22 -0
  21. data/lib/fog/azurerm/models/network/application_gateway_http_listener.rb +37 -0
  22. data/lib/fog/azurerm/models/network/application_gateway_ip_configuration.rb +21 -0
  23. data/lib/fog/azurerm/models/network/application_gateway_probe.rb +32 -0
  24. data/lib/fog/azurerm/models/network/application_gateway_request_routing_rule.rb +35 -0
  25. data/lib/fog/azurerm/models/network/application_gateway_ssl_certificate.rb +26 -0
  26. data/lib/fog/azurerm/models/network/application_gateway_url_path_map.rb +32 -0
  27. data/lib/fog/azurerm/models/network/application_gateways.rb +27 -0
  28. data/lib/fog/azurerm/models/network/load_balancer.rb +2 -2
  29. data/lib/fog/azurerm/models/network/network_interface.rb +3 -3
  30. data/lib/fog/azurerm/models/network/path_rule.rb +30 -0
  31. data/lib/fog/azurerm/models/network/subnet.rb +1 -1
  32. data/lib/fog/azurerm/models/network/virtual_network.rb +2 -0
  33. data/lib/fog/azurerm/models/network/virtual_networks.rb +2 -0
  34. data/lib/fog/azurerm/models/resources/resource_group.rb +2 -0
  35. data/lib/fog/azurerm/models/resources/resource_groups.rb +2 -0
  36. data/lib/fog/azurerm/models/storage/storage_accounts.rb +1 -1
  37. data/lib/fog/azurerm/network.rb +16 -0
  38. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +160 -0
  39. data/lib/fog/azurerm/requests/compute/check_vm_status.rb +40 -0
  40. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +5 -8
  41. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +78 -59
  42. data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +1 -1
  43. data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +1 -1
  44. data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +1 -1
  45. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +94 -0
  46. data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +1 -1
  47. data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +53 -54
  48. data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +11 -11
  49. data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +20 -20
  50. data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +3 -3
  51. data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +1 -1
  52. data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +1 -1
  53. data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +1 -1
  54. data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +1 -1
  55. data/lib/fog/azurerm/requests/dns/check_for_zone.rb +6 -5
  56. data/lib/fog/azurerm/requests/dns/create_record_set.rb +29 -28
  57. data/lib/fog/azurerm/requests/dns/create_zone.rb +18 -17
  58. data/lib/fog/azurerm/requests/dns/delete_record_set.rb +3 -3
  59. data/lib/fog/azurerm/requests/dns/delete_zone.rb +5 -4
  60. data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +3 -3
  61. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +33 -32
  62. data/lib/fog/azurerm/requests/dns/list_zones.rb +41 -40
  63. data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +1 -1
  64. data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +1 -1
  65. data/lib/fog/azurerm/requests/network/create_application_gateway.rb +371 -0
  66. data/lib/fog/azurerm/requests/network/create_network_interface.rb +17 -9
  67. data/lib/fog/azurerm/requests/network/create_network_security_group.rb +15 -23
  68. data/lib/fog/azurerm/requests/network/create_public_ip.rb +1 -2
  69. data/lib/fog/azurerm/requests/network/create_subnet.rb +10 -11
  70. data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +2 -2
  71. data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +5 -5
  72. data/lib/fog/azurerm/requests/network/create_virtual_network.rb +9 -9
  73. data/lib/fog/azurerm/requests/network/delete_application_gateway.rb +27 -0
  74. data/lib/fog/azurerm/requests/network/delete_network_interface.rb +1 -1
  75. data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +1 -1
  76. data/lib/fog/azurerm/requests/network/delete_public_ip.rb +2 -2
  77. data/lib/fog/azurerm/requests/network/delete_subnet.rb +1 -1
  78. data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +1 -1
  79. data/lib/fog/azurerm/requests/network/list_application_gateways.rb +31 -0
  80. data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +3 -5
  81. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +29 -37
  82. data/lib/fog/azurerm/requests/network/list_public_ips.rb +1 -3
  83. data/lib/fog/azurerm/requests/network/list_subnets.rb +4 -6
  84. data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +1 -1
  85. data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +7 -8
  86. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +9 -7
  87. data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +3 -1
  88. data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +16 -14
  89. data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +3 -3
  90. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +6 -6
  91. data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +5 -5
  92. data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +20 -21
  93. data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +21 -21
  94. data/lib/fog/azurerm/resources.rb +4 -1
  95. data/lib/fog/azurerm/storage.rb +1 -2
  96. data/lib/fog/azurerm/version.rb +1 -1
  97. metadata +54 -5
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def delete_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} deleted successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,94 @@
1
+ module Fog
2
+ module Compute
3
+ class AzureRM
4
+ # This class provides the actual implementation for service calls.
5
+ class Real
6
+ def detach_data_disk_from_vm(resource_group, vm_name, disk_name)
7
+ Fog::Logger.debug "Detaching Data Disk #{disk_name} from Virtual Machine #{vm_name} in Resource Group #{resource_group}."
8
+ vm = get_virtual_machine_instance(resource_group, vm_name, @compute_mgmt_client)
9
+ vm.properties.storage_profile.data_disks.each_with_index do |disk, index|
10
+ if disk.name == disk_name
11
+ vm.properties.storage_profile.data_disks.delete_at(index)
12
+ end
13
+ end
14
+ vm.resources = nil
15
+ begin
16
+ promise = @compute_mgmt_client.virtual_machines.create_or_update(resource_group, vm_name, vm)
17
+ result = promise.value!
18
+ Fog::Logger.debug "Data Disk #{disk_name} detached from Virtual Machine #{vm_name} successfully."
19
+ Azure::ARM::Compute::Models::VirtualMachine.serialize_object(result.body)
20
+ rescue MsRestAzure::AzureOperationError => e
21
+ msg = "Error Detaching Data Disk #{disk_name} from Virtual Machine #{vm_name} in Resource Group #{resource_group}. #{e.body['error']['message']}"
22
+ raise msg
23
+ end
24
+ end
25
+ end
26
+ # This class provides the mock implementation for unit tests.
27
+ class Mock
28
+ def detach_data_disk_from_vm(resource_group, vm_name, disk_name)
29
+ {
30
+ 'location' => 'West US',
31
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Compute/virtualMachines/#{name}",
32
+ 'name' => vm_name,
33
+ 'type' => 'Microsoft.Compute/virtualMachines',
34
+ 'properties' =>
35
+ {
36
+ 'hardwareProfile' =>
37
+ {
38
+ 'vmSize' => 'Basic_A0'
39
+ },
40
+ 'storageProfile' =>
41
+ {
42
+ 'imageReference' =>
43
+ {
44
+ 'publisher' => 'Canonical',
45
+ 'offer' => 'UbuntuServer',
46
+ 'sku' => '14.04.2-LTS',
47
+ 'version' => 'latest'
48
+ },
49
+ 'osDisk' =>
50
+ {
51
+ 'name' => "#{vm_name}_os_disk",
52
+ 'vhd' =>
53
+ {
54
+ 'uri' => "http://#{storage_account_name}.blob.core.windows.net/vhds/#{vm_name}_os_disk.vhd"
55
+ },
56
+ 'createOption' => 'FromImage',
57
+ 'osType' => 'Linux',
58
+ 'caching' => 'ReadWrite'
59
+ },
60
+ 'dataDisks' => [{
61
+ 'lun' => 0,
62
+ 'name' => disk_name,
63
+ 'vhd_uri' => "https://confizrg7443.blob.core.windows.net/vhds/#{disk_name}.vhd",
64
+ 'create_option' => 'empty',
65
+ 'disk_size_gb' => disk_size
66
+ }]
67
+ },
68
+ 'osProfile' =>
69
+ {
70
+ 'computerName' => 'fog',
71
+ 'adminUsername' => 'Fog=123',
72
+ 'linuxConfiguration' =>
73
+ {
74
+ 'disablePasswordAuthentication' => true
75
+ },
76
+ 'secrets' => []
77
+ },
78
+ 'networkProfile' =>
79
+ {
80
+ 'networkInterfaces' =>
81
+ [
82
+ {
83
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/fog-test-vnet"
84
+ }
85
+ ]
86
+ },
87
+ 'provisioningState' => 'Succeeded'
88
+ }
89
+ }
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def generalize_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Generalized successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -18,61 +18,60 @@ module Fog
18
18
  class Mock
19
19
  def get_virtual_machine(resource_group, name)
20
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
- }
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
74
  }
75
-
76
75
  end
77
76
  end
78
77
  end
@@ -18,19 +18,19 @@ module Fog
18
18
  class Mock
19
19
  def list_availability_sets(resource_group)
20
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' =>
21
28
  {
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
- }
29
+ 'platformUpdateDomainCount' => 5,
30
+ 'platformFaultDomainCount' => 3,
31
+ 'virtualMachines' => []
33
32
  }
33
+ }
34
34
  ]
35
35
  end
36
36
  end
@@ -16,33 +16,33 @@ module Fog
16
16
  end
17
17
  # This class provides the mock implementation for unit tests.
18
18
  class Mock
19
- def list_available_sizes_for_virtual_machine(resource_group, name)
19
+ def list_available_sizes_for_virtual_machine(_resource_group, _name)
20
20
  [
21
21
  {
22
- "name"=>"Standard_A0",
23
- "numberOfCores"=>1,
24
- "osDiskSizeInMB"=>1047552,
25
- "resourceDiskSizeInMB"=>20480,
26
- "memoryInMB"=>768,
27
- "maxDataDiskCount"=>1
22
+ 'name' => 'Standard_A0',
23
+ 'numberOfCores' => 1,
24
+ 'osDiskSizeInMB' => 1_047_552,
25
+ 'resourceDiskSizeInMB' => 20_480,
26
+ 'memoryInMB' => 768,
27
+ 'maxDataDiskCount' => 1
28
28
  },
29
29
  {
30
- "name"=>"Standard_A1",
31
- "numberOfCores"=>1,
32
- "osDiskSizeInMB"=>1047552,
33
- "resourceDiskSizeInMB"=>71680,
34
- "memoryInMB"=>1792,
35
- "maxDataDiskCount"=>2
30
+ 'name' => 'Standard_A1',
31
+ 'numberOfCores' => 1,
32
+ 'osDiskSizeInMB' => 1_047_552,
33
+ 'resourceDiskSizeInMB' => 71_680,
34
+ 'memoryInMB' => 1792,
35
+ 'maxDataDiskCount' => 2
36
36
  },
37
37
  {
38
- "name"=>"Standard_A2",
39
- "numberOfCores"=>2,
40
- "osDiskSizeInMB"=>1047552,
41
- "resourceDiskSizeInMB"=>138240,
42
- "memoryInMB"=>3584,
43
- "maxDataDiskCount"=>4
38
+ 'name' => 'Standard_A2',
39
+ 'numberOfCores' => 2,
40
+ 'osDiskSizeInMB' => 1_047_552,
41
+ 'resourceDiskSizeInMB' => 138_240,
42
+ 'memoryInMB' => 3584,
43
+ 'maxDataDiskCount' => 4
44
44
  }
45
- ]
45
+ ]
46
46
  end
47
47
  end
48
48
  end
@@ -24,7 +24,7 @@ module Fog
24
24
  'location' => 'West US',
25
25
  'properties' => {
26
26
  'hardwareProfile' => {
27
- 'vmSize' => 'Basic_A0'
27
+ 'vmSize' => 'Basic_A0'
28
28
  },
29
29
  'storageProfile' => {
30
30
  'imageReference' => {
@@ -44,13 +44,13 @@ module Fog
44
44
  'computerName' => 'fog-test-server',
45
45
  'adminUsername' => 'shaffan',
46
46
  'linuxConfiguration' => {
47
- 'disablePasswordAuthentication' => false
47
+ 'disablePasswordAuthentication' => false
48
48
  }
49
49
  },
50
50
  'networkProfile' => {
51
51
  'networkInterfaces' => [
52
52
  {
53
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/fogtestnetworkinterface"
53
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/fogtestnetworkinterface"
54
54
  }
55
55
  ]
56
56
  }
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def power_off_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Powered off successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def redeploy_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Redeployed successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def restart_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Restarted successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -20,7 +20,7 @@ module Fog
20
20
  class Mock
21
21
  def start_virtual_machine(resource_group, name)
22
22
  Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} started successfully."
23
- return true
23
+ true
24
24
  end
25
25
  end
26
26
  end
@@ -11,11 +11,12 @@ module Fog
11
11
  resource_url,
12
12
  accept: 'application/json',
13
13
  content_type: 'application/json',
14
- authorization: token)
14
+ authorization: token
15
+ )
15
16
  true
16
17
  rescue RestClient::Exception => e
17
18
  body = JSON.parse(e.response)
18
- if(body['error']['code']) == 'ResourceNotFound'
19
+ if (body['error']['code']) == 'ResourceNotFound'
19
20
  false
20
21
  else
21
22
  Fog::Logger.warning "Exception checking if the zone exists in resource group #{resource_group}"
@@ -28,9 +29,9 @@ module Fog
28
29
 
29
30
  # Mock class for DNS Request
30
31
  class Mock
31
- def check_for_zone(_resource_group, _name)
32
- Fog::Logger.debug "Zone name #{_name} is available."
33
- return true
32
+ def check_for_zone(_resource_group, name)
33
+ Fog::Logger.debug "Zone name #{name} is available."
34
+ true
34
35
  end
35
36
  end
36
37
  end
@@ -41,7 +41,8 @@ module Fog
41
41
  body.to_json,
42
42
  accept: 'application/json',
43
43
  content_type: 'application/json',
44
- authorization: token)
44
+ authorization: token
45
+ )
45
46
  Fog::Logger.debug "RecordSet #{name} Created/Updated Successfully!"
46
47
  parsed_response = JSON.parse(response)
47
48
  parsed_response
@@ -55,44 +56,44 @@ module Fog
55
56
 
56
57
  # Mock class for DNS Request
57
58
  class Mock
58
- def create_record_set(_resource_group, _name, _zone_name, _records, _record_type, _ttl)
59
- if _record_type == 'A'
59
+ def create_record_set(resource_group, name, zone_name, records, record_type, ttl)
60
+ if record_type == 'A'
60
61
  {
61
- "id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{_dns_resource_group}/providers/Microsoft.Network/dnszones/#{_zone_name}/#{_record_type}/#{_name}",
62
- "name"=>_name,
63
- "type"=>"Microsoft.Network/dnszones/#{_record_type}",
64
- "etag"=>"7f159cb1-653d-4920-bc03-153c700412a2",
65
- "location"=>"global",
66
- "tags"=>{},
67
- "properties"=>
62
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{zone_name}/#{record_type}/#{name}",
63
+ 'name' => name,
64
+ 'type' => "Microsoft.Network/dnszones/#{record_type}",
65
+ 'etag' => '7f159cb1-653d-4920-bc03-153c700412a2',
66
+ 'location' => 'global',
67
+ 'tags' => {},
68
+ 'properties' =>
68
69
  {
69
- "metadata"=>{},
70
- "fqdn"=>"#{_name}.#{_zone_name}.",
71
- "TTL"=>_ttl,
72
- "ARecords"=>
70
+ 'metadata' => {},
71
+ 'fqdn' => "#{name}.#{zone_name}.",
72
+ 'TTL' => ttl,
73
+ 'ARecords' =>
73
74
  [
74
75
  {
75
- "ipv4Address"=>_records[0]
76
+ 'ipv4Address' => records[0]
76
77
  }
77
78
  ]
78
79
  }
79
80
  }
80
- elsif _record_type == 'CNAME'
81
+ elsif record_type == 'CNAME'
81
82
  {
82
- "id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{_resource_group}/providers/Microsoft.Network/dnszones/#{_zone_name}/#{_record_type}/#{_name}",
83
- "name"=>_name,
84
- "type"=>"Microsoft.Network/dnszones/#{_record_type}",
85
- "etag"=>"cc5ceb6e-16ad-4a5f-bbd7-9bc31c12d0cf",
86
- "location"=>"global",
87
- "tags"=>{},
88
- "properties"=>
83
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{zone_name}/#{record_type}/#{name}",
84
+ 'name' => name,
85
+ 'type' => "Microsoft.Network/dnszones/#{record_type}",
86
+ 'etag' => 'cc5ceb6e-16ad-4a5f-bbd7-9bc31c12d0cf',
87
+ 'location' => 'global',
88
+ 'tags' => {},
89
+ 'properties' =>
89
90
  {
90
- "metadata"=>{},
91
- "fqdn"=>"#{_name}.#{_zone_name}.",
92
- "TTL"=>_ttl,
93
- "CNAMERecord"=>
91
+ 'metadata' => {},
92
+ 'fqdn' => "#{name}.#{zone_name}.",
93
+ 'TTL' => ttl,
94
+ 'CNAMERecord' =>
94
95
  {
95
- "cname"=>_records[0]
96
+ 'cname' => records[0]
96
97
  }
97
98
  }
98
99
  }