fog-azure-rm 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +19 -8
- data/LICENSE.md +1 -1
- data/README.md +9 -8
- data/lib/fog/azurerm/models/compute/availability_set.rb +17 -3
- data/lib/fog/azurerm/models/compute/availability_sets.rb +2 -6
- data/lib/fog/azurerm/models/compute/server.rb +1 -1
- data/lib/fog/azurerm/models/compute/servers.rb +3 -1
- data/lib/fog/azurerm/models/dns/record_set.rb +31 -3
- data/lib/fog/azurerm/models/dns/record_sets.rb +7 -17
- data/lib/fog/azurerm/models/dns/zone.rb +26 -3
- data/lib/fog/azurerm/models/dns/zones.rb +8 -6
- data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +32 -0
- data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +27 -0
- data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +29 -0
- data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
- data/lib/fog/azurerm/models/network/load_balancers.rb +27 -0
- data/lib/fog/azurerm/models/network/load_balancing_rule.rb +42 -0
- data/lib/fog/azurerm/models/network/network_interface.rb +46 -7
- data/lib/fog/azurerm/models/network/network_interfaces.rb +2 -8
- data/lib/fog/azurerm/models/network/network_security_group.rb +89 -0
- data/lib/fog/azurerm/models/network/network_security_groups.rb +27 -0
- data/lib/fog/azurerm/models/network/network_security_rule.rb +40 -0
- data/lib/fog/azurerm/models/network/probe.rb +29 -0
- data/lib/fog/azurerm/models/network/public_ip.rb +32 -4
- data/lib/fog/azurerm/models/network/public_ips.rb +2 -8
- data/lib/fog/azurerm/models/network/subnet.rb +20 -12
- data/lib/fog/azurerm/models/network/subnets.rb +1 -7
- data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +63 -0
- data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +29 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +59 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +24 -0
- data/lib/fog/azurerm/models/network/virtual_network.rb +19 -6
- data/lib/fog/azurerm/models/network/virtual_networks.rb +4 -9
- data/lib/fog/azurerm/models/resources/resource_group.rb +2 -1
- data/lib/fog/azurerm/models/resources/resource_groups.rb +1 -9
- data/lib/fog/azurerm/models/storage/storage_account.rb +5 -7
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +5 -6
- data/lib/fog/azurerm/network.rb +30 -0
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +13 -2
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +60 -2
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +57 -1
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +16 -1
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +27 -1
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/dns/check_for_zone.rb +16 -17
- data/lib/fog/azurerm/requests/dns/create_record_set.rb +80 -37
- data/lib/fog/azurerm/requests/dns/create_zone.rb +43 -27
- data/lib/fog/azurerm/requests/dns/delete_record_set.rb +17 -19
- data/lib/fog/azurerm/requests/dns/delete_zone.rb +16 -19
- data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +29 -28
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +49 -23
- data/lib/fog/azurerm/requests/dns/list_zones.rb +57 -23
- data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +3 -1
- data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +4 -2
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +208 -0
- data/lib/fog/azurerm/requests/network/create_network_interface.rb +42 -4
- data/lib/fog/azurerm/requests/network/create_network_security_group.rb +200 -0
- data/lib/fog/azurerm/requests/network/create_public_ip.rb +19 -5
- data/lib/fog/azurerm/requests/network/create_subnet.rb +19 -6
- data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +78 -0
- data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +127 -0
- data/lib/fog/azurerm/requests/network/create_virtual_network.rb +40 -5
- data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +5 -3
- data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +29 -0
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -2
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +10 -8
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +8 -6
- data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +96 -0
- data/lib/fog/azurerm/requests/network/list_load_balancers.rb +31 -0
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +41 -9
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +171 -0
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +21 -9
- data/lib/fog/azurerm/requests/network/list_subnets.rb +34 -11
- data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +98 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +53 -8
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +11 -2
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +4 -2
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +23 -7
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +2 -0
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +14 -8
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +4 -3
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +33 -2
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +32 -5
- data/lib/fog/azurerm/storage.rb +0 -1
- data/lib/fog/azurerm/version.rb +1 -1
- metadata +35 -10
@@ -2,13 +2,16 @@ module Fog
|
|
2
2
|
module Network
|
3
3
|
class AzureRM
|
4
4
|
class Real
|
5
|
-
def create_virtual_network(name, location,
|
5
|
+
def create_virtual_network(resource_group, name, location, dns_list, subnet_address_list, network_address_list)
|
6
|
+
Fog::Logger.debug "Creating Virtual Network: #{name}..."
|
6
7
|
virtual_network = define_vnet_object(location, name, network_address_list, dns_list, subnet_address_list)
|
7
8
|
begin
|
8
|
-
promise = @network_client.virtual_networks.create_or_update(
|
9
|
-
promise.value!
|
9
|
+
promise = @network_client.virtual_networks.create_or_update(resource_group, name, virtual_network)
|
10
|
+
result = promise.value!
|
11
|
+
Fog::Logger.debug "Virtual Network #{name} created successfully."
|
12
|
+
Azure::ARM::Network::Models::VirtualNetwork.serialize_object(result.body)
|
10
13
|
rescue MsRestAzure::AzureOperationError => e
|
11
|
-
msg = "Exception creating Virtual Network #{name} in Resource Group: #{
|
14
|
+
msg = "Exception creating Virtual Network #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
12
15
|
raise msg
|
13
16
|
end
|
14
17
|
end
|
@@ -72,7 +75,39 @@ module Fog
|
|
72
75
|
end
|
73
76
|
|
74
77
|
class Mock
|
75
|
-
def create_virtual_network(
|
78
|
+
def create_virtual_network(resource_group, name, location, dns_list, subnet_address_list, network_address_list)
|
79
|
+
{
|
80
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/#{name}",
|
81
|
+
'name' => name,
|
82
|
+
'type' => 'Microsoft.Network/virtualNetworks',
|
83
|
+
'location' => location,
|
84
|
+
'properties' =>
|
85
|
+
{
|
86
|
+
'addressSpace' =>
|
87
|
+
{
|
88
|
+
'addressPrefixes' =>
|
89
|
+
[
|
90
|
+
network_address_list
|
91
|
+
]
|
92
|
+
},
|
93
|
+
'subnets' =>
|
94
|
+
[
|
95
|
+
{
|
96
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}providers/Microsoft.Network/virtualNetworks/#{name}/subnets/subnet_0_#{name}",
|
97
|
+
'properties' =>
|
98
|
+
{
|
99
|
+
'addressPrefix' => subnet_address_list,
|
100
|
+
'provisioningState' => 'Succeeded'
|
101
|
+
},
|
102
|
+
'name' => "subnet_0_#{name}",
|
103
|
+
'etag' => "W/\"ffbb0f61-b2bb-404e-9d20-79d854536f62\""
|
104
|
+
}
|
105
|
+
],
|
106
|
+
'resourceGuid' => 'c573f8e2-d916-493f-8b25-a681c31269ef',
|
107
|
+
'provisioningState' => 'Succeeded'
|
108
|
+
},
|
109
|
+
'etag' => "W/\"ffbb0f61-b2bb-404e-9d20-79d854536f62\""
|
110
|
+
}
|
76
111
|
end
|
77
112
|
end
|
78
113
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_load_balancer(resource_group, name)
|
7
|
+
Fog::Logger.debug "Deleting Load_Balancer #{name} from Resource Group #{resource_group}."
|
8
|
+
begin
|
9
|
+
promise = @network_client.load_balancers.delete(resource_group, name)
|
10
|
+
promise.value!
|
11
|
+
Fog::Logger.debug "Load_Balancer #{name} Deleted Successfully."
|
12
|
+
true
|
13
|
+
rescue MsRestAzure::AzureOperationError => e
|
14
|
+
msg = "Exception deleting Load_Balancer #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
|
+
raise msg
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def delete_load_balancer(_resource_group, _name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Deleting NetworkInterface #{name} from Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @network_client.network_interfaces.delete(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "NetworkInterface #{name} Deleted Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Exception deleting Network Interface #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
|
20
20
|
# Mock class for Network Request
|
21
21
|
class Mock
|
22
|
-
def delete_network_interface(
|
22
|
+
def delete_network_interface(resource_group, name)
|
23
|
+
Fog::Logger.debug "Network Interface #{name} from Resource group #{resource_group} deleted successfully."
|
24
|
+
return true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_network_security_group(resource_group, name)
|
7
|
+
Fog::Logger.debug "Deleting Network Security Group: #{name}..."
|
8
|
+
begin
|
9
|
+
promise = @network_client.network_security_groups.delete(resource_group, name)
|
10
|
+
promise.value!
|
11
|
+
Fog::Logger.debug "Network Security Group #{name} deleted successfully."
|
12
|
+
true
|
13
|
+
rescue MsRestAzure::AzureOperationError => e
|
14
|
+
msg = "Exception deleting Network Security Group #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
|
+
raise msg
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def delete_network_security_group(resource_group, name)
|
23
|
+
Fog::Logger.debug "Network Security Group #{name} from Resource group #{resource_group} deleted successfully."
|
24
|
+
return true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -9,7 +9,7 @@ module Fog
|
|
9
9
|
promise = @network_client.public_ipaddresses.delete(resource_group, name)
|
10
10
|
response = promise.value!
|
11
11
|
Fog::Logger.debug "PublicIP #{name} Deleted Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Exception deleting Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
|
20
20
|
# Mock class for Network Request
|
21
21
|
class Mock
|
22
|
-
def delete_public_ip(
|
22
|
+
def delete_public_ip(resource_group, name)
|
23
|
+
Fog::Logger.debug "Public IP #{name} from Resource group #{resource_group} deleted successfully."
|
24
|
+
return true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -3,15 +3,15 @@ module Fog
|
|
3
3
|
class AzureRM
|
4
4
|
# Real class for Network Request
|
5
5
|
class Real
|
6
|
-
def delete_subnet(resource_group,
|
7
|
-
Fog::Logger.debug "Deleting Subnet: #{
|
6
|
+
def delete_subnet(resource_group, name, virtual_network_name)
|
7
|
+
Fog::Logger.debug "Deleting Subnet: #{name}..."
|
8
8
|
begin
|
9
|
-
promise = @network_client.subnets.delete(resource_group, virtual_network_name,
|
10
|
-
|
11
|
-
Fog::Logger.debug "Subnet #{
|
12
|
-
|
9
|
+
promise = @network_client.subnets.delete(resource_group, virtual_network_name, name)
|
10
|
+
promise.value!
|
11
|
+
Fog::Logger.debug "Subnet #{name} deleted successfully."
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
|
-
msg = "Exception deleting Subnet #{
|
14
|
+
msg = "Exception deleting Subnet #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
16
16
|
end
|
17
17
|
end
|
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
|
20
20
|
# Mock class for Network Request
|
21
21
|
class Mock
|
22
|
-
def delete_subnet(
|
22
|
+
def delete_subnet(resource_group, name, virtual_network_name)
|
23
|
+
Fog::Logger.debug "Subnet #{name} of Virtual Network #{virtual_network_name} from Resource group #{resource_group} deleted successfully."
|
24
|
+
return true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type)
|
7
|
+
Fog::Logger.debug "Deleting Traffic Manager Endpoint: #{name}..."
|
8
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/#{type}Endpoints/#{name}?api-version=2015-11-01"
|
9
|
+
begin
|
10
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
11
|
+
RestClient.delete(
|
12
|
+
resource_url,
|
13
|
+
accept: :json,
|
14
|
+
content_type: :json,
|
15
|
+
authorization: token
|
16
|
+
)
|
17
|
+
Fog::Logger.debug "Traffic Manager Endpoint: #{name} deleted successfully."
|
18
|
+
true
|
19
|
+
rescue => e
|
20
|
+
Fog::Logger.warning "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}"
|
21
|
+
error_msg = JSON.parse(e.response)['message']
|
22
|
+
msg = "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}. #{error_msg}"
|
23
|
+
raise msg
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Mock class for Network Request
|
29
|
+
class Mock
|
30
|
+
def delete_traffic_manager_endpoint(resource_group, name, _traffic_manager_profile_name, _type)
|
31
|
+
Fog::Logger.debug "Traffic Manager End Point #{name} from Resource group #{resource_group} deleted successfully."
|
32
|
+
true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_traffic_manager_profile(resource_group, name)
|
7
|
+
Fog::Logger.debug "Deleting Traffic Manager Profile: #{name}..."
|
8
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{name}?api-version=2015-04-28-preview"
|
9
|
+
begin
|
10
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
11
|
+
RestClient.delete(
|
12
|
+
resource_url,
|
13
|
+
accept: :json,
|
14
|
+
content_type: :json,
|
15
|
+
authorization: token
|
16
|
+
)
|
17
|
+
Fog::Logger.debug "Traffic Manager Profile: #{name} deleted successfully."
|
18
|
+
true
|
19
|
+
rescue => e
|
20
|
+
Fog::Logger.warning "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}"
|
21
|
+
error_msg = JSON.parse(e.response)['message']
|
22
|
+
msg = "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}. #{error_msg}"
|
23
|
+
raise msg
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Mock class for Network Request
|
29
|
+
class Mock
|
30
|
+
def delete_subnet(resource_group, name)
|
31
|
+
Fog::Logger.debug "Traffic Manager Profile #{name} from Resource group #{resource_group} deleted successfully."
|
32
|
+
true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -3,15 +3,15 @@ module Fog
|
|
3
3
|
class AzureRM
|
4
4
|
# Real class for Network Request
|
5
5
|
class Real
|
6
|
-
def delete_virtual_network(
|
6
|
+
def delete_virtual_network(resource_group, name)
|
7
7
|
Fog::Logger.debug "Deleting Virtual Network: #{name}..."
|
8
8
|
begin
|
9
|
-
promise = @network_client.virtual_networks.delete(
|
10
|
-
|
9
|
+
promise = @network_client.virtual_networks.delete(resource_group, name)
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Network #{name} deleted successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
|
-
msg = "Exception deleting Virtual Network #{name} in Resource Group: #{
|
14
|
+
msg = "Exception deleting Virtual Network #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
16
16
|
end
|
17
17
|
end
|
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
|
20
20
|
# Mock class for Network Request
|
21
21
|
class Mock
|
22
|
-
def delete_virtual_network(
|
22
|
+
def delete_virtual_network(resource_group, name)
|
23
|
+
Fog::Logger.debug "Virtual Network #{name} from Resource group #{resource_group} deleted successfully."
|
24
|
+
return true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def get_traffic_manager_profile(resource_group, traffic_manager_profile_name)
|
7
|
+
Fog::Logger.debug "Getting Traffic Manager Profile: #{traffic_manager_profile_name} in Resource Group: #{resource_group}..."
|
8
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}?api-version=2015-04-28-preview"
|
9
|
+
begin
|
10
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
11
|
+
response = RestClient.get(
|
12
|
+
resource_url,
|
13
|
+
accept: :json,
|
14
|
+
content_type: :json,
|
15
|
+
authorization: token
|
16
|
+
)
|
17
|
+
Fog::Logger.debug 'Traffic Manager Profile listed successfully.'
|
18
|
+
JSON.parse(response)
|
19
|
+
rescue => e
|
20
|
+
Fog::Logger.warning "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}"
|
21
|
+
error_msg = JSON.parse(e.response)['message']
|
22
|
+
msg = "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}. #{error_msg}"
|
23
|
+
raise msg
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Mock class for Network Request
|
29
|
+
class Mock
|
30
|
+
def get_traffic_manager_profile(resource_group, traffic_manager_profile_name)
|
31
|
+
{
|
32
|
+
location: 'global',
|
33
|
+
tags: {},
|
34
|
+
id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}",
|
35
|
+
name: traffic_manager_profile_name,
|
36
|
+
type: 'Microsoft.Network/trafficManagerProfiles',
|
37
|
+
properties: {
|
38
|
+
profileStatus: 'Enabled',
|
39
|
+
trafficRoutingMethod: 'Performance',
|
40
|
+
dnsConfig: {
|
41
|
+
relativeName: 'myapp',
|
42
|
+
fqdn: 'myapp.trafficmanager.net',
|
43
|
+
ttl: 30
|
44
|
+
},
|
45
|
+
monitorConfig: {
|
46
|
+
profileMonitorStatus: 'Online',
|
47
|
+
protocol: 'http',
|
48
|
+
port: 80,
|
49
|
+
path: '/monitorpage.aspx'
|
50
|
+
},
|
51
|
+
endpoints: [{
|
52
|
+
id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/azureEndpoints/endpoint-name1",
|
53
|
+
name: 'endpoint-name1',
|
54
|
+
type: 'Microsoft.Network/trafficManagerProfiles/azureEndpoints',
|
55
|
+
properties: {
|
56
|
+
endpointStatus: 'Enabled',
|
57
|
+
endpointMonitorStatus: 'Online',
|
58
|
+
targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
|
59
|
+
target: 'myapp.azurewebsites.net',
|
60
|
+
weight: 10,
|
61
|
+
priority: 3,
|
62
|
+
endpointLocation: 'centralus'
|
63
|
+
}
|
64
|
+
}, {
|
65
|
+
id: "/subscriptions/####/resourceGroups/resource_group/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/externalEndpoints/endpoint-name2",
|
66
|
+
name: 'endpoint-name2',
|
67
|
+
type: 'Microsoft.Network/trafficManagerProfiles/externalEndpoints',
|
68
|
+
properties: {
|
69
|
+
endpointStatus: 'Enabled',
|
70
|
+
endpointMonitorStatus: 'Online',
|
71
|
+
target: 'myendpoint.contoso.com',
|
72
|
+
weight: 10,
|
73
|
+
priority: 5,
|
74
|
+
endpointLocation: 'northeurope'
|
75
|
+
}
|
76
|
+
}, {
|
77
|
+
id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/nestedEndpoints/endpoint-name3",
|
78
|
+
name: 'endpoint-name3',
|
79
|
+
type: 'Microsoft.Network/trafficManagerProfiles/nestedEndpoints',
|
80
|
+
properties: {
|
81
|
+
endpointStatus: 'Enabled',
|
82
|
+
endpointMonitorStatus: 'Online',
|
83
|
+
targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
|
84
|
+
weight: 10,
|
85
|
+
priority: 1,
|
86
|
+
endpointLocation: 'westeurope',
|
87
|
+
minChildEndpoints: 1
|
88
|
+
}
|
89
|
+
}]
|
90
|
+
}
|
91
|
+
}
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def list_load_balancers(resource_group)
|
7
|
+
Fog::Logger.debug "Getting list of Load-Balancers from Resource Group #{resource_group}."
|
8
|
+
begin
|
9
|
+
promise = @network_client.load_balancers.list(resource_group)
|
10
|
+
result = promise.value!
|
11
|
+
Azure::ARM::Network::Models::LoadBalancerListResult.serialize_object(result.body)['value']
|
12
|
+
rescue MsRestAzure::AzureOperationError => e
|
13
|
+
msg = "Exception listing Load-Balancers from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
|
14
|
+
raise msg
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Mock class for Network Request
|
20
|
+
class Mock
|
21
|
+
def list_load_balancers(_resource_group)
|
22
|
+
lb = Azure::ARM::Network::Models::LoadBalancer.new
|
23
|
+
lb.name = 'fogtestloadbalancer'
|
24
|
+
lb.location = 'West US'
|
25
|
+
lb.properties = Azure::ARM::Network::Models::LoadBalancerPropertiesFormat.new
|
26
|
+
[lb]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -7,9 +7,8 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Getting list of NetworkInterfaces from Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @network_client.network_interfaces.list(resource_group)
|
10
|
-
|
11
|
-
result
|
12
|
-
return result
|
10
|
+
result = promise.value!
|
11
|
+
Azure::ARM::Network::Models::NetworkInterfaceListResult.serialize_object(result.body)['value']
|
13
12
|
rescue MsRestAzure::AzureOperationError => e
|
14
13
|
msg = "Exception listing Network Interfaces from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
|
15
14
|
raise msg
|
@@ -19,12 +18,45 @@ module Fog
|
|
19
18
|
|
20
19
|
# Mock class for Network Request
|
21
20
|
class Mock
|
22
|
-
def list_network_interfaces(
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
def list_network_interfaces(resource_group)
|
22
|
+
[
|
23
|
+
{
|
24
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC",
|
25
|
+
'name' => 'test-NIC',
|
26
|
+
'type' => 'Microsoft.Network/networkInterfaces',
|
27
|
+
'location' => 'westus',
|
28
|
+
'properties' =>
|
29
|
+
{
|
30
|
+
'ipConfigurations' =>
|
31
|
+
[
|
32
|
+
{
|
33
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC/ipConfigurations/ipconfig1",
|
34
|
+
'properties' =>
|
35
|
+
{
|
36
|
+
'privateIPAddress' => '10.2.0.4',
|
37
|
+
'privateIPAllocationMethod' => 'Dynamic',
|
38
|
+
'subnet' =>
|
39
|
+
{
|
40
|
+
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/fog-test-subnet"
|
41
|
+
},
|
42
|
+
'provisioningState' => 'Succeeded'
|
43
|
+
},
|
44
|
+
'name' => 'ipconfig1',
|
45
|
+
'etag' => "W/\"b5dd021a-fcce-43b2-9e07-01407a3a6a98\""
|
46
|
+
}
|
47
|
+
],
|
48
|
+
'dnsSettings' =>
|
49
|
+
{
|
50
|
+
'dnsServers' => [],
|
51
|
+
'appliedDnsServers' => []
|
52
|
+
},
|
53
|
+
'enableIPForwarding' =>false,
|
54
|
+
'resourceGuid' => '51e01337-fb15-4b04-b9de-e91537c764fd',
|
55
|
+
'provisioningState' => 'Succeeded'
|
56
|
+
},
|
57
|
+
'etag' =>"W/\"b5dd021a-fcce-43b2-9e07-01407a3a6a98\""
|
58
|
+
}
|
59
|
+
]
|
28
60
|
end
|
29
61
|
end
|
30
62
|
end
|