test/integration/application_gateway.rb in fog-azure-rm-0.1.1 vs test/integration/application_gateway.rb in fog-azure-rm-0.1.2
- old
+ new
@@ -1,245 +1,245 @@
-require 'fog/azurerm'
-require 'yaml'
-
-########################################################################################################################
-###################### Services object required by all actions ######################
-###################### Keep it Uncommented! ######################
-########################################################################################################################
-
-azure_credentials = YAML.load_file('credentials/azure.yml')
-
-resource = Fog::Resources::AzureRM.new(
- tenant_id: azure_credentials['tenant_id'],
- client_id: azure_credentials['client_id'],
- client_secret: azure_credentials['client_secret'],
- subscription_id: azure_credentials['subscription_id']
-)
-
-application_gateway = Fog::ApplicationGateway::AzureRM.new(
- tenant_id: azure_credentials['tenant_id'],
- client_id: azure_credentials['client_id'],
- client_secret: azure_credentials['client_secret'],
- subscription_id: azure_credentials['subscription_id']
-)
-
-network = Fog::Network::AzureRM.new(
- tenant_id: azure_credentials['tenant_id'],
- client_id: azure_credentials['client_id'],
- client_secret: azure_credentials['client_secret'],
- subscription_id: azure_credentials['subscription_id']
-)
-########################################################################################################################
-###################### Resource names #####################
-########################################################################################################################
-
-time = current_time
-resource_group_name = "AG-RG-#{time}"
-virtual_network_name = "Vnet#{time}"
-subnet_name = "Sub#{time}"
-public_ip_name = "Pip#{time}"
-app_gateway_name = "AG#{time}"
-
-########################################################################################################################
-###################### Prerequisites #####################
-########################################################################################################################
-
-begin
- resource_group = resource.resource_groups.create(
- name: resource_group_name,
- location: LOCATION
- )
-
- network.virtual_networks.create(
- name: virtual_network_name,
- location: LOCATION,
- resource_group: resource_group_name,
- dns_servers: %w(10.1.0.0 10.2.0.0),
- address_prefixes: %w(10.1.0.0/16 10.2.0.0/16)
- )
-
- network.subnets.create(
- name: subnet_name,
- resource_group: resource_group_name,
- virtual_network_name: virtual_network_name,
- address_prefix: '10.2.0.0/24'
- )
-
- network.public_ips.create(
- name: public_ip_name,
- resource_group: resource_group_name,
- location: LOCATION,
- public_ip_allocation_method: 'Dynamic'
- )
-
- #######################################################################################################################
- ##################### Create Application Gateway ######################
- #######################################################################################################################
-
- app_gateway = application_gateway.gateways.create(
- name: app_gateway_name,
- location: LOCATION,
- resource_group: resource_group_name,
- sku_name: 'Standard_Medium',
- sku_tier: 'Standard',
- sku_capacity: '2',
- gateway_ip_configurations: [
- {
- name: 'gatewayIpConfigName',
- subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourcegroups/#{resource_group_name}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/#{subnet_name}"
- }
- ],
- frontend_ip_configurations: [
- {
- name: 'frontendIpConfig',
- private_ip_allocation_method: 'Dynamic',
- public_ip_address_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourcegroups/#{resource_group_name}/providers/Microsoft.Network/publicIPAddresses/#{public_ip_name}",
- private_ip_address: '10.0.1.5'
- }
- ],
- frontend_ports: [
- {
- name: 'frontendPort',
- port: 443
- }
- ],
- backend_address_pools: [
- {
- name: 'backendAddressPool',
- ip_addresses: [
- {
- ipAddress: '10.0.1.6'
-
- }
- ]
- }
- ],
- backend_http_settings_list: [
- {
- name: 'gateway_settings',
- port: 80,
- protocol: 'Http',
- cookie_based_affinity: 'Enabled',
- request_timeout: '30'
- }
- ],
- http_listeners: [
- {
- name: 'gateway_listener',
- frontend_ip_config_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/frontendIPConfigurations/frontendIpConfig",
- frontend_port_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/frontendPorts/frontendPort",
- protocol: 'Http',
- host_name: '',
- require_server_name_indication: 'false'
- }
- ],
- request_routing_rules: [
- {
- name: 'gateway_request_route_rule',
- type: 'Basic',
- http_listener_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/httpListeners/gateway_listener",
- backend_address_pool_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/backendAddressPools/backendAddressPool",
- backend_http_settings_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/backendHttpSettingsCollection/gateway_settings",
- url_path_map: ''
- }
- ]
- )
- puts "Created application gateway #{app_gateway.name}"
- ########################################################################################################################
- ###################### Get Application Gateway ######################
- ########################################################################################################################
-
- app_gateway = application_gateway.gateways.get(resource_group_name, app_gateway_name)
- puts "Get application gateway: #{app_gateway.name}"
-
- ########################################################################################################################
- ###################### Update sku attributes (Name and Capacity) #########################
- ########################################################################################################################
-
- app_gateway.update_sku('Standard_Small', '1')
- puts 'Updated application gateway sku'
-
- ########################################################################################################################
- ###################### Stop Application Gateway #########################
- ########################################################################################################################
-
- app_gateway.stop
- puts 'Application Gateway stopped!'
-
- ########################################################################################################################
- ###################### Update gateway ip configuration (Subnet id) #########################
- ########################################################################################################################
-
- subnet_id = network.subnets.create(
- name: "#{subnet_name}1",
- resource_group: resource_group_name,
- virtual_network_name: virtual_network_name,
- address_prefix: '10.1.0.0/24'
- ).id
-
- app_gateway.update_gateway_ip_configuration(subnet_id)
- puts 'Updated Application Gateway ip configuration'
-
- ########################################################################################################################
- ###################### Start Application Gateway #########################
- ########################################################################################################################
-
- app_gateway.start
- puts 'Application Gateway started!'
-
- ########################################################################################################################
- ###################### Add/Remove Frontend ports #########################
- ########################################################################################################################
-
- app_gateway.add_frontend_port(name: 'frontendPort1', port: 80)
- puts 'Added Frontend port in application gateway'
-
- app_gateway.remove_frontend_port(name: 'frontendPort1', port: 80)
- puts 'Removed Frontend port in application gateway'
-
- #######################################################################################################################
- ##################### Add/Remove Probes #########################
- #######################################################################################################################
-
- app_gateway.add_probe(
- name: 'Probe1',
- protocol: 'http',
- host: 'localhost',
- path: '/fog-test',
- interval: 60,
- timeout: 300,
- unhealthy_threshold: 5
- )
- puts 'Added probe in application gateway'
- app_gateway.remove_probe(
- name: 'Probe1',
- protocol: 'http',
- host: 'localhost',
- path: '/fog-test',
- interval: 60,
- timeout: 300,
- unhealthy_threshold: 5
- )
- puts 'Removed probe in application gateway'
-
- ########################################################################################################################
- ###################### Destroy Application Gateway ######################
- ########################################################################################################################
-
- puts "Deleted application gateway: #{app_gateway.destroy}"
-
- ########################################################################################################################
- ###################### CleanUp ######################
- ########################################################################################################################
-
- pubip = network.public_ips.get(resource_group_name, public_ip_name)
- pubip.destroy
-
- vnet = network.virtual_networks.get(resource_group_name, virtual_network_name)
- vnet.destroy
-
- resource_group = resource.resource_groups.get(resource_group_name)
- resource_group.destroy
-rescue
- puts 'Integration Test for application gateway is failing'
- resource_group.destroy unless resource_group.nil?
-end
+require 'fog/azurerm'
+require 'yaml'
+
+########################################################################################################################
+###################### Services object required by all actions ######################
+###################### Keep it Uncommented! ######################
+########################################################################################################################
+
+azure_credentials = YAML.load_file('credentials/azure.yml')
+
+resource = Fog::Resources::AzureRM.new(
+ tenant_id: azure_credentials['tenant_id'],
+ client_id: azure_credentials['client_id'],
+ client_secret: azure_credentials['client_secret'],
+ subscription_id: azure_credentials['subscription_id']
+)
+
+application_gateway = Fog::ApplicationGateway::AzureRM.new(
+ tenant_id: azure_credentials['tenant_id'],
+ client_id: azure_credentials['client_id'],
+ client_secret: azure_credentials['client_secret'],
+ subscription_id: azure_credentials['subscription_id']
+)
+
+network = Fog::Network::AzureRM.new(
+ tenant_id: azure_credentials['tenant_id'],
+ client_id: azure_credentials['client_id'],
+ client_secret: azure_credentials['client_secret'],
+ subscription_id: azure_credentials['subscription_id']
+)
+########################################################################################################################
+###################### Resource names #####################
+########################################################################################################################
+
+time = current_time
+resource_group_name = "AG-RG-#{time}"
+virtual_network_name = "Vnet#{time}"
+subnet_name = "Sub#{time}"
+public_ip_name = "Pip#{time}"
+app_gateway_name = "AG#{time}"
+
+########################################################################################################################
+###################### Prerequisites #####################
+########################################################################################################################
+
+begin
+ resource_group = resource.resource_groups.create(
+ name: resource_group_name,
+ location: LOCATION
+ )
+
+ network.virtual_networks.create(
+ name: virtual_network_name,
+ location: LOCATION,
+ resource_group: resource_group_name,
+ dns_servers: %w(10.1.0.0 10.2.0.0),
+ address_prefixes: %w(10.1.0.0/16 10.2.0.0/16)
+ )
+
+ network.subnets.create(
+ name: subnet_name,
+ resource_group: resource_group_name,
+ virtual_network_name: virtual_network_name,
+ address_prefix: '10.2.0.0/24'
+ )
+
+ network.public_ips.create(
+ name: public_ip_name,
+ resource_group: resource_group_name,
+ location: LOCATION,
+ public_ip_allocation_method: 'Dynamic'
+ )
+
+ #######################################################################################################################
+ ##################### Create Application Gateway ######################
+ #######################################################################################################################
+
+ app_gateway = application_gateway.gateways.create(
+ name: app_gateway_name,
+ location: LOCATION,
+ resource_group: resource_group_name,
+ sku_name: 'Standard_Medium',
+ sku_tier: 'Standard',
+ sku_capacity: '2',
+ gateway_ip_configurations: [
+ {
+ name: 'gatewayIpConfigName',
+ subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourcegroups/#{resource_group_name}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/#{subnet_name}"
+ }
+ ],
+ frontend_ip_configurations: [
+ {
+ name: 'frontendIpConfig',
+ private_ip_allocation_method: 'Dynamic',
+ public_ip_address_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourcegroups/#{resource_group_name}/providers/Microsoft.Network/publicIPAddresses/#{public_ip_name}",
+ private_ip_address: '10.0.1.5'
+ }
+ ],
+ frontend_ports: [
+ {
+ name: 'frontendPort',
+ port: 443
+ }
+ ],
+ backend_address_pools: [
+ {
+ name: 'backendAddressPool',
+ ip_addresses: [
+ {
+ ipAddress: '10.0.1.6'
+
+ }
+ ]
+ }
+ ],
+ backend_http_settings_list: [
+ {
+ name: 'gateway_settings',
+ port: 80,
+ protocol: 'Http',
+ cookie_based_affinity: 'Enabled',
+ request_timeout: '30'
+ }
+ ],
+ http_listeners: [
+ {
+ name: 'gateway_listener',
+ frontend_ip_config_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/frontendIPConfigurations/frontendIpConfig",
+ frontend_port_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/frontendPorts/frontendPort",
+ protocol: 'Http',
+ host_name: '',
+ require_server_name_indication: 'false'
+ }
+ ],
+ request_routing_rules: [
+ {
+ name: 'gateway_request_route_rule',
+ type: 'Basic',
+ http_listener_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/httpListeners/gateway_listener",
+ backend_address_pool_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/backendAddressPools/backendAddressPool",
+ backend_http_settings_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/applicationGateways/#{app_gateway_name}/backendHttpSettingsCollection/gateway_settings",
+ url_path_map: ''
+ }
+ ]
+ )
+ puts "Created application gateway #{app_gateway.name}"
+ ########################################################################################################################
+ ###################### Get Application Gateway ######################
+ ########################################################################################################################
+
+ app_gateway = application_gateway.gateways.get(resource_group_name, app_gateway_name)
+ puts "Get application gateway: #{app_gateway.name}"
+
+ ########################################################################################################################
+ ###################### Update sku attributes (Name and Capacity) #########################
+ ########################################################################################################################
+
+ app_gateway.update_sku('Standard_Small', '1')
+ puts 'Updated application gateway sku'
+
+ ########################################################################################################################
+ ###################### Stop Application Gateway #########################
+ ########################################################################################################################
+
+ app_gateway.stop
+ puts 'Application Gateway stopped!'
+
+ ########################################################################################################################
+ ###################### Update gateway ip configuration (Subnet id) #########################
+ ########################################################################################################################
+
+ subnet_id = network.subnets.create(
+ name: "#{subnet_name}1",
+ resource_group: resource_group_name,
+ virtual_network_name: virtual_network_name,
+ address_prefix: '10.1.0.0/24'
+ ).id
+
+ app_gateway.update_gateway_ip_configuration(subnet_id)
+ puts 'Updated Application Gateway ip configuration'
+
+ ########################################################################################################################
+ ###################### Start Application Gateway #########################
+ ########################################################################################################################
+
+ app_gateway.start
+ puts 'Application Gateway started!'
+
+ ########################################################################################################################
+ ###################### Add/Remove Frontend ports #########################
+ ########################################################################################################################
+
+ app_gateway.add_frontend_port(name: 'frontendPort1', port: 80)
+ puts 'Added Frontend port in application gateway'
+
+ app_gateway.remove_frontend_port(name: 'frontendPort1', port: 80)
+ puts 'Removed Frontend port in application gateway'
+
+ #######################################################################################################################
+ ##################### Add/Remove Probes #########################
+ #######################################################################################################################
+
+ app_gateway.add_probe(
+ name: 'Probe1',
+ protocol: 'http',
+ host: 'localhost',
+ path: '/fog-test',
+ interval: 60,
+ timeout: 300,
+ unhealthy_threshold: 5
+ )
+ puts 'Added probe in application gateway'
+ app_gateway.remove_probe(
+ name: 'Probe1',
+ protocol: 'http',
+ host: 'localhost',
+ path: '/fog-test',
+ interval: 60,
+ timeout: 300,
+ unhealthy_threshold: 5
+ )
+ puts 'Removed probe in application gateway'
+
+ ########################################################################################################################
+ ###################### Destroy Application Gateway ######################
+ ########################################################################################################################
+
+ puts "Deleted application gateway: #{app_gateway.destroy}"
+
+ ########################################################################################################################
+ ###################### CleanUp ######################
+ ########################################################################################################################
+
+ pubip = network.public_ips.get(resource_group_name, public_ip_name)
+ pubip.destroy
+
+ vnet = network.virtual_networks.get(resource_group_name, virtual_network_name)
+ vnet.destroy
+
+ resource_group = resource.resource_groups.get(resource_group_name)
+ resource_group.destroy
+rescue
+ puts 'Integration Test for application gateway is failing'
+ resource_group.destroy unless resource_group.nil?
+end