far-gem 0.5.1
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 +7 -0
- data/.arclint +8 -0
- data/.codeclimate.yml +17 -0
- data/.gitignore +6 -0
- data/.hound.yml +2 -0
- data/.rubocop.yml +38 -0
- data/.travis.yml +47 -0
- data/CHANGELOG.md +356 -0
- data/CONTRIBUTING.md +40 -0
- data/CONTRIBUTORS.md +12 -0
- data/Gemfile +3 -0
- data/LICENSE.md +20 -0
- data/README.md +96 -0
- data/fog-azure-rm.gemspec +37 -0
- data/lib/fog/azurerm.rb +88 -0
- data/lib/fog/azurerm/application_gateway.rb +75 -0
- data/lib/fog/azurerm/async_response.rb +44 -0
- data/lib/fog/azurerm/compute.rb +102 -0
- data/lib/fog/azurerm/config.rb +1 -0
- data/lib/fog/azurerm/constants.rb +71 -0
- data/lib/fog/azurerm/credentials.rb +40 -0
- data/lib/fog/azurerm/dns.rb +70 -0
- data/lib/fog/azurerm/docs/application_gateway.md +245 -0
- data/lib/fog/azurerm/docs/compute.md +499 -0
- data/lib/fog/azurerm/docs/dns.md +149 -0
- data/lib/fog/azurerm/docs/key_vault.md +91 -0
- data/lib/fog/azurerm/docs/network.md +1132 -0
- data/lib/fog/azurerm/docs/resources.md +178 -0
- data/lib/fog/azurerm/docs/sql.md +170 -0
- data/lib/fog/azurerm/docs/storage.md +398 -0
- data/lib/fog/azurerm/docs/structure.md +53 -0
- data/lib/fog/azurerm/docs/traffic_manager.md +161 -0
- data/lib/fog/azurerm/key_vault.rb +51 -0
- data/lib/fog/azurerm/models/application_gateway/backend_address_pool.rb +24 -0
- data/lib/fog/azurerm/models/application_gateway/backend_http_setting.rb +28 -0
- data/lib/fog/azurerm/models/application_gateway/frontend_ip_configuration.rb +26 -0
- data/lib/fog/azurerm/models/application_gateway/frontend_port.rb +20 -0
- data/lib/fog/azurerm/models/application_gateway/gateway.rb +617 -0
- data/lib/fog/azurerm/models/application_gateway/gateways.rb +30 -0
- data/lib/fog/azurerm/models/application_gateway/http_listener.rb +30 -0
- data/lib/fog/azurerm/models/application_gateway/ip_configuration.rb +26 -0
- data/lib/fog/azurerm/models/application_gateway/probe.rb +30 -0
- data/lib/fog/azurerm/models/application_gateway/request_routing_rule.rb +27 -0
- data/lib/fog/azurerm/models/application_gateway/ssl_certificate.rb +24 -0
- data/lib/fog/azurerm/models/application_gateway/url_path_map.rb +30 -0
- data/lib/fog/azurerm/models/compute/availability_set.rb +67 -0
- data/lib/fog/azurerm/models/compute/availability_sets.rb +35 -0
- data/lib/fog/azurerm/models/compute/caching_types.rb +13 -0
- data/lib/fog/azurerm/models/compute/creation_data.rb +23 -0
- data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
- data/lib/fog/azurerm/models/compute/disk_create_option.rb +16 -0
- data/lib/fog/azurerm/models/compute/disk_create_option_types.rb +13 -0
- data/lib/fog/azurerm/models/compute/encryption_settings.rb +29 -0
- data/lib/fog/azurerm/models/compute/image_disk_reference.rb +15 -0
- data/lib/fog/azurerm/models/compute/managed_disk.rb +77 -0
- data/lib/fog/azurerm/models/compute/managed_disks.rb +43 -0
- data/lib/fog/azurerm/models/compute/operation_status_response.rb +18 -0
- data/lib/fog/azurerm/models/compute/server.rb +268 -0
- data/lib/fog/azurerm/models/compute/servers.rb +47 -0
- data/lib/fog/azurerm/models/compute/virtual_machine_extension.rb +76 -0
- data/lib/fog/azurerm/models/compute/virtual_machine_extensions.rb +31 -0
- data/lib/fog/azurerm/models/dns/a_record.rb +15 -0
- data/lib/fog/azurerm/models/dns/cname_record.rb +15 -0
- data/lib/fog/azurerm/models/dns/record_set.rb +103 -0
- data/lib/fog/azurerm/models/dns/record_sets.rb +34 -0
- data/lib/fog/azurerm/models/dns/zone.rb +58 -0
- data/lib/fog/azurerm/models/dns/zones.rb +29 -0
- data/lib/fog/azurerm/models/key_vault/access_policy_entry.rb +27 -0
- data/lib/fog/azurerm/models/key_vault/vault.rb +78 -0
- data/lib/fog/azurerm/models/key_vault/vaults.rb +27 -0
- data/lib/fog/azurerm/models/network/express_route_circuit.rb +86 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_authorization.rb +50 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_authorizations.rb +28 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +91 -0
- data/lib/fog/azurerm/models/network/express_route_circuit_peerings.rb +27 -0
- data/lib/fog/azurerm/models/network/express_route_circuits.rb +30 -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 +18 -0
- data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +27 -0
- data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +26 -0
- data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +26 -0
- data/lib/fog/azurerm/models/network/ipallocation_method.rb +12 -0
- data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
- data/lib/fog/azurerm/models/network/load_balancers.rb +36 -0
- data/lib/fog/azurerm/models/network/load_balancing_rule.rb +37 -0
- data/lib/fog/azurerm/models/network/local_network_gateway.rb +62 -0
- data/lib/fog/azurerm/models/network/local_network_gateways.rb +27 -0
- data/lib/fog/azurerm/models/network/network_interface.rb +121 -0
- data/lib/fog/azurerm/models/network/network_interfaces.rb +30 -0
- data/lib/fog/azurerm/models/network/network_security_group.rb +114 -0
- data/lib/fog/azurerm/models/network/network_security_groups.rb +30 -0
- data/lib/fog/azurerm/models/network/network_security_rule.rb +66 -0
- data/lib/fog/azurerm/models/network/network_security_rules.rb +31 -0
- data/lib/fog/azurerm/models/network/path_rule.rb +30 -0
- data/lib/fog/azurerm/models/network/probe.rb +28 -0
- data/lib/fog/azurerm/models/network/public_ip.rb +70 -0
- data/lib/fog/azurerm/models/network/public_ips.rb +30 -0
- data/lib/fog/azurerm/models/network/security_rule_access.rb +12 -0
- data/lib/fog/azurerm/models/network/security_rule_direction.rb +12 -0
- data/lib/fog/azurerm/models/network/security_rule_protocol.rb +13 -0
- data/lib/fog/azurerm/models/network/subnet.rb +66 -0
- data/lib/fog/azurerm/models/network/subnets.rb +31 -0
- data/lib/fog/azurerm/models/network/virtual_network.rb +109 -0
- data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +137 -0
- data/lib/fog/azurerm/models/network/virtual_network_gateway_connection.rb +76 -0
- data/lib/fog/azurerm/models/network/virtual_network_gateway_connections.rb +27 -0
- data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +30 -0
- data/lib/fog/azurerm/models/network/virtual_networks.rb +36 -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 +25 -0
- data/lib/fog/azurerm/models/resources/azure_resources.rb +32 -0
- data/lib/fog/azurerm/models/resources/dependency.rb +27 -0
- data/lib/fog/azurerm/models/resources/deployment.rb +65 -0
- data/lib/fog/azurerm/models/resources/deployments.rb +30 -0
- data/lib/fog/azurerm/models/resources/provider.rb +27 -0
- data/lib/fog/azurerm/models/resources/provider_resource_type.rb +22 -0
- data/lib/fog/azurerm/models/resources/resource_group.rb +34 -0
- data/lib/fog/azurerm/models/resources/resource_groups.rb +29 -0
- data/lib/fog/azurerm/models/sql/firewall_rule.rb +48 -0
- data/lib/fog/azurerm/models/sql/firewall_rules.rb +32 -0
- data/lib/fog/azurerm/models/sql/sql_database.rb +67 -0
- data/lib/fog/azurerm/models/sql/sql_databases.rb +32 -0
- data/lib/fog/azurerm/models/sql/sql_server.rb +50 -0
- data/lib/fog/azurerm/models/sql/sql_servers.rb +31 -0
- data/lib/fog/azurerm/models/storage/directories.rb +75 -0
- data/lib/fog/azurerm/models/storage/directory.rb +151 -0
- data/lib/fog/azurerm/models/storage/file.rb +263 -0
- data/lib/fog/azurerm/models/storage/files.rb +183 -0
- data/lib/fog/azurerm/models/storage/kind.rb +12 -0
- data/lib/fog/azurerm/models/storage/sku_name.rb +15 -0
- data/lib/fog/azurerm/models/storage/sku_tier.rb +12 -0
- data/lib/fog/azurerm/models/storage/storage_account.rb +92 -0
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +47 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +82 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +30 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +90 -0
- data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +27 -0
- data/lib/fog/azurerm/network.rb +178 -0
- data/lib/fog/azurerm/requests/application_gateway/check_ag_exists.rb +31 -0
- data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +302 -0
- data/lib/fog/azurerm/requests/application_gateway/delete_application_gateway.rb +26 -0
- data/lib/fog/azurerm/requests/application_gateway/get_application_gateway.rb +159 -0
- data/lib/fog/azurerm/requests/application_gateway/list_application_gateways.rb +29 -0
- data/lib/fog/azurerm/requests/application_gateway/start_application_gateway.rb +27 -0
- data/lib/fog/azurerm/requests/application_gateway/stop_application_gateway.rb +27 -0
- data/lib/fog/azurerm/requests/application_gateway/update_sku_attributes.rb +28 -0
- data/lib/fog/azurerm/requests/application_gateway/update_subnet_id_in_gateway_ip_configuration.rb +29 -0
- data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +208 -0
- data/lib/fog/azurerm/requests/compute/check_availability_set_exists.rb +31 -0
- data/lib/fog/azurerm/requests/compute/check_managed_disk_exists.rb +33 -0
- data/lib/fog/azurerm/requests/compute/check_vm_exists.rb +39 -0
- data/lib/fog/azurerm/requests/compute/check_vm_extension_exists.rb +31 -0
- data/lib/fog/azurerm/requests/compute/check_vm_status.rb +38 -0
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +64 -0
- data/lib/fog/azurerm/requests/compute/create_image.rb +68 -0
- data/lib/fog/azurerm/requests/compute/create_or_update_managed_disk.rb +121 -0
- data/lib/fog/azurerm/requests/compute/create_or_update_vm_extension.rb +63 -0
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +403 -0
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +27 -0
- data/lib/fog/azurerm/requests/compute/delete_image.rb +29 -0
- data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +29 -0
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/delete_vm_extension.rb +28 -0
- data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +102 -0
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/get_availability_set.rb +32 -0
- data/lib/fog/azurerm/requests/compute/get_image.rb +45 -0
- data/lib/fog/azurerm/requests/compute/get_managed_disk.rb +64 -0
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +88 -0
- data/lib/fog/azurerm/requests/compute/get_vm_extension.rb +46 -0
- data/lib/fog/azurerm/requests/compute/grant_access_to_managed_disk.rb +30 -0
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +40 -0
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +64 -0
- data/lib/fog/azurerm/requests/compute/list_managed_disks_by_rg.rb +66 -0
- data/lib/fog/azurerm/requests/compute/list_managed_disks_in_subscription.rb +66 -0
- data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +69 -0
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/compute/revoke_access_to_managed_disk.rb +33 -0
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +35 -0
- data/lib/fog/azurerm/requests/dns/check_record_set_exists.rb +31 -0
- data/lib/fog/azurerm/requests/dns/check_zone_exists.rb +34 -0
- data/lib/fog/azurerm/requests/dns/create_or_update_record_set.rb +72 -0
- data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +56 -0
- data/lib/fog/azurerm/requests/dns/delete_record_set.rb +28 -0
- data/lib/fog/azurerm/requests/dns/delete_zone.rb +28 -0
- data/lib/fog/azurerm/requests/dns/get_record_set.rb +47 -0
- data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +32 -0
- data/lib/fog/azurerm/requests/dns/get_zone.rb +41 -0
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +63 -0
- data/lib/fog/azurerm/requests/dns/list_zones.rb +72 -0
- data/lib/fog/azurerm/requests/key_vault/check_vault_exists.rb +31 -0
- data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +106 -0
- data/lib/fog/azurerm/requests/key_vault/delete_vault.rb +28 -0
- data/lib/fog/azurerm/requests/key_vault/get_vault.rb +54 -0
- data/lib/fog/azurerm/requests/key_vault/list_vaults.rb +56 -0
- data/lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb +68 -0
- data/lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb +76 -0
- data/lib/fog/azurerm/requests/network/add_security_rules.rb +154 -0
- data/lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb +71 -0
- data/lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb +57 -0
- data/lib/fog/azurerm/requests/network/attach_resource_to_nic.rb +89 -0
- data/lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb +57 -0
- data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_express_route_circuit_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_load_balancer_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_local_net_gateway_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_net_sec_group_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_net_sec_rule_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_network_interface_exists.rb +31 -0
- data/lib/fog/azurerm/requests/network/check_public_ip_exists.rb +33 -0
- data/lib/fog/azurerm/requests/network/check_subnet_exists.rb +32 -0
- data/lib/fog/azurerm/requests/network/check_virtual_network_exists.rb +33 -0
- data/lib/fog/azurerm/requests/network/check_vnet_gateway_connection_exists.rb +32 -0
- data/lib/fog/azurerm/requests/network/check_vnet_gateway_exists.rb +32 -0
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +189 -0
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +111 -0
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_authorization.rb +51 -0
- data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_peering.rb +79 -0
- data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +79 -0
- data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +121 -0
- data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +178 -0
- data/lib/fog/azurerm/requests/network/create_or_update_network_security_rule.rb +59 -0
- data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +61 -0
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +111 -0
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway.rb +159 -0
- data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +83 -0
- data/lib/fog/azurerm/requests/network/create_subnet.rb +54 -0
- data/lib/fog/azurerm/requests/network/delete_express_route_circuit.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_express_route_circuit_authorization.rb +29 -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 +28 -0
- data/lib/fog/azurerm/requests/network/delete_local_network_gateway.rb +29 -0
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +30 -0
- data/lib/fog/azurerm/requests/network/delete_network_security_rule.rb +30 -0
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway.rb +28 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway_connection.rb +29 -0
- data/lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb +51 -0
- data/lib/fog/azurerm/requests/network/detach_resource_from_nic.rb +81 -0
- data/lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb +51 -0
- data/lib/fog/azurerm/requests/network/get_available_ipaddresses_count.rb +23 -0
- data/lib/fog/azurerm/requests/network/get_connection_shared_key.rb +25 -0
- data/lib/fog/azurerm/requests/network/get_express_route_circuit.rb +51 -0
- data/lib/fog/azurerm/requests/network/get_express_route_circuit_authorization.rb +35 -0
- data/lib/fog/azurerm/requests/network/get_express_route_circuit_peering.rb +48 -0
- data/lib/fog/azurerm/requests/network/get_load_balancer.rb +170 -0
- data/lib/fog/azurerm/requests/network/get_local_network_gateway.rb +47 -0
- data/lib/fog/azurerm/requests/network/get_network_interface.rb +60 -0
- data/lib/fog/azurerm/requests/network/get_network_security_group.rb +165 -0
- data/lib/fog/azurerm/requests/network/get_network_security_rule.rb +47 -0
- data/lib/fog/azurerm/requests/network/get_public_ip.rb +41 -0
- data/lib/fog/azurerm/requests/network/get_subnet.rb +37 -0
- data/lib/fog/azurerm/requests/network/get_virtual_network.rb +62 -0
- data/lib/fog/azurerm/requests/network/get_virtual_network_gateway.rb +45 -0
- data/lib/fog/azurerm/requests/network/get_virtual_network_gateway_connection.rb +47 -0
- data/lib/fog/azurerm/requests/network/list_express_route_circuit_authorizations.rb +37 -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 +31 -0
- data/lib/fog/azurerm/requests/network/list_load_balancers_in_subscription.rb +31 -0
- data/lib/fog/azurerm/requests/network/list_local_network_gateways.rb +50 -0
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +67 -0
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +169 -0
- data/lib/fog/azurerm/requests/network/list_network_security_rules.rb +51 -0
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +46 -0
- data/lib/fog/azurerm/requests/network/list_subnets.rb +55 -0
- data/lib/fog/azurerm/requests/network/list_virtual_network_gateway_connections.rb +50 -0
- data/lib/fog/azurerm/requests/network/list_virtual_network_gateways.rb +43 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +74 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks_in_subscription.rb +74 -0
- data/lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb +69 -0
- data/lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb +69 -0
- data/lib/fog/azurerm/requests/network/remove_security_rule.rb +157 -0
- data/lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb +59 -0
- data/lib/fog/azurerm/requests/network/reset_connection_shared_key.rb +36 -0
- data/lib/fog/azurerm/requests/network/set_connection_shared_key.rb +36 -0
- data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +40 -0
- data/lib/fog/azurerm/requests/resources/check_deployment_exists.rb +30 -0
- data/lib/fog/azurerm/requests/resources/check_resource_group_exists.rb +30 -0
- data/lib/fog/azurerm/requests/resources/create_deployment.rb +97 -0
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +40 -0
- data/lib/fog/azurerm/requests/resources/delete_deployment.rb +28 -0
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +28 -0
- data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +44 -0
- data/lib/fog/azurerm/requests/resources/get_deployment.rb +81 -0
- data/lib/fog/azurerm/requests/resources/get_resource_group.rb +47 -0
- data/lib/fog/azurerm/requests/resources/list_deployments.rb +77 -0
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +51 -0
- data/lib/fog/azurerm/requests/resources/list_tagged_resources.rb +50 -0
- data/lib/fog/azurerm/requests/resources/tag_resource.rb +43 -0
- data/lib/fog/azurerm/requests/sql/check_database_exists.rb +21 -0
- data/lib/fog/azurerm/requests/sql/check_firewall_rule_exists.rb +21 -0
- data/lib/fog/azurerm/requests/sql/check_sql_server_exists.rb +21 -0
- data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +71 -0
- data/lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb +42 -0
- data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +53 -0
- data/lib/fog/azurerm/requests/sql/delete_database.rb +28 -0
- data/lib/fog/azurerm/requests/sql/delete_firewall_rule.rb +29 -0
- data/lib/fog/azurerm/requests/sql/delete_sql_server.rb +29 -0
- data/lib/fog/azurerm/requests/sql/get_database.rb +42 -0
- data/lib/fog/azurerm/requests/sql/get_firewall_rule.rb +37 -0
- data/lib/fog/azurerm/requests/sql/get_sql_server.rb +34 -0
- data/lib/fog/azurerm/requests/sql/list_databases.rb +58 -0
- data/lib/fog/azurerm/requests/sql/list_firewall_rules.rb +49 -0
- data/lib/fog/azurerm/requests/sql/list_sql_servers.rb +44 -0
- data/lib/fog/azurerm/requests/storage/acquire_blob_lease.rb +32 -0
- data/lib/fog/azurerm/requests/storage/acquire_container_lease.rb +32 -0
- data/lib/fog/azurerm/requests/storage/check_container_exists.rb +30 -0
- data/lib/fog/azurerm/requests/storage/check_storage_account_exists.rb +37 -0
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +44 -0
- data/lib/fog/azurerm/requests/storage/commit_blob_blocks.rb +30 -0
- data/lib/fog/azurerm/requests/storage/compare_container_blobs.rb +148 -0
- data/lib/fog/azurerm/requests/storage/copy_blob.rb +30 -0
- data/lib/fog/azurerm/requests/storage/copy_blob_from_uri.rb +30 -0
- data/lib/fog/azurerm/requests/storage/create_block_blob.rb +108 -0
- data/lib/fog/azurerm/requests/storage/create_container.rb +40 -0
- data/lib/fog/azurerm/requests/storage/create_disk.rb +62 -0
- data/lib/fog/azurerm/requests/storage/create_page_blob.rb +31 -0
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +66 -0
- data/lib/fog/azurerm/requests/storage/delete_blob.rb +32 -0
- data/lib/fog/azurerm/requests/storage/delete_container.rb +31 -0
- data/lib/fog/azurerm/requests/storage/delete_disk.rb +36 -0
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +27 -0
- data/lib/fog/azurerm/requests/storage/get_blob.rb +163 -0
- data/lib/fog/azurerm/requests/storage/get_blob_http_url.rb +39 -0
- data/lib/fog/azurerm/requests/storage/get_blob_https_url.rb +39 -0
- data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +55 -0
- data/lib/fog/azurerm/requests/storage/get_blob_url.rb +28 -0
- data/lib/fog/azurerm/requests/storage/get_container_acl.rb +30 -0
- data/lib/fog/azurerm/requests/storage/get_container_properties.rb +41 -0
- data/lib/fog/azurerm/requests/storage/get_container_url.rb +34 -0
- data/lib/fog/azurerm/requests/storage/get_storage_access_keys.rb +32 -0
- data/lib/fog/azurerm/requests/storage/get_storage_account.rb +36 -0
- data/lib/fog/azurerm/requests/storage/list_blobs.rb +168 -0
- data/lib/fog/azurerm/requests/storage/list_containers.rb +73 -0
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +49 -0
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +49 -0
- data/lib/fog/azurerm/requests/storage/multipart_save_block_blob.rb +110 -0
- data/lib/fog/azurerm/requests/storage/put_blob_block.rb +30 -0
- data/lib/fog/azurerm/requests/storage/put_blob_metadata.rb +31 -0
- data/lib/fog/azurerm/requests/storage/put_blob_pages.rb +30 -0
- data/lib/fog/azurerm/requests/storage/put_blob_properties.rb +31 -0
- data/lib/fog/azurerm/requests/storage/put_container_acl.rb +31 -0
- data/lib/fog/azurerm/requests/storage/put_container_metadata.rb +31 -0
- data/lib/fog/azurerm/requests/storage/release_blob_lease.rb +30 -0
- data/lib/fog/azurerm/requests/storage/release_container_lease.rb +30 -0
- data/lib/fog/azurerm/requests/storage/save_page_blob.rb +111 -0
- data/lib/fog/azurerm/requests/storage/update_storage_account.rb +59 -0
- data/lib/fog/azurerm/requests/storage/wait_blob_copy_operation_to_finish.rb +56 -0
- data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_endpoint_exists.rb +31 -0
- data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_profile_exists.rb +31 -0
- data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_endpoint.rb +54 -0
- data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +130 -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/resources.rb +71 -0
- data/lib/fog/azurerm/sql.rb +66 -0
- data/lib/fog/azurerm/storage.rb +136 -0
- data/lib/fog/azurerm/traffic_manager.rb +62 -0
- data/lib/fog/azurerm/utilities/general.rb +179 -0
- data/lib/fog/azurerm/utilities/logger_messages.yml +19 -0
- data/lib/fog/azurerm/version.rb +5 -0
- data/rake-script.sh +10 -0
- data/rakefile +29 -0
- data/test/api_stub.rb +145 -0
- data/test/api_stub/models/application_gateway/gateway.rb +165 -0
- data/test/api_stub/models/compute/availability_set.rb +69 -0
- data/test/api_stub/models/compute/managed_disk.rb +59 -0
- data/test/api_stub/models/compute/server.rb +268 -0
- data/test/api_stub/models/compute/virtual_machine_extension.rb +31 -0
- data/test/api_stub/models/dns/record_set.rb +57 -0
- data/test/api_stub/models/dns/zone.rb +29 -0
- data/test/api_stub/models/key_vault/vault.rb +39 -0
- data/test/api_stub/models/network/express_route_circuit.rb +47 -0
- data/test/api_stub/models/network/express_route_circuit_authorization.rb +22 -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 +154 -0
- data/test/api_stub/models/network/local_network_gateway.rb +31 -0
- data/test/api_stub/models/network/network_interface.rb +72 -0
- data/test/api_stub/models/network/network_security_group.rb +95 -0
- data/test/api_stub/models/network/network_security_rule.rb +30 -0
- data/test/api_stub/models/network/public_ip.rb +36 -0
- data/test/api_stub/models/network/subnet.rb +36 -0
- data/test/api_stub/models/network/virtual_network.rb +62 -0
- data/test/api_stub/models/network/virtual_network_gateway.rb +26 -0
- data/test/api_stub/models/network/virtual_network_gateway_connection.rb +31 -0
- data/test/api_stub/models/resources/deployment.rb +116 -0
- data/test/api_stub/models/resources/resource.rb +43 -0
- data/test/api_stub/models/resources/resource_group.rb +24 -0
- data/test/api_stub/models/sql/sql_database.rb +30 -0
- data/test/api_stub/models/sql/sql_firewall_rule.rb +24 -0
- data/test/api_stub/models/sql/sql_server.rb +24 -0
- data/test/api_stub/models/storage/directory.rb +178 -0
- data/test/api_stub/models/storage/file.rb +181 -0
- data/test/api_stub/models/storage/storageaccount.rb +22 -0
- data/test/api_stub/models/traffic_manager/traffic_manager_end_point.rb +27 -0
- data/test/api_stub/models/traffic_manager/traffic_manager_profile.rb +75 -0
- data/test/api_stub/requests/application_gateway/gateway.rb +461 -0
- data/test/api_stub/requests/compute/availability_set.rb +114 -0
- data/test/api_stub/requests/compute/image.rb +41 -0
- data/test/api_stub/requests/compute/managed_disk.rb +102 -0
- data/test/api_stub/requests/compute/virtual_machine.rb +1018 -0
- data/test/api_stub/requests/compute/virtual_machine_extension.rb +46 -0
- data/test/api_stub/requests/dns/record_set.rb +75 -0
- data/test/api_stub/requests/dns/zone.rb +52 -0
- data/test/api_stub/requests/key_vault/vault.rb +95 -0
- data/test/api_stub/requests/network/express_route_circuit.rb +100 -0
- data/test/api_stub/requests/network/express_route_circuit_authorization.rb +31 -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 +388 -0
- data/test/api_stub/requests/network/local_network_gateway.rb +62 -0
- data/test/api_stub/requests/network/network_interface.rb +264 -0
- data/test/api_stub/requests/network/network_security_group.rb +225 -0
- data/test/api_stub/requests/network/network_security_rule.rb +72 -0
- data/test/api_stub/requests/network/public_ip.rb +71 -0
- data/test/api_stub/requests/network/subnet.rb +71 -0
- data/test/api_stub/requests/network/virtual_network.rb +125 -0
- data/test/api_stub/requests/network/virtual_network_gateway.rb +49 -0
- data/test/api_stub/requests/network/virtual_network_gateway_connection.rb +68 -0
- data/test/api_stub/requests/resources/deployment.rb +68 -0
- data/test/api_stub/requests/resources/resource.rb +45 -0
- data/test/api_stub/requests/resources/resource_group.rb +51 -0
- data/test/api_stub/requests/sql/database.rb +71 -0
- data/test/api_stub/requests/sql/firewall_rule.rb +50 -0
- data/test/api_stub/requests/sql/sql_server.rb +49 -0
- data/test/api_stub/requests/storage/directory.rb +89 -0
- data/test/api_stub/requests/storage/file.rb +243 -0
- data/test/api_stub/requests/storage/storageaccount.rb +126 -0
- data/test/api_stub/requests/traffic_manager/traffic_manager_endpoint.rb +41 -0
- data/test/api_stub/requests/traffic_manager/traffic_manager_profile.rb +166 -0
- data/test/integration/README.md +14 -0
- data/test/integration/application_gateway.rb +260 -0
- data/test/integration/availability_set.rb +184 -0
- data/test/integration/blob.rb +297 -0
- data/test/integration/container.rb +160 -0
- data/test/integration/credentials/azure.yml +5 -0
- data/test/integration/data_disk.rb +90 -0
- data/test/integration/deployment.rb +78 -0
- data/test/integration/express_route_circuit.rb +139 -0
- data/test/integration/external_load_balancer.rb +156 -0
- data/test/integration/internal_load_balancer.rb +145 -0
- data/test/integration/key_vault.rb +99 -0
- data/test/integration/local_network_gateway.rb +91 -0
- data/test/integration/managed_disk.rb +118 -0
- data/test/integration/network_interface.rb +157 -0
- data/test/integration/network_security_group.rb +134 -0
- data/test/integration/network_security_rule.rb +102 -0
- data/test/integration/public_ip.rb +84 -0
- data/test/integration/record_set.rb +126 -0
- data/test/integration/resource_group.rb +62 -0
- data/test/integration/resource_tag.rb +93 -0
- data/test/integration/server.rb +356 -0
- data/test/integration/server_custom_image.rb +227 -0
- data/test/integration/sql_server.rb +183 -0
- data/test/integration/storage_account.rb +135 -0
- data/test/integration/subnet.rb +122 -0
- data/test/integration/traffic_manager.rb +142 -0
- data/test/integration/virtual_machine_extension.rb +165 -0
- data/test/integration/virtual_network.rb +163 -0
- data/test/integration/virtual_network_gateway.rb +119 -0
- data/test/integration/virtual_network_gateway_connection.rb +221 -0
- data/test/integration/virtual_network_gateway_connection_to_express_route.rb +123 -0
- data/test/integration/zone.rb +81 -0
- data/test/models/application_gateway/test_gateway.rb +136 -0
- data/test/models/application_gateway/test_gateways.rb +55 -0
- data/test/models/compute/test_availability_set.rb +57 -0
- data/test/models/compute/test_availability_sets.rb +55 -0
- data/test/models/compute/test_data_disk.rb +23 -0
- data/test/models/compute/test_managed_disk.rb +62 -0
- data/test/models/compute/test_managed_disks.rb +68 -0
- data/test/models/compute/test_server.rb +236 -0
- data/test/models/compute/test_servers.rb +56 -0
- data/test/models/compute/test_virtual_machine_extension.rb +61 -0
- data/test/models/compute/test_virtual_machine_extensions.rb +49 -0
- data/test/models/dns/test_record_set.rb +86 -0
- data/test/models/dns/test_record_sets.rb +66 -0
- data/test/models/dns/test_zone.rb +51 -0
- data/test/models/dns/test_zones.rb +51 -0
- data/test/models/key_vault/test_vault.rb +40 -0
- data/test/models/key_vault/test_vaults.rb +55 -0
- data/test/models/network/test_express_route_circuit.rb +52 -0
- data/test/models/network/test_express_route_circuit_authorization.rb +50 -0
- data/test/models/network/test_express_route_circuit_authorizations.rb +56 -0
- data/test/models/network/test_express_route_circuit_peering.rb +53 -0
- data/test/models/network/test_express_route_circuit_peerings.rb +43 -0
- data/test/models/network/test_express_route_circuits.rb +55 -0
- data/test/models/network/test_express_route_service_providers.rb +30 -0
- data/test/models/network/test_load_balancer.rb +52 -0
- data/test/models/network/test_load_balancers.rb +55 -0
- data/test/models/network/test_local_network_gateway.rb +53 -0
- data/test/models/network/test_local_network_gateways.rb +55 -0
- data/test/models/network/test_network_interface.rb +97 -0
- data/test/models/network/test_network_interfaces.rb +55 -0
- data/test/models/network/test_network_security_group.rb +87 -0
- data/test/models/network/test_network_security_groups.rb +54 -0
- data/test/models/network/test_network_security_rule.rb +44 -0
- data/test/models/network/test_network_security_rules.rb +55 -0
- data/test/models/network/test_public_ip.rb +62 -0
- data/test/models/network/test_public_ips.rb +55 -0
- data/test/models/network/test_subnet.rb +83 -0
- data/test/models/network/test_subnets.rb +56 -0
- data/test/models/network/test_virtual_network.rb +107 -0
- data/test/models/network/test_virtual_network_gateway.rb +62 -0
- data/test/models/network/test_virtual_network_gateway_connection.rb +59 -0
- data/test/models/network/test_virtual_network_gateway_connections.rb +55 -0
- data/test/models/network/test_virtual_network_gateways.rb +55 -0
- data/test/models/network/test_virtual_networks.rb +67 -0
- data/test/models/resources/test_deployment.rb +55 -0
- data/test/models/resources/test_deployments.rb +51 -0
- data/test/models/resources/test_resource.rb +22 -0
- data/test/models/resources/test_resource_group.rb +45 -0
- data/test/models/resources/test_resource_groups.rb +51 -0
- data/test/models/resources/test_resources.rb +52 -0
- data/test/models/sql/test_database.rb +68 -0
- data/test/models/sql/test_databases.rb +42 -0
- data/test/models/sql/test_firewall_rule.rb +55 -0
- data/test/models/sql/test_firewall_rules.rb +42 -0
- data/test/models/sql/test_sql_server.rb +58 -0
- data/test/models/sql/test_sql_servers.rb +41 -0
- data/test/models/storage/test_directories.rb +74 -0
- data/test/models/storage/test_directory.rb +178 -0
- data/test/models/storage/test_file.rb +294 -0
- data/test/models/storage/test_files.rb +234 -0
- data/test/models/storage/test_storage_account.rb +89 -0
- data/test/models/storage/test_storage_accounts.rb +78 -0
- data/test/models/traffic_manager/test_traffic_manager_end_point.rb +54 -0
- data/test/models/traffic_manager/test_traffic_manager_end_points.rb +56 -0
- data/test/models/traffic_manager/test_traffic_manager_profile.rb +63 -0
- data/test/models/traffic_manager/test_traffic_manager_profiles.rb +55 -0
- data/test/requests/application_gateway/test_check_ag_exists.rb +38 -0
- data/test/requests/application_gateway/test_create_or_update_application_gateway.rb +35 -0
- data/test/requests/application_gateway/test_delete_application_gateway.rb +23 -0
- data/test/requests/application_gateway/test_get_application_gateway.rb +24 -0
- data/test/requests/application_gateway/test_list_application_gateways.rb +24 -0
- data/test/requests/application_gateway/test_start_application_gateway.rb +25 -0
- data/test/requests/application_gateway/test_stop_application_gateway.rb +25 -0
- data/test/requests/compute/test_attach_data_disk_to_vm.rb +105 -0
- data/test/requests/compute/test_check_availability_set_exists.rb +38 -0
- data/test/requests/compute/test_check_managed_disk_exists.rb +38 -0
- data/test/requests/compute/test_check_vm_exists.rb +38 -0
- data/test/requests/compute/test_check_vm_extension_exists.rb +38 -0
- data/test/requests/compute/test_create_availability_set.rb +112 -0
- data/test/requests/compute/test_create_image.rb +27 -0
- data/test/requests/compute/test_create_or_update_managed_disk.rb +38 -0
- data/test/requests/compute/test_create_virtual_machine.rb +90 -0
- data/test/requests/compute/test_create_vm_extension.rb +35 -0
- data/test/requests/compute/test_deallocate_virtual_machine.rb +32 -0
- data/test/requests/compute/test_delete_availability_set.rb +23 -0
- data/test/requests/compute/test_delete_image.rb +23 -0
- data/test/requests/compute/test_delete_managed_disk.rb +23 -0
- data/test/requests/compute/test_delete_virtual_machine.rb +32 -0
- data/test/requests/compute/test_detach_data_disk_from_vm.rb +32 -0
- data/test/requests/compute/test_generalize_virtual_machine.rb +32 -0
- data/test/requests/compute/test_get_availability_set.rb +24 -0
- data/test/requests/compute/test_get_image.rb +23 -0
- data/test/requests/compute/test_get_managed_disk.rb +24 -0
- data/test/requests/compute/test_get_virtual_machine.rb +24 -0
- data/test/requests/compute/test_get_vm_extension.rb +26 -0
- data/test/requests/compute/test_get_vm_status.rb +25 -0
- data/test/requests/compute/test_grant_access_to_managed_disk.rb +26 -0
- data/test/requests/compute/test_list_availability_sets.rb +24 -0
- data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +33 -0
- data/test/requests/compute/test_list_managed_disks_by_rg.rb +24 -0
- data/test/requests/compute/test_list_managed_disks_in_subscription.rb +24 -0
- data/test/requests/compute/test_list_virtual_machines.rb +24 -0
- data/test/requests/compute/test_power_off_virtual_machine.rb +32 -0
- data/test/requests/compute/test_redeploy_virtual_machine.rb +33 -0
- data/test/requests/compute/test_restart_virtual_machine.rb +32 -0
- data/test/requests/compute/test_revoke_access_to_managed_disk.rb +24 -0
- data/test/requests/compute/test_start_virtual_machine.rb +32 -0
- data/test/requests/compute/test_update_vm_extension.rb +35 -0
- data/test/requests/dns/test_check_record_set_exists.rb +38 -0
- data/test/requests/dns/test_check_zone_exists.rb +49 -0
- data/test/requests/dns/test_create_record_set.rb +46 -0
- data/test/requests/dns/test_create_zone.rb +37 -0
- data/test/requests/dns/test_delete_record_set.rb +24 -0
- data/test/requests/dns/test_delete_zone.rb +24 -0
- data/test/requests/dns/test_get_record_set.rb +24 -0
- data/test/requests/dns/test_get_records_from_record_set.rb +42 -0
- data/test/requests/dns/test_get_zone.rb +35 -0
- data/test/requests/dns/test_list_record_sets.rb +35 -0
- data/test/requests/dns/test_list_zones.rb +26 -0
- data/test/requests/key_vault/test_check_vault_exists.rb +38 -0
- data/test/requests/key_vault/test_create_or_update_vault.rb +25 -0
- data/test/requests/key_vault/test_delete_vault.rb +23 -0
- data/test/requests/key_vault/test_get_vault.rb +24 -0
- data/test/requests/key_vault/test_list_vaults.rb +24 -0
- data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +29 -0
- data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +29 -0
- data/test/requests/network/test_add_security_rules.rb +43 -0
- data/test/requests/network/test_add_subnets_in_virtual_network.rb +29 -0
- data/test/requests/network/test_attach_network_security_group_to_subnet.rb +26 -0
- data/test/requests/network/test_attach_resource_to_nic.rb +43 -0
- data/test/requests/network/test_attach_route_table_to_subnet.rb +26 -0
- data/test/requests/network/test_check_express_route_cir_auth_exists.rb +38 -0
- data/test/requests/network/test_check_express_route_circuit_exists.rb +38 -0
- data/test/requests/network/test_check_load_balancer_exists.rb +38 -0
- data/test/requests/network/test_check_local_net_gateway_exists.rb +38 -0
- data/test/requests/network/test_check_net_sec_group_exists.rb +38 -0
- data/test/requests/network/test_check_net_sec_rule_exists.rb +38 -0
- data/test/requests/network/test_check_network_interface_exists.rb +38 -0
- data/test/requests/network/test_check_public_ip_exists.rb +37 -0
- data/test/requests/network/test_check_subnet_exists.rb +38 -0
- data/test/requests/network/test_check_virtual_network_exists.rb +40 -0
- data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +38 -0
- data/test/requests/network/test_check_vnet_gateway_exists.rb +38 -0
- data/test/requests/network/test_create_express_route_circuit.rb +39 -0
- data/test/requests/network/test_create_express_route_circuit_authorization.rb +35 -0
- data/test/requests/network/test_create_express_route_circuit_peering.rb +37 -0
- data/test/requests/network/test_create_load_balancer.rb +50 -0
- data/test/requests/network/test_create_local_network_gateway.rb +36 -0
- data/test/requests/network/test_create_network_interface.rb +43 -0
- data/test/requests/network/test_create_or_update_network_security_group.rb +39 -0
- data/test/requests/network/test_create_or_update_network_security_rule.rb +28 -0
- data/test/requests/network/test_create_or_update_virtual_network.rb +57 -0
- data/test/requests/network/test_create_public_ip.rb +36 -0
- data/test/requests/network/test_create_subnet.rb +35 -0
- data/test/requests/network/test_create_virtual_network_gateway.rb +37 -0
- data/test/requests/network/test_create_virtual_network_gateway_connection.rb +36 -0
- data/test/requests/network/test_delete_express_route_circuit.rb +24 -0
- data/test/requests/network/test_delete_express_route_circuit_authorization.rb +23 -0
- data/test/requests/network/test_delete_express_route_circuit_peering.rb +24 -0
- data/test/requests/network/test_delete_load_balancer.rb +24 -0
- data/test/requests/network/test_delete_local_network_gateway.rb +23 -0
- data/test/requests/network/test_delete_network_interface.rb +24 -0
- data/test/requests/network/test_delete_network_security_group.rb +25 -0
- data/test/requests/network/test_delete_network_security_rule.rb +25 -0
- data/test/requests/network/test_delete_public_ip.rb +24 -0
- data/test/requests/network/test_delete_subnet.rb +24 -0
- data/test/requests/network/test_delete_virtual_network.rb +24 -0
- data/test/requests/network/test_delete_virtual_network_gateway.rb +24 -0
- data/test/requests/network/test_delete_virtual_network_gateway_connection.rb +23 -0
- data/test/requests/network/test_detach_network_security_group_from_subnet.rb +26 -0
- data/test/requests/network/test_detach_resource_from_nic.rb +41 -0
- data/test/requests/network/test_detach_route_table_from_subnet.rb +26 -0
- data/test/requests/network/test_get_available_ipaddresses_count.rb +18 -0
- data/test/requests/network/test_get_connection_shared_key.rb +24 -0
- data/test/requests/network/test_get_express_route_circuit.rb +24 -0
- data/test/requests/network/test_get_express_route_circuit_authorization.rb +24 -0
- data/test/requests/network/test_get_express_route_circuit_peering.rb +24 -0
- data/test/requests/network/test_get_load_balancer.rb +24 -0
- data/test/requests/network/test_get_local_network_gateway.rb +24 -0
- data/test/requests/network/test_get_network_interface.rb +24 -0
- data/test/requests/network/test_get_network_security_group.rb +26 -0
- data/test/requests/network/test_get_network_security_rule.rb +26 -0
- data/test/requests/network/test_get_public_ip.rb +26 -0
- data/test/requests/network/test_get_subnet.rb +26 -0
- 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_get_virtual_network_gateway_connection.rb +24 -0
- data/test/requests/network/test_list_express_route_circuit_authorizations.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 +24 -0
- data/test/requests/network/test_list_local_network_gateways.rb +24 -0
- data/test/requests/network/test_list_network_interfaces.rb +24 -0
- data/test/requests/network/test_list_network_security_groups.rb +26 -0
- data/test/requests/network/test_list_network_security_rules.rb +26 -0
- data/test/requests/network/test_list_public_ips.rb +24 -0
- data/test/requests/network/test_list_subnets.rb +24 -0
- data/test/requests/network/test_list_virtual_network_gateway_connections.rb +24 -0
- data/test/requests/network/test_list_virtual_network_gateways.rb +24 -0
- data/test/requests/network/test_list_virtual_networks.rb +24 -0
- data/test/requests/network/test_list_virtual_networks_in_subscription.rb +24 -0
- data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +29 -0
- data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +29 -0
- data/test/requests/network/test_remove_security_rule.rb +29 -0
- data/test/requests/network/test_remove_subnets_from_virtual_network.rb +29 -0
- data/test/requests/network/test_reset_connection_shared_key.rb +23 -0
- data/test/requests/network/test_set_connection_shared_key.rb +23 -0
- data/test/requests/network/test_update_public_ip.rb +35 -0
- data/test/requests/resources/test_check_azure_resource_exists.rb +22 -0
- data/test/requests/resources/test_check_deployment_exists.rb +29 -0
- data/test/requests/resources/test_check_resource_group_exists.rb +29 -0
- data/test/requests/resources/test_create_deployment.rb +32 -0
- data/test/requests/resources/test_create_resource_group.rb +25 -0
- data/test/requests/resources/test_delete_deployment.rb +25 -0
- data/test/requests/resources/test_delete_resource_group.rb +24 -0
- data/test/requests/resources/test_delete_resource_tag.rb +35 -0
- data/test/requests/resources/test_get_deployment.rb +24 -0
- data/test/requests/resources/test_get_resource_group.rb +24 -0
- data/test/requests/resources/test_list_deployments.rb +25 -0
- data/test/requests/resources/test_list_resource_groups.rb +24 -0
- data/test/requests/resources/test_list_tagged_resources.rb +24 -0
- data/test/requests/resources/test_tag_resource.rb +35 -0
- data/test/requests/sql/test_create_or_update_database.rb +25 -0
- data/test/requests/sql/test_create_or_update_firewall_rule.rb +25 -0
- data/test/requests/sql/test_create_or_update_sql_server.rb +25 -0
- data/test/requests/sql/test_delete_database.rb +23 -0
- data/test/requests/sql/test_delete_firewall_rule.rb +23 -0
- data/test/requests/sql/test_delete_sql_server.rb +23 -0
- data/test/requests/sql/test_get_database.rb +24 -0
- data/test/requests/sql/test_get_firewall_rule.rb +24 -0
- data/test/requests/sql/test_get_sql_server.rb +24 -0
- data/test/requests/sql/test_list_databases.rb +24 -0
- data/test/requests/sql/test_list_firewall_rules.rb +24 -0
- data/test/requests/sql/test_list_sql_servers.rb +24 -0
- data/test/requests/storage/test_acquire_blob_lease.rb +36 -0
- data/test/requests/storage/test_acquire_container_lease.rb +36 -0
- data/test/requests/storage/test_check_container_exists.rb +18 -0
- data/test/requests/storage/test_check_storage_account_exists.rb +41 -0
- data/test/requests/storage/test_check_storage_account_name_availability.rb +35 -0
- data/test/requests/storage/test_commit_blob_blocks.rb +34 -0
- data/test/requests/storage/test_compare_container_blobs.rb +36 -0
- data/test/requests/storage/test_copy_blob.rb +36 -0
- data/test/requests/storage/test_copy_blob_from_uri.rb +36 -0
- data/test/requests/storage/test_create_block_blob.rb +80 -0
- data/test/requests/storage/test_create_container.rb +36 -0
- data/test/requests/storage/test_create_disk.rb +70 -0
- data/test/requests/storage/test_create_page_blob.rb +34 -0
- data/test/requests/storage/test_create_storage_account.rb +34 -0
- data/test/requests/storage/test_delete_blob.rb +42 -0
- data/test/requests/storage/test_delete_container.rb +42 -0
- data/test/requests/storage/test_delete_disk.rb +30 -0
- data/test/requests/storage/test_delete_storage_account.rb +28 -0
- data/test/requests/storage/test_get_blob.rb +141 -0
- data/test/requests/storage/test_get_blob_http_url.rb +30 -0
- data/test/requests/storage/test_get_blob_https_url.rb +30 -0
- data/test/requests/storage/test_get_blob_properties.rb +45 -0
- data/test/requests/storage/test_get_blob_url.rb +75 -0
- data/test/requests/storage/test_get_container_acl.rb +37 -0
- data/test/requests/storage/test_get_container_properties.rb +45 -0
- data/test/requests/storage/test_get_container_url.rb +33 -0
- data/test/requests/storage/test_get_storage_access_keys.rb +24 -0
- data/test/requests/storage/test_get_storage_account.rb +25 -0
- data/test/requests/storage/test_list_blobs.rb +77 -0
- data/test/requests/storage/test_list_containers.rb +54 -0
- data/test/requests/storage/test_list_storage_accounts.rb +37 -0
- data/test/requests/storage/test_list_storage_accounts_for_rg.rb +37 -0
- data/test/requests/storage/test_multipart_save_block_blob.rb +105 -0
- data/test/requests/storage/test_put_blob_block.rb +34 -0
- data/test/requests/storage/test_put_blob_metadata.rb +36 -0
- data/test/requests/storage/test_put_blob_pages.rb +34 -0
- data/test/requests/storage/test_put_blob_properties.rb +39 -0
- data/test/requests/storage/test_put_container_acl.rb +34 -0
- data/test/requests/storage/test_put_container_metadata.rb +36 -0
- data/test/requests/storage/test_release_blob_lease.rb +34 -0
- data/test/requests/storage/test_release_container_lease.rb +34 -0
- data/test/requests/storage/test_save_page_blob.rb +115 -0
- data/test/requests/storage/test_update_storage_account.rb +34 -0
- data/test/requests/storage/test_wait_blob_copy_operation_to_finish.rb +148 -0
- data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +38 -0
- data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +38 -0
- 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/requests/traffic_manager/test_update_traffic_manager_endpoint.rb +27 -0
- data/test/requests/traffic_manager/test_update_traffic_manager_profile.rb +27 -0
- data/test/smoke_tests/compute/test_resource_group_smoke.rb +37 -0
- data/test/test_credentials.rb +63 -0
- data/test/test_helper.rb +831 -0
- metadata +1050 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
LOCATION = 'eastus'.freeze
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
AZURE_RESOURCE = 'https://management.azure.com'.freeze
|
|
2
|
+
DEFAULT_ADDRESS_PREFIXES = ['10.2.0.0/16'].freeze
|
|
3
|
+
SUBNET = 'Subnet'.freeze
|
|
4
|
+
PUBLIC_IP = 'Public-IP-Address'.freeze
|
|
5
|
+
NETWORK_SECURITY_GROUP = 'Network-Security-Group'.freeze
|
|
6
|
+
STANDARD_STORAGE = 'Standard'.freeze
|
|
7
|
+
PREMIUM_STORAGE = 'Premium'.freeze
|
|
8
|
+
ALLOWED_STANDARD_REPLICATION = %w[LRS ZRS GRS RAGRS].freeze
|
|
9
|
+
API_VERSION = '2016-06-01'.freeze
|
|
10
|
+
FAULT_DOMAIN_COUNT = 2
|
|
11
|
+
UPDATE_DOMAIN_COUNT = 5
|
|
12
|
+
WINDOWS = 'windows'.freeze
|
|
13
|
+
VPN = 'Vpn'.freeze
|
|
14
|
+
MICROSOFT_PEERING = 'MicrosoftPeering'.freeze
|
|
15
|
+
RESOURCE_GROUP_NAME = 4
|
|
16
|
+
RESOURCE_PROVIDER_NAMESPACE = 6
|
|
17
|
+
RESOURCE_TYPE = 7
|
|
18
|
+
RESOURCE_NAME = 8
|
|
19
|
+
ENDPOINT_PREFIX = 'Microsoft.Network/trafficManagerProfiles'.freeze
|
|
20
|
+
DISK_PREFIX = 'Microsoft.Compute/disks'.freeze
|
|
21
|
+
AZURE_ENDPOINTS = 'azureEndpoints'.freeze
|
|
22
|
+
EXTERNAL_ENDPOINTS = 'externalEndpoints'.freeze
|
|
23
|
+
NESTED_ENDPOINTS = 'nestedEndpoints'.freeze
|
|
24
|
+
GLOBAL = 'global'.freeze
|
|
25
|
+
UPLOAD_BLOB_WORKER_THREAD_COUNT = 8
|
|
26
|
+
VM_NAME_POSITION = 8
|
|
27
|
+
PRIMARY_NIC_INDEX = 0
|
|
28
|
+
|
|
29
|
+
ENVIRONMENT_AZURE_CLOUD = 'AzureCloud'.freeze
|
|
30
|
+
ENVIRONMENT_AZURE_CHINA_CLOUD = 'AzureChinaCloud'.freeze
|
|
31
|
+
ENVIRONMENT_AZURE_US_GOVERNMENT = 'AzureUSGovernment'.freeze
|
|
32
|
+
ENVIRONMENT_AZURE_GERMAN_CLOUD = 'AzureGermanCloud'.freeze
|
|
33
|
+
|
|
34
|
+
# MsRestAzure::AzureOperationError class Error Codes
|
|
35
|
+
ERROR_CODE_RESOURCE_NOT_FOUND = 'ResourceNotFound'.freeze
|
|
36
|
+
ERROR_CODE_NOT_FOUND = 'NotFound'.freeze
|
|
37
|
+
ERROR_CODE_RESOURCE_GROUP_NOT_FOUND = 'ResourceGroupNotFound'.freeze
|
|
38
|
+
ERROR_CODE_PARENT_RESOURCE_NOT_FOUND = 'ParentResourceNotFound'.freeze
|
|
39
|
+
|
|
40
|
+
PLATFORM_LINUX = 'linux'.freeze
|
|
41
|
+
|
|
42
|
+
# State of the copy operation
|
|
43
|
+
COPY_STATUS =
|
|
44
|
+
{
|
|
45
|
+
# The copy completed successfully.
|
|
46
|
+
SUCCESS: 'success',
|
|
47
|
+
# The copy is in progress
|
|
48
|
+
PENDING: 'pending'
|
|
49
|
+
}.freeze
|
|
50
|
+
|
|
51
|
+
# https://msdn.microsoft.com/en-us/library/azure/dd179451.aspx
|
|
52
|
+
# The maximum size for a block blob created via Put Blob is 64 MB. But for better performance, this size should be 32 MB.
|
|
53
|
+
# If your blob is larger than 32 MB, you must upload it as a set of blocks.
|
|
54
|
+
SINGLE_BLOB_PUT_THRESHOLD = 32 * 1024 * 1024
|
|
55
|
+
|
|
56
|
+
# Block blob: https://msdn.microsoft.com/en-us/library/azure/dd135726.aspx
|
|
57
|
+
# Page blob: https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx
|
|
58
|
+
# Each block/page can be a different size, up to a maximum of 4 MB
|
|
59
|
+
MAXIMUM_CHUNK_SIZE = 4 * 1024 * 1024
|
|
60
|
+
|
|
61
|
+
# The hash value of 4MB empty content
|
|
62
|
+
HASH_OF_4MB_EMPTY_CONTENT = 'b5cfa9d6c8febd618f91ac2843d50a1c'.freeze
|
|
63
|
+
REST_CLIENT_API_VERSION = %w[2014-04-01-preview 2016-05-01].freeze
|
|
64
|
+
AS_SKU_CLASSIC = 'Classic'.freeze
|
|
65
|
+
AS_SKU_ALIGNED = 'Aligned'.freeze
|
|
66
|
+
|
|
67
|
+
# The tag key and tag value for creating a temporary storage account for generalized image
|
|
68
|
+
TEMPORARY_STORAGE_ACCOUNT_TAG_KEY = 'generalized_image'.freeze
|
|
69
|
+
TEMPORARY_STORAGE_ACCOUNT_TAG_VALUE = 'delete'.freeze
|
|
70
|
+
|
|
71
|
+
HTTP_NOT_FOUND = 404
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Credentials
|
|
3
|
+
# This class is managing credentials token
|
|
4
|
+
class AzureRM
|
|
5
|
+
def self.get_credentials(tenant_id, client_id, client_secret, environment = ENVIRONMENT_AZURE_CLOUD)
|
|
6
|
+
if @credentials.nil? || new_management_credential?(tenant_id, client_id, client_secret, environment)
|
|
7
|
+
get_new_credentials(tenant_id, client_id, client_secret, environment)
|
|
8
|
+
else
|
|
9
|
+
@credentials
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.get_token(tenant_id, client_id, client_secret, environment = ENVIRONMENT_AZURE_CLOUD)
|
|
14
|
+
get_credentials(tenant_id, client_id, client_secret, environment) if @credentials.nil?
|
|
15
|
+
@token_provider.get_authentication_header
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.get_new_credentials(tenant_id, client_id, client_secret, environment)
|
|
19
|
+
@tenant_id = tenant_id
|
|
20
|
+
@client_id = client_id
|
|
21
|
+
@client_secret = client_secret
|
|
22
|
+
@environment = environment
|
|
23
|
+
return if @tenant_id.nil? || @client_id.nil? || @client_secret.nil?
|
|
24
|
+
@token_provider = MsRestAzure::ApplicationTokenProvider.new(@tenant_id, @client_id, @client_secret, active_directory_service_settings(environment))
|
|
25
|
+
@credentials = MsRest::TokenCredentials.new(@token_provider)
|
|
26
|
+
@credentials
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.new_management_credential?(tenant_id, client_id, client_secret, environment)
|
|
30
|
+
@tenant_id != tenant_id ||
|
|
31
|
+
@client_id != client_id ||
|
|
32
|
+
@client_secret != client_secret ||
|
|
33
|
+
@environment != environment
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private_class_method :get_new_credentials
|
|
37
|
+
private_class_method :new_management_credential?
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module DNS
|
|
3
|
+
# This class registers models, requests and collections
|
|
4
|
+
class AzureRM < Fog::Service
|
|
5
|
+
requires :tenant_id
|
|
6
|
+
requires :client_id
|
|
7
|
+
requires :client_secret
|
|
8
|
+
requires :subscription_id
|
|
9
|
+
recognizes :environment
|
|
10
|
+
|
|
11
|
+
request_path 'fog/azurerm/requests/dns'
|
|
12
|
+
request :create_or_update_zone
|
|
13
|
+
request :delete_zone
|
|
14
|
+
request :check_zone_exists
|
|
15
|
+
request :list_zones
|
|
16
|
+
request :get_zone
|
|
17
|
+
request :create_or_update_record_set
|
|
18
|
+
request :delete_record_set
|
|
19
|
+
request :list_record_sets
|
|
20
|
+
request :get_records_from_record_set
|
|
21
|
+
request :get_record_set
|
|
22
|
+
request :check_record_set_exists
|
|
23
|
+
|
|
24
|
+
model_path 'fog/azurerm/models/dns'
|
|
25
|
+
model :zone
|
|
26
|
+
collection :zones
|
|
27
|
+
model :record_set
|
|
28
|
+
collection :record_sets
|
|
29
|
+
model :a_record
|
|
30
|
+
model :cname_record
|
|
31
|
+
|
|
32
|
+
# This class provides the mock implementation for unit tests.
|
|
33
|
+
class Mock
|
|
34
|
+
def initialize(_options = {})
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# This class provides the actual implementation for service calls.
|
|
39
|
+
class Real
|
|
40
|
+
def initialize(options)
|
|
41
|
+
begin
|
|
42
|
+
require 'azure_mgmt_dns'
|
|
43
|
+
rescue LoadError => e
|
|
44
|
+
retry if require('rubygems')
|
|
45
|
+
raise e.message
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
options[:environment] = 'AzureCloud' if options[:environment].nil?
|
|
49
|
+
|
|
50
|
+
credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret], options[:environment])
|
|
51
|
+
telemetry = "fog-azure-rm/#{Fog::AzureRM::VERSION}"
|
|
52
|
+
@dns_client = ::Azure::ARM::Dns::DnsManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment]))
|
|
53
|
+
@dns_client.subscription_id = options[:subscription_id]
|
|
54
|
+
@dns_client.add_user_agent_information(telemetry)
|
|
55
|
+
@tenant_id = options[:tenant_id]
|
|
56
|
+
@client_id = options[:client_id]
|
|
57
|
+
@client_secret = options[:client_secret]
|
|
58
|
+
@environment = options[:environment]
|
|
59
|
+
@resources = Fog::Resources::AzureRM.new(
|
|
60
|
+
tenant_id: options[:tenant_id],
|
|
61
|
+
client_id: options[:client_id],
|
|
62
|
+
client_secret: options[:client_secret],
|
|
63
|
+
subscription_id: options[:subscription_id],
|
|
64
|
+
environment: options[:environment]
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Application Gateway
|
|
2
|
+
|
|
3
|
+
This document explains how to get started using Azure Network Service with Fog to manage Application Gateway. With this gem you can create, update, list or delete Application Gateway.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
First of all, you need to require the Fog library by executing:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
require 'fog/azurerm'
|
|
11
|
+
```
|
|
12
|
+
## Create Connection
|
|
13
|
+
|
|
14
|
+
Next, create a connection to the Application Gateway Service:
|
|
15
|
+
|
|
16
|
+
```ruby
|
|
17
|
+
fog_application_gateway_service = Fog::ApplicationGateway::AzureRM.new(
|
|
18
|
+
tenant_id: '<Tenant Id>', # Tenant Id of Azure Active Directory Application
|
|
19
|
+
client_id: '<Client Id>', # Client Id of Azure Active Directory Application
|
|
20
|
+
client_secret: '<Client Secret>', # Client Secret of Azure Active Directory Application
|
|
21
|
+
subscription_id: '<Subscription Id>', # Subscription Id of an Azure Account
|
|
22
|
+
environment: '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
|
|
23
|
+
)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Check Application Gateway Existence
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
fog_application_gateway_service.gateways.check_application_gateway_exists('<Resource Group Name>', '<Gateway Name>')
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Create Application Gateway
|
|
34
|
+
|
|
35
|
+
Create a new Application Gateway.
|
|
36
|
+
|
|
37
|
+
```ruby
|
|
38
|
+
gateway = fog_application_gateway_service.gateways.create(
|
|
39
|
+
|
|
40
|
+
name: '<Gateway Name>',
|
|
41
|
+
location: '<Location>',
|
|
42
|
+
resource_group: '<Resource Group name>',
|
|
43
|
+
sku_name: '<SKU Name>',
|
|
44
|
+
sku_tier: '<SKU Tier>',
|
|
45
|
+
sku_capacity: '<SKU Capacity>',
|
|
46
|
+
gateway_ip_configurations:
|
|
47
|
+
[
|
|
48
|
+
{
|
|
49
|
+
name: '<Gateway IP Config Name>',
|
|
50
|
+
subnet_id: '/subscriptions/<Subscription Id>/resourcegroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Virtual Network Name>/subnets/<Subnet Name>'
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
frontend_ip_configurations:
|
|
54
|
+
[
|
|
55
|
+
{
|
|
56
|
+
name: '<Frontend IP Config Name>',
|
|
57
|
+
private_ip_allocation_method: '<IP Allocation Method>',
|
|
58
|
+
public_ip_address_id: '/subscriptions/<Subscription Id>/resourcegroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Address Name>',
|
|
59
|
+
private_ip_address: '<IP Address>'
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
frontend_ports:
|
|
63
|
+
[
|
|
64
|
+
{
|
|
65
|
+
name: '<Frontend Port Name>',
|
|
66
|
+
port: <Port Number>
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
backend_address_pools:
|
|
70
|
+
[
|
|
71
|
+
{
|
|
72
|
+
name: '<Backend Address Pool Name>',
|
|
73
|
+
ip_addresses: [
|
|
74
|
+
{
|
|
75
|
+
ipAddress: '<IP Address>'
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
backend_http_settings_list:
|
|
81
|
+
[
|
|
82
|
+
{
|
|
83
|
+
name: '<Gateway Settings Name>',
|
|
84
|
+
port: <Port Number>,
|
|
85
|
+
protocol: '<Protocol Name>',
|
|
86
|
+
cookie_based_affinity: '<Enabled/Disabled>',
|
|
87
|
+
request_timeout: '<Timeout Time>'
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
http_listeners:
|
|
91
|
+
[
|
|
92
|
+
{
|
|
93
|
+
name: '<Gateway Listener Name>',
|
|
94
|
+
frontend_ip_config_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/frontendIPConfigurations/<Frontend IP Config Name>',
|
|
95
|
+
frontend_port_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/frontendPorts/<Frontend Port Name>',
|
|
96
|
+
protocol: '<Protocol Name>',
|
|
97
|
+
host_name: '',
|
|
98
|
+
require_server_name_indication: '<True/False>'
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
request_routing_rules:
|
|
102
|
+
[
|
|
103
|
+
{
|
|
104
|
+
name: '<Gateway Request Route Rule Name>',
|
|
105
|
+
type: '<Type>',
|
|
106
|
+
http_listener_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/httpListeners/<Gateway Listener Name>',
|
|
107
|
+
backend_address_pool_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/backendAddressPools/<Backend Address Pool Name>',
|
|
108
|
+
backend_http_settings_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/applicationGateways/<Gateway Name>/backendHttpSettingsCollection/<Gateway Settings Name>',
|
|
109
|
+
url_path_map: ''
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' } # [Optional]
|
|
113
|
+
)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
There can be two ways of giving `frontend_ip_configurations` while creating application gateway
|
|
117
|
+
|
|
118
|
+
1. When giving public IP, then we need to provide `public_ip_address_id` as follows
|
|
119
|
+
|
|
120
|
+
```ruby
|
|
121
|
+
frontend_ip_configurations:
|
|
122
|
+
[
|
|
123
|
+
{
|
|
124
|
+
name: '<Frontend IP Config Name>',
|
|
125
|
+
private_ip_allocation_method: '<IP Allocation Method>',
|
|
126
|
+
public_ip_address_id: '/subscriptions/<Subscription Id>/resourcegroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Address Name>',
|
|
127
|
+
private_ip_address: '<IP Address>'
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
2. When giving subnet id, then we need to provide `subnet_id` as follows
|
|
131
|
+
|
|
132
|
+
```ruby
|
|
133
|
+
frontend_ip_configurations:
|
|
134
|
+
[
|
|
135
|
+
{
|
|
136
|
+
name: '<Frontend IP Config Name>',
|
|
137
|
+
private_ip_allocation_method: '<IP Allocation Method>',
|
|
138
|
+
subnet_id: '<Subnet ID>',
|
|
139
|
+
private_ip_address: '<IP Address>'
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
## List Application Gateways
|
|
143
|
+
|
|
144
|
+
List all application gateways in a resource group
|
|
145
|
+
|
|
146
|
+
```ruby
|
|
147
|
+
gateways = fog_application_gateway_service.gateways(resource_group: '<Resource Group Name>')
|
|
148
|
+
gateways.each do |gateway|
|
|
149
|
+
puts "#{gateway.name}"
|
|
150
|
+
end
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Retrieve a single Application Gateway
|
|
154
|
+
|
|
155
|
+
Get a single record of Application Gateway
|
|
156
|
+
|
|
157
|
+
```ruby
|
|
158
|
+
gateway = fog_application_gateway_service
|
|
159
|
+
.gateways
|
|
160
|
+
.get('<Resource Group Name>', '<Application Gateway Name>')
|
|
161
|
+
puts "#{gateway.name}"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
## Update SKU attributes (Name and Capacity)
|
|
166
|
+
|
|
167
|
+
```ruby
|
|
168
|
+
ag.update_sku('<SKU Name>', '<SKU Capacity>')
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Update gateway IP configuration (Subnet Id)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
```ruby
|
|
175
|
+
ag.update_gateway_ip_configuration('/subscriptions/<Subscription Id>/<Resource Group Name>/<Gateway Name>/providers/Microsoft.Network/virtualNetworks/<Virtual Network Name>/subnets/<Subnet Name>')
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Add/ Remove SSL Certificates
|
|
179
|
+
|
|
180
|
+
```ruby
|
|
181
|
+
ag.add_ssl_certificate(
|
|
182
|
+
{
|
|
183
|
+
name: '<SSL Certificate Name>',
|
|
184
|
+
data: '<SSL Certificate Data>',
|
|
185
|
+
password: '<Password>',
|
|
186
|
+
public_cert_data: '<Public Certificate Data>'
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
ag.remove_ssl_certificate(
|
|
191
|
+
{
|
|
192
|
+
name: '<SSL Certificate Name>',
|
|
193
|
+
data: '<SSL Certificate Data>',
|
|
194
|
+
password: '<Password>',
|
|
195
|
+
public_cert_data: '<Public Certificate Data>'
|
|
196
|
+
}
|
|
197
|
+
)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Add/ Remove Frontend ports
|
|
201
|
+
|
|
202
|
+
```ruby
|
|
203
|
+
ag.add_frontend_port({name: '<Frontend Port Name>', port: <Port Number>})
|
|
204
|
+
|
|
205
|
+
ag.remove_frontend_port({name: '<Frontend Port Name>', port: <Port Number>})
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Add/ Remove Probes
|
|
209
|
+
|
|
210
|
+
```ruby
|
|
211
|
+
ag.add_probe(
|
|
212
|
+
{
|
|
213
|
+
name: '<Probe Name>',
|
|
214
|
+
protocol: '<Protocol Name>',
|
|
215
|
+
host: '<Host Name>',
|
|
216
|
+
path: '<Probe Path>',
|
|
217
|
+
interval: <Interval Time>,
|
|
218
|
+
timeout: <Timeout Time>,
|
|
219
|
+
unhealthy_threshold: <Threshold Value>
|
|
220
|
+
}
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
ag.remove__probe(
|
|
224
|
+
{
|
|
225
|
+
name: '<Probe name>',
|
|
226
|
+
protocol: '<Protocol Name>',
|
|
227
|
+
host: '<Protocol Name>',
|
|
228
|
+
path: '<Probe Path>',
|
|
229
|
+
interval: <Interval Time>,
|
|
230
|
+
timeout: <Timeout Time>,
|
|
231
|
+
unhealthy_threshold: <Threshold Value>
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Destroy a single Application Gateway
|
|
237
|
+
|
|
238
|
+
Get a application gateway object from the get method and then destroy that application gateway.
|
|
239
|
+
|
|
240
|
+
```ruby
|
|
241
|
+
gateway.destroy
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Support and Feedback
|
|
245
|
+
Your feedback is highly appreciated! If you have specific issues with the Fog ARM, you should file an issue via Github.
|
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
# Compute
|
|
2
|
+
|
|
3
|
+
This document explains how to get started using Azure Compute Service with Fog. With this gem you can create, update, list or delete availability sets and virtual machines.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
First of all, you need to require the Fog library by executing:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
require 'fog/azurerm'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Create Connection
|
|
14
|
+
|
|
15
|
+
Next, create a connection to the Compute Service:
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
fog_compute_service = Fog::Compute::AzureRM.new(
|
|
19
|
+
tenant_id: '<Tenant Id>', # Tenant Id of Azure Active Directory Application
|
|
20
|
+
client_id: '<Client Id>', # Client Id of Azure Active Directory Application
|
|
21
|
+
client_secret: '<Client Secret>', # Client Secret of Azure Active Directory Application
|
|
22
|
+
subscription_id: '<Subscription Id>', # Subscription Id of an Azure Account
|
|
23
|
+
environment: '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Check Server Existence
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
fog_compute_service.servers.check_vm_exists('<Resource Group Name>', '<VM Name>')
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Create Server
|
|
34
|
+
|
|
35
|
+
**Info:**
|
|
36
|
+
|
|
37
|
+
- Attribute **network_interface_card_ids** is an array of NICs Ids. The NIC Id at index zero will become primary NIC of this server (virtual machine) by default.
|
|
38
|
+
- To create VM with managed OS disk, use the _managed_disk_storage_type_ argument
|
|
39
|
+
- To create VM with unmanaged OS disk, use the _storage_account_name_ argument
|
|
40
|
+
|
|
41
|
+
### Virtual Machine (Managed OS Disk)
|
|
42
|
+
|
|
43
|
+
```ruby
|
|
44
|
+
fog_compute_service.servers.create(
|
|
45
|
+
name: '<VM Name>',
|
|
46
|
+
location: '<Location>',
|
|
47
|
+
resource_group: '<Resource Group Name>',
|
|
48
|
+
tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' },
|
|
49
|
+
vm_size: '<Virtual Machine Size>',
|
|
50
|
+
username: '<Username>',
|
|
51
|
+
disable_password_authentication: <True/False>,
|
|
52
|
+
network_interface_card_ids: ['/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkInterfaces/<Network Interface Id>'],
|
|
53
|
+
publisher: '<Publisher Name>', # Not required if custom image is being used
|
|
54
|
+
offer: '<Offer Name>', # Not required if custom image is being used
|
|
55
|
+
sku: '<SKU Name>', # Not required if custom image is being used
|
|
56
|
+
version: '<Version>', # Not required if custom image is being used
|
|
57
|
+
platform: '<OS Type>',
|
|
58
|
+
availability_set_id: '<Availability Set Id>', # [Optional]
|
|
59
|
+
password: '<Password>', # [Optional], if 'platform' partameter is 'Linux'.
|
|
60
|
+
vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
|
|
61
|
+
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
|
62
|
+
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
|
63
|
+
managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
|
|
64
|
+
os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
|
|
65
|
+
)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Info:**
|
|
69
|
+
|
|
70
|
+
- To create VM from Image, pass in the Image ID in `image_ref` attribute
|
|
71
|
+
|
|
72
|
+
**Limitation:**
|
|
73
|
+
|
|
74
|
+
- Image should be in the same region
|
|
75
|
+
- ONLY managed VM can be created from image
|
|
76
|
+
|
|
77
|
+
### Virtual Machine (Managed OS Disk from Image)
|
|
78
|
+
|
|
79
|
+
```ruby
|
|
80
|
+
fog_compute_service.servers.create(
|
|
81
|
+
name: '<VM Name>',
|
|
82
|
+
location: '<Location>',
|
|
83
|
+
resource_group: '<Resource Group Name>',
|
|
84
|
+
tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' },
|
|
85
|
+
vm_size: '<Virtual Machine Size>',
|
|
86
|
+
username: '<Username>',
|
|
87
|
+
disable_password_authentication: <True/False>,
|
|
88
|
+
network_interface_card_ids: ['/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkInterfaces/<Network Interface Id>'],
|
|
89
|
+
publisher: '<Publisher Name>', # Not required if custom image is being used
|
|
90
|
+
offer: '<Offer Name>', # Not required if custom image is being used
|
|
91
|
+
sku: '<SKU Name>', # Not required if custom image is being used
|
|
92
|
+
version: '<Version>', # Not required if custom image is being used
|
|
93
|
+
platform: '<OS Type>',
|
|
94
|
+
availability_set_id: '<Availability Set Id>', # [Optional]
|
|
95
|
+
password: '<Password>', # [Optional], if 'platform' partameter is 'Linux'.
|
|
96
|
+
image_ref: '<Image ID>', # [Optional], if you want to create the VM from a custom image.
|
|
97
|
+
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
|
98
|
+
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
|
99
|
+
managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
|
|
100
|
+
os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
|
|
101
|
+
)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Virtual Machine (Unmanaged OS Disk)
|
|
105
|
+
|
|
106
|
+
```ruby
|
|
107
|
+
fog_compute_service.servers.create(
|
|
108
|
+
name: '<VM Name>',
|
|
109
|
+
location: '<Location>',
|
|
110
|
+
resource_group: '<Resource Group Name>',
|
|
111
|
+
tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' },
|
|
112
|
+
vm_size: '<Virtual Machine Size>',
|
|
113
|
+
storage_account_name: '<Storage Account Name>',
|
|
114
|
+
username: '<Username>',
|
|
115
|
+
password: '<Password>',
|
|
116
|
+
disable_password_authentication: <True/False>,
|
|
117
|
+
network_interface_card_ids: ['/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkInterfaces/<Network Interface Id>'],
|
|
118
|
+
publisher: '<Publisher Name>', # Not required if custom image is being used
|
|
119
|
+
offer: '<Offer Name>', # Not required if custom image is being used
|
|
120
|
+
sku: '<SKU Name>', # Not required if custom image is being used
|
|
121
|
+
version: '<Version>', # Not required if custom image is being used
|
|
122
|
+
platform: '<OS Type>',
|
|
123
|
+
availability_set_id: '<Availability Set Id>', # [Optional]
|
|
124
|
+
vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
|
|
125
|
+
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
|
126
|
+
os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
|
|
127
|
+
)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Create Server Asynchronously
|
|
131
|
+
|
|
132
|
+
Create a new linux server asynchronously
|
|
133
|
+
|
|
134
|
+
```ruby
|
|
135
|
+
async_response = fog_compute_service.servers.create_async(
|
|
136
|
+
name: '<VM Name>',
|
|
137
|
+
location: '<Location>',
|
|
138
|
+
resource_group: '<Resource Group Name>',
|
|
139
|
+
tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' },
|
|
140
|
+
vm_size: '<Virtual Machine Size>',
|
|
141
|
+
storage_account_name: '<Storage Account Name>',
|
|
142
|
+
username: '<Username for VM>',
|
|
143
|
+
disable_password_authentication: <True/False>,
|
|
144
|
+
network_interface_card_ids: ['/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkInterfaces/<Network Interface Id>'],
|
|
145
|
+
publisher: '<Publisher Name>', # Not required if custom image is being used
|
|
146
|
+
offer: '<Offer Name>', # Not required if custom image is being used
|
|
147
|
+
sku: '<SKU Name>', # Not required if custom image is being used
|
|
148
|
+
version: '<Version>' , # Not required if custom image is being used
|
|
149
|
+
platform: '<OS Type>',
|
|
150
|
+
availability_set_id: '<Availability Set Id>', # [Optional]
|
|
151
|
+
password: '<Password>', # [Optional], if 'platform' partameter is 'Linux'.
|
|
152
|
+
vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
|
|
153
|
+
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
|
154
|
+
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
|
155
|
+
managed_disk_storage_type: '<Storage Account Type>', # [Optional], can be StandardLRS or PremiumLRS
|
|
156
|
+
os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
|
|
157
|
+
)
|
|
158
|
+
```
|
|
159
|
+
Following methods are available to handle async respoonse:
|
|
160
|
+
- state
|
|
161
|
+
- pending?
|
|
162
|
+
- rejected?
|
|
163
|
+
- reason
|
|
164
|
+
- fulfilled?
|
|
165
|
+
- value
|
|
166
|
+
|
|
167
|
+
An example of handling async response is given below:
|
|
168
|
+
|
|
169
|
+
```ruby
|
|
170
|
+
while 1
|
|
171
|
+
puts async_response.state
|
|
172
|
+
|
|
173
|
+
if async_response.pending?
|
|
174
|
+
sleep(2)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
if async_response.fulfilled?
|
|
178
|
+
puts async_response.value.inspect
|
|
179
|
+
break
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
if async_response.rejected?
|
|
183
|
+
puts async_response.reason.inspect
|
|
184
|
+
break
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
For more information about custom_data, see link: https://msdn.microsoft.com/en-us/library/azure/mt163591.aspx
|
|
190
|
+
|
|
191
|
+
## List Servers
|
|
192
|
+
|
|
193
|
+
List servers in a resource group
|
|
194
|
+
|
|
195
|
+
```ruby
|
|
196
|
+
servers = fog_compute_service.servers(resource_group: '<Resource Group Name>')
|
|
197
|
+
servers.each do |server|
|
|
198
|
+
puts "#{server.name}"
|
|
199
|
+
puts "#{server.location}"
|
|
200
|
+
end
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Retrieve a single Server
|
|
204
|
+
|
|
205
|
+
Get a single record of Server
|
|
206
|
+
|
|
207
|
+
```ruby
|
|
208
|
+
server = fog_compute_service
|
|
209
|
+
.servers(resource_group: '<Resource Group Name>')
|
|
210
|
+
.get('<Resource Group Name>', 'Server Name>')
|
|
211
|
+
puts "#{server.name}"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Get a Server's status
|
|
215
|
+
|
|
216
|
+
Check the status of a Server
|
|
217
|
+
|
|
218
|
+
```ruby
|
|
219
|
+
status = fog_compute_service
|
|
220
|
+
.servers
|
|
221
|
+
.get('<Resource Group Name>', '<Server Name>')
|
|
222
|
+
.vm_status
|
|
223
|
+
puts status
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Start a Server
|
|
227
|
+
```ruby
|
|
228
|
+
server.start
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Power Off a Server
|
|
232
|
+
```ruby
|
|
233
|
+
server.power_off
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Restart a Server
|
|
237
|
+
```ruby
|
|
238
|
+
server.restart
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Deallocate a Server
|
|
242
|
+
```ruby
|
|
243
|
+
server.deallocate
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Redeploy a Server
|
|
247
|
+
```ruby
|
|
248
|
+
server.redeploy
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Destroy a single Server
|
|
252
|
+
|
|
253
|
+
Get a server object from the get method (described above) and then destroy that server.
|
|
254
|
+
|
|
255
|
+
```ruby
|
|
256
|
+
server.destroy
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Attach a Data Disk to Server
|
|
260
|
+
|
|
261
|
+
Get the server object and attach a Data Disk to it. The data disk attached is blob based.
|
|
262
|
+
|
|
263
|
+
```ruby
|
|
264
|
+
server.attach_data_disk('<Disk Name>', <Size in GBs>, '<Storage Account Name>')
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Detach a Data Disk from Server
|
|
268
|
+
|
|
269
|
+
Get the server object and detach a Data Disk from it.
|
|
270
|
+
|
|
271
|
+
```ruby
|
|
272
|
+
server.detach_data_disk('<Disk Name>')
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Create Managed Disk
|
|
276
|
+
|
|
277
|
+
Create a new Premium Managed Disk
|
|
278
|
+
|
|
279
|
+
```ruby
|
|
280
|
+
fog_compute_service.managed_disks.create(
|
|
281
|
+
name: '<Disk Name>',
|
|
282
|
+
location: '<Location>',
|
|
283
|
+
resource_group_name: '<Resource Group Name>',
|
|
284
|
+
account_type: '<Storage Account Type>',
|
|
285
|
+
disk_size_gb: <Disk Size in GBs>,
|
|
286
|
+
creation_data: {
|
|
287
|
+
create_option: '<Create Option Value>'
|
|
288
|
+
}
|
|
289
|
+
)
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Create a new Standard Managed Disk
|
|
293
|
+
|
|
294
|
+
```ruby
|
|
295
|
+
fog_compute_service.managed_disks.create(
|
|
296
|
+
name: '<Disk Name>',
|
|
297
|
+
location: '<Location>',
|
|
298
|
+
resource_group_name: '<Resource Group Name>',
|
|
299
|
+
account_type: '<Storage Account Type>',
|
|
300
|
+
disk_size_gb: <Disk Size in GBs>,
|
|
301
|
+
creation_data: {
|
|
302
|
+
create_option: '<Create Option Value>'
|
|
303
|
+
}
|
|
304
|
+
)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Attach a Managed Data Disk to Server
|
|
308
|
+
|
|
309
|
+
Get the server object and attach a Data Disk to it.
|
|
310
|
+
|
|
311
|
+
```ruby
|
|
312
|
+
server.attach_managed_disk('<Disk Name>', '<Disk Resource Group Name>')
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Detach a Managed Data Disk from Server
|
|
316
|
+
|
|
317
|
+
Get the server object and detach a Data Disk from it.
|
|
318
|
+
|
|
319
|
+
```ruby
|
|
320
|
+
server.detach_managed_disk('<Disk Name>')
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## List Managed Disks in a Resource Group
|
|
324
|
+
|
|
325
|
+
List managed disks in a resource group
|
|
326
|
+
|
|
327
|
+
```ruby
|
|
328
|
+
managed_disks = fog_compute_service.managed_disks(resource_group: '<Resource Group Name>')
|
|
329
|
+
mnaged_disks.each do |disk|
|
|
330
|
+
puts "#{disk.name}"
|
|
331
|
+
puts "#{disk.location}"
|
|
332
|
+
end
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
## List Managed Disks in a Subscription
|
|
336
|
+
|
|
337
|
+
List managed disks in a subscription
|
|
338
|
+
|
|
339
|
+
```ruby
|
|
340
|
+
fog_compute_service.managed_disks.each do |disk|
|
|
341
|
+
puts "#{disk.name}"
|
|
342
|
+
puts "#{disk.location}"
|
|
343
|
+
end
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Grant Access to a Managed Disk
|
|
347
|
+
|
|
348
|
+
Grant access to a managed disk
|
|
349
|
+
|
|
350
|
+
```ruby
|
|
351
|
+
access_sas = fog_compute_service.managed_disks.grant_access('<Resource Group Name>', '<Disk Name>', '<Access Type>', <Duration in Seconds>)
|
|
352
|
+
puts "Access SAS: #{access_sas}"
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
## Revoke Access from a Managed Disk
|
|
356
|
+
|
|
357
|
+
Revoke access from a managed disk
|
|
358
|
+
|
|
359
|
+
```ruby
|
|
360
|
+
response = fog_compute_service.managed_disks.revoke_access('<Resource Group Name>', '<Disk Name>')
|
|
361
|
+
puts "Revoke Access response status: #{response.status}"
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## Check Managed Disk Existence
|
|
365
|
+
|
|
366
|
+
```ruby
|
|
367
|
+
fog_compute_service.managed_disks.check_managed_disk_exists('<Resource Group Name>', '<Disk Name>')
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## Retrieve a single Managed Disk
|
|
371
|
+
|
|
372
|
+
Get a single record of managed disks
|
|
373
|
+
|
|
374
|
+
```ruby
|
|
375
|
+
managed_disk = fog_compute_service
|
|
376
|
+
.managed_disks
|
|
377
|
+
.get('<Resource Group Name>', '<Disk Name>')
|
|
378
|
+
puts "#{managed_disk.name}"
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## Destroy a single Managed Disk
|
|
382
|
+
|
|
383
|
+
Get an managed disk object from the get method and then destroy that managed disk.
|
|
384
|
+
|
|
385
|
+
```ruby
|
|
386
|
+
managed_disk.destroy
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Check Availability Set Existence
|
|
390
|
+
|
|
391
|
+
```ruby
|
|
392
|
+
fog_compute_service.availability_sets.check_availability_set_exists('<Resource Group Name>', '<Availability Set Name>')
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
## Create Availability Set
|
|
396
|
+
|
|
397
|
+
Create a new availability set
|
|
398
|
+
|
|
399
|
+
```ruby
|
|
400
|
+
fog_compute_service.availability_sets.create(
|
|
401
|
+
name: '<Availability Set Name>',
|
|
402
|
+
location: '<Location>',
|
|
403
|
+
resource_group: '<Resource Group Name>'
|
|
404
|
+
platform_fault_domain_count: <No of Fault Domains>, # [Optional] Default => 2
|
|
405
|
+
platform_update_domain_count: <No of Update Domains>, # [Optional] Default => 5
|
|
406
|
+
use_managed_disk: true # [Optional] Possible values true or false
|
|
407
|
+
)
|
|
408
|
+
```
|
|
409
|
+
## List Availability Sets
|
|
410
|
+
|
|
411
|
+
List availability sets in a resource group
|
|
412
|
+
|
|
413
|
+
```ruby
|
|
414
|
+
availability_sets = fog_compute_service.availability_sets(resource_group: '<Resource Group Name>')
|
|
415
|
+
availability_sets.each do |availability_set|
|
|
416
|
+
puts "#{availability_set.name}"
|
|
417
|
+
puts "#{availability_set.location}"
|
|
418
|
+
end
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
## Retrieve a single Availability Set
|
|
422
|
+
|
|
423
|
+
Get a single record of Availability Set
|
|
424
|
+
|
|
425
|
+
```ruby
|
|
426
|
+
availability_set = fog_compute_service
|
|
427
|
+
.availability_sets
|
|
428
|
+
.get('<Resource Group Name>','<Availability Set Name>')
|
|
429
|
+
puts "#{availability_set.name}"
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
## Destroy a single Availability Set
|
|
433
|
+
|
|
434
|
+
Get an availability set object from the get method and then destroy that availability set.
|
|
435
|
+
|
|
436
|
+
```ruby
|
|
437
|
+
availability_set.destroy
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## Check Virtual Machine Extension Existence
|
|
441
|
+
|
|
442
|
+
```ruby
|
|
443
|
+
fog_compute_service.virtual_machine_extensions.check_vm_extension_exists('<Resource Group Name>', '<Virtual Machine Name>', '<Extension Name>')
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
## Create Virtual Machine Extension
|
|
447
|
+
|
|
448
|
+
Installs an extension to the specified virtual machine.
|
|
449
|
+
|
|
450
|
+
```ruby
|
|
451
|
+
fog_compute_service.virtual_machine_extensions.create(
|
|
452
|
+
name: '<Extension Name>',
|
|
453
|
+
resource_group: '<Resource Group Name>',
|
|
454
|
+
location: '<Location>',
|
|
455
|
+
vm_name: '<Virtual Machine Name>', # Extension will be installed on this VM
|
|
456
|
+
publisher: '<Extension Publisher>',
|
|
457
|
+
type: '<Extension Type>',
|
|
458
|
+
type_handler_version: '<Extension Version>',
|
|
459
|
+
settings: {JSON object}, # Format: {"key": "value", "key": {"key": "value"}}
|
|
460
|
+
protected_settings: {JSON object},
|
|
461
|
+
auto_upgrade_minor_version: <True/False> , # Optional
|
|
462
|
+
)
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
## Get Extension from Virtual Machine
|
|
466
|
+
|
|
467
|
+
Retrieves the given extension from the virtual machine
|
|
468
|
+
|
|
469
|
+
```ruby
|
|
470
|
+
vm_extension = fog_compute_service.virtual_machine_extensions.get(
|
|
471
|
+
'<Resource Group Name>', '<Virtual Machine Name>', '<Extension Name>'
|
|
472
|
+
)
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
## Update Extension
|
|
476
|
+
|
|
477
|
+
Update the given extension. The attributes that can be modified are
|
|
478
|
+
- auto_upgrade_minor_version
|
|
479
|
+
- settings
|
|
480
|
+
- protected_settings
|
|
481
|
+
|
|
482
|
+
```ruby
|
|
483
|
+
vm_extension.update(
|
|
484
|
+
auto_upgrade_minor_version: <True/False>,
|
|
485
|
+
settings: {JSON object},
|
|
486
|
+
protected_settings: {JSON object}
|
|
487
|
+
)
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
## Destroy Extension
|
|
491
|
+
|
|
492
|
+
Destroy the given extension from the virtual machine
|
|
493
|
+
|
|
494
|
+
```ruby
|
|
495
|
+
vm_extension.destroy
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
## Support and Feedback
|
|
499
|
+
Your feedback is appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.
|