far-gem 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.travis.yml +11 -9
- data/CHANGELOG.md +31 -0
- data/README.md +2 -0
- data/fog-azure-rm.gemspec +4 -3
- data/lib/fog/azurerm.rb +1 -0
- data/lib/fog/azurerm/custom_fog_errors.rb +18 -0
- data/lib/fog/azurerm/docs/compute.md +10 -4
- data/lib/fog/azurerm/docs/network.md +2 -1
- data/lib/fog/azurerm/models/compute/managed_disk.rb +9 -2
- data/lib/fog/azurerm/models/compute/server.rb +8 -1
- data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
- data/lib/fog/azurerm/models/resources/azure_resources.rb +8 -0
- data/lib/fog/azurerm/models/storage/file.rb +2 -0
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +35 -7
- data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +12 -4
- data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +139 -143
- data/lib/fog/azurerm/requests/resources/list_resources_in_resource_group.rb +42 -0
- data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +26 -26
- data/lib/fog/azurerm/resources.rb +1 -0
- data/lib/fog/azurerm/storage.rb +1 -0
- data/lib/fog/azurerm/utilities/general.rb +9 -5
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/api_stub/models/compute/server.rb +1 -0
- data/test/api_stub/models/resources/resource.rb +17 -0
- data/test/api_stub/requests/compute/virtual_machine.rb +8 -0
- data/test/api_stub/requests/network/network_security_group.rb +2 -2
- data/test/api_stub/requests/resources/resource.rb +17 -0
- data/test/api_stub/requests/storage/file.rb +9 -0
- data/test/integration/network_interface.rb +2 -1
- data/test/integration/resource_group.rb +10 -1
- data/test/models/compute/test_managed_disk.rb +9 -2
- data/test/models/compute/test_server.rb +1 -0
- data/test/models/network/test_network_interface.rb +2 -1
- data/test/models/resources/test_resources.rb +14 -1
- data/test/requests/application_gateway/test_check_ag_exists.rb +1 -1
- data/test/requests/application_gateway/test_create_or_update_application_gateway.rb +1 -1
- data/test/requests/application_gateway/test_delete_application_gateway.rb +1 -1
- data/test/requests/application_gateway/test_get_application_gateway.rb +1 -1
- data/test/requests/application_gateway/test_list_application_gateways.rb +1 -1
- data/test/requests/application_gateway/test_start_application_gateway.rb +1 -1
- data/test/requests/application_gateway/test_stop_application_gateway.rb +1 -1
- data/test/requests/compute/test_attach_data_disk_to_vm.rb +4 -4
- data/test/requests/compute/test_check_availability_set_exists.rb +1 -1
- data/test/requests/compute/test_check_managed_disk_exists.rb +1 -1
- data/test/requests/compute/test_check_vm_exists.rb +1 -1
- data/test/requests/compute/test_check_vm_extension_exists.rb +1 -1
- data/test/requests/compute/test_create_availability_set.rb +2 -2
- data/test/requests/compute/test_create_image.rb +1 -1
- data/test/requests/compute/test_create_or_update_managed_disk.rb +1 -1
- data/test/requests/compute/test_create_virtual_machine.rb +41 -17
- data/test/requests/compute/test_create_vm_extension.rb +1 -1
- data/test/requests/compute/test_deallocate_virtual_machine.rb +2 -2
- data/test/requests/compute/test_delete_availability_set.rb +1 -1
- data/test/requests/compute/test_delete_image.rb +1 -1
- data/test/requests/compute/test_delete_managed_disk.rb +2 -2
- data/test/requests/compute/test_delete_virtual_machine.rb +2 -2
- data/test/requests/compute/test_detach_data_disk_from_vm.rb +1 -1
- data/test/requests/compute/test_generalize_virtual_machine.rb +2 -2
- data/test/requests/compute/test_get_availability_set.rb +1 -1
- data/test/requests/compute/test_get_image.rb +1 -1
- data/test/requests/compute/test_get_managed_disk.rb +1 -1
- data/test/requests/compute/test_get_virtual_machine.rb +1 -1
- data/test/requests/compute/test_get_vm_extension.rb +1 -1
- data/test/requests/compute/test_get_vm_status.rb +1 -1
- data/test/requests/compute/test_grant_access_to_managed_disk.rb +1 -1
- data/test/requests/compute/test_list_availability_sets.rb +1 -1
- data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +2 -2
- data/test/requests/compute/test_list_managed_disks_by_rg.rb +1 -1
- data/test/requests/compute/test_list_managed_disks_in_subscription.rb +1 -1
- data/test/requests/compute/test_list_virtual_machines.rb +1 -1
- data/test/requests/compute/test_power_off_virtual_machine.rb +2 -2
- data/test/requests/compute/test_redeploy_virtual_machine.rb +2 -2
- data/test/requests/compute/test_restart_virtual_machine.rb +2 -2
- data/test/requests/compute/test_revoke_access_to_managed_disk.rb +1 -1
- data/test/requests/compute/test_start_virtual_machine.rb +2 -2
- data/test/requests/compute/test_update_vm_extension.rb +1 -1
- data/test/requests/dns/test_check_record_set_exists.rb +1 -1
- data/test/requests/dns/test_check_zone_exists.rb +1 -1
- data/test/requests/dns/test_create_record_set.rb +1 -1
- data/test/requests/dns/test_create_zone.rb +1 -1
- data/test/requests/dns/test_delete_record_set.rb +1 -1
- data/test/requests/dns/test_delete_zone.rb +1 -1
- data/test/requests/dns/test_get_record_set.rb +1 -1
- data/test/requests/dns/test_get_records_from_record_set.rb +1 -1
- data/test/requests/dns/test_get_zone.rb +1 -1
- data/test/requests/dns/test_list_record_sets.rb +1 -1
- data/test/requests/dns/test_list_zones.rb +1 -1
- data/test/requests/key_vault/test_check_vault_exists.rb +1 -1
- data/test/requests/key_vault/test_create_or_update_vault.rb +1 -1
- data/test/requests/key_vault/test_delete_vault.rb +1 -1
- data/test/requests/key_vault/test_get_vault.rb +1 -1
- data/test/requests/key_vault/test_list_vaults.rb +1 -1
- data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +1 -1
- data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +1 -1
- data/test/requests/network/test_add_subnets_in_virtual_network.rb +1 -1
- data/test/requests/network/test_attach_network_security_group_to_subnet.rb +1 -1
- data/test/requests/network/test_attach_resource_to_nic.rb +1 -1
- data/test/requests/network/test_attach_route_table_to_subnet.rb +1 -1
- data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
- data/test/requests/network/test_check_express_route_circuit_exists.rb +1 -1
- data/test/requests/network/test_check_load_balancer_exists.rb +1 -1
- data/test/requests/network/test_check_local_net_gateway_exists.rb +1 -1
- data/test/requests/network/test_check_net_sec_group_exists.rb +1 -1
- data/test/requests/network/test_check_net_sec_rule_exists.rb +1 -1
- data/test/requests/network/test_check_network_interface_exists.rb +1 -1
- data/test/requests/network/test_check_public_ip_exists.rb +1 -1
- data/test/requests/network/test_check_subnet_exists.rb +1 -1
- data/test/requests/network/test_check_virtual_network_exists.rb +1 -1
- data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +1 -1
- data/test/requests/network/test_check_vnet_gateway_exists.rb +1 -1
- data/test/requests/network/test_create_express_route_circuit.rb +1 -1
- data/test/requests/network/test_create_express_route_circuit_authorization.rb +1 -1
- data/test/requests/network/test_create_express_route_circuit_peering.rb +1 -1
- data/test/requests/network/test_create_load_balancer.rb +1 -1
- data/test/requests/network/test_create_local_network_gateway.rb +1 -1
- data/test/requests/network/test_create_network_interface.rb +1 -1
- data/test/requests/network/test_create_or_update_network_security_group.rb +1 -1
- data/test/requests/network/test_create_or_update_network_security_rule.rb +1 -1
- data/test/requests/network/test_create_or_update_virtual_network.rb +1 -1
- data/test/requests/network/test_create_public_ip.rb +1 -1
- data/test/requests/network/test_create_subnet.rb +1 -1
- data/test/requests/network/test_create_virtual_network_gateway.rb +1 -1
- data/test/requests/network/test_create_virtual_network_gateway_connection.rb +1 -1
- data/test/requests/network/test_delete_express_route_circuit.rb +1 -1
- data/test/requests/network/test_delete_express_route_circuit_authorization.rb +1 -1
- data/test/requests/network/test_delete_express_route_circuit_peering.rb +1 -1
- data/test/requests/network/test_delete_load_balancer.rb +1 -1
- data/test/requests/network/test_delete_local_network_gateway.rb +1 -1
- data/test/requests/network/test_delete_network_interface.rb +1 -1
- data/test/requests/network/test_delete_network_security_group.rb +1 -1
- data/test/requests/network/test_delete_network_security_rule.rb +1 -1
- data/test/requests/network/test_delete_public_ip.rb +1 -1
- data/test/requests/network/test_delete_subnet.rb +1 -1
- data/test/requests/network/test_delete_virtual_network.rb +1 -1
- data/test/requests/network/test_delete_virtual_network_gateway.rb +1 -1
- data/test/requests/network/test_delete_virtual_network_gateway_connection.rb +1 -1
- data/test/requests/network/test_detach_network_security_group_from_subnet.rb +1 -1
- data/test/requests/network/test_detach_resource_from_nic.rb +1 -1
- data/test/requests/network/test_detach_route_table_from_subnet.rb +1 -1
- data/test/requests/network/test_get_connection_shared_key.rb +1 -1
- data/test/requests/network/test_get_express_route_circuit.rb +1 -1
- data/test/requests/network/test_get_express_route_circuit_authorization.rb +1 -1
- data/test/requests/network/test_get_express_route_circuit_peering.rb +1 -1
- data/test/requests/network/test_get_load_balancer.rb +1 -1
- data/test/requests/network/test_get_local_network_gateway.rb +1 -1
- data/test/requests/network/test_get_network_interface.rb +1 -1
- data/test/requests/network/test_get_network_security_group.rb +1 -1
- data/test/requests/network/test_get_network_security_rule.rb +1 -1
- data/test/requests/network/test_get_public_ip.rb +1 -1
- data/test/requests/network/test_get_subnet.rb +1 -1
- data/test/requests/network/test_get_virtual_network.rb +1 -1
- data/test/requests/network/test_get_virtual_network_gateway.rb +1 -1
- data/test/requests/network/test_get_virtual_network_gateway_connection.rb +1 -1
- data/test/requests/network/test_list_express_route_circuit_authorizations.rb +1 -1
- data/test/requests/network/test_list_express_route_circuit_peerings.rb +1 -1
- data/test/requests/network/test_list_express_route_circuits.rb +1 -1
- data/test/requests/network/test_list_express_route_service_providers.rb +1 -1
- data/test/requests/network/test_list_load_balancers.rb +1 -1
- data/test/requests/network/test_list_local_network_gateways.rb +1 -1
- data/test/requests/network/test_list_network_interfaces.rb +1 -1
- data/test/requests/network/test_list_network_security_groups.rb +4 -4
- data/test/requests/network/test_list_network_security_rules.rb +1 -1
- data/test/requests/network/test_list_public_ips.rb +1 -1
- data/test/requests/network/test_list_subnets.rb +1 -1
- data/test/requests/network/test_list_virtual_network_gateway_connections.rb +1 -1
- data/test/requests/network/test_list_virtual_network_gateways.rb +1 -1
- data/test/requests/network/test_list_virtual_networks.rb +1 -1
- data/test/requests/network/test_list_virtual_networks_in_subscription.rb +1 -1
- data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +1 -1
- data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +1 -1
- data/test/requests/network/test_remove_subnets_from_virtual_network.rb +1 -1
- data/test/requests/network/test_reset_connection_shared_key.rb +1 -1
- data/test/requests/network/test_set_connection_shared_key.rb +1 -1
- data/test/requests/network/test_update_public_ip.rb +1 -1
- data/test/requests/resources/test_check_deployment_exists.rb +1 -1
- data/test/requests/resources/test_check_resource_group_exists.rb +1 -1
- data/test/requests/resources/test_create_deployment.rb +1 -1
- data/test/requests/resources/test_create_resource_group.rb +1 -1
- data/test/requests/resources/test_delete_deployment.rb +1 -1
- data/test/requests/resources/test_delete_resource_group.rb +1 -1
- data/test/requests/resources/test_delete_resource_tag.rb +1 -1
- data/test/requests/resources/test_get_deployment.rb +1 -1
- data/test/requests/resources/test_get_resource_group.rb +1 -1
- data/test/requests/resources/test_list_deployments.rb +1 -1
- data/test/requests/resources/test_list_resource_groups.rb +1 -1
- data/test/requests/resources/test_list_resources_in_resource_group.rb +24 -0
- data/test/requests/resources/test_list_tagged_resources.rb +1 -1
- data/test/requests/resources/test_tag_resource.rb +1 -1
- data/test/requests/sql/test_create_or_update_database.rb +1 -1
- data/test/requests/sql/test_create_or_update_firewall_rule.rb +1 -1
- data/test/requests/sql/test_create_or_update_sql_server.rb +1 -1
- data/test/requests/sql/test_delete_database.rb +1 -1
- data/test/requests/sql/test_delete_firewall_rule.rb +1 -1
- data/test/requests/sql/test_delete_sql_server.rb +1 -1
- data/test/requests/sql/test_get_database.rb +1 -1
- data/test/requests/sql/test_get_firewall_rule.rb +1 -1
- data/test/requests/sql/test_get_sql_server.rb +1 -1
- data/test/requests/sql/test_list_databases.rb +1 -1
- data/test/requests/sql/test_list_firewall_rules.rb +1 -1
- data/test/requests/sql/test_list_sql_servers.rb +1 -1
- data/test/requests/storage/test_acquire_blob_lease.rb +1 -1
- data/test/requests/storage/test_acquire_container_lease.rb +1 -1
- data/test/requests/storage/test_check_storage_account_exists.rb +1 -1
- data/test/requests/storage/test_check_storage_account_name_availability.rb +1 -1
- data/test/requests/storage/test_commit_blob_blocks.rb +1 -1
- data/test/requests/storage/test_compare_container_blobs.rb +1 -1
- data/test/requests/storage/test_copy_blob.rb +1 -1
- data/test/requests/storage/test_copy_blob_from_uri.rb +1 -1
- data/test/requests/storage/test_create_block_blob.rb +1 -1
- data/test/requests/storage/test_create_container.rb +1 -1
- data/test/requests/storage/test_create_page_blob.rb +1 -1
- data/test/requests/storage/test_create_storage_account.rb +1 -1
- data/test/requests/storage/test_delete_blob.rb +1 -1
- data/test/requests/storage/test_delete_container.rb +1 -1
- data/test/requests/storage/test_delete_storage_account.rb +1 -1
- data/test/requests/storage/test_get_blob.rb +4 -4
- data/test/requests/storage/test_get_blob_properties.rb +4 -2
- data/test/requests/storage/test_get_container_acl.rb +1 -1
- data/test/requests/storage/test_get_container_properties.rb +1 -1
- data/test/requests/storage/test_get_storage_access_keys.rb +1 -1
- data/test/requests/storage/test_get_storage_account.rb +1 -1
- data/test/requests/storage/test_list_blobs.rb +1 -1
- data/test/requests/storage/test_list_containers.rb +1 -1
- data/test/requests/storage/test_list_storage_accounts.rb +1 -1
- data/test/requests/storage/test_list_storage_accounts_for_rg.rb +1 -1
- data/test/requests/storage/test_put_blob_block.rb +1 -1
- data/test/requests/storage/test_put_blob_metadata.rb +1 -1
- data/test/requests/storage/test_put_blob_pages.rb +1 -1
- data/test/requests/storage/test_put_blob_properties.rb +1 -1
- data/test/requests/storage/test_put_container_acl.rb +1 -1
- data/test/requests/storage/test_put_container_metadata.rb +1 -1
- data/test/requests/storage/test_release_blob_lease.rb +1 -1
- data/test/requests/storage/test_release_container_lease.rb +1 -1
- data/test/requests/storage/test_update_storage_account.rb +1 -1
- data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +1 -1
- data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +1 -1
- data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +1 -1
- data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +1 -1
- data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +1 -1
- data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +1 -1
- data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +1 -1
- data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +1 -1
- data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +1 -1
- data/test/requests/traffic_manager/test_update_traffic_manager_endpoint.rb +1 -1
- data/test/requests/traffic_manager/test_update_traffic_manager_profile.rb +1 -1
- metadata +25 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8c9202be26511d57c68a4016a97d6d1f38326eb27f38184dfbf612d53bd90885
|
4
|
+
data.tar.gz: caef6851e7ed997b0806a1f0a319805fb02b2fbd534ffa059edabc99e6574ea2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9708b117ba2783a4b56f94040fc86f1b4cd6d9facae77117bf5ed93244574647eb4aef95feb529413eed9126f097bfc42e2496725f86f1b336cec3fda091526d
|
7
|
+
data.tar.gz: dabbcffd77648802ceec978c21c267e844240aee3958c511ba9d0c92779a32d4d77bc0c4366925141920c16468bfceb8fc733dbf07f7d0691e58a462ae03a095
|
data/.travis.yml
CHANGED
@@ -9,13 +9,15 @@ before_install:
|
|
9
9
|
script: bash ./rake-script.sh
|
10
10
|
|
11
11
|
rvm:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
- 2.0.0
|
13
|
+
- 2.1.0
|
14
|
+
- 2.1.1
|
15
|
+
- 2.1.5
|
16
|
+
- 2.2.10
|
17
|
+
- 2.3.7
|
18
|
+
- 2.4.4
|
19
|
+
- 2.5.1
|
20
|
+
- jruby-head
|
19
21
|
|
20
22
|
matrix:
|
21
23
|
fast_finish: true
|
@@ -39,8 +41,8 @@ jobs:
|
|
39
41
|
deploy:
|
40
42
|
provider: rubygems
|
41
43
|
api_key:
|
42
|
-
secure: "
|
43
|
-
gem:
|
44
|
+
secure: "aKIOqa6gFMQOcwdNBNsfRoAQm+LVCRf9JpEFnDH8YLRp9A+roj0BL3hZ+pP+pb2sQSEQqU46bfBBrhB2b6Xmjnmv5d0878bl+eYOXeu90CfqRf+v/y+2k/pMsVsKs3Su7M0bHGOeHYT+segRqDHaZaJHkAW8RwLLm5A+0TyEeVjkkpFcyX8fjr5sfvD+XbEmXmmPWPuShQjKTTj1HFYJknRLLNXVYd7ZM9eKgiQfuyomdUTk8yguqNDBWW1BjiEE/0JYqx4wJxdGKPHYT+enP1xIebJVx1gEEnc/OgyBZqtmOirlh2Rnuk58NZfArzwMzIvVclJvPmynmEAlHEWtXwUgQMW5Wu/RYpxRRpr5tDRfru99hll4N9bcA439GlsNHTNJf82zmGNFIdDJ8kUJ08tVPwTvEnWGzLIdKAKWyRV+SESmZb5u3m9e4VTd06/q8gdbW9pG9UGmoes/j32lKzk9DkheCVzQjdxfRs81Z/7uTB3OhhpQnrRlf7qa2OnMDZKrip67UQHiruzAX6naQ7D5fEHR64DGZG7fQ/xRi0oG21UdNl1n/Bioj6ChFXLyInKeA0fiEwwquWK2S/2Sr5ERTBzbv9TkvbJ/1vv8FWcYYmb7bL22699V9yWcsOxEdZEYDucg71g6OrPeNeFZDsJ1749fZzW2X444+4Xtwys="
|
45
|
+
gem: fog-azure-rm
|
44
46
|
gemspec: fog-azure-rm.gemspec
|
45
47
|
on:
|
46
48
|
tags: true
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,34 @@
|
|
1
|
+
## 0.4.8
|
2
|
+
|
3
|
+
**Added:**
|
4
|
+
- Added enable_accelerated_networking attribute for NIC
|
5
|
+
|
6
|
+
## 0.4.7
|
7
|
+
|
8
|
+
**Added:**
|
9
|
+
- Support added to list resources in a resource group
|
10
|
+
- Added OS disk id attribute to the 'Compute' model
|
11
|
+
|
12
|
+
## 0.4.6
|
13
|
+
|
14
|
+
**Added:**
|
15
|
+
- Created Custom Fog Exceptions
|
16
|
+
|
17
|
+
## 0.4.5
|
18
|
+
|
19
|
+
**Changed:**
|
20
|
+
- Updated dependency of fog-json to (~> 1.0.2)
|
21
|
+
|
22
|
+
## 0.4.4
|
23
|
+
|
24
|
+
**Fixed:**
|
25
|
+
- Compute Service - Fixed customData Update Issue
|
26
|
+
|
27
|
+
## 0.4.3
|
28
|
+
|
29
|
+
**Fixed:**
|
30
|
+
- Compute Service - Fixed Server Update Scenario
|
31
|
+
|
1
32
|
## 0.4.2
|
2
33
|
|
3
34
|
**Fixed:**
|
data/README.md
CHANGED
data/fog-azure-rm.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
|
14
14
|
spec.require_paths = %w[lib]
|
15
15
|
spec.license = 'MIT'
|
16
|
-
spec.homepage = 'https://github.com/
|
16
|
+
spec.homepage = 'https://github.com/fog/fog-azure-rm'
|
17
17
|
spec.rdoc_options = %w[--charset=UTF-8]
|
18
18
|
spec.extra_rdoc_files = %w[README.md]
|
19
19
|
spec.required_ruby_version = '>= 2.0.0'
|
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency 'minitest', '~> 5.8.4'
|
23
23
|
spec.add_development_dependency 'simplecov'
|
24
24
|
spec.add_development_dependency 'codeclimate-test-reporter' , '~> 1.0.0'
|
25
|
-
spec.add_dependency 'fog-core', '~>
|
26
|
-
spec.add_dependency 'fog-json', '~> 1.0'
|
25
|
+
spec.add_dependency 'fog-core', '~> 1.43'
|
26
|
+
spec.add_dependency 'fog-json', '~> 1.0.2'
|
27
27
|
spec.add_dependency 'azure_mgmt_compute', '~> 0.9.0'
|
28
28
|
spec.add_dependency 'azure_mgmt_resources', '~> 0.9.0'
|
29
29
|
spec.add_dependency 'azure_mgmt_storage', '~> 0.9.0'
|
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency 'azure_mgmt_key_vault', '~> 0.9.0'
|
35
35
|
spec.add_dependency 'azure-storage', '= 0.11.5.preview'
|
36
36
|
spec.add_dependency 'vhd', '0.0.4'
|
37
|
+
spec.add_dependency 'mime-types', '~> 1.25'
|
37
38
|
end
|
data/lib/fog/azurerm.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file contains any or all custom Fog errors that we create
|
2
|
+
module Fog
|
3
|
+
module AzureRM
|
4
|
+
# This is a custom Fog exception inherited from MsRestAzure::AzureOperationError
|
5
|
+
class CustomAzureOperationError < MsRestAzure::AzureOperationError
|
6
|
+
def initialize(message, azure_exception)
|
7
|
+
super(azure_exception.request, azure_exception.response, azure_exception.body, "Exception in #{message}")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# This is a custom Fog exception inherited from Azure::Core::Http::HTTPError
|
12
|
+
class CustomAzureCoreHttpError < Azure::Core::Http::HTTPError
|
13
|
+
def initialize(azure_exception)
|
14
|
+
super(azure_exception.http_response)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -61,7 +61,8 @@ fog_compute_service.servers.create(
|
|
61
61
|
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
62
62
|
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
63
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
|
64
|
+
os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
|
65
|
+
os_disk_name: '<Disk Name>' # [Optional], name of the os disk
|
65
66
|
)
|
66
67
|
```
|
67
68
|
|
@@ -97,7 +98,8 @@ fog_compute_service.servers.create(
|
|
97
98
|
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
98
99
|
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
99
100
|
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
|
101
|
+
os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
|
102
|
+
os_disk_name: '<Disk Name>' # [Optional], name of the os disk
|
101
103
|
)
|
102
104
|
```
|
103
105
|
|
@@ -123,7 +125,8 @@ fog_compute_service.servers.create(
|
|
123
125
|
availability_set_id: '<Availability Set Id>', # [Optional]
|
124
126
|
vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
|
125
127
|
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
126
|
-
os_disk_size: <Disk Size
|
128
|
+
os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
|
129
|
+
os_disk_name: '<Disk Name>' # [Optional], name of the os disk
|
127
130
|
)
|
128
131
|
```
|
129
132
|
|
@@ -153,7 +156,8 @@ async_response = fog_compute_service.servers.create_async(
|
|
153
156
|
custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
|
154
157
|
os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
|
155
158
|
managed_disk_storage_type: '<Storage Account Type>', # [Optional], can be StandardLRS or PremiumLRS
|
156
|
-
os_disk_size: <Disk Size
|
159
|
+
os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
|
160
|
+
os_disk_name: '<Disk Name>' # [Optional], name of the os disk
|
157
161
|
)
|
158
162
|
```
|
159
163
|
Following methods are available to handle async respoonse:
|
@@ -384,6 +388,8 @@ Get an managed disk object from the get method and then destroy that managed dis
|
|
384
388
|
|
385
389
|
```ruby
|
386
390
|
managed_disk.destroy
|
391
|
+
# Can be made asynchronously (is synchronous by default)
|
392
|
+
managed_disk.destroy(true)
|
387
393
|
```
|
388
394
|
|
389
395
|
## Check Availability Set Existence
|
@@ -256,7 +256,8 @@ nic = fog_network_service.network_interfaces.create(
|
|
256
256
|
public_ip_address_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>',
|
257
257
|
ip_configuration_name: '<IP Configuration Name>',
|
258
258
|
private_ip_allocation_method: '<IP Allocation Method Name>',
|
259
|
-
tags: { key: 'value' } # [Optional]
|
259
|
+
tags: { key: 'value' } # [Optional],
|
260
|
+
enable_accelerated_networking: true # [Optional] false by default
|
260
261
|
)
|
261
262
|
```
|
262
263
|
|
@@ -46,8 +46,10 @@ module Fog
|
|
46
46
|
merge_attributes(Fog::Compute::AzureRM::ManagedDisk.parse(disk))
|
47
47
|
end
|
48
48
|
|
49
|
-
def destroy
|
50
|
-
service.delete_managed_disk(resource_group_name, name
|
49
|
+
def destroy(async = false)
|
50
|
+
response = service.delete_managed_disk(resource_group_name, name,
|
51
|
+
async)
|
52
|
+
async ? create_fog_async_response(response) : response
|
51
53
|
end
|
52
54
|
|
53
55
|
private
|
@@ -71,6 +73,11 @@ module Fog
|
|
71
73
|
encryption_settings: encryption_settings
|
72
74
|
}
|
73
75
|
end
|
76
|
+
|
77
|
+
def create_fog_async_response(response, delete_extra_resource = false)
|
78
|
+
disk = Fog::Compute::AzureRM::ManagedDisk.new(service: service)
|
79
|
+
Fog::AzureRM::AsyncResponse.new(disk, response, delete_extra_resource)
|
80
|
+
end
|
74
81
|
end
|
75
82
|
end
|
76
83
|
end
|
@@ -11,6 +11,7 @@ module Fog
|
|
11
11
|
attribute :vm_size
|
12
12
|
attribute :storage_account_name
|
13
13
|
attribute :os_disk_name
|
14
|
+
attribute :os_disk_id
|
14
15
|
attribute :os_disk_vhd_uri
|
15
16
|
attribute :os_disk_caching
|
16
17
|
attribute :publisher
|
@@ -46,6 +47,10 @@ module Fog
|
|
46
47
|
hash['vm_size'] = vm.hardware_profile.vm_size unless vm.hardware_profile.vm_size.nil?
|
47
48
|
unless vm.storage_profile.nil?
|
48
49
|
hash['os_disk_name'] = vm.storage_profile.os_disk.name
|
50
|
+
|
51
|
+
subscription_id = get_subscription_id(vm.id)
|
52
|
+
hash['os_disk_id'] = "/subscriptions/#{subscription_id}/resourceGroups/#{hash['resource_group']}/providers/Microsoft.Compute/disks/#{hash['os_disk_name']}"
|
53
|
+
|
49
54
|
hash['os_disk_size'] = vm.storage_profile.os_disk.disk_size_gb
|
50
55
|
if vm.storage_profile.os_disk.vhd.nil?
|
51
56
|
hash['managed_disk_storage_type'] = vm.storage_profile.os_disk.managed_disk.storage_account_type
|
@@ -228,7 +233,9 @@ module Fog
|
|
228
233
|
managed_disk_storage_type: managed_disk_storage_type,
|
229
234
|
os_disk_size: os_disk_size,
|
230
235
|
tags: tags,
|
231
|
-
image_ref: image_ref
|
236
|
+
image_ref: image_ref,
|
237
|
+
os_disk_name: os_disk_name,
|
238
|
+
os_disk_vhd_uri: os_disk_vhd_uri
|
232
239
|
}
|
233
240
|
end
|
234
241
|
|
@@ -23,6 +23,7 @@ module Fog
|
|
23
23
|
attribute :internal_dns_name_label
|
24
24
|
attribute :internal_fqd
|
25
25
|
attribute :tags
|
26
|
+
attribute :enable_accelerated_networking
|
26
27
|
|
27
28
|
def self.parse(nic)
|
28
29
|
hash = {}
|
@@ -54,6 +55,7 @@ module Fog
|
|
54
55
|
hash['internal_dns_name_label'] = nic_dns_settings.internal_dns_name_label
|
55
56
|
hash['internal_fqd'] = nic_dns_settings.internal_fqdn
|
56
57
|
end
|
58
|
+
hash['enable_accelerated_networking'] = nic.enable_accelerated_networking
|
57
59
|
hash
|
58
60
|
end
|
59
61
|
|
@@ -64,7 +66,7 @@ module Fog
|
|
64
66
|
requires :subnet_id
|
65
67
|
requires :ip_configuration_name
|
66
68
|
requires :private_ip_allocation_method
|
67
|
-
nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
|
69
|
+
nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
|
68
70
|
merge_attributes(Fog::Network::AzureRM::NetworkInterface.parse(nic))
|
69
71
|
end
|
70
72
|
|
@@ -26,6 +26,14 @@ module Fog
|
|
26
26
|
def check_azure_resource_exists(resource_id, api_version)
|
27
27
|
service.check_azure_resource_exists(resource_id, api_version)
|
28
28
|
end
|
29
|
+
|
30
|
+
def list_resources_in_resource_group(resource_group_name)
|
31
|
+
resources = []
|
32
|
+
service.list_resources_in_resource_group(resource_group_name).each do |resource|
|
33
|
+
resources.push(Fog::Resources::AzureRM::AzureResource.parse(resource))
|
34
|
+
end
|
35
|
+
load(resources)
|
36
|
+
end
|
29
37
|
end
|
30
38
|
end
|
31
39
|
end
|
@@ -11,6 +11,13 @@ module Fog
|
|
11
11
|
vm_name = vm_config[:name]
|
12
12
|
rg_name = vm_config[:resource_group]
|
13
13
|
|
14
|
+
# In case of updating the VM, we check if the user has passed any value for os_disk_name
|
15
|
+
# If the user has not passed any value, we try to retrieve the value of os_disk_name from the VM
|
16
|
+
# If the VM exists then the os_disk_name is retrieved; else it remains nil
|
17
|
+
os_disk_parameters = get_os_disk_parameters(rg_name, vm_name) if vm_config[:os_disk_name].nil? || vm_config[:os_disk_vhd_uri].nil?
|
18
|
+
vm_config[:os_disk_name] = os_disk_parameters[:os_disk_name] if vm_config[:os_disk_name].nil?
|
19
|
+
vm_config[:os_disk_vhd_uri] = os_disk_parameters[:os_disk_vhd_uri] if vm_config[:os_disk_vhd_uri].nil?
|
20
|
+
|
14
21
|
msg = "Creating Virtual Machine '#{vm_name}' in Resource Group '#{rg_name}'..."
|
15
22
|
Fog::Logger.debug msg
|
16
23
|
|
@@ -67,7 +74,7 @@ module Fog
|
|
67
74
|
vm_name = vm_config[:name]
|
68
75
|
username = vm_config[:username]
|
69
76
|
password = vm_config[:password]
|
70
|
-
custom_data = vm_config[:custom_data]
|
77
|
+
custom_data = vm_config[:custom_data] unless vm_config[:custom_data].nil?
|
71
78
|
provision_vm_agent = vm_config[:provision_vm_agent]
|
72
79
|
enable_automatic_updates = vm_config[:enable_automatic_updates]
|
73
80
|
disable_password_auth = vm_config[:disable_password_authentication]
|
@@ -79,7 +86,7 @@ module Fog
|
|
79
86
|
os_profile.computer_name = vm_name
|
80
87
|
os_profile.admin_username = username
|
81
88
|
os_profile.admin_password = password
|
82
|
-
os_profile.custom_data = Base64.strict_encode64(custom_data
|
89
|
+
os_profile.custom_data = Base64.strict_encode64(custom_data) unless vm_config[:custom_data].nil?
|
83
90
|
|
84
91
|
if platform.casecmp(WINDOWS).zero?
|
85
92
|
os_profile.windows_configuration = get_windows_config(provision_vm_agent, enable_automatic_updates)
|
@@ -154,12 +161,14 @@ module Fog
|
|
154
161
|
os_disk_size = vm_config[:os_disk_size]
|
155
162
|
location = vm_config[:location]
|
156
163
|
image_ref = vm_config[:image_ref]
|
164
|
+
os_disk_name = vm_config[:os_disk_name]
|
165
|
+
os_disk_vhd_uri = vm_config[:os_disk_vhd_uri]
|
157
166
|
|
158
167
|
storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
|
159
168
|
# Set OS disk VHD path
|
160
169
|
os_disk = Azure::ARM::Compute::Models::OSDisk.new
|
161
170
|
vhd = Azure::ARM::Compute::Models::VirtualHardDisk.new
|
162
|
-
vhd.uri = get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd"
|
171
|
+
vhd.uri = os_disk_vhd_uri.nil? ? get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd" : os_disk_vhd_uri
|
163
172
|
os_disk.vhd = vhd
|
164
173
|
|
165
174
|
if vhd_path.nil? && image_ref.nil?
|
@@ -180,7 +189,7 @@ module Fog
|
|
180
189
|
storage_profile.image_reference.id = image.id
|
181
190
|
end
|
182
191
|
|
183
|
-
storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
|
192
|
+
storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
|
184
193
|
storage_profile
|
185
194
|
end
|
186
195
|
|
@@ -200,6 +209,7 @@ module Fog
|
|
200
209
|
platform = vm_config[:platform]
|
201
210
|
vm_name = vm_config[:name]
|
202
211
|
image_ref = vm_config[:image_ref]
|
212
|
+
os_disk_name = vm_config[:os_disk_name]
|
203
213
|
|
204
214
|
# Build storage profile
|
205
215
|
storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
|
@@ -226,7 +236,7 @@ module Fog
|
|
226
236
|
storage_profile.image_reference.id = image.id
|
227
237
|
end
|
228
238
|
|
229
|
-
storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
|
239
|
+
storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
|
230
240
|
storage_profile
|
231
241
|
end
|
232
242
|
|
@@ -249,8 +259,9 @@ module Fog
|
|
249
259
|
}
|
250
260
|
end
|
251
261
|
|
252
|
-
def configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
|
253
|
-
|
262
|
+
def configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
|
263
|
+
# It will use the os_disk_name provided or it will generate a name for itself if it is nil
|
264
|
+
os_disk.name = os_disk_name.nil? ? "#{vm_name}_os_disk" : os_disk_name
|
254
265
|
os_disk.os_type = platform
|
255
266
|
os_disk.disk_size_gb = os_disk_size unless os_disk_size.nil?
|
256
267
|
os_disk.create_option = Azure::ARM::Compute::Models::DiskCreateOptionTypes::FromImage
|
@@ -332,6 +343,23 @@ module Fog
|
|
332
343
|
TEMPORARY_STORAGE_ACCOUNT_TAG_KEY,
|
333
344
|
TEMPORARY_STORAGE_ACCOUNT_TAG_VALUE)
|
334
345
|
end
|
346
|
+
|
347
|
+
def get_os_disk_parameters(resource_group, virtual_machine_name)
|
348
|
+
os_disk_parameters = {}
|
349
|
+
|
350
|
+
begin
|
351
|
+
vm = get_virtual_machine(resource_group, virtual_machine_name, false)
|
352
|
+
rescue
|
353
|
+
return os_disk_parameters
|
354
|
+
end
|
355
|
+
|
356
|
+
unless vm.storage_profile.nil?
|
357
|
+
os_disk_parameters[:os_disk_name] = vm.storage_profile.os_disk.name
|
358
|
+
os_disk_parameters[:os_disk_vhd_uri] = vm.storage_profile.os_disk.vhd.uri unless vm.storage_profile.os_disk.vhd.nil?
|
359
|
+
end
|
360
|
+
|
361
|
+
os_disk_parameters
|
362
|
+
end
|
335
363
|
end
|
336
364
|
|
337
365
|
# This class provides the mock implementation for unit tests.
|
@@ -4,16 +4,24 @@ module Fog
|
|
4
4
|
class AzureRM
|
5
5
|
# Real class for Compute Request
|
6
6
|
class Real
|
7
|
-
def delete_managed_disk(resource_group_name, disk_name)
|
7
|
+
def delete_managed_disk(resource_group_name, disk_name, async)
|
8
8
|
msg = "Deleting Managed Disk: #{disk_name}"
|
9
9
|
Fog::Logger.debug msg
|
10
10
|
begin
|
11
|
-
|
11
|
+
if async
|
12
|
+
response = @compute_mgmt_client.disks.delete_async(resource_group_name, disk_name)
|
13
|
+
else
|
14
|
+
@compute_mgmt_client.disks.delete(resource_group_name, disk_name)
|
15
|
+
end
|
12
16
|
rescue MsRestAzure::AzureOperationError => e
|
13
17
|
raise_azure_exception(e, msg)
|
14
18
|
end
|
15
|
-
|
16
|
-
|
19
|
+
if async
|
20
|
+
response
|
21
|
+
else
|
22
|
+
Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
|
23
|
+
true
|
24
|
+
end
|
17
25
|
end
|
18
26
|
end
|
19
27
|
|
@@ -4,10 +4,10 @@ module Fog
|
|
4
4
|
class AzureRM
|
5
5
|
# Real class for Network Request
|
6
6
|
class Real
|
7
|
-
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
|
7
|
+
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking = false)
|
8
8
|
msg = "Creating/Updating Network Interface Card: #{name}"
|
9
9
|
Fog::Logger.debug msg
|
10
|
-
network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
|
10
|
+
network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
|
11
11
|
begin
|
12
12
|
network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
@@ -19,7 +19,7 @@ module Fog
|
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
|
-
def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
|
22
|
+
def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
|
23
23
|
if public_ip_address_id
|
24
24
|
public_ipaddress = Azure::ARM::Network::Models::PublicIPAddress.new
|
25
25
|
public_ipaddress.id = public_ip_address_id
|
@@ -60,6 +60,7 @@ module Fog
|
|
60
60
|
network_interface.location = location
|
61
61
|
network_interface.ip_configurations = [ip_configs]
|
62
62
|
network_interface.tags = tags
|
63
|
+
network_interface.enable_accelerated_networking = enable_accelerated_networking
|
63
64
|
|
64
65
|
if network_security_group_id
|
65
66
|
network_security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
|