fog-azure-rm 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/lib/fog/azurerm/compute.rb +6 -0
  4. data/lib/fog/azurerm/docs/compute.md +67 -11
  5. data/lib/fog/azurerm/docs/network.md +59 -0
  6. data/lib/fog/azurerm/docs/storage.md +107 -35
  7. data/lib/fog/azurerm/models/compute/server.rb +15 -9
  8. data/lib/fog/azurerm/models/compute/virtual_machine_extension.rb +78 -0
  9. data/lib/fog/azurerm/models/compute/virtual_machine_extensions.rb +30 -0
  10. data/lib/fog/azurerm/models/network/express_route_circuit.rb +21 -21
  11. data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +21 -21
  12. data/lib/fog/azurerm/models/network/express_route_service_provider.rb +8 -8
  13. data/lib/fog/azurerm/models/network/network_security_rule.rb +27 -0
  14. data/lib/fog/azurerm/models/network/network_security_rules.rb +31 -0
  15. data/lib/fog/azurerm/models/network/subnet.rb +16 -12
  16. data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +6 -6
  17. data/lib/fog/azurerm/models/storage/{containers.rb → directories.rb} +10 -10
  18. data/lib/fog/azurerm/models/storage/{container.rb → directory.rb} +13 -13
  19. data/lib/fog/azurerm/models/storage/file.rb +151 -0
  20. data/lib/fog/azurerm/models/storage/files.rb +31 -0
  21. data/lib/fog/azurerm/network.rb +6 -0
  22. data/lib/fog/azurerm/requests/compute/create_or_update_vm_extension.rb +63 -0
  23. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +45 -8
  24. data/lib/fog/azurerm/requests/compute/delete_vm_extension.rb +28 -0
  25. data/lib/fog/azurerm/requests/compute/get_vm_extension.rb +46 -0
  26. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +44 -31
  27. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_peering.rb +23 -13
  28. data/lib/fog/azurerm/requests/network/create_or_update_network_security_rule.rb +59 -0
  29. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway.rb +23 -15
  30. data/lib/fog/azurerm/requests/network/delete_network_security_rule.rb +30 -0
  31. data/lib/fog/azurerm/requests/network/get_available_ipaddresses_count.rb +23 -0
  32. data/lib/fog/azurerm/requests/network/get_network_security_rule.rb +47 -0
  33. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +1 -1
  34. data/lib/fog/azurerm/requests/network/list_network_security_rules.rb +51 -0
  35. data/lib/fog/azurerm/requests/storage/acquire_blob_lease.rb +29 -0
  36. data/lib/fog/azurerm/requests/storage/acquire_container_lease.rb +29 -0
  37. data/lib/fog/azurerm/requests/storage/check_blob_exist.rb +25 -0
  38. data/lib/fog/azurerm/requests/storage/compare_blob.rb +73 -0
  39. data/lib/fog/azurerm/requests/storage/copy_blob.rb +30 -0
  40. data/lib/fog/azurerm/requests/storage/copy_blob_from_uri.rb +30 -0
  41. data/lib/fog/azurerm/requests/storage/delete_blob.rb +27 -0
  42. data/lib/fog/azurerm/requests/storage/download_blob_to_file.rb +56 -0
  43. data/lib/fog/azurerm/requests/storage/get_blob_metadata.rb +37 -9
  44. data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +53 -0
  45. data/lib/fog/azurerm/requests/storage/get_container_metadata.rb +2 -2
  46. data/lib/fog/azurerm/requests/storage/list_blobs.rb +82 -0
  47. data/lib/fog/azurerm/requests/storage/list_containers.rb +1 -1
  48. data/lib/fog/azurerm/requests/storage/release_blob_lease.rb +27 -0
  49. data/lib/fog/azurerm/requests/storage/release_container_lease.rb +27 -0
  50. data/lib/fog/azurerm/requests/storage/set_blob_metadata.rb +4 -4
  51. data/lib/fog/azurerm/requests/storage/set_blob_properties.rb +26 -0
  52. data/lib/fog/azurerm/requests/storage/set_container_metadata.rb +3 -3
  53. data/lib/fog/azurerm/requests/storage/upload_block_blob_from_file.rb +60 -0
  54. data/lib/fog/azurerm/storage.rb +26 -8
  55. data/lib/fog/azurerm/utilities/general.rb +14 -1
  56. data/lib/fog/azurerm/version.rb +1 -1
  57. data/test/api_stub.rb +8 -4
  58. data/test/api_stub/models/compute/virtual_machine_extension.rb +31 -0
  59. data/test/api_stub/models/network/network_security_rule.rb +30 -0
  60. data/test/api_stub/models/storage/{container.rb → directory.rb} +1 -1
  61. data/test/api_stub/models/storage/file.rb +178 -0
  62. data/test/api_stub/requests/compute/virtual_machine.rb +119 -0
  63. data/test/api_stub/requests/compute/virtual_machine_extension.rb +46 -0
  64. data/test/api_stub/requests/network/network_security_rule.rb +72 -0
  65. data/test/api_stub/requests/storage/{container.rb → directory.rb} +2 -2
  66. data/test/api_stub/requests/storage/file.rb +164 -0
  67. data/test/integration/availability_set.rb +6 -0
  68. data/test/integration/blob.rb +205 -0
  69. data/test/integration/credentials/azure.yml +4 -4
  70. data/test/integration/deployment.rb +9 -0
  71. data/test/integration/external_load_balancer.rb +9 -0
  72. data/test/integration/internal_load_balancer.rb +8 -0
  73. data/test/integration/network_security_group.rb +9 -0
  74. data/test/integration/network_security_rule.rb +86 -0
  75. data/test/integration/server.rb +62 -9
  76. data/test/integration/server_custom_image.rb +118 -0
  77. data/test/integration/subnet.rb +12 -1
  78. data/test/integration/virtual_machine_extension.rb +148 -0
  79. data/test/integration/virtual_network.rb +9 -1
  80. data/test/integration/virtual_network_gateway.rb +7 -29
  81. data/test/integration/virtual_network_gateway_connection_to_express_route.rb +116 -0
  82. data/test/models/compute/test_virtual_machine_extension.rb +61 -0
  83. data/test/models/compute/test_virtual_machine_extensions.rb +36 -0
  84. data/test/models/network/test_express_route_circuit.rb +4 -10
  85. data/test/models/network/test_express_route_circuit_peering.rb +4 -10
  86. data/test/models/network/test_network_interface.rb +4 -8
  87. data/test/models/network/test_network_security_rule.rb +14 -0
  88. data/test/models/network/test_network_security_rules.rb +42 -0
  89. data/test/models/network/test_subnet.rb +5 -0
  90. data/test/models/storage/test_directories.rb +106 -0
  91. data/test/models/storage/test_directory.rb +125 -0
  92. data/test/models/storage/test_file.rb +258 -0
  93. data/test/models/storage/test_files.rb +67 -0
  94. data/test/models/storage/test_storage_account.rb +2 -4
  95. data/test/requests/compute/test_create_virtual_machine.rb +19 -5
  96. data/test/requests/compute/test_create_vm_extension.rb +35 -0
  97. data/test/requests/compute/test_get_vm_extension.rb +26 -0
  98. data/test/requests/compute/test_update_vm_extension.rb +35 -0
  99. data/test/requests/network/test_create_or_update_network_security_rule.rb +28 -0
  100. data/test/requests/network/test_delete_network_security_rule.rb +25 -0
  101. data/test/requests/network/test_get_available_ipaddresses_count.rb +18 -0
  102. data/test/requests/network/test_get_network_security_rule.rb +26 -0
  103. data/test/requests/network/test_list_network_security_groups.rb +2 -2
  104. data/test/requests/network/test_list_network_security_rules.rb +26 -0
  105. data/test/requests/storage/test_acquire_blob_lease.rb +17 -0
  106. data/test/requests/storage/test_acquire_container_lease.rb +17 -0
  107. data/test/requests/storage/test_check_blob_exist.rb +17 -0
  108. data/test/requests/storage/test_compare_blob.rb +17 -0
  109. data/test/requests/storage/test_copy_blob.rb +17 -0
  110. data/test/requests/storage/test_copy_blob_from_uri.rb +17 -0
  111. data/test/requests/storage/test_create_container.rb +2 -2
  112. data/test/requests/storage/test_delete_blob.rb +22 -0
  113. data/test/requests/storage/test_delete_container.rb +1 -1
  114. data/test/requests/storage/test_download_blob_to_file.rb +25 -0
  115. data/test/requests/storage/test_get_blob_metadata.rb +2 -2
  116. data/test/requests/storage/test_get_blob_properties.rb +23 -0
  117. data/test/requests/storage/test_get_container_access_control_list.rb +2 -2
  118. data/test/requests/storage/test_get_container_metadata.rb +2 -2
  119. data/test/requests/storage/test_get_container_properties.rb +2 -2
  120. data/test/requests/storage/test_list_blobs_in_container.rb +23 -0
  121. data/test/requests/storage/test_list_containers.rb +2 -2
  122. data/test/requests/storage/test_release_blob_lease.rb +16 -0
  123. data/test/requests/storage/test_release_container_lease.rb +16 -0
  124. data/test/requests/storage/test_set_blob_metadata.rb +1 -1
  125. data/test/requests/storage/test_set_blob_properties.rb +16 -0
  126. data/test/requests/storage/test_set_container_metadata.rb +1 -1
  127. data/test/requests/storage/test_upload_block_blob_from_file.rb +23 -0
  128. data/test/test_helper.rb +116 -3
  129. metadata +73 -15
  130. data/.DS_Store +0 -0
  131. data/lib/fog/azurerm/fog_azure_rm_exception.rb +0 -13
  132. data/lib/fog/azurerm/models/storage/blob.rb +0 -13
  133. data/lib/fog/azurerm/models/storage/blobs.rb +0 -22
  134. data/test/api_stub/models/storage/blob.rb +0 -17
  135. data/test/api_stub/requests/storage/blob.rb +0 -24
  136. data/test/models/storage/test_blobs.rb +0 -32
  137. data/test/models/storage/test_container.rb +0 -67
  138. data/test/models/storage/test_containers.rb +0 -56
@@ -0,0 +1,118 @@
1
+ require 'fog/azurerm'
2
+ require 'yaml'
3
+
4
+ ########################################################################################################################
5
+ ###################### Services object required by all actions ######################
6
+ ###################### Keep it Uncommented! ######################
7
+ ########################################################################################################################
8
+
9
+ azure_credentials = YAML.load_file('credentials/azure.yml')
10
+
11
+ rs = Fog::Resources::AzureRM.new(
12
+ tenant_id: azure_credentials['tenant_id'],
13
+ client_id: azure_credentials['client_id'],
14
+ client_secret: azure_credentials['client_secret'],
15
+ subscription_id: azure_credentials['subscription_id']
16
+ )
17
+
18
+ compute = Fog::Compute::AzureRM.new(
19
+ tenant_id: azure_credentials['tenant_id'],
20
+ client_id: azure_credentials['client_id'],
21
+ client_secret: azure_credentials['client_secret'],
22
+ subscription_id: azure_credentials['subscription_id']
23
+ )
24
+
25
+ storage = Fog::Storage::AzureRM.new(
26
+ tenant_id: azure_credentials['tenant_id'],
27
+ client_id: azure_credentials['client_id'],
28
+ client_secret: azure_credentials['client_secret'],
29
+ subscription_id: azure_credentials['subscription_id']
30
+ )
31
+
32
+ network = Fog::Network::AzureRM.new(
33
+ tenant_id: azure_credentials['tenant_id'],
34
+ client_id: azure_credentials['client_id'],
35
+ client_secret: azure_credentials['client_secret'],
36
+ subscription_id: azure_credentials['subscription_id']
37
+ )
38
+
39
+ ########################################################################################################################
40
+ ###################### Prerequisites ######################
41
+ ########################################################################################################################
42
+
43
+ rs.resource_groups.create(
44
+ name: 'TestRG-VM',
45
+ location: 'eastus'
46
+ )
47
+
48
+ storage.storage_accounts.create(
49
+ name: 'fogstorageac',
50
+ location: 'eastus',
51
+ resource_group: 'TestRG-VM',
52
+ account_type: 'Standard',
53
+ replication: 'LRS'
54
+ )
55
+
56
+ network.virtual_networks.create(
57
+ name: 'testVnet',
58
+ location: 'eastus',
59
+ resource_group: 'TestRG-VM',
60
+ network_address_list: '10.1.0.0/16,10.2.0.0/16'
61
+ )
62
+
63
+ network.subnets.create(
64
+ name: 'mysubnet',
65
+ resource_group: 'TestRG-VM',
66
+ virtual_network_name: 'testVnet',
67
+ address_prefix: '10.2.0.0/24'
68
+ )
69
+
70
+ network.network_interfaces.create(
71
+ name: 'NetInt',
72
+ resource_group: 'TestRG-VM',
73
+ location: 'eastus',
74
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
75
+ ip_configuration_name: 'testIpConfiguration',
76
+ private_ip_allocation_method: 'Dynamic'
77
+ )
78
+
79
+ ########################################################################################################################
80
+ ###################### Create Server ######################
81
+ ########################################################################################################################
82
+
83
+ compute.servers.create(
84
+ name: 'TestVM',
85
+ location: 'eastus',
86
+ resource_group: 'TestRG-VM',
87
+ vm_size: 'Basic_A0',
88
+ storage_account_name: 'fogstorageac',
89
+ username: 'testuser',
90
+ password: 'Confiz=123',
91
+ disable_password_authentication: false,
92
+ network_interface_card_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VM/providers/Microsoft.Network/networkInterfaces/NetInt",
93
+ platform: 'linux',
94
+ vhd_path: 'https://custimagestorage.blob.core.windows.net/newcustomvhd/trusty-server-cloudimg-amd64-disk1-zeeshan.vhd'
95
+ )
96
+
97
+ ########################################################################################################################
98
+ ###################### Get and Delete Server ######################
99
+ ########################################################################################################################
100
+
101
+ server = compute.servers.get('TestRG-VM', 'TestVM')
102
+ server.destroy
103
+
104
+ ########################################################################################################################
105
+ ###################### CleanUp ######################
106
+ ########################################################################################################################
107
+
108
+ nic = network.network_interfaces.get('TestRG-VM', 'NetInt')
109
+ nic.destroy
110
+
111
+ vnet = network.virtual_networks.get('TestRG-VM', 'testVnet')
112
+ vnet.destroy
113
+
114
+ storage = storage.storage_accounts.get('TestRG-VM', 'fogstorageac')
115
+ storage.destroy
116
+
117
+ resource_group = rs.resource_groups.get('TestRG-VM')
118
+ resource_group.destroy
@@ -74,10 +74,21 @@ subnet.detach_network_security_group
74
74
  network.subnets(resource_group: resource_group.name, virtual_network_name: virtual_network.name)
75
75
 
76
76
  ########################################################################################################################
77
- ###################### Get and Delete Subnet ######################
77
+ ###################### Get Subnet ######################
78
78
  ########################################################################################################################
79
79
 
80
80
  subnet = network.subnets.get(resource_group.name, virtual_network.name, subnet.name)
81
+
82
+ ########################################################################################################################
83
+ ###################### List Free Ip Addresses in Subnet ######################
84
+ ########################################################################################################################
85
+
86
+ Fog::Logger.debug subnet.get_available_ipaddresses_count(false)
87
+
88
+ ########################################################################################################################
89
+ ###################### Delete Subnet ######################
90
+ ########################################################################################################################
91
+
81
92
  subnet.destroy
82
93
 
83
94
  ########################################################################################################################
@@ -0,0 +1,148 @@
1
+ require 'fog/azurerm'
2
+ require 'yaml'
3
+
4
+ ########################################################################################################################
5
+ ###################### Services object required by all actions ######################
6
+ ###################### Keep it Uncommented! ######################
7
+ ########################################################################################################################
8
+
9
+ azure_credentials = YAML.load_file('credentials/azure.yml')
10
+
11
+ rs = Fog::Resources::AzureRM.new(
12
+ tenant_id: azure_credentials['tenant_id'],
13
+ client_id: azure_credentials['client_id'],
14
+ client_secret: azure_credentials['client_secret'],
15
+ subscription_id: azure_credentials['subscription_id']
16
+ )
17
+
18
+ compute = Fog::Compute::AzureRM.new(
19
+ tenant_id: azure_credentials['tenant_id'],
20
+ client_id: azure_credentials['client_id'],
21
+ client_secret: azure_credentials['client_secret'],
22
+ subscription_id: azure_credentials['subscription_id']
23
+ )
24
+
25
+ storage = Fog::Storage::AzureRM.new(
26
+ tenant_id: azure_credentials['tenant_id'],
27
+ client_id: azure_credentials['client_id'],
28
+ client_secret: azure_credentials['client_secret'],
29
+ subscription_id: azure_credentials['subscription_id']
30
+ )
31
+
32
+ network = Fog::Network::AzureRM.new(
33
+ tenant_id: azure_credentials['tenant_id'],
34
+ client_id: azure_credentials['client_id'],
35
+ client_secret: azure_credentials['client_secret'],
36
+ subscription_id: azure_credentials['subscription_id']
37
+ )
38
+
39
+ ########################################################################################################################
40
+ ###################### Prerequisites ######################
41
+ ########################################################################################################################
42
+
43
+ rs.resource_groups.create(
44
+ name: 'TestRG-VME',
45
+ location: 'eastus'
46
+ )
47
+
48
+ storage.storage_accounts.create(
49
+ name: 'fogstorageac',
50
+ location: 'eastus',
51
+ resource_group: 'TestRG-VME',
52
+ account_type: 'Standard',
53
+ replication: 'LRS'
54
+ )
55
+
56
+ network.virtual_networks.create(
57
+ name: 'testVnet',
58
+ location: 'eastus',
59
+ resource_group: 'TestRG-VME',
60
+ network_address_list: '10.1.0.0/16,10.2.0.0/16'
61
+ )
62
+
63
+ network.subnets.create(
64
+ name: 'mysubnet',
65
+ resource_group: 'TestRG-VME',
66
+ virtual_network_name: 'testVnet',
67
+ address_prefix: '10.2.0.0/24'
68
+ )
69
+
70
+ network.network_interfaces.create(
71
+ name: 'NetInt',
72
+ resource_group: 'TestRG-VME',
73
+ location: 'eastus',
74
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VME/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
75
+ ip_configuration_name: 'testIpConfiguration',
76
+ private_ip_allocation_method: 'Dynamic'
77
+ )
78
+
79
+ compute.servers.create(
80
+ name: 'TestVM',
81
+ location: 'eastus',
82
+ resource_group: 'TestRG-VME',
83
+ vm_size: 'Basic_A0',
84
+ storage_account_name: 'fogstorageac',
85
+ username: 'testuser',
86
+ password: 'Confiz=123',
87
+ disable_password_authentication: false,
88
+ network_interface_card_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VME/providers/Microsoft.Network/networkInterfaces/NetInt",
89
+ publisher: 'MicrosoftWindowsServer',
90
+ offer: 'WindowsServer',
91
+ sku: '2008-R2-SP1',
92
+ version: 'latest',
93
+ platform: 'Windows'
94
+ )
95
+
96
+ ########################################################################################################################
97
+ ###################### Attach Extension To Server ######################
98
+ ########################################################################################################################
99
+
100
+ compute.virtual_machine_extensions.create(
101
+ resource_group: 'TestRG-VME',
102
+ location: 'eastus',
103
+ vm_name: 'TestVM',
104
+ name: 'IaaSAntimalware',
105
+ publisher: 'Microsoft.Azure.Security',
106
+ type: 'IaaSAntimalware',
107
+ type_handler_version: '1.3',
108
+ auto_upgrade_minor_version: true,
109
+ settings: {'AntimalwareEnabled': 'true', 'RealtimeProtectionEnabled': 'false', 'ScheduledScanSettings': {'isEnabled': 'false', 'day': '7', 'time': '120', 'scanType': 'Quick'}, 'Exclusions': {'Extensions': '', 'Paths': '', 'Processes': ''}},
110
+ protected_settings: {}
111
+ )
112
+
113
+ ########################################################################################################################
114
+ ###################### Get Extension From Server ######################
115
+ ########################################################################################################################
116
+
117
+ vm_extension = compute.virtual_machine_extensions.get('TestRG-VME', 'TestVM', 'IaasAntimalware')
118
+
119
+ ########################################################################################################################
120
+ ###################### Update Extension ######################
121
+ ########################################################################################################################
122
+
123
+ vm_extension.update(auto_upgrade_minor_version: false)
124
+
125
+ ########################################################################################################################
126
+ ###################### Delete Extension ######################
127
+ ########################################################################################################################
128
+
129
+ vm_extension.destroy
130
+
131
+ ########################################################################################################################
132
+ ###################### CleanUp ######################
133
+ ########################################################################################################################
134
+
135
+ virtual_machine = compute.servers.get('TestRG-VME', 'TestVM')
136
+ virtual_machine.destroy
137
+
138
+ nic = network.network_interfaces.get('TestRG-VME', 'NetInt')
139
+ nic.destroy
140
+
141
+ vnet = network.virtual_networks.get('TestRG-VME', 'testVnet')
142
+ vnet.destroy
143
+
144
+ storage = storage.storage_accounts.get('TestRG-VME', 'fogstorageac')
145
+ storage.destroy
146
+
147
+ resource_group = rs.resource_groups.get('TestRG-VME')
148
+ resource_group.destroy
@@ -63,7 +63,7 @@ network.virtual_networks(resource_group: resource_group.name)
63
63
  ###################### Get Virtual Network ##################################
64
64
  ########################################################################################################################
65
65
 
66
- vnet = network.virtual_networks.get(resource_group.name, 'testvnet')
66
+ vnet = network.virtual_networks.get('TestRG-VN', 'testvnet')
67
67
 
68
68
  ########################################################################################################################
69
69
  ###################### Add/Remove DNS Servers to/from Virtual Network #########################
@@ -111,6 +111,14 @@ vnet.update(
111
111
  dns_servers: %w(10.3.0.0 10.4.0.0)
112
112
  )
113
113
 
114
+ ########################################################################################################################
115
+ ###################### List Free IP Address count in Subnets ##########################
116
+ ########################################################################################################################
117
+
118
+ vnet.subnets.each do |subnet|
119
+ Fog::Logger.debug network.subnets.get('TestRG-VN', 'testVnet', subnet.name).get_available_ipaddresses_count(false)
120
+ end
121
+
114
122
  ########################################################################################################################
115
123
  ###################### Destroy Virtual Network #########################
116
124
  ########################################################################################################################
@@ -52,21 +52,6 @@ network.public_ips.create(
52
52
  public_ip_allocation_method: 'Dynamic'
53
53
  )
54
54
 
55
- network.local_network_gateways.create(
56
- name: 'testlocalnetworkgateway',
57
- location: 'eastus',
58
- tags: {
59
- key1: 'value1',
60
- key2: 'value2'
61
- },
62
- resource_group: 'TestRG-VNG',
63
- gateway_ip_address: '192.168.1.1',
64
- local_network_address_space_prefixes: [],
65
- asn: 100,
66
- bgp_peering_address: '192.168.1.2',
67
- peer_weight: 3
68
- )
69
-
70
55
  ########################################################################################################################
71
56
  ###################### Create Virtual Network Gateway ######################
72
57
  ########################################################################################################################
@@ -88,18 +73,14 @@ network.virtual_network_gateways.create(
88
73
  }
89
74
  ],
90
75
  resource_group: 'TestRG-VNG',
91
- sku_name: 'Standard',
92
- sku_tier: 'Standard',
76
+ sku_name: 'Basic',
77
+ sku_tier: 'Basic',
93
78
  sku_capacity: 2,
94
- gateway_type: 'vpn',
95
- enable_bgp: true,
79
+ gateway_type: 'ExpressRoute',
80
+ enable_bgp: false,
96
81
  gateway_size: nil,
97
- asn: 100,
98
- bgp_peering_address: nil,
99
- peer_weight: 3,
100
82
  vpn_type: 'RouteBased',
101
- vpn_client_address_pool: [],
102
- gateway_default_site: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-VNG/providers/Microsoft.Network/localNetworkGateways/testlocalnetworkgateway"
83
+ vpn_client_address_pool: nil
103
84
  )
104
85
 
105
86
  ########################################################################################################################
@@ -108,7 +89,7 @@ network.virtual_network_gateways.create(
108
89
 
109
90
  network_gateways = network.virtual_network_gateways(resource_group: 'TestRG-VNG')
110
91
  network_gateways.each do |gateway|
111
- puts gateway.name.to_s
92
+ Fog::Logger.debug gateway.name.to_s
112
93
  end
113
94
 
114
95
  ########################################################################################################################
@@ -116,15 +97,12 @@ end
116
97
  ########################################################################################################################
117
98
 
118
99
  network_gateway = network.virtual_network_gateways.get('TestRG-VNG', 'testnetworkgateway')
119
- puts network_gateway.name.to_s
100
+ Fog::Logger.debug network_gateway.name.to_s
120
101
 
121
102
  network_gateway.destroy
122
103
 
123
104
  pubip = network.public_ips.get('TestRG-VNG', 'mypubip')
124
105
  pubip.destroy
125
106
 
126
- local_network_gateway = network.local_network_gateways.get('TestRG-VNG', 'testlocalnetworkgateway')
127
- local_network_gateway.destroy
128
-
129
107
  rg = resource.resource_groups.get('TestRG-VNG')
130
108
  rg.destroy
@@ -0,0 +1,116 @@
1
+ require 'fog/azurerm'
2
+ require 'yaml'
3
+
4
+ ########################################################################################################################
5
+ ###################### Services object required by all actions ######################
6
+ ###################### Keep it Uncommented! ######################
7
+ ########################################################################################################################
8
+
9
+ azure_credentials = YAML.load_file('credentials/azure.yml')
10
+
11
+ resource = Fog::Resources::AzureRM.new(
12
+ tenant_id: azure_credentials['tenant_id'],
13
+ client_id: azure_credentials['client_id'],
14
+ client_secret: azure_credentials['client_secret'],
15
+ subscription_id: azure_credentials['subscription_id']
16
+ )
17
+
18
+ network = Fog::Network::AzureRM.new(
19
+ tenant_id: azure_credentials['tenant_id'],
20
+ client_id: azure_credentials['client_id'],
21
+ client_secret: azure_credentials['client_secret'],
22
+ subscription_id: azure_credentials['subscription_id']
23
+ )
24
+
25
+ ########################################################################################################################
26
+ ###################### Prerequisites ######################
27
+ ########################################################################################################################
28
+
29
+ resource.resource_groups.create(
30
+ name: 'TestRG-GCE',
31
+ location: 'eastus'
32
+ )
33
+
34
+ network.virtual_networks.create(
35
+ name: 'testVnet',
36
+ location: 'eastus',
37
+ resource_group: 'TestRG-GCE',
38
+ network_address_list: '10.1.0.0/16,10.2.0.0/16'
39
+ )
40
+
41
+ network.subnets.create(
42
+ name: 'GatewaySubnet',
43
+ resource_group: 'TestRG-GCE',
44
+ virtual_network_name: 'testVnet',
45
+ address_prefix: '10.2.0.0/24'
46
+ )
47
+
48
+ network.public_ips.create(
49
+ name: 'mypubip',
50
+ resource_group: 'TestRG-GCE',
51
+ location: 'eastus',
52
+ public_ip_allocation_method: 'Dynamic'
53
+ )
54
+
55
+ network.virtual_network_gateways.create(
56
+ name: 'testnetworkgateway',
57
+ location: 'eastus',
58
+ tags: {
59
+ key1: 'value1',
60
+ key2: 'value2'
61
+ },
62
+ ip_configurations: [
63
+ {
64
+ name: 'default',
65
+ private_ipallocation_method: 'Dynamic',
66
+ public_ipaddress_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-GCE/providers/Microsoft.Network/publicIPAddresses/mypubip",
67
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-GCE/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/GatewaySubnet",
68
+ private_ipaddress: nil
69
+ }
70
+ ],
71
+ resource_group: 'TestRG-GCE',
72
+ sku_name: 'Basic',
73
+ sku_tier: 'Basic',
74
+ sku_capacity: 2,
75
+ gateway_type: 'ExpressRoute',
76
+ enable_bgp: false,
77
+ gateway_size: nil,
78
+ vpn_type: 'RouteBased',
79
+ vpn_client_address_pool: nil
80
+ )
81
+
82
+ ########################################################################################################################
83
+ ############### Create Virtual Network Gateway Connection to Express Route Circuit ###########
84
+ ########################################################################################################################
85
+
86
+ network.virtual_network_gateway_connections.create(
87
+ name: 'testnetworkgateway-to-expressroute',
88
+ location: 'eastus',
89
+ resource_group: 'TestRG-GCE',
90
+ virtual_network_gateway1: {
91
+ name: 'testnetworkgateway',
92
+ resource_group: 'TestRG-GCE'
93
+ },
94
+ # Please provide Provisioned Express Route Circuit resource id below
95
+ peer: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroup/TestRG-GCE/providers/Microsoft.Network/expressRouteCircuits/[circuit_name]",
96
+ connection_type: 'ExpressRoute'
97
+ )
98
+
99
+ ########################################################################################################################
100
+ ###################### CleanUp #######################
101
+ ########################################################################################################################
102
+
103
+ gateway_connection = network.virtual_network_gateway_connections.get('TestRG-GCE', 'testnetworkgateway-to-expressroute')
104
+ gateway_connection.destroy
105
+
106
+ network_gateway = network.virtual_network_gateways.get('TestRG-GCE', 'testnetworkgateway')
107
+ network_gateway.destroy
108
+
109
+ pubip = network.public_ips.get('TestRG-GCE', 'mypubip')
110
+ pubip.destroy
111
+
112
+ vnet = network.virtual_networks.get('TestRG-GCE', 'testVnet')
113
+ vnet.destroy
114
+
115
+ resource_group = resource.resource_groups.get('TestRG-GCE')
116
+ resource_group.destroy