fog-azure-rm 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.travis.yml +11 -1
- data/CHANGELOG.md +35 -14
- data/fog-azure-rm.gemspec +8 -9
- data/lib/fog/azurerm.rb +3 -0
- data/lib/fog/azurerm/application_gateway.rb +64 -0
- data/lib/fog/azurerm/compute.rb +1 -0
- data/lib/fog/azurerm/config.rb +17 -0
- data/lib/fog/azurerm/core.rb +1 -0
- data/lib/fog/azurerm/dns.rb +4 -2
- data/lib/fog/azurerm/docs/application_gateway.md +139 -0
- data/lib/fog/azurerm/docs/dns.md +28 -6
- data/lib/fog/azurerm/docs/network.md +151 -143
- data/lib/fog/azurerm/docs/resources.md +3 -3
- data/lib/fog/azurerm/docs/storage.md +15 -3
- data/lib/fog/azurerm/docs/traffic_manager.md +118 -0
- data/lib/fog/azurerm/fog_azure_rm_exception.rb +13 -0
- data/lib/fog/azurerm/models/application_gateway/backend_address_pool.rb +22 -0
- data/lib/fog/azurerm/models/application_gateway/backend_http_setting.rb +26 -0
- data/lib/fog/azurerm/models/application_gateway/frontend_ip_configuration.rb +22 -0
- data/lib/fog/azurerm/models/application_gateway/frontend_port.rb +18 -0
- data/lib/fog/azurerm/models/{network/application_gateway.rb → application_gateway/gateway.rb} +74 -78
- data/lib/fog/azurerm/models/{network/application_gateways.rb → application_gateway/gateways.rb} +6 -6
- data/lib/fog/azurerm/models/application_gateway/http_listener.rb +28 -0
- data/lib/fog/azurerm/models/application_gateway/ip_configuration.rb +18 -0
- data/lib/fog/azurerm/models/application_gateway/probe.rb +28 -0
- data/lib/fog/azurerm/models/application_gateway/request_routing_rule.rb +25 -0
- data/lib/fog/azurerm/models/application_gateway/ssl_certificate.rb +22 -0
- data/lib/fog/azurerm/models/application_gateway/url_path_map.rb +28 -0
- data/lib/fog/azurerm/models/compute/availability_set.rb +8 -8
- data/lib/fog/azurerm/models/compute/availability_sets.rb +3 -1
- data/lib/fog/azurerm/models/compute/server.rb +50 -34
- data/lib/fog/azurerm/models/dns/record_set.rb +30 -2
- data/lib/fog/azurerm/models/dns/record_sets.rb +4 -2
- data/lib/fog/azurerm/models/dns/zone.rb +1 -1
- data/lib/fog/azurerm/models/dns/zones.rb +4 -2
- data/lib/fog/azurerm/models/network/express_route_circuit.rb +89 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +93 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_peerings.rb +31 -0
- data/lib/fog/azurerm/models/network/express_route_circuits.rb +29 -0
- data/lib/fog/azurerm/models/network/express_route_service_provider.rb +29 -0
- data/lib/fog/azurerm/models/network/express_route_service_providers.rb +21 -0
- data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +5 -15
- data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +6 -7
- data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +6 -9
- data/lib/fog/azurerm/models/network/load_balancer.rb +17 -19
- data/lib/fog/azurerm/models/network/load_balancing_rule.rb +11 -16
- data/lib/fog/azurerm/models/network/network_interface.rb +24 -24
- data/lib/fog/azurerm/models/network/network_security_group.rb +9 -9
- data/lib/fog/azurerm/models/network/network_security_rule.rb +13 -13
- data/lib/fog/azurerm/models/network/probe.rb +7 -8
- data/lib/fog/azurerm/models/network/public_ip.rb +15 -16
- data/lib/fog/azurerm/models/network/public_ips.rb +4 -2
- data/lib/fog/azurerm/models/network/subnet.rb +8 -8
- data/lib/fog/azurerm/models/network/virtual_network.rb +9 -9
- data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +138 -0
- data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +29 -0
- data/lib/fog/azurerm/models/network/vpn_client_configuration.rb +34 -0
- data/lib/fog/azurerm/models/network/vpn_client_revoked_certificates.rb +22 -0
- data/lib/fog/azurerm/models/network/vpn_client_root_certificates.rb +22 -0
- data/lib/fog/azurerm/models/resources/azure_resource.rb +5 -5
- data/lib/fog/azurerm/models/resources/dependency.rb +5 -5
- data/lib/fog/azurerm/models/resources/deployment.rb +14 -14
- data/lib/fog/azurerm/models/resources/provider.rb +4 -4
- data/lib/fog/azurerm/models/resources/provider_resource_type.rb +4 -4
- data/lib/fog/azurerm/models/resources/resource_group.rb +9 -1
- data/lib/fog/azurerm/models/resources/resource_groups.rb +5 -1
- data/lib/fog/azurerm/models/storage/data_disk.rb +6 -6
- data/lib/fog/azurerm/models/storage/storage_account.rb +41 -10
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +1 -6
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +75 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +31 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +59 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +26 -0
- data/lib/fog/azurerm/network.rb +25 -25
- data/lib/fog/azurerm/requests/{network → application_gateway}/create_application_gateway.rb +59 -95
- data/lib/fog/azurerm/requests/application_gateway/delete_application_gateway.rb +26 -0
- data/lib/fog/azurerm/requests/application_gateway/list_application_gateways.rb +29 -0
- data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +38 -38
- data/lib/fog/azurerm/requests/compute/check_vm_status.rb +8 -10
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +15 -20
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +50 -45
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +7 -8
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +20 -19
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/get_availability_set.rb +32 -0
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +17 -14
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +7 -6
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +37 -31
- data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +47 -42
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +9 -10
- data/lib/fog/azurerm/requests/dns/{create_record_set.rb → create_or_update_record_set.rb} +2 -2
- data/lib/fog/azurerm/requests/dns/{create_zone.rb → create_or_update_zone.rb} +3 -3
- data/lib/fog/azurerm/requests/dns/get_record_set.rb +56 -0
- data/lib/fog/azurerm/requests/dns/get_zone.rb +50 -0
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +2 -2
- data/lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb +3 -3
- data/lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb +8 -6
- data/lib/fog/azurerm/requests/network/add_security_rules.rb +15 -13
- data/lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb +6 -4
- data/lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb +13 -15
- data/lib/fog/azurerm/requests/network/attach_resource_to_nic.rb +17 -16
- data/lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb +13 -15
- data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +2 -4
- data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +5 -5
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +43 -62
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +98 -0
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_peering.rb +69 -0
- data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +14 -19
- data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +29 -26
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +19 -25
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway.rb +151 -0
- data/lib/fog/azurerm/requests/network/create_public_ip.rb +8 -10
- data/lib/fog/azurerm/requests/network/create_subnet.rb +13 -15
- data/lib/fog/azurerm/requests/network/delete_express_route_circuit.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_express_route_circuit_peering.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +8 -7
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +7 -8
- data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +8 -7
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -6
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +6 -7
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +6 -7
- data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway.rb +28 -0
- data/lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb +15 -17
- data/lib/fog/azurerm/requests/network/detach_resource_from_nic.rb +15 -14
- data/lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb +15 -17
- data/lib/fog/azurerm/requests/network/get_express_route_circuit.rb +51 -0
- data/lib/fog/azurerm/requests/network/get_express_route_circuit_peering.rb +48 -0
- data/lib/fog/azurerm/requests/network/get_network_interface.rb +7 -7
- data/lib/fog/azurerm/requests/network/get_network_security_group.rb +11 -7
- data/lib/fog/azurerm/requests/network/get_public_ip.rb +41 -0
- data/lib/fog/azurerm/requests/network/get_subnet.rb +10 -9
- data/lib/fog/azurerm/requests/network/get_virtual_network.rb +12 -14
- data/lib/fog/azurerm/requests/network/get_virtual_network_gateway.rb +45 -0
- data/lib/fog/azurerm/requests/network/list_express_route_circuit_peerings.rb +44 -0
- data/lib/fog/azurerm/requests/network/list_express_route_circuits.rb +53 -0
- data/lib/fog/azurerm/requests/network/list_express_route_service_providers.rb +37 -0
- data/lib/fog/azurerm/requests/network/list_load_balancers.rb +6 -6
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +42 -37
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +149 -143
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +26 -22
- data/lib/fog/azurerm/requests/network/list_subnets.rb +35 -31
- data/lib/fog/azurerm/requests/network/list_virtual_network_gateways.rb +43 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +52 -51
- data/lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb +6 -4
- data/lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb +6 -4
- data/lib/fog/azurerm/requests/network/remove_security_rule.rb +15 -13
- data/lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb +6 -4
- data/lib/fog/azurerm/requests/resources/create_deployment.rb +27 -21
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +9 -9
- data/lib/fog/azurerm/requests/resources/delete_deployment.rb +3 -4
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +3 -5
- data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +14 -20
- data/lib/fog/azurerm/requests/resources/list_deployments.rb +8 -7
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +27 -23
- data/lib/fog/azurerm/requests/resources/list_tagged_resources.rb +30 -27
- data/lib/fog/azurerm/requests/resources/tag_resource.rb +15 -20
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +13 -15
- data/lib/fog/azurerm/requests/storage/create_container.rb +6 -5
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +36 -22
- data/lib/fog/azurerm/requests/storage/delete_container.rb +6 -5
- data/lib/fog/azurerm/requests/storage/delete_disk.rb +13 -12
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +8 -9
- data/lib/fog/azurerm/requests/storage/get_blob_metadata.rb +10 -9
- data/lib/fog/azurerm/requests/storage/get_container_access_control_list.rb +6 -5
- data/lib/fog/azurerm/requests/storage/get_container_metadata.rb +8 -7
- data/lib/fog/azurerm/requests/storage/get_container_properties.rb +6 -5
- data/lib/fog/azurerm/requests/storage/get_storage_access_keys.rb +7 -7
- data/lib/fog/azurerm/requests/storage/list_containers.rb +6 -5
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +7 -12
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +7 -13
- data/lib/fog/azurerm/requests/storage/set_blob_metadata.rb +8 -7
- data/lib/fog/azurerm/requests/storage/set_container_metadata.rb +8 -7
- data/lib/fog/azurerm/requests/traffic_manager/create_traffic_manager_endpoint.rb +54 -0
- data/lib/fog/azurerm/requests/traffic_manager/create_traffic_manager_profile.rb +107 -0
- data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_endpoint.rb +28 -0
- data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_profile.rb +26 -0
- data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_endpoint.rb +39 -0
- data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_profile.rb +80 -0
- data/lib/fog/azurerm/requests/traffic_manager/list_traffic_manager_profiles.rb +82 -0
- data/lib/fog/azurerm/storage.rb +1 -1
- data/lib/fog/azurerm/traffic_manager.rb +56 -0
- data/lib/fog/azurerm/utilities/general.rb +28 -0
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/api_stub.rb +14 -7
- data/test/api_stub/models/{network/application_gateway.rb → application_gateway/gateway.rb} +8 -7
- data/test/api_stub/models/compute/availability_set.rb +35 -6
- data/test/api_stub/models/compute/server.rb +15 -16
- data/test/api_stub/models/dns/record_set.rb +20 -0
- data/test/api_stub/models/network/express_route_circuit.rb +47 -0
- data/test/api_stub/models/network/express_route_circuit_peering.rb +33 -0
- data/test/api_stub/models/network/express_route_service_provider.rb +29 -0
- data/test/api_stub/models/network/load_balancer.rb +137 -115
- data/test/api_stub/models/network/network_interface.rb +3 -2
- data/test/api_stub/models/network/network_security_group.rb +4 -3
- data/test/api_stub/models/network/public_ip.rb +5 -4
- data/test/api_stub/models/network/subnet.rb +3 -2
- data/test/api_stub/models/network/virtual_network.rb +3 -2
- data/test/api_stub/models/network/virtual_network_gateway.rb +26 -0
- data/test/api_stub/models/resources/deployment.rb +56 -50
- data/test/api_stub/models/resources/resource.rb +17 -14
- data/test/api_stub/models/resources/resource_group.rb +4 -18
- data/test/api_stub/models/storage/storageaccount.rb +8 -15
- data/test/api_stub/models/{network → traffic_manager}/traffic_manager_end_point.rb +4 -3
- data/test/api_stub/models/{network → traffic_manager}/traffic_manager_profile.rb +4 -3
- data/test/api_stub/requests/application_gateway/gateway.rb +431 -0
- data/test/api_stub/requests/compute/availability_set.rb +34 -23
- data/test/api_stub/requests/compute/virtual_machine.rb +73 -30
- data/test/api_stub/requests/dns/record_set.rb +6 -6
- data/test/api_stub/requests/dns/zone.rb +2 -2
- data/test/api_stub/requests/network/express_route_circuit.rb +100 -0
- data/test/api_stub/requests/network/express_route_circuit_peering.rb +62 -0
- data/test/api_stub/requests/network/express_route_service_provider.rb +30 -0
- data/test/api_stub/requests/network/load_balancer.rb +273 -251
- data/test/api_stub/requests/network/network_interface.rb +12 -16
- data/test/api_stub/requests/network/network_security_group.rb +12 -27
- data/test/api_stub/requests/network/public_ip.rb +7 -9
- data/test/api_stub/requests/network/subnet.rb +6 -8
- data/test/api_stub/requests/network/virtual_network.rb +6 -8
- data/test/api_stub/requests/network/virtual_network_gateway.rb +49 -0
- data/test/api_stub/requests/resources/deployment.rb +56 -11
- data/test/api_stub/requests/resources/resource.rb +6 -8
- data/test/api_stub/requests/resources/resource_group.rb +6 -8
- data/test/api_stub/requests/storage/storageaccount.rb +44 -31
- data/test/api_stub/requests/traffic_manager/traffic_manager_endpoint.rb +41 -0
- data/test/api_stub/requests/{network → traffic_manager}/traffic_manager_profile.rb +7 -5
- data/test/integration/application_gateway.rb +16 -8
- data/test/integration/availability_set.rb +1 -1
- data/test/integration/container.rb +2 -1
- data/test/integration/deployment.rb +54 -0
- data/test/integration/express_route_circuit.rb +80 -0
- data/test/integration/external_load_balancer.rb +7 -6
- data/test/integration/internal_load_balancer.rb +6 -5
- data/test/integration/network_interface.rb +2 -2
- data/test/integration/public_ip.rb +2 -2
- data/test/integration/record_set.rb +26 -8
- data/test/integration/resource_group.rb +39 -0
- data/test/integration/resource_tag.rb +62 -0
- data/test/integration/server.rb +6 -4
- data/test/integration/storage_account.rb +33 -5
- data/test/integration/subnet.rb +2 -2
- data/test/integration/traffic_manager.rb +12 -12
- data/test/integration/virtual_network.rb +6 -6
- data/test/integration/virtual_network_gateway.rb +101 -0
- data/test/integration/zone.rb +1 -1
- data/test/models/application_gateway/test_gateway.rb +57 -0
- data/test/models/{network/test_application_gateways.rb → application_gateway/test_gateways.rb} +10 -10
- data/test/models/compute/test_availability_set.rb +2 -1
- data/test/models/compute/test_availability_sets.rb +5 -4
- data/test/models/compute/test_server.rb +6 -5
- data/test/models/compute/test_servers.rb +3 -2
- data/test/models/dns/test_record_set.rb +27 -1
- data/test/models/dns/test_record_sets.rb +3 -2
- data/test/models/dns/test_zone.rb +1 -1
- data/test/models/dns/test_zones.rb +2 -1
- data/test/models/network/test_express_route_circuit.rb +58 -0
- data/test/models/network/test_express_route_circuit_peering.rb +59 -0
- data/test/models/network/test_express_route_circuit_peerings.rb +43 -0
- data/test/models/network/test_express_route_circuits.rb +42 -0
- data/test/models/network/test_express_route_service_providers.rb +30 -0
- data/test/models/network/test_load_balancer.rb +7 -12
- data/test/models/network/test_load_balancers.rb +4 -4
- data/test/models/network/test_network_interface.rb +10 -16
- data/test/models/network/test_network_interfaces.rb +3 -2
- data/test/models/network/test_network_security_group.rb +6 -8
- data/test/models/network/test_network_security_groups.rb +2 -1
- data/test/models/network/test_public_ip.rb +5 -6
- data/test/models/network/test_public_ips.rb +6 -6
- data/test/models/network/test_subnet.rb +9 -15
- data/test/models/network/test_subnets.rb +3 -2
- data/test/models/network/test_virtual_network.rb +10 -16
- data/test/models/network/test_virtual_network_gateway.rb +62 -0
- data/test/models/network/test_virtual_network_gateways.rb +42 -0
- data/test/models/network/test_virtual_networks.rb +3 -2
- data/test/models/resources/test_deployment.rb +2 -1
- data/test/models/resources/test_deployments.rb +2 -1
- data/test/models/resources/test_resource_group.rb +2 -1
- data/test/models/resources/test_resource_groups.rb +2 -1
- data/test/models/resources/test_resources.rb +2 -1
- data/test/models/storage/test_data_disk.rb +0 -6
- data/test/models/storage/test_storage_account.rb +29 -8
- data/test/models/storage/test_storage_accounts.rb +5 -5
- data/test/models/{network → traffic_manager}/test_traffic_manager_end_point.rb +4 -3
- data/test/models/traffic_manager/test_traffic_manager_end_points.rb +43 -0
- data/test/models/{network → traffic_manager}/test_traffic_manager_profile.rb +5 -4
- data/test/models/traffic_manager/test_traffic_manager_profiles.rb +42 -0
- data/test/requests/application_gateway/test_create_application_gateway.rb +51 -0
- data/test/requests/application_gateway/test_delete_application_gateway.rb +23 -0
- data/test/requests/application_gateway/test_list_application_gateways.rb +24 -0
- data/test/requests/compute/test_attach_data_disk_to_vm.rb +40 -123
- data/test/requests/compute/test_create_availability_set.rb +9 -11
- data/test/requests/compute/test_create_virtual_machine.rb +13 -29
- data/test/requests/compute/test_deallocate_virtual_machine.rb +7 -13
- data/test/requests/compute/test_delete_availability_set.rb +5 -11
- data/test/requests/compute/test_delete_virtual_machine.rb +7 -13
- data/test/requests/compute/test_detach_data_disk_from_vm.rb +13 -34
- data/test/requests/compute/test_generalize_virtual_machine.rb +7 -13
- data/test/requests/compute/test_get_availability_set.rb +24 -0
- data/test/requests/compute/test_get_virtual_machine.rb +8 -15
- data/test/requests/compute/test_get_vm_status.rb +8 -14
- data/test/requests/compute/test_list_availability_sets.rb +8 -14
- data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +8 -15
- data/test/requests/compute/test_list_virtual_machines.rb +8 -14
- data/test/requests/compute/test_power_off_virtual_machine.rb +7 -13
- data/test/requests/compute/test_redeploy_virtual_machine.rb +7 -13
- data/test/requests/compute/test_restart_virtual_machine.rb +7 -13
- data/test/requests/compute/test_start_virtual_machine.rb +7 -13
- data/test/requests/dns/test_create_record_set.rb +8 -8
- data/test/requests/dns/test_create_zone.rb +6 -6
- data/test/requests/dns/test_delete_record_set.rb +2 -2
- data/test/requests/dns/test_delete_zone.rb +2 -2
- data/test/requests/dns/test_get_record_set.rb +46 -0
- data/test/requests/dns/test_get_zone.rb +46 -0
- data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +11 -27
- data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +11 -27
- data/test/requests/network/test_add_security_rules.rb +11 -31
- data/test/requests/network/test_add_subnets_in_virtual_network.rb +11 -27
- data/test/requests/network/test_attach_network_security_group_to_subnet.rb +9 -16
- data/test/requests/network/test_attach_resource_to_nic.rb +15 -37
- data/test/requests/network/test_attach_route_table_to_subnet.rb +9 -16
- data/test/requests/network/test_check_for_public_ip.rb +10 -18
- data/test/requests/network/test_check_for_virtual_network.rb +10 -18
- data/test/requests/network/test_create_express_route_circuit.rb +39 -0
- data/test/requests/network/test_create_express_route_circuit_peering.rb +37 -0
- data/test/requests/network/test_create_load_balancer.rb +27 -34
- data/test/requests/network/test_create_network_interface.rb +16 -28
- data/test/requests/network/test_create_or_update_network_security_group.rb +38 -0
- data/test/requests/network/test_create_or_update_virtual_network.rb +20 -28
- data/test/requests/network/test_create_public_ip.rb +13 -22
- data/test/requests/network/test_create_subnet.rb +13 -22
- data/test/requests/network/test_create_virtual_network_gateway.rb +37 -0
- data/test/requests/network/test_delete_express_route_circuit.rb +24 -0
- data/test/requests/network/test_delete_express_route_circuit_peering.rb +24 -0
- data/test/requests/network/test_delete_load_balancer.rb +7 -13
- data/test/requests/network/test_delete_network_interface.rb +7 -13
- data/test/requests/network/test_delete_network_security_group.rb +6 -13
- data/test/requests/network/test_delete_public_ip.rb +7 -13
- data/test/requests/network/test_delete_subnet.rb +7 -13
- data/test/requests/network/test_delete_virtual_network.rb +7 -13
- data/test/requests/network/test_delete_virtual_network_gateway.rb +24 -0
- data/test/requests/network/test_detach_network_security_group_from_subnet.rb +9 -16
- data/test/requests/network/test_detach_resource_from_nic.rb +15 -34
- data/test/requests/network/test_detach_route_table_from_subnet.rb +9 -16
- data/test/requests/network/test_get_express_route_circuit.rb +24 -0
- data/test/requests/network/test_get_express_route_circuit_peering.rb +24 -0
- data/test/requests/network/test_get_network_interface.rb +8 -15
- data/test/requests/network/test_get_network_security_group.rb +9 -16
- data/test/requests/network/test_get_public_ip.rb +26 -0
- data/test/requests/network/test_get_subnet.rb +9 -16
- data/test/requests/network/test_get_virtual_network.rb +26 -0
- data/test/requests/network/test_get_virtual_network_gateway.rb +24 -0
- data/test/requests/network/test_list_express_route_circuit_peerings.rb +24 -0
- data/test/requests/network/test_list_express_route_circuits.rb +26 -0
- data/test/requests/network/test_list_express_route_service_providers.rb +24 -0
- data/test/requests/network/test_list_load_balancers.rb +8 -15
- data/test/requests/network/test_list_network_interfaces.rb +8 -15
- data/test/requests/network/test_list_network_security_groups.rb +9 -16
- data/test/requests/network/test_list_public_ips.rb +8 -15
- data/test/requests/network/test_list_subnets.rb +8 -15
- data/test/requests/network/test_list_virtual_network_gateways.rb +24 -0
- data/test/requests/network/test_list_virtual_networks.rb +8 -15
- data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +11 -27
- data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +11 -27
- data/test/requests/network/test_remove_security_rule.rb +11 -31
- data/test/requests/network/test_remove_subnets_from_virtual_network.rb +11 -27
- data/test/requests/resources/test_create_deployment.rb +10 -27
- data/test/requests/resources/test_create_resource_group.rb +8 -15
- data/test/requests/resources/test_delete_deployment.rb +5 -11
- data/test/requests/resources/test_delete_resource_group.rb +8 -14
- data/test/requests/resources/test_delete_resource_tag.rb +12 -28
- data/test/requests/resources/test_list_deployments.rb +8 -15
- data/test/requests/resources/test_list_resource_groups.rb +8 -15
- data/test/requests/resources/test_list_tagged_resources.rb +8 -15
- data/test/requests/resources/test_tag_resource.rb +12 -28
- data/test/requests/storage/test_check_storage_account_name_availability.rb +14 -29
- data/test/requests/storage/test_create_storage_account.rb +13 -35
- data/test/requests/storage/test_delete_storage_account.rb +8 -14
- data/test/requests/storage/test_get_storage_access_keys.rb +7 -14
- data/test/requests/storage/test_list_storage_accounts.rb +12 -22
- data/test/requests/storage/test_list_storage_accounts_for_rg.rb +15 -29
- data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +25 -0
- data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +25 -0
- data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +23 -0
- data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +23 -0
- data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +24 -0
- data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +24 -0
- data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +24 -0
- data/test/test_helper.rb +113 -4
- metadata +147 -86
- data/lib/fog/azurerm/models/network/application_gateway_backend_address_pool.rb +0 -24
- data/lib/fog/azurerm/models/network/application_gateway_backend_http_setting.rb +0 -30
- data/lib/fog/azurerm/models/network/application_gateway_frontend_ip_configuration.rb +0 -30
- data/lib/fog/azurerm/models/network/application_gateway_frontend_port.rb +0 -22
- data/lib/fog/azurerm/models/network/application_gateway_http_listener.rb +0 -37
- data/lib/fog/azurerm/models/network/application_gateway_ip_configuration.rb +0 -21
- data/lib/fog/azurerm/models/network/application_gateway_probe.rb +0 -32
- data/lib/fog/azurerm/models/network/application_gateway_request_routing_rule.rb +0 -35
- data/lib/fog/azurerm/models/network/application_gateway_ssl_certificate.rb +0 -26
- data/lib/fog/azurerm/models/network/application_gateway_url_path_map.rb +0 -32
- data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +0 -63
- data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +0 -29
- data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +0 -59
- data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +0 -24
- data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +0 -78
- data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +0 -127
- data/lib/fog/azurerm/requests/network/delete_application_gateway.rb +0 -27
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +0 -37
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +0 -37
- data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +0 -96
- data/lib/fog/azurerm/requests/network/list_application_gateways.rb +0 -31
- data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +0 -98
- data/test/api_stub/models/storage/data_disk.rb +0 -30
- data/test/api_stub/requests/network/application_gateway.rb +0 -433
- data/test/api_stub/requests/network/traffic_manager_endpoint.rb +0 -25
- data/test/models/network/test_application_gateway.rb +0 -62
- data/test/models/network/test_traffic_manager_end_points.rb +0 -42
- data/test/models/network/test_traffic_manager_profiles.rb +0 -41
- data/test/requests/network/test_create_application_gateway.rb +0 -61
- data/test/requests/network/test_create_network_security_group.rb +0 -45
- data/test/requests/network/test_create_traffic_manager_endpoint.rb +0 -32
- data/test/requests/network/test_create_traffic_manager_profile.rb +0 -32
- data/test/requests/network/test_delete_application_gateway.rb +0 -30
- data/test/requests/network/test_delete_traffic_manager_endpoint.rb +0 -28
- data/test/requests/network/test_delete_traffic_manager_profile.rb +0 -28
- data/test/requests/network/test_get_traffic_manager_profile.rb +0 -29
- data/test/requests/network/test_list_application_gateways.rb +0 -31
- data/test/requests/network/test_list_traffic_manager_profiles.rb +0 -29
@@ -0,0 +1,98 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def create_or_update_express_route_circuit(circuit_parameters)
|
7
|
+
msg = "Exception creating/updating Express Route Circuit #{circuit_parameters[:circuit_name]} in Resource Group: #{circuit_parameters[:resource_group_name]}."
|
8
|
+
Fog::Logger.debug msg
|
9
|
+
circuit = get_express_route_circuit_object(circuit_parameters)
|
10
|
+
begin
|
11
|
+
circuit = @network_client.express_route_circuits.create_or_update(circuit_parameters[:resource_group_name], circuit_parameters[:circuit_name], circuit)
|
12
|
+
rescue MsRestAzure::AzureOperationError => e
|
13
|
+
raise_azure_exception(e, msg)
|
14
|
+
end
|
15
|
+
Fog::Logger.debug "Express Route Circuit #{circuit_parameters[:circuit_name]} created/updated successfully."
|
16
|
+
circuit
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def get_express_route_circuit_object(circuit_parameters)
|
22
|
+
sku = Azure::ARM::Network::Models::ExpressRouteCircuitSku.new
|
23
|
+
sku.name = circuit_parameters[:sku_name]
|
24
|
+
sku.family = circuit_parameters[:sku_family]
|
25
|
+
sku.tier = circuit_parameters[:sku_tier]
|
26
|
+
|
27
|
+
service_provider_prop = Azure::ARM::Network::Models::ExpressRouteCircuitServiceProviderProperties.new
|
28
|
+
service_provider_prop.service_provider_name = circuit_parameters[:service_provider_name]
|
29
|
+
service_provider_prop.peering_location = circuit_parameters[:peering_location]
|
30
|
+
service_provider_prop.bandwidth_in_mbps = circuit_parameters[:bandwidth_in_mbps]
|
31
|
+
|
32
|
+
express_route_circuit = Azure::ARM::Network::Models::ExpressRouteCircuit.new
|
33
|
+
express_route_circuit.service_provider_properties = service_provider_prop
|
34
|
+
if circuit_parameters[:peerings]
|
35
|
+
circuit_peerings = get_circuit_peerings(circuit_parameters[:peerings])
|
36
|
+
express_route_circuit.peerings = circuit_peerings
|
37
|
+
end
|
38
|
+
express_route_circuit.name = circuit_parameters[:circuit_name]
|
39
|
+
express_route_circuit.location = circuit_parameters[:location]
|
40
|
+
express_route_circuit.sku = sku
|
41
|
+
express_route_circuit.tags = circuit_parameters[:tags] if express_route_circuit.tags.nil?
|
42
|
+
|
43
|
+
express_route_circuit
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_circuit_peerings(peerings)
|
47
|
+
circuit_peerings = []
|
48
|
+
peerings.each do |peering|
|
49
|
+
circuit_peering = Azure::ARM::Network::Models::ExpressRouteCircuitPeering.new
|
50
|
+
circuit_peering.peering_type = peering[:peering_type]
|
51
|
+
circuit_peering.peer_asn = peering[:peer_asn]
|
52
|
+
circuit_peering.primary_peer_address_prefix = peering[:primary_peer_address_prefix]
|
53
|
+
circuit_peering.secondary_peer_address_prefix = peering[:secondary_peer_address_prefix]
|
54
|
+
circuit_peering.vlan_id = peering[:vlan_id]
|
55
|
+
if peering[:peering_type].casecmp(MICROSOFT_PEERING) == 0
|
56
|
+
peering_config = Azure::ARM::Network::Models::ExpressRouteCircuitPeeringConfig.new
|
57
|
+
peering_config.advertised_public_prefixes = peering[:advertised_public_prefixes]
|
58
|
+
peering_config.advertised_public_prefixes_state = peering[:advertised_public_prefix_state]
|
59
|
+
peering_config.customer_asn = peering[:customer_asn]
|
60
|
+
peering_config.routing_registry_name = peering[:routing_registry_name]
|
61
|
+
circuit_peering.microsoft_peering_config = peering_config
|
62
|
+
end
|
63
|
+
|
64
|
+
circuit_peering.name = peering[:name]
|
65
|
+
circuit_peerings.push(circuit_peering)
|
66
|
+
end
|
67
|
+
circuit_peerings
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Mock class for Network Request
|
72
|
+
class Mock
|
73
|
+
def create_or_update_express_route_circuit(*)
|
74
|
+
{
|
75
|
+
'name' => 'CircuitName',
|
76
|
+
'location' => 'eastus',
|
77
|
+
'tags' => {
|
78
|
+
'key1' => 'value1',
|
79
|
+
'key2' => 'value2'
|
80
|
+
},
|
81
|
+
'sku' => {
|
82
|
+
'name' => 'Standard_MeteredData',
|
83
|
+
'tier' => 'Standard',
|
84
|
+
'family' => 'MeteredData'
|
85
|
+
},
|
86
|
+
'properties' => {
|
87
|
+
'serviceProviderProperties' => {
|
88
|
+
'serviceProviderName' => 'Telenor',
|
89
|
+
'peeringLocation' => 'London',
|
90
|
+
'bandwidthInMbps' => 100
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def create_or_update_express_route_circuit_peering(circuit_peering_params)
|
7
|
+
msg = "Exception creating/updating Express Route Circuit Peering #{circuit_peering_params[:peering_name]} in Resource Group: #{circuit_peering_params[:resource_group_name]}."
|
8
|
+
Fog::Logger.debug msg
|
9
|
+
circuit_peering = get_circuit_peering_object(circuit_peering_params)
|
10
|
+
begin
|
11
|
+
peering = @network_client.express_route_circuit_peerings.create_or_update(circuit_peering_params[:resource_group_name], circuit_peering_params[:circuit_name], circuit_peering_params[:peering_name], circuit_peering)
|
12
|
+
rescue MsRestAzure::AzureOperationError => e
|
13
|
+
raise_azure_exception(e, msg)
|
14
|
+
end
|
15
|
+
Fog::Logger.debug "Express Route Circuit Peering #{circuit_peering_params[:peering_name]} created/updated successfully."
|
16
|
+
peering
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def get_circuit_peering_object(circuit_peering_params)
|
22
|
+
circuit_peering = Azure::ARM::Network::Models::ExpressRouteCircuitPeering.new
|
23
|
+
circuit_peering.name = circuit_peering_params[:peering_name]
|
24
|
+
circuit_peering.peering_type = circuit_peering_params[:peering_type]
|
25
|
+
circuit_peering.peer_asn = circuit_peering_params[:peer_asn]
|
26
|
+
circuit_peering.primary_peer_address_prefix = circuit_peering_params[:primary_peer_address_prefix]
|
27
|
+
circuit_peering.secondary_peer_address_prefix = circuit_peering_params[:secondary_peer_address_prefix]
|
28
|
+
circuit_peering.vlan_id = circuit_peering_params[:vlan_id]
|
29
|
+
|
30
|
+
if circuit_peering_params[:peering_type].casecmp(MICROSOFT_PEERING) == 0
|
31
|
+
peering_config = Azure::ARM::Network::Models::ExpressRouteCircuitPeeringConfig.new
|
32
|
+
peering_config.advertised_public_prefixes = circuit_peering_params[:advertised_public_prefixes]
|
33
|
+
peering_config.advertised_public_prefixes_state = circuit_peering_params[:advertised_public_prefix_state]
|
34
|
+
peering_config.customer_asn = circuit_peering_params[:customer_asn]
|
35
|
+
peering_config.routing_registry_name = circuit_peering_params[:routing_registry_name]
|
36
|
+
circuit_peering.microsoft_peering_config = peering_config
|
37
|
+
end
|
38
|
+
|
39
|
+
circuit_peering
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Mock class for Network Request
|
44
|
+
class Mock
|
45
|
+
def create_or_update_express_route_circuit_peering(*)
|
46
|
+
{
|
47
|
+
'name' => 'PeeringName',
|
48
|
+
'properties' => {
|
49
|
+
'peeringType' => 'MicrosoftPeering',
|
50
|
+
'peerASN' => 100,
|
51
|
+
'primaryPeerAddressPrefix' => '192.168.1.0/30',
|
52
|
+
'secondaryPeerAddressPrefix' => '192.168.2.0/30',
|
53
|
+
'vlanId' => 200,
|
54
|
+
'microsoftPeeringConfig' => {
|
55
|
+
'advertisedpublicprefixes' => [
|
56
|
+
'11.2.3.4/30',
|
57
|
+
'12.2.3.4/30'
|
58
|
+
],
|
59
|
+
'advertisedPublicPrefixState' => 'NotConfigured',
|
60
|
+
'customerAsn' => 200,
|
61
|
+
'routingRegistryName' => '<name>'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -5,17 +5,16 @@ module Fog
|
|
5
5
|
# Real class for Network Request
|
6
6
|
class Real
|
7
7
|
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
|
8
|
-
|
8
|
+
msg = "Creating/Updating Network Interface Card: #{name}"
|
9
|
+
Fog::Logger.debug msg
|
9
10
|
network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
|
10
11
|
begin
|
11
|
-
|
12
|
-
result = promise.value!
|
13
|
-
Fog::Logger.debug "Network Interface #{name} created/updated successfully."
|
14
|
-
Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
|
12
|
+
network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
|
15
13
|
rescue MsRestAzure::AzureOperationError => e
|
16
|
-
msg
|
17
|
-
raise msg
|
14
|
+
raise_azure_exception(e, msg)
|
18
15
|
end
|
16
|
+
Fog::Logger.debug "Network Interface #{name} created/updated successfully."
|
17
|
+
network_interface_obj
|
19
18
|
end
|
20
19
|
|
21
20
|
private
|
@@ -29,23 +28,17 @@ module Fog
|
|
29
28
|
public_ipaddress.id = public_ip_address_id
|
30
29
|
end
|
31
30
|
|
32
|
-
ip_configs_props = Azure::ARM::Network::Models::NetworkInterfaceIPConfigurationPropertiesFormat.new
|
33
|
-
ip_configs_props.private_ipallocation_method = private_ip_allocation_method
|
34
|
-
ip_configs_props.private_ipaddress = private_ip_address
|
35
|
-
ip_configs_props.public_ipaddress = public_ipaddress
|
36
|
-
ip_configs_props.subnet = subnet
|
37
|
-
|
38
31
|
ip_configs = Azure::ARM::Network::Models::NetworkInterfaceIPConfiguration.new
|
39
32
|
ip_configs.name = ip_config_name
|
40
|
-
ip_configs.
|
41
|
-
|
42
|
-
|
43
|
-
|
33
|
+
ip_configs.private_ipallocation_method = private_ip_allocation_method
|
34
|
+
ip_configs.private_ipaddress = private_ip_address
|
35
|
+
ip_configs.public_ipaddress = public_ipaddress unless public_ip_address_id.nil?
|
36
|
+
ip_configs.subnet = subnet
|
44
37
|
|
45
38
|
network_interface = Azure::ARM::Network::Models::NetworkInterface.new
|
46
39
|
network_interface.name = name
|
47
40
|
network_interface.location = location
|
48
|
-
network_interface.
|
41
|
+
network_interface.ip_configurations = [ip_configs]
|
49
42
|
|
50
43
|
network_interface
|
51
44
|
end
|
@@ -54,7 +47,7 @@ module Fog
|
|
54
47
|
# Mock class for Network Request
|
55
48
|
class Mock
|
56
49
|
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_configs_name, private_ip_allocation_method, private_ip_address)
|
57
|
-
{
|
50
|
+
nic = {
|
58
51
|
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/networkInterfaces/#{name}",
|
59
52
|
'name' => name,
|
60
53
|
'type' => 'Microsoft.Network/networkInterfaces',
|
@@ -92,6 +85,8 @@ module Fog
|
|
92
85
|
'provisioningState' => 'Succeeded'
|
93
86
|
}
|
94
87
|
}
|
88
|
+
network_interface_mapper = Azure::ARM::Network::Models::NetworkInterface.mapper
|
89
|
+
@network_client.deserialize(network_interface_mapper, nic, 'result.body')
|
95
90
|
end
|
96
91
|
end
|
97
92
|
end
|
@@ -4,43 +4,44 @@ module Fog
|
|
4
4
|
# Real class for Network Request
|
5
5
|
class Real
|
6
6
|
def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
msg = "Creating/Updating Network Security Group #{security_group_name} in Resource Group #{resource_group_name}."
|
8
|
+
Fog::Logger.debug msg
|
9
|
+
|
10
|
+
security_group = get_security_group_object(security_rules, location)
|
10
11
|
|
11
|
-
params = Azure::ARM::Network::Models::NetworkSecurityGroup.new
|
12
|
-
params.location = location
|
13
|
-
params.properties = properties
|
14
12
|
begin
|
15
|
-
|
16
|
-
result = promise.value!
|
17
|
-
Fog::Logger.debug "Network Security Group #{security_group_name} Created/Updated Successfully!"
|
18
|
-
Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
|
13
|
+
security_group = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, security_group)
|
19
14
|
rescue MsRestAzure::AzureOperationError => e
|
20
|
-
msg
|
21
|
-
raise msg
|
15
|
+
raise_azure_exception(e, msg)
|
22
16
|
end
|
17
|
+
|
18
|
+
Fog::Logger.debug "Network Security Group #{security_group_name} Created/Updated Successfully!"
|
19
|
+
security_group
|
23
20
|
end
|
24
21
|
|
25
22
|
private
|
26
23
|
|
27
|
-
def
|
24
|
+
def get_security_group_object(security_rules, location)
|
25
|
+
security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
|
26
|
+
security_group.security_rules = get_security_rule_objects(security_rules)
|
27
|
+
security_group.location = location
|
28
|
+
security_group
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_security_rule_objects(security_rules)
|
28
32
|
rules = []
|
29
33
|
security_rules.each do |sr|
|
30
|
-
properties = Azure::ARM::Network::Models::SecurityRulePropertiesFormat.new
|
31
|
-
properties.description = sr[:description] unless sr[:description].nil?
|
32
|
-
properties.protocol = sr[:protocol]
|
33
|
-
properties.source_port_range = sr[:source_port_range]
|
34
|
-
properties.destination_port_range = sr[:destination_port_range]
|
35
|
-
properties.source_address_prefix = sr[:source_address_prefix]
|
36
|
-
properties.destination_address_prefix = sr[:destination_address_prefix]
|
37
|
-
properties.access = sr[:access]
|
38
|
-
properties.priority = sr[:priority]
|
39
|
-
properties.direction = sr[:direction]
|
40
|
-
|
41
34
|
security_rule = Azure::ARM::Network::Models::SecurityRule.new
|
35
|
+
security_rule.description = sr[:description] unless sr[:description].nil?
|
36
|
+
security_rule.protocol = sr[:protocol]
|
37
|
+
security_rule.source_port_range = sr[:source_port_range]
|
38
|
+
security_rule.destination_port_range = sr[:destination_port_range]
|
39
|
+
security_rule.source_address_prefix = sr[:source_address_prefix]
|
40
|
+
security_rule.destination_address_prefix = sr[:destination_address_prefix]
|
41
|
+
security_rule.access = sr[:access]
|
42
|
+
security_rule.priority = sr[:priority]
|
43
|
+
security_rule.direction = sr[:direction]
|
42
44
|
security_rule.name = sr[:name]
|
43
|
-
security_rule.properties = properties
|
44
45
|
rules << security_rule
|
45
46
|
end unless security_rules.nil?
|
46
47
|
rules
|
@@ -50,7 +51,7 @@ module Fog
|
|
50
51
|
# Mock class for Network Request
|
51
52
|
class Mock
|
52
53
|
def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
|
53
|
-
{
|
54
|
+
network_security_group = {
|
54
55
|
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/networkSecurityGroups/#{security_group_name}",
|
55
56
|
'name' => security_group_name,
|
56
57
|
'type' => 'Microsoft.Network/networkSecurityGroups',
|
@@ -167,6 +168,8 @@ module Fog
|
|
167
168
|
'provisioningState' => 'Updating'
|
168
169
|
}
|
169
170
|
}
|
171
|
+
nsg_mapper = Azure::ARM::Network::Models::NetworkSecurityGroup.mapper
|
172
|
+
@network_client.deserialize(nsg_mapper, network_security_group, 'result.body')
|
170
173
|
end
|
171
174
|
end
|
172
175
|
end
|
@@ -5,28 +5,26 @@ module Fog
|
|
5
5
|
class Real
|
6
6
|
def create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes)
|
7
7
|
virtual_network = define_vnet_object(location, address_prefixes, dns_servers, subnets)
|
8
|
-
|
9
|
-
Azure::ARM::Network::Models::VirtualNetwork.serialize_object(vnet)
|
8
|
+
create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
|
10
9
|
end
|
11
10
|
|
12
11
|
private
|
13
12
|
|
14
13
|
def create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
|
15
|
-
|
14
|
+
msg = "Creating/Updating Virtual Network: #{virtual_network_name}"
|
15
|
+
Fog::Logger.debug msg
|
16
16
|
begin
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
rescue MsRestAzure::AzureOperationError => e
|
21
|
-
msg = "Exception creating/updating Virtual Network #{virtual_network_name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
|
22
|
-
raise msg
|
17
|
+
virtual_network = @network_client.virtual_networks.create_or_update(resource_group_name, virtual_network_name, virtual_network)
|
18
|
+
rescue MsRestAzure::AzureOperationError => e
|
19
|
+
raise_azure_exception(e, msg)
|
23
20
|
end
|
21
|
+
Fog::Logger.debug "Virtual Network #{virtual_network_name} created/updated successfully."
|
22
|
+
virtual_network
|
24
23
|
end
|
25
24
|
|
26
25
|
def define_vnet_object(location, address_prefixes, dns_servers, subnets)
|
27
26
|
virtual_network = Azure::ARM::Network::Models::VirtualNetwork.new
|
28
27
|
virtual_network.location = location
|
29
|
-
virtual_network_properties = Azure::ARM::Network::Models::VirtualNetworkPropertiesFormat.new
|
30
28
|
|
31
29
|
if address_prefixes.nil? || !address_prefixes.any?
|
32
30
|
address_space = Azure::ARM::Network::Models::AddressSpace.new
|
@@ -35,20 +33,19 @@ module Fog
|
|
35
33
|
address_space = Azure::ARM::Network::Models::AddressSpace.new
|
36
34
|
address_space.address_prefixes = address_prefixes
|
37
35
|
end
|
38
|
-
|
36
|
+
virtual_network.address_space = address_space
|
39
37
|
|
40
38
|
if !dns_servers.nil? && dns_servers.any?
|
41
39
|
dhcp_options = Azure::ARM::Network::Models::DhcpOptions.new
|
42
40
|
dhcp_options.dns_servers = dns_servers
|
43
|
-
|
41
|
+
virtual_network.dhcp_options = dhcp_options
|
44
42
|
end
|
45
43
|
|
46
44
|
if !subnets.nil? && subnets.any?
|
47
45
|
subnet_objects = define_subnet_objects(subnets)
|
48
|
-
|
46
|
+
virtual_network.subnets = subnet_objects
|
49
47
|
end
|
50
48
|
|
51
|
-
virtual_network.properties = virtual_network_properties
|
52
49
|
virtual_network
|
53
50
|
end
|
54
51
|
|
@@ -61,14 +58,12 @@ module Fog
|
|
61
58
|
route_table = Azure::ARM::Network::Models::RouteTable.new
|
62
59
|
route_table.id = subnet[:route_table_id]
|
63
60
|
|
64
|
-
subnet_properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
|
65
|
-
subnet_properties.address_prefix = subnet[:address_prefix]
|
66
|
-
subnet_properties.network_security_group = network_security_group unless subnet[:network_security_group_id].nil?
|
67
|
-
subnet_properties.route_table = route_table unless subnet[:route_table_id].nil?
|
68
|
-
|
69
61
|
subnet_object = Azure::ARM::Network::Models::Subnet.new
|
70
62
|
subnet_object.name = subnet[:name]
|
71
|
-
subnet_object.
|
63
|
+
subnet_object.address_prefix = subnet[:address_prefix]
|
64
|
+
subnet_object.network_security_group = network_security_group unless subnet[:network_security_group_id].nil?
|
65
|
+
subnet_object.route_table = route_table unless subnet[:route_table_id].nil?
|
66
|
+
|
72
67
|
subnet_objects << subnet_object
|
73
68
|
end
|
74
69
|
subnet_objects
|
@@ -78,7 +73,7 @@ module Fog
|
|
78
73
|
# Mock class for Network Request
|
79
74
|
class Mock
|
80
75
|
def create_or_update__virtual_network(*)
|
81
|
-
{
|
76
|
+
virtual_network = {
|
82
77
|
'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-rg/providers/Microsoft.Network/virtualNetworks/fog-vnet',
|
83
78
|
'name' => 'fog-vnet',
|
84
79
|
'type' => 'Microsoft.Network/virtualNetworks',
|
@@ -88,10 +83,7 @@ module Fog
|
|
88
83
|
'addressSpace' =>
|
89
84
|
{
|
90
85
|
'addressPrefixes' =>
|
91
|
-
|
92
|
-
'10.1.0.0/16',
|
93
|
-
'10.2.0.0/16'
|
94
|
-
]
|
86
|
+
%w(10.1.0.0/16 10.2.0.0/16)
|
95
87
|
},
|
96
88
|
'subnets' =>
|
97
89
|
[
|
@@ -109,6 +101,8 @@ module Fog
|
|
109
101
|
'provisioningState' => 'Succeeded'
|
110
102
|
}
|
111
103
|
}
|
104
|
+
vnet_mapper = Azure::ARM::Network::Models::VirtualNetwork.mapper
|
105
|
+
@network_client.deserialize(vnet_mapper, virtual_network, 'result.body')
|
112
106
|
end
|
113
107
|
end
|
114
108
|
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
|
2
|
+
module Fog
|
3
|
+
module Network
|
4
|
+
class AzureRM
|
5
|
+
# Real class for Network Request
|
6
|
+
class Real
|
7
|
+
def create_or_update_virtual_network_gateway(virtual_network_params)
|
8
|
+
msg = "Creating/Updating Virtual Network Gateway: #{virtual_network_params[:name]} in Resource Group: #{virtual_network_params[:resource_group_name]}."
|
9
|
+
Fog::Logger.debug msg
|
10
|
+
network_gateway = get_network_gateway_object(virtual_network_params)
|
11
|
+
begin
|
12
|
+
virtual_network_gateway = @network_client.virtual_network_gateways.create_or_update(virtual_network_params[:resource_group_name], virtual_network_params[:name], network_gateway)
|
13
|
+
rescue MsRestAzure::AzureOperationError => e
|
14
|
+
raise_azure_exception(e, msg)
|
15
|
+
end
|
16
|
+
Fog::Logger.debug "Virtual Network Gateway #{virtual_network_params[:name]} created/updated successfully."
|
17
|
+
virtual_network_gateway
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def get_network_gateway_object(virtual_network_params)
|
23
|
+
network_gateway = Azure::ARM::Network::Models::VirtualNetworkGateway.new
|
24
|
+
|
25
|
+
default_site = MsRestAzure::SubResource.new
|
26
|
+
default_site.id = virtual_network_params[:gateway_default_site]
|
27
|
+
|
28
|
+
sku = Azure::ARM::Network::Models::VirtualNetworkGatewaySku.new
|
29
|
+
sku.name = virtual_network_params[:sku_name]
|
30
|
+
sku.capacity = virtual_network_params[:sku_capacity]
|
31
|
+
sku.tier = virtual_network_params[:sku_tier]
|
32
|
+
|
33
|
+
network_gateway.enable_bgp = virtual_network_params[:enable_bgp]
|
34
|
+
network_gateway.gateway_type = virtual_network_params[:gateway_type]
|
35
|
+
network_gateway.provisioning_state = virtual_network_params[:provisioning_state]
|
36
|
+
network_gateway.vpn_type = virtual_network_params[:vpn_type]
|
37
|
+
network_gateway.sku = sku
|
38
|
+
network_gateway.gateway_default_site = default_site
|
39
|
+
if virtual_network_params[:ip_configurations]
|
40
|
+
ip_configurations = get_ip_configurations(virtual_network_params[:ip_configurations])
|
41
|
+
network_gateway.ip_configurations = ip_configurations
|
42
|
+
end
|
43
|
+
|
44
|
+
if virtual_network_params[:enable_bgp]
|
45
|
+
bgp_settings = Azure::ARM::Network::Models::BgpSettings.new
|
46
|
+
bgp_settings.asn = virtual_network_params[:asn]
|
47
|
+
bgp_settings.bgp_peering_address = virtual_network_params[:bgp_peering_address]
|
48
|
+
bgp_settings.peer_weight = virtual_network_params[:peer_weight]
|
49
|
+
network_gateway.bgp_settings = bgp_settings
|
50
|
+
end
|
51
|
+
|
52
|
+
if virtual_network_params[:vpn_client_configuration]
|
53
|
+
vpn_client_config = get_vpn_client_config(virtual_network_params[:vpn_client_configuration])
|
54
|
+
network_gateway.vpn_client_configuration = vpn_client_config
|
55
|
+
end
|
56
|
+
|
57
|
+
network_gateway.name = virtual_network_params[:name]
|
58
|
+
network_gateway.location = virtual_network_params[:location]
|
59
|
+
network_gateway.tags = virtual_network_params[:tags] if network_gateway.tags.nil?
|
60
|
+
|
61
|
+
network_gateway
|
62
|
+
end
|
63
|
+
|
64
|
+
def get_vpn_client_config(vpn_client_config)
|
65
|
+
client_config = Azure::ARM::Network::Models::VpnClientConfiguration.new
|
66
|
+
|
67
|
+
address_pool = Azure::ARM::Network::Models::AddressSpace.new
|
68
|
+
address_pool.address_prefixes = vpn_client_config[:address_pool]
|
69
|
+
client_config.vpn_client_address_pool = address_pool
|
70
|
+
|
71
|
+
if vpn_client_config[:root_certificates]
|
72
|
+
root_certificates = get_root_certificates(vpn_client_config[:root_certificates])
|
73
|
+
client_config.vpn_client_root_certificates = root_certificates
|
74
|
+
end
|
75
|
+
|
76
|
+
if vpn_client_config[:revoked_certificates]
|
77
|
+
revoked_certificates = get_revoked_certificates(vpn_client_config[:revoked_certificates])
|
78
|
+
client_config.vpn_client_revoked_certificates = revoked_certificates
|
79
|
+
end
|
80
|
+
client_config
|
81
|
+
end
|
82
|
+
|
83
|
+
def get_root_certificates(root_certificates)
|
84
|
+
root_certs = []
|
85
|
+
root_certificates.each do |root_cert|
|
86
|
+
root_certificate = Azure::ARM::Network::Models::VpnClientRootCertificate.new
|
87
|
+
root_certificate.public_cert_data = root_cert[:public_cert_data]
|
88
|
+
root_certificate.provisioning_state = root_cert[:provisioning_state]
|
89
|
+
root_certificate.name = root_cert[:name]
|
90
|
+
root_certs.push(root_certificate)
|
91
|
+
end
|
92
|
+
root_certs
|
93
|
+
end
|
94
|
+
|
95
|
+
def get_revoked_certificates(revoked_certificates)
|
96
|
+
revoked_certs = []
|
97
|
+
revoked_certificates.each do |revoked_cert|
|
98
|
+
revoked_certificate = Azure::ARM::Network::Models::VpnClientRevokedCertificate.new
|
99
|
+
revoked_certificate.thumbprint = revoked_cert[:thumbprint]
|
100
|
+
revoked_certificate.provisioning_state = revoked_cert[:provisioning_state]
|
101
|
+
revoked_certificate.name = revoked_cert[:name]
|
102
|
+
revoked_certs.push(revoked_certificate)
|
103
|
+
end
|
104
|
+
revoked_certs
|
105
|
+
end
|
106
|
+
|
107
|
+
def get_ip_configurations(ip_configurations)
|
108
|
+
ip_configs = []
|
109
|
+
ip_configurations.each do |ip_config|
|
110
|
+
ip_configuration = Azure::ARM::Network::Models::VirtualNetworkGatewayIPConfiguration.new
|
111
|
+
ip_configuration.private_ipallocation_method = ip_config[:private_ipallocation_method]
|
112
|
+
unless ip_config[:subnet_id].nil?
|
113
|
+
subnet = Azure::ARM::Network::Models::Subnet.new
|
114
|
+
subnet.id = ip_config[:subnet_id]
|
115
|
+
ip_configuration.subnet = subnet
|
116
|
+
end
|
117
|
+
unless ip_config[:public_ipaddress_id].nil?
|
118
|
+
pip = Azure::ARM::Network::Models::PublicIPAddress.new
|
119
|
+
pip.id = ip_config[:public_ipaddress_id]
|
120
|
+
ip_configuration.public_ipaddress = pip
|
121
|
+
end
|
122
|
+
|
123
|
+
ip_configuration.name = ip_config[:name]
|
124
|
+
ip_configs.push(ip_configuration)
|
125
|
+
end
|
126
|
+
ip_configs
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Mock class for Network Request
|
131
|
+
class Mock
|
132
|
+
def create_or_update_virtual_network_gateway(*)
|
133
|
+
gateway = {
|
134
|
+
'name' => 'myvirtualgateway1',
|
135
|
+
'location' => 'West US',
|
136
|
+
'tags' => { 'key1' => 'value1' },
|
137
|
+
'properties' => {
|
138
|
+
'gatewayType' => 'DynamicRouting',
|
139
|
+
'gatewaySize' => 'Default',
|
140
|
+
'bgpEnabled' => true,
|
141
|
+
'vpnClientAddressPool' => ['{vpnClientAddressPoolPrefix}'],
|
142
|
+
'defaultSites' => ['mysite1']
|
143
|
+
}
|
144
|
+
}
|
145
|
+
gateway_mapper = Azure::ARM::Network::Models::VirtualNetworkGateway.mapper
|
146
|
+
@network_client.deserialize(gateway_mapper, gateway, 'result.body')
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|