far-gem 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|