fog 1.22.1 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/CHANGELOG.md +351 -0
- data/CONTRIBUTORS.md +43 -0
- data/Rakefile +2 -2
- data/fog.gemspec +6 -4
- data/gemfiles/Gemfile-edge +0 -3
- data/gemfiles/Gemfile-ruby-1.8.7 +1 -0
- data/lib/fog.rb +2 -0
- data/lib/fog/aws/beanstalk.rb +0 -1
- data/lib/fog/aws/compute.rb +46 -2
- data/lib/fog/aws/dns.rb +1 -1
- data/lib/fog/aws/elb.rb +2 -1
- data/lib/fog/aws/models/compute/flavors.rb +80 -0
- data/lib/fog/aws/models/compute/image.rb +1 -0
- data/lib/fog/aws/models/compute/network_acl.rb +12 -1
- data/lib/fog/aws/models/compute/network_interface.rb +1 -0
- data/lib/fog/aws/models/compute/server.rb +6 -13
- data/lib/fog/aws/models/compute/servers.rb +82 -31
- data/lib/fog/aws/models/compute/subnet.rb +1 -0
- data/lib/fog/aws/models/compute/vpc.rb +11 -0
- data/lib/fog/aws/models/data_pipeline/pipeline.rb +2 -1
- data/lib/fog/aws/models/elasticache/cluster.rb +8 -16
- data/lib/fog/aws/parsers/compute/describe_instances.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_internet_gateways.rb +1 -2
- data/lib/fog/aws/parsers/compute/describe_subnets.rb +2 -0
- data/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb +24 -0
- data/lib/fog/aws/parsers/compute/network_interface_parser.rb +6 -1
- data/lib/fog/aws/parsers/rds/db_parser.rb +3 -15
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +8 -3
- data/lib/fog/aws/requests/compute/create_network_acl.rb +1 -1
- data/lib/fog/aws/requests/compute/create_tags.rb +1 -20
- data/lib/fog/aws/requests/compute/create_vpc.rb +2 -1
- data/lib/fog/aws/requests/compute/delete_tags.rb +1 -17
- data/lib/fog/aws/requests/compute/describe_instances.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_network_acls.rb +6 -0
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +6 -0
- data/lib/fog/aws/requests/compute/modify_subnet_attribute.rb +58 -0
- data/lib/fog/aws/requests/compute/register_image.rb +2 -2
- data/lib/fog/aws/requests/compute/run_instances.rb +2 -1
- data/lib/fog/aws/requests/data_pipeline/create_pipeline.rb +4 -2
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +4 -1
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +3 -2
- data/lib/fog/bin.rb +2 -0
- data/lib/fog/bin/opennebula.rb +60 -0
- data/lib/fog/bin/softlayer.rb +53 -0
- data/lib/fog/cloudsigma/models/lib_volume.rb +1 -1
- data/lib/fog/cloudstack/compute.rb +375 -14
- data/lib/fog/cloudstack/requests/compute/activate_project.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_account_to_project.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_baremetal_dhcp.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_baremetal_host.rb +26 -0
- data/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_kick_start_server.rb +26 -0
- data/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_ping_server.rb +28 -0
- data/lib/fog/cloudstack/requests/compute/add_cisco_asa1000v_resource.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/add_cisco_vnmc_resource.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/add_cluster.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_external_firewall.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/add_external_load_balancer.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/add_f5_load_balancer.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_host.rb +26 -0
- data/lib/fog/cloudstack/requests/compute/add_image_store.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_ip_to_nic.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_netscaler_load_balancer.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_network_device.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/add_network_service_provider.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/add_nic_to_virtual_machine.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/add_nicira_nvp_device.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_region.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/add_resource_detail.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/add_s3.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/add_secondary_storage.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_srx_firewall.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/add_swift.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/add_traffic_monitor.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/add_traffic_type.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/add_ucs_manager.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/add_vmware_dc.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/add_vpn_user.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/archive_alerts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/archive_events.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/assign_to_global_load_balancer_rule.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb +10 -10
- data/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb +13 -8
- data/lib/fog/cloudstack/requests/compute/associate_ip_address.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/associate_lun.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/associate_ucs_profile_to_blade.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/attach_iso.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/attach_volume.rb +15 -10
- data/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb +10 -4
- data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +10 -5
- data/lib/fog/cloudstack/requests/compute/cancel_host_maintenance.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/cancel_storage_maintenance.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/change_service_for_router.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/change_service_for_system_vm.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb +8 -4
- data/lib/fog/cloudstack/requests/compute/clean_vmreservations.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/configure_f5_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/configure_internal_load_balancer_element.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/configure_netscaler_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/configure_srx_firewall.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/configure_virtual_router_element.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/copy_iso.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/copy_template.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_account.rb +13 -5
- data/lib/fog/cloudstack/requests/compute/create_affinity_group.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_auto_scale_policy.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_group.rb +26 -0
- data/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_profile.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_condition.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_counter.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_disk_offering.rb +14 -9
- data/lib/fog/cloudstack/requests/compute/create_domain.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/create_egress_firewall_rule.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_firewall_rule.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_global_load_balancer_rule.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/create_instance_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_internal_load_balancer_element.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_ip_forwarding_rule.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_lb_health_check_policy.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_lb_stickiness_policy.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_load_balancer.rb +27 -0
- data/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb +10 -4
- data/lib/fog/cloudstack/requests/compute/create_lun_on_filer.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_network.rb +11 -5
- data/lib/fog/cloudstack/requests/compute/create_network_acl.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_network_acl_list.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_network_offering.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_physical_network.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_pod.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_pool.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb +12 -5
- data/lib/fog/cloudstack/requests/compute/create_portable_ip_range.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_private_gateway.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_project.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_remote_access_vpn.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_secondary_staging_store.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_security_group.rb +11 -6
- data/lib/fog/cloudstack/requests/compute/create_service_offering.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_snapshot.rb +9 -7
- data/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb +12 -5
- data/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb +8 -6
- data/lib/fog/cloudstack/requests/compute/create_static_route.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_storage_network_ip_range.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/create_storage_pool.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_tags.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_template.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_user.rb +13 -5
- data/lib/fog/cloudstack/requests/compute/create_virtual_router_element.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_vlan_ip_range.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/create_vm_snapshot.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_volume.rb +10 -8
- data/lib/fog/cloudstack/requests/compute/create_volume_on_filer.rb +27 -0
- data/lib/fog/cloudstack/requests/compute/create_vpc.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_vpcoffering.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/create_vpn_connection.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/create_vpn_customer_gateway.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_vpn_gateway.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/create_zone.rb +15 -9
- data/lib/fog/cloudstack/requests/compute/dedicate_cluster.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/dedicate_guest_vlan_range.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/dedicate_host.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/dedicate_pod.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/dedicate_public_ip_range.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/dedicate_zone.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/delete_account.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_account_from_project.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/delete_affinity_group.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_alerts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_auto_scale_policy.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_profile.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_cisco_asa1000v_resource.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_cisco_nexus_vsm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_cisco_vnmc_resource.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_cluster.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_condition.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_counter.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb +12 -9
- data/lib/fog/cloudstack/requests/compute/delete_domain.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_egress_firewall_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_events.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_external_firewall.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_external_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_f5_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_firewall_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_global_load_balancer_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_host.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_image_store.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_instance_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_ip_forwarding_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_iso.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_lb_health_check_policy.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_lb_stickiness_policy.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_netscaler_load_balancer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network_acl.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network_acl_list.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network_device.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network_offering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_network_service_provider.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_nicira_nvp_device.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_physical_network.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_pod.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_pool.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_portable_ip_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_private_gateway.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_project.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_project_invitation.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_remote_access_vpn.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_secondary_staging_store.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +8 -7
- data/lib/fog/cloudstack/requests/compute/delete_service_offering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +11 -11
- data/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb +7 -5
- data/lib/fog/cloudstack/requests/compute/delete_srx_firewall.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb +7 -5
- data/lib/fog/cloudstack/requests/compute/delete_static_route.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_storage_network_ip_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_storage_pool.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_tags.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/delete_template.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_traffic_monitor.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_traffic_type.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_ucs_manager.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_user.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/delete_vlan_ip_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_vm_snapshot.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_volume.rb +13 -10
- data/lib/fog/cloudstack/requests/compute/delete_vpc.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_vpcoffering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_vpn_connection.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_vpn_customer_gateway.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_vpn_gateway.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/delete_zone.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb +14 -22
- data/lib/fog/cloudstack/requests/compute/destroy_lun_on_filer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/destroy_router.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/destroy_system_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +13 -11
- data/lib/fog/cloudstack/requests/compute/destroy_volume_on_filer.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/detach_iso.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/detach_volume.rb +8 -7
- data/lib/fog/cloudstack/requests/compute/disable_account.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/disable_auto_scale_vm_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/disable_cisco_nexus_vsm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/disable_static_nat.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/disable_user.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/disassociate_ip_address.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/disassociate_ucs_profile_from_blade.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/dissociate_lun.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/enable_account.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/enable_auto_scale_vm_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/enable_cisco_nexus_vsm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/enable_static_nat.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/enable_storage_maintenance.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/enable_user.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/extract_iso.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/extract_template.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/extract_volume.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/find_hosts_for_migration.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/find_storage_pools_for_migration.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/generate_usage_records.rb +9 -13
- data/lib/fog/cloudstack/requests/compute/get_api_limit.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/get_cloud_identifier.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/get_user.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/get_vm_password.rb +9 -7
- data/lib/fog/cloudstack/requests/compute/instantiate_ucs_template_and_assocaciate_to_blade.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/ldap_config.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/ldap_remove.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_accounts.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_affinity_group_types.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_affinity_groups.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_alerts.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_apis.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_async_jobs.rb +10 -8
- data/lib/fog/cloudstack/requests/compute/list_auto_scale_policies.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_groups.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_profiles.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_baremetal_dhcp.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_baremetal_pxe_servers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_capabilities.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_capacity.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_cisco_asa1000v_resources.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_cisco_nexus_vsms.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_cisco_vnmc_resources.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_clusters.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_conditions.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_configurations.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_counters.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_dedicated_clusters.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_dedicated_guest_vlan_ranges.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_dedicated_hosts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_dedicated_pods.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_dedicated_zones.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_deployment_planners.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +7 -5
- data/lib/fog/cloudstack/requests/compute/list_domain_children.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_domains.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_egress_firewall_rules.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_event_types.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_events.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb +7 -4
- data/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_f5_load_balancer_networks.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_f5_load_balancers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb +7 -1
- data/lib/fog/cloudstack/requests/compute/list_global_load_balancer_rules.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_hosts.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_hypervisor_capabilities.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_hypervisors.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_image_stores.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_instance_groups.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_elements.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_vms.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_ip_forwarding_rules.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_iso_permissions.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_isos.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_lb_health_check_policies.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_lb_stickiness_policies.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb +8 -6
- data/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_load_balancers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_luns_on_filer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancer_networks.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_network_acl_lists.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_network_acls.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_network_device.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_network_isolation_methods.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_network_offerings.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_network_service_providers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_networks.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_nicira_nvp_device_networks.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_nicira_nvp_devices.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_nics.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_os_categories.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_os_types.rb +7 -5
- data/lib/fog/cloudstack/requests/compute/list_physical_networks.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_pods.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_pools.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_portable_ip_ranges.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_private_gateways.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_project_accounts.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_project_invitations.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_projects.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_regions.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_remote_access_vpns.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_resource_details.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_resource_limits.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_routers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_s3s.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_secondary_staging_stores.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +9 -5
- data/lib/fog/cloudstack/requests/compute/list_service_offerings.rb +11 -9
- data/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +6 -5
- data/lib/fog/cloudstack/requests/compute/list_srx_firewall_networks.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_srx_firewalls.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_static_routes.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_storage_network_ip_range.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_storage_pools.rb +5 -3
- data/lib/fog/cloudstack/requests/compute/list_storage_providers.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_supported_network_services.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_swifts.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_system_vms.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_tags.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_template_permissions.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_templates.rb +12 -10
- data/lib/fog/cloudstack/requests/compute/list_traffic_monitors.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_traffic_type_implementors.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_traffic_types.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_ucs_blades.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_ucs_managers.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_ucs_profiles.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_ucs_templates.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_usage_records.rb +9 -13
- data/lib/fog/cloudstack/requests/compute/list_usage_types.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_users.rb +6 -4
- data/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb +10 -9
- data/lib/fog/cloudstack/requests/compute/list_virtual_router_elements.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vlan_ip_ranges.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vm_snapshot.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vmware_dcs.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_volumes.rb +10 -9
- data/lib/fog/cloudstack/requests/compute/list_volumes_on_filer.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/list_vpc_offerings.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vpcs.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vpn_connections.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vpn_customer_gateways.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vpn_gateways.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_vpn_users.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/list_zones.rb +11 -10
- data/lib/fog/cloudstack/requests/compute/lock_account.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/lock_user.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/mark_default_zone_for_account.rb +23 -0
- data/lib/fog/cloudstack/requests/compute/migrate_system_vm.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/migrate_virtual_machine_with_volume.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/migrate_volume.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/modify_pool.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/prepare_host_for_maintenance.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/prepare_template.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +11 -6
- data/lib/fog/cloudstack/requests/compute/reboot_router.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/reboot_system_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb +9 -7
- data/lib/fog/cloudstack/requests/compute/reconnect_host.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb +7 -4
- data/lib/fog/cloudstack/requests/compute/refresh_ucs_blades.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/register_iso.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb +9 -4
- data/lib/fog/cloudstack/requests/compute/register_template.rb +19 -11
- data/lib/fog/cloudstack/requests/compute/register_user_keys.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/release_dedicated_cluster.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_dedicated_guest_vlan_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_dedicated_host.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_dedicated_pod.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_dedicated_zone.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_host_reservation.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/release_public_ip_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/remove_from_global_load_balancer_rule.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb +10 -10
- data/lib/fog/cloudstack/requests/compute/remove_ip_from_nic.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/remove_nic_from_virtual_machine.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/remove_region.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/remove_resource_detail.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/remove_vmware_dc.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/remove_vpn_user.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/replace_network_acl_list.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/reset_api_limit.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb +10 -8
- data/lib/fog/cloudstack/requests/compute/reset_ssh_key_for_virtual_machine.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/reset_vpn_connection.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/resize_volume.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/restart_network.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/restart_vpc.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/restore_virtual_machine.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/revert_to_vm_snapshot.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb +11 -5
- data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +11 -6
- data/lib/fog/cloudstack/requests/compute/scale_system_vm.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/scale_virtual_machine.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/start_internal_load_balancer_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/start_router.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/start_system_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/stop_internal_load_balancer_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/stop_router.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/stop_system_vm.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/suspend_project.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_account.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/update_auto_scale_policy.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_profile.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_cluster.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_configuration.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_default_nic_for_virtual_machine.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/update_disk_offering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_domain.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/update_global_load_balancer_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_host.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_host_password.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/update_hypervisor_capabilities.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_instance_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_iso.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_iso_permissions.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_load_balancer_rule.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_network.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_network_acl_item.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_network_offering.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/update_network_service_provider.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_physical_network.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_pod.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_port_forwarding_rule.rb +24 -0
- data/lib/fog/cloudstack/requests/compute/update_project.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_project_invitation.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_region.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_resource_count.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/update_resource_limit.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_service_offering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_storage_network_ip_range.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_storage_pool.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_template.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_template_permissions.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_traffic_type.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_user.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb +8 -5
- data/lib/fog/cloudstack/requests/compute/update_vm_affinity_group.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_volume.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/update_vpc.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/update_vpcoffering.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/update_vpn_customer_gateway.rb +26 -0
- data/lib/fog/cloudstack/requests/compute/update_zone.rb +21 -0
- data/lib/fog/cloudstack/requests/compute/upload_custom_certificate.rb +22 -0
- data/lib/fog/cloudstack/requests/compute/upload_volume.rb +24 -0
- data/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb +1 -1
- data/lib/fog/digitalocean/requests/compute/get_ssh_key.rb +2 -2
- data/lib/fog/dynect/dns.rb +18 -13
- data/lib/fog/dynect/models/dns/record.rb +6 -2
- data/lib/fog/dynect/models/dns/records.rb +17 -29
- data/lib/fog/dynect/requests/dns/get_all_records.rb +2 -1
- data/lib/fog/glesys/models/compute/server.rb +2 -0
- data/lib/fog/google/compute.rb +10 -74
- data/lib/fog/google/models/compute/disk.rb +3 -1
- data/lib/fog/google/models/compute/disk_type.rb +28 -0
- data/lib/fog/google/models/compute/disk_types.rb +40 -0
- data/lib/fog/google/models/compute/forwarding_rule.rb +4 -4
- data/lib/fog/google/models/compute/http_health_check.rb +4 -3
- data/lib/fog/google/models/compute/image.rb +1 -0
- data/lib/fog/google/models/compute/images.rb +2 -1
- data/lib/fog/google/models/compute/target_pool.rb +4 -4
- data/lib/fog/google/requests/compute/get_disk_type.rb +43 -0
- data/lib/fog/google/requests/compute/get_machine_type.rb +3 -3
- data/lib/fog/google/requests/compute/insert_disk.rb +6 -0
- data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +41 -0
- data/lib/fog/google/requests/compute/list_disk_types.rb +47 -0
- data/lib/fog/google/requests/storage/get_service.rb +1 -2
- data/lib/fog/hp/storage.rb +9 -2
- data/lib/fog/linode/compute.rb +2 -0
- data/lib/fog/linode/models/compute/flavor.rb +9 -7
- data/lib/fog/linode/requests/compute/linode_config_delete.rb +32 -0
- data/lib/fog/linode/requests/compute/linode_config_update.rb +33 -0
- data/lib/fog/opennebula.rb +1 -0
- data/lib/fog/opennebula/README.md +113 -0
- data/lib/fog/opennebula/compute.rb +57 -0
- data/lib/fog/opennebula/core.rb +8 -0
- data/lib/fog/opennebula/models/compute/flavor.rb +133 -0
- data/lib/fog/opennebula/models/compute/flavors.rb +35 -0
- data/lib/fog/opennebula/models/compute/group.rb +22 -0
- data/lib/fog/opennebula/models/compute/groups.rb +34 -0
- data/lib/fog/opennebula/models/compute/interface.rb +33 -0
- data/lib/fog/opennebula/models/compute/interfaces.rb +12 -0
- data/lib/fog/opennebula/models/compute/network.rb +41 -0
- data/lib/fog/opennebula/models/compute/networks.rb +21 -0
- data/lib/fog/opennebula/models/compute/server.rb +92 -0
- data/lib/fog/opennebula/models/compute/servers.rb +26 -0
- data/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb +336 -0
- data/lib/fog/opennebula/requests/compute/get_vnc_console.rb +47 -0
- data/lib/fog/opennebula/requests/compute/list_groups.rb +79 -0
- data/lib/fog/opennebula/requests/compute/list_networks.rb +63 -0
- data/lib/fog/opennebula/requests/compute/list_vms.rb +87 -0
- data/lib/fog/opennebula/requests/compute/template_pool.rb +93 -0
- data/lib/fog/opennebula/requests/compute/vm_allocate.rb +90 -0
- data/lib/fog/opennebula/requests/compute/vm_destroy.rb +22 -0
- data/lib/fog/opennebula/requests/compute/vm_resume.rb +37 -0
- data/lib/fog/opennebula/requests/compute/vm_stop.rb +22 -0
- data/lib/fog/openstack/compute.rb +2 -0
- data/lib/fog/openstack/examples/compute/basics.rb +0 -21
- data/lib/fog/openstack/models/compute/server.rb +28 -0
- data/lib/fog/openstack/models/compute/tenants.rb +3 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +2 -2
- data/lib/fog/openstack/requests/compute/create_volume.rb +1 -1
- data/lib/fog/openstack/requests/compute/start_server.rb +24 -0
- data/lib/fog/openstack/requests/compute/stop_server.rb +24 -0
- data/lib/fog/openstack/requests/volume/create_volume.rb +1 -1
- data/lib/fog/rackspace/docs/auto_scale.md +6 -4
- data/lib/fog/rackspace/models/auto_scale/group.rb +12 -3
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +6 -16
- data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +1 -1
- data/lib/fog/rackspace/requests/compute_v2/get_image.rb +1 -1
- data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +6 -5
- data/lib/fog/storm_on_demand/models/dns/reverses.rb +1 -1
- data/lib/fog/vcloud/examples/README.md +1 -1
- data/lib/fog/vcloud_director/compute.rb +74 -5
- data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +61 -0
- data/lib/fog/vcloud_director/models/compute/custom_field.rb +18 -0
- data/lib/fog/vcloud_director/models/compute/custom_fields.rb +67 -0
- data/lib/fog/vcloud_director/models/compute/vapp.rb +5 -0
- data/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb +37 -0
- data/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +86 -1
- data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb +44 -0
- data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb +34 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb +66 -0
- data/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb +45 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb +43 -0
- data/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb +34 -0
- data/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb +32 -0
- data/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/get_startup_section.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +148 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +57 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +17 -1
- data/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb +31 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb +55 -0
- data/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb +3 -3
- data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +63 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/put_cpu.rb +42 -1
- data/lib/fog/vcloud_director/requests/compute/put_memory.rb +43 -1
- data/lib/fog/vcloud_director/requests/compute/put_network.rb +158 -0
- data/lib/fog/vcloud_director/requests/compute/put_product_sections.rb +43 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb +35 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm.rb +34 -0
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +1 -1
- data/lib/fog/vsphere/models/compute/interfaces.rb +15 -6
- data/lib/fog/vsphere/models/compute/server.rb +10 -4
- data/lib/fog/vsphere/models/compute/volumes.rb +14 -5
- data/lib/fog/vsphere/requests/compute/create_vm.rb +1 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +2 -5
- data/lib/fog/xenserver/requests/compute/create_server.rb +1 -2
- data/lib/fog/xml.rb +1 -25
- data/lib/fog/xml/connection.rb +12 -1
- data/lib/fog/zerigo/requests/dns/list_hosts.rb +24 -8
- data/tests/aws/models/compute/network_acls_tests.rb +13 -0
- data/tests/aws/models/compute/security_group_tests.rb +5 -1
- data/tests/aws/models/compute/vpcs_tests.rb +14 -0
- data/tests/aws/requests/compute/instance_tests.rb +2 -1
- data/tests/aws/requests/compute/network_acl_tests.rb +24 -0
- data/tests/aws/requests/compute/subnet_tests.rb +9 -0
- data/tests/aws/requests/compute/tag_tests.rb +21 -0
- data/tests/aws/requests/compute/vpc_tests.rb +41 -3
- data/tests/aws/requests/data_pipeline/pipeline_tests.rb +1 -1
- data/tests/aws/requests/dns/dns_tests.rb +4 -3
- data/tests/glesys/requests/compute/helper.rb +2 -0
- data/tests/glesys/requests/compute/server_tests.rb +6 -4
- data/tests/google/helpers/google_tests_helper.rb +21 -0
- data/tests/google/models/compute/disk_tests.rb +5 -1
- data/tests/google/models/compute/disk_types_tests.rb +22 -0
- data/tests/google/models/compute/disks_tests.rb +5 -1
- data/tests/google/models/compute/server_tests.rb +8 -2
- data/tests/google/models/compute/servers_tests.rb +7 -1
- data/tests/google/requests/compute/disk_tests.rb +5 -2
- data/tests/google/requests/compute/disk_type_tests.rb +45 -0
- data/tests/google/requests/compute/firewall_tests.rb +4 -2
- data/tests/google/requests/compute/image_tests.rb +15 -10
- data/tests/google/requests/compute/zone_tests.rb +2 -6
- data/tests/google/requests/storage/object_tests.rb +4 -1
- data/tests/helpers/collection_helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +3 -0
- data/tests/helpers/model_helper.rb +1 -1
- data/tests/opennebula/compute_tests.rb +16 -0
- data/tests/opennebula/models/compute/group_tests.rb +27 -0
- data/tests/opennebula/models/compute/groups_tests.rb +16 -0
- data/tests/opennebula/models/compute/network_tests.rb +27 -0
- data/tests/opennebula/models/compute/networks_tests.rb +13 -0
- data/tests/opennebula/requests/compute/vm_allocate_tests.rb +59 -0
- data/tests/openstack/requests/compute/server_tests.rb +21 -0
- data/tests/vcloud/data/api_+_vdc_+_1 +1 -0
- data/tests/vcloud_director/models/compute/vapp_tests.rb +8 -0
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +80 -1
- data/tests/vcloud_director/requests/compute/network_tests.rb +81 -13
- data/tests/vcloud_director/requests/compute/schema_helper.rb +4 -3
- data/tests/vcloud_director/requests/compute/vapp_tests.rb +39 -7
- data/tests/vcloud_director/requests/compute/vm_tests.rb +72 -12
- data/tests/zerigo/requests/dns/dns_tests.rb +25 -4
- metadata +493 -51
- data/tests/google/helpers/disk_helper.rb +0 -12
data/Rakefile
CHANGED
@@ -51,11 +51,11 @@ task :default => :test
|
|
51
51
|
task :travis => ['test', 'test:travis']
|
52
52
|
|
53
53
|
Rake::TestTask.new do |t|
|
54
|
-
t.pattern = File.join("
|
54
|
+
t.pattern = File.join("spec", "**", "*_spec.rb")
|
55
55
|
end
|
56
56
|
|
57
57
|
namespace :test do
|
58
|
-
mock = '
|
58
|
+
mock = ENV['FOG_MOCK'] || 'true'
|
59
59
|
task :travis do
|
60
60
|
sh("export FOG_MOCK=#{mock} && bundle exec shindont")
|
61
61
|
end
|
data/fog.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
## If your rubyforge_project name is different, then edit it and comment out
|
7
7
|
## the sub! line in the Rakefile
|
8
8
|
s.name = 'fog'
|
9
|
-
s.version = '1.
|
10
|
-
s.date = '2014-
|
9
|
+
s.version = '1.23.0'
|
10
|
+
s.date = '2014-07-17'
|
11
11
|
s.rubyforge_project = 'fog'
|
12
12
|
|
13
13
|
## Make sure your summary is short. The description may be as long
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
|
42
42
|
## List your runtime dependencies here. Runtime dependencies are those
|
43
43
|
## that are needed for an end user to actually USE your code.
|
44
|
-
s.add_dependency("fog-core", "~> 1.
|
44
|
+
s.add_dependency("fog-core", "~> 1.23")
|
45
45
|
s.add_dependency("fog-json")
|
46
46
|
|
47
47
|
s.add_dependency('nokogiri', '~> 1.5', '>= 1.5.11')
|
@@ -49,6 +49,7 @@ Gem::Specification.new do |s|
|
|
49
49
|
|
50
50
|
# Modular providers
|
51
51
|
s.add_dependency("fog-brightbox")
|
52
|
+
s.add_dependency("fog-softlayer")
|
52
53
|
|
53
54
|
## List your development dependencies here. Development dependencies are
|
54
55
|
## those that are only needed during development
|
@@ -61,6 +62,7 @@ Gem::Specification.new do |s|
|
|
61
62
|
s.add_development_dependency('shindo', '~> 0.3.4')
|
62
63
|
s.add_development_dependency('fission')
|
63
64
|
s.add_development_dependency('pry')
|
65
|
+
s.add_development_dependency('opennebula', '>=4.4.0')
|
64
66
|
s.add_development_dependency('google-api-client', '~> 0.6', '>= 0.6.2')
|
65
67
|
s.add_development_dependency('rubocop') if RUBY_VERSION > "1.9"
|
66
68
|
|
@@ -68,6 +70,6 @@ Gem::Specification.new do |s|
|
|
68
70
|
s.add_development_dependency('ruby-libvirt','~> 0.5.0')
|
69
71
|
end
|
70
72
|
|
71
|
-
s.files = `git ls-files`.split("\n")
|
73
|
+
s.files = `git ls-files`.split("\n")
|
72
74
|
s.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
|
73
75
|
end
|
data/gemfiles/Gemfile-edge
CHANGED
data/gemfiles/Gemfile-ruby-1.8.7
CHANGED
data/lib/fog.rb
CHANGED
@@ -50,6 +50,7 @@ require 'fog/openstack'
|
|
50
50
|
require 'fog/ovirt'
|
51
51
|
require 'fog/sakuracloud'
|
52
52
|
require 'fog/serverlove'
|
53
|
+
require 'fog/softlayer'
|
53
54
|
require 'fog/storm_on_demand'
|
54
55
|
require 'fog/terremark'
|
55
56
|
require 'fog/vcloud'
|
@@ -61,3 +62,4 @@ require 'fog/xenserver'
|
|
61
62
|
require 'fog/zerigo'
|
62
63
|
require 'fog/cloudsigma'
|
63
64
|
require 'fog/openvz'
|
65
|
+
require 'fog/opennebula'
|
data/lib/fog/aws/beanstalk.rb
CHANGED
data/lib/fog/aws/compute.rb
CHANGED
@@ -133,6 +133,7 @@ module Fog
|
|
133
133
|
request :modify_instance_attribute
|
134
134
|
request :modify_network_interface_attribute
|
135
135
|
request :modify_snapshot_attribute
|
136
|
+
request :modify_subnet_attribute
|
136
137
|
request :modify_volume_attribute
|
137
138
|
request :modify_vpc_attribute
|
138
139
|
request :purchase_reserved_instances_offering
|
@@ -166,6 +167,16 @@ module Fog
|
|
166
167
|
end
|
167
168
|
|
168
169
|
class Mock
|
170
|
+
MOCKED_TAG_TYPES = {
|
171
|
+
'ami' => 'image',
|
172
|
+
'i' => 'instance',
|
173
|
+
'snap' => 'snapshot',
|
174
|
+
'vol' => 'volume',
|
175
|
+
'igw' => 'internet_gateway',
|
176
|
+
'acl' => 'network_acl',
|
177
|
+
'vpc' => 'vpc'
|
178
|
+
}
|
179
|
+
|
169
180
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
170
181
|
include Fog::AWS::RegionMethods
|
171
182
|
|
@@ -330,6 +341,39 @@ module Fog
|
|
330
341
|
self.data[:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"] = values
|
331
342
|
end
|
332
343
|
|
344
|
+
def tagged_resources(resources)
|
345
|
+
Array(resources).map do |resource_id|
|
346
|
+
if match = resource_id.match(/^(\w+)-[a-z0-9]{8}/i)
|
347
|
+
id = match.captures.first
|
348
|
+
else
|
349
|
+
raise(Fog::Service::NotFound.new("Unknown resource id #{resource_id}"))
|
350
|
+
end
|
351
|
+
|
352
|
+
if MOCKED_TAG_TYPES.has_key? id
|
353
|
+
type = MOCKED_TAG_TYPES[id]
|
354
|
+
else
|
355
|
+
raise(Fog::Service::NotFound.new("Mocking tags of resource #{resource_id} has not been implemented"))
|
356
|
+
end
|
357
|
+
|
358
|
+
case type
|
359
|
+
when 'image'
|
360
|
+
unless visible_images.has_key? resource_id
|
361
|
+
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the image does not exist"))
|
362
|
+
end
|
363
|
+
when 'vpc'
|
364
|
+
if self.data[:vpcs].select {|v| v['vpcId'] == resource_id }.empty?
|
365
|
+
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the vpc does not exist"))
|
366
|
+
end
|
367
|
+
else
|
368
|
+
unless self.data[:"#{type}s"][resource_id]
|
369
|
+
raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the #{type} does not exist"))
|
370
|
+
end
|
371
|
+
end
|
372
|
+
{ 'resourceId' => resource_id, 'resourceType' => type }
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
376
|
+
|
333
377
|
def apply_tag_filters(resources, filters, resource_id_key)
|
334
378
|
tag_set_fetcher = lambda {|resource| self.data[:tag_sets][resource[resource_id_key]] }
|
335
379
|
|
@@ -351,7 +395,7 @@ module Fog
|
|
351
395
|
tag_filters[key.gsub('tag:', '')] = filters.delete(key) if /^tag:/ =~ key
|
352
396
|
end
|
353
397
|
for tag_key, tag_value in tag_filters
|
354
|
-
resources = resources.select{|r| tag_value
|
398
|
+
resources = resources.select{|r| tag_value == tag_set_fetcher[r][tag_key]}
|
355
399
|
end
|
356
400
|
|
357
401
|
resources
|
@@ -397,7 +441,7 @@ module Fog
|
|
397
441
|
@region = options[:region] ||= 'us-east-1'
|
398
442
|
@instrumentor = options[:instrumentor]
|
399
443
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.compute'
|
400
|
-
@version = options[:version] || '2014-
|
444
|
+
@version = options[:version] || '2014-06-15'
|
401
445
|
|
402
446
|
validate_aws_region @region
|
403
447
|
|
data/lib/fog/aws/dns.rb
CHANGED
@@ -96,7 +96,7 @@ module Fog
|
|
96
96
|
@persistent = options.fetch(:persistent, true)
|
97
97
|
@port = options[:port] || 443
|
98
98
|
@scheme = options[:scheme] || 'https'
|
99
|
-
@version = options[:version] || '
|
99
|
+
@version = options[:version] || '2013-04-01'
|
100
100
|
|
101
101
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
102
102
|
end
|
data/lib/fog/aws/elb.rb
CHANGED
@@ -15,6 +15,36 @@ module Fog
|
|
15
15
|
:ebs_optimized_available => false,
|
16
16
|
:instance_store_volumes => 0
|
17
17
|
},
|
18
|
+
{
|
19
|
+
:id => 't2.micro',
|
20
|
+
:name => 'Micro Instance',
|
21
|
+
:bits => 64,
|
22
|
+
:cores => 1,
|
23
|
+
:disk => 0,
|
24
|
+
:ram => 1024,
|
25
|
+
:ebs_optimized_available => false,
|
26
|
+
:instance_store_volumes => 0
|
27
|
+
},
|
28
|
+
{
|
29
|
+
:id => 't2.small',
|
30
|
+
:name => 'Micro Instance',
|
31
|
+
:bits => 64,
|
32
|
+
:cores => 1,
|
33
|
+
:disk => 0,
|
34
|
+
:ram => 2048,
|
35
|
+
:ebs_optimized_available => false,
|
36
|
+
:instance_store_volumes => 0
|
37
|
+
},
|
38
|
+
{
|
39
|
+
:id => 't2.medium',
|
40
|
+
:name => 'Micro Instance',
|
41
|
+
:bits => 64,
|
42
|
+
:cores => 2,
|
43
|
+
:disk => 0,
|
44
|
+
:ram => 4096,
|
45
|
+
:ebs_optimized_available => false,
|
46
|
+
:instance_store_volumes => 0
|
47
|
+
},
|
18
48
|
{
|
19
49
|
:id => 'm1.small',
|
20
50
|
:name => 'Small Instance',
|
@@ -304,6 +334,56 @@ module Fog
|
|
304
334
|
:ram => 249856,
|
305
335
|
:ebs_optimized_available => false,
|
306
336
|
:instance_store_volumes => 8
|
337
|
+
},
|
338
|
+
{
|
339
|
+
:id => "r3.large",
|
340
|
+
:name => "R3 Large",
|
341
|
+
:bits => 64,
|
342
|
+
:cores => 2,
|
343
|
+
:ram => 15360,
|
344
|
+
:disk => 32,
|
345
|
+
:ebs_optimized_available => true,
|
346
|
+
:instance_store_volumes => 1
|
347
|
+
},
|
348
|
+
{
|
349
|
+
:id => "r3.xlarge",
|
350
|
+
:name => "R3 Extra Large",
|
351
|
+
:bits => 64,
|
352
|
+
:cores => 4,
|
353
|
+
:ram => 31232,
|
354
|
+
:disk => 80,
|
355
|
+
:ebs_optimized_available => true,
|
356
|
+
:instance_store_volumes => 1
|
357
|
+
},
|
358
|
+
{
|
359
|
+
:id => "r3.2xlarge",
|
360
|
+
:name => "R3 Double Extra Large",
|
361
|
+
:bits => 64,
|
362
|
+
:cores => 8,
|
363
|
+
:ram => 62464,
|
364
|
+
:disk => 160,
|
365
|
+
:ebs_optimized_available => true,
|
366
|
+
:instance_store_volumes => 1
|
367
|
+
},
|
368
|
+
{
|
369
|
+
:id => "r3.4xlarge",
|
370
|
+
:name => "R3 Quadruple Extra Large",
|
371
|
+
:bits => 64,
|
372
|
+
:cores => 16,
|
373
|
+
:ram => 124928,
|
374
|
+
:disk => 320,
|
375
|
+
:ebs_optimized_available => true,
|
376
|
+
:instance_store_volumes => 1
|
377
|
+
},
|
378
|
+
{
|
379
|
+
:id => "r3.8xlarge",
|
380
|
+
:name => "R3 Eight Extra Large",
|
381
|
+
:bits => 64,
|
382
|
+
:cores => 32,
|
383
|
+
:ram => 249856,
|
384
|
+
:disk => 640,
|
385
|
+
:ebs_optimized_available => true,
|
386
|
+
:instance_store_volumes => 2
|
307
387
|
}
|
308
388
|
]
|
309
389
|
|
@@ -23,6 +23,7 @@ module Fog
|
|
23
23
|
attribute :root_device_name, :aliases => 'rootDeviceName'
|
24
24
|
attribute :tags, :aliases => 'tagSet'
|
25
25
|
attribute :name
|
26
|
+
attribute :virtualization_type, :aliases => 'virtualizationType'
|
26
27
|
|
27
28
|
def deregister(delete_snapshot = false)
|
28
29
|
service.deregister_image(id)
|
@@ -160,7 +160,18 @@ module Fog
|
|
160
160
|
def save
|
161
161
|
requires :vpc_id
|
162
162
|
data = service.create_network_acl(vpc_id).body['networkAcl']
|
163
|
-
|
163
|
+
new_attributes = data.reject { |key,value| key == 'tagSet' }
|
164
|
+
merge_attributes(new_attributes)
|
165
|
+
|
166
|
+
if tags = self.tags
|
167
|
+
# expect eventual consistency
|
168
|
+
Fog.wait_for { self.reload rescue nil }
|
169
|
+
service.create_tags(
|
170
|
+
self.identity,
|
171
|
+
tags
|
172
|
+
)
|
173
|
+
end
|
174
|
+
|
164
175
|
true
|
165
176
|
end
|
166
177
|
end
|
@@ -18,6 +18,7 @@ module Fog
|
|
18
18
|
attribute :status, :aliases => 'status'
|
19
19
|
attribute :mac_address, :aliases => 'macAddress'
|
20
20
|
attribute :private_ip_address, :aliases => 'privateIpAddress'
|
21
|
+
attribute :private_ip_addresses, :aliases => 'privateIpAddresses'
|
21
22
|
attribute :private_dns_name, :aliases => 'privateDnsName'
|
22
23
|
attribute :source_dest_check, :aliases => 'sourceDestCheck'
|
23
24
|
attribute :group_set, :aliases => 'groupSet'
|
@@ -139,7 +139,7 @@ module Fog
|
|
139
139
|
true
|
140
140
|
end
|
141
141
|
|
142
|
-
def
|
142
|
+
def run_instance_options
|
143
143
|
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
|
144
144
|
requires :image_id
|
145
145
|
|
@@ -195,19 +195,12 @@ module Fog
|
|
195
195
|
else
|
196
196
|
options.delete('SubnetId')
|
197
197
|
end
|
198
|
+
options
|
199
|
+
end
|
198
200
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
if tags = self.tags
|
203
|
-
# expect eventual consistency
|
204
|
-
Fog.wait_for { self.reload rescue nil }
|
205
|
-
service.create_tags(
|
206
|
-
self.identity,
|
207
|
-
tags
|
208
|
-
)
|
209
|
-
end
|
210
|
-
|
201
|
+
def save
|
202
|
+
servers = service.servers.save_many(self, 1, 1)
|
203
|
+
merge_attributes(servers.first.attributes)
|
211
204
|
true
|
212
205
|
end
|
213
206
|
|
@@ -70,41 +70,39 @@ module Fog
|
|
70
70
|
)
|
71
71
|
end
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|
73
|
+
# Create between m and n servers with the server options specified in
|
74
|
+
# new_attributes. Equivalent to this loop, but happens in 1 request:
|
75
|
+
#
|
76
|
+
# 1.upto(n).map { create(new_attributes) }
|
77
|
+
#
|
78
|
+
# See the AWS RunInstances API.
|
79
|
+
def create_many(min_servers = 1, max_servers = nil, new_attributes = {})
|
80
|
+
max_servers ||= min_servers
|
81
|
+
template = new(new_attributes)
|
82
|
+
save_many(template, min_servers, max_servers)
|
83
|
+
end
|
86
84
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
85
|
+
# Bootstrap between m and n servers with the server options specified in
|
86
|
+
# new_attributes. Equivalent to this loop, but happens in 1 AWS request
|
87
|
+
# and the machines' spinup will happen in parallel:
|
88
|
+
#
|
89
|
+
# 1.upto(n).map { bootstrap(new_attributes) }
|
90
|
+
#
|
91
|
+
# See the AWS RunInstances API.
|
92
|
+
def bootstrap_many(min_servers = 1, max_servers = nil, new_attributes = {})
|
93
|
+
template = service.servers.new(new_attributes)
|
94
|
+
_setup_bootstrap(template)
|
92
95
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
ip_permission['ipProtocol'] == 'tcp' &&
|
98
|
-
ip_permission['toPort'] == 22
|
99
|
-
end
|
100
|
-
unless authorized
|
101
|
-
security_group.authorize_port_range(22..22)
|
96
|
+
servers = save_many(template, min_servers, max_servers)
|
97
|
+
servers.each do |server|
|
98
|
+
server.wait_for { ready? }
|
99
|
+
server.setup(:key_data => [server.private_key])
|
102
100
|
end
|
101
|
+
servers
|
102
|
+
end
|
103
103
|
|
104
|
-
|
105
|
-
|
106
|
-
server.setup(:key_data => [server.private_key])
|
107
|
-
server
|
104
|
+
def bootstrap(new_attributes = {})
|
105
|
+
bootstrap_many(1, 1, new_attributes).first
|
108
106
|
end
|
109
107
|
|
110
108
|
# Used to retrieve a server
|
@@ -154,6 +152,59 @@ module Fog
|
|
154
152
|
rescue Fog::Errors::NotFound
|
155
153
|
nil
|
156
154
|
end
|
155
|
+
|
156
|
+
# From a template, create between m-n servers (see the AWS RunInstances API)
|
157
|
+
def save_many(template, min_servers = 1, max_servers = nil)
|
158
|
+
max_servers ||= min_servers
|
159
|
+
data = service.run_instances(template.image_id, min_servers, max_servers, template.run_instance_options)
|
160
|
+
# For some reason, AWS sometimes returns empty results alongside the real ones. Thus the select
|
161
|
+
data.body['instancesSet'].select { |instance_set| instance_set['instanceId'] }.map do |instance_set|
|
162
|
+
server = template.dup
|
163
|
+
server.merge_attributes(instance_set)
|
164
|
+
# expect eventual consistency
|
165
|
+
if (tags = server.tags) && tags.size > 0
|
166
|
+
Fog.wait_for { server.reload rescue nil }
|
167
|
+
service.create_tags(
|
168
|
+
server.identity,
|
169
|
+
tags
|
170
|
+
)
|
171
|
+
end
|
172
|
+
server
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
private
|
177
|
+
|
178
|
+
def _setup_bootstrap(server, new_attributes = {})
|
179
|
+
unless new_attributes[:key_name]
|
180
|
+
# first or create fog_#{credential} keypair
|
181
|
+
name = Fog.respond_to?(:credential) && Fog.credential || :default
|
182
|
+
unless server.key_pair = service.key_pairs.get("fog_#{name}")
|
183
|
+
server.key_pair = service.key_pairs.create(
|
184
|
+
:name => "fog_#{name}",
|
185
|
+
:public_key => server.public_key
|
186
|
+
)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
security_group = service.security_groups.get(server.groups.first)
|
191
|
+
if security_group.nil?
|
192
|
+
raise Fog::Compute::AWS::Error, "The security group" \
|
193
|
+
" #{server.groups.first} doesn't exist."
|
194
|
+
end
|
195
|
+
|
196
|
+
# make sure port 22 is open in the first security group
|
197
|
+
authorized = security_group.ip_permissions.find do |ip_permission|
|
198
|
+
ip_permission['ipRanges'].first && ip_permission['ipRanges'].first['cidrIp'] == '0.0.0.0/0' &&
|
199
|
+
ip_permission['fromPort'] == 22 &&
|
200
|
+
ip_permission['ipProtocol'] == 'tcp' &&
|
201
|
+
ip_permission['toPort'] == 22
|
202
|
+
end
|
203
|
+
|
204
|
+
unless authorized
|
205
|
+
security_group.authorize_port_range(22..22)
|
206
|
+
end
|
207
|
+
end
|
157
208
|
end
|
158
209
|
end
|
159
210
|
end
|