fog-cosmic 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/ci.yml +29 -0
- data/.gitignore +18 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +8 -0
- data/CONTRIBUTORS.md +2 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +49 -0
- data/LICENSE.md +21 -0
- data/README.md +44 -0
- data/Rakefile +10 -0
- data/fog-cosmic.gemspec +32 -0
- data/lib/fog/cosmic.rb +45 -0
- data/lib/fog/cosmic/compute.rb +861 -0
- data/lib/fog/cosmic/models/compute/address.rb +17 -0
- data/lib/fog/cosmic/models/compute/disk_offering.rb +44 -0
- data/lib/fog/cosmic/models/compute/disk_offerings.rb +24 -0
- data/lib/fog/cosmic/models/compute/egress_firewall_rule.rb +38 -0
- data/lib/fog/cosmic/models/compute/egress_firewall_rules.rb +25 -0
- data/lib/fog/cosmic/models/compute/firewall_rule.rb +24 -0
- data/lib/fog/cosmic/models/compute/firewall_rules.rb +25 -0
- data/lib/fog/cosmic/models/compute/flavor.rb +36 -0
- data/lib/fog/cosmic/models/compute/flavors.rb +25 -0
- data/lib/fog/cosmic/models/compute/image.rb +72 -0
- data/lib/fog/cosmic/models/compute/images.rb +37 -0
- data/lib/fog/cosmic/models/compute/job.rb +51 -0
- data/lib/fog/cosmic/models/compute/jobs.rb +25 -0
- data/lib/fog/cosmic/models/compute/network.rb +73 -0
- data/lib/fog/cosmic/models/compute/network_offering.rb +25 -0
- data/lib/fog/cosmic/models/compute/network_offerings.rb +39 -0
- data/lib/fog/cosmic/models/compute/networks.rb +38 -0
- data/lib/fog/cosmic/models/compute/port_forwarding_rule.rb +25 -0
- data/lib/fog/cosmic/models/compute/port_forwarding_rules.rb +25 -0
- data/lib/fog/cosmic/models/compute/project.rb +58 -0
- data/lib/fog/cosmic/models/compute/projects.rb +39 -0
- data/lib/fog/cosmic/models/compute/public_ip_address.rb +96 -0
- data/lib/fog/cosmic/models/compute/public_ip_addresses.rb +27 -0
- data/lib/fog/cosmic/models/compute/server.rb +151 -0
- data/lib/fog/cosmic/models/compute/servers.rb +39 -0
- data/lib/fog/cosmic/models/compute/snapshot.rb +46 -0
- data/lib/fog/cosmic/models/compute/snapshots.rb +23 -0
- data/lib/fog/cosmic/models/compute/volume.rb +121 -0
- data/lib/fog/cosmic/models/compute/volumes.rb +26 -0
- data/lib/fog/cosmic/models/compute/zone.rb +36 -0
- data/lib/fog/cosmic/models/compute/zones.rb +29 -0
- data/lib/fog/cosmic/requests/compute/activate_project.rb +25 -0
- data/lib/fog/cosmic/requests/compute/add_account_to_project.rb +25 -0
- data/lib/fog/cosmic/requests/compute/add_cluster.rb +29 -0
- data/lib/fog/cosmic/requests/compute/add_guest_os.rb +26 -0
- data/lib/fog/cosmic/requests/compute/add_guest_os_mapping.rb +27 -0
- data/lib/fog/cosmic/requests/compute/add_host.rb +30 -0
- data/lib/fog/cosmic/requests/compute/add_image_store.rb +25 -0
- data/lib/fog/cosmic/requests/compute/add_ip_to_nic.rb +25 -0
- data/lib/fog/cosmic/requests/compute/add_ldap_configuration.rb +26 -0
- data/lib/fog/cosmic/requests/compute/add_network_device.rb +24 -0
- data/lib/fog/cosmic/requests/compute/add_network_service_provider.rb +26 -0
- data/lib/fog/cosmic/requests/compute/add_nic_to_virtual_machine.rb +26 -0
- data/lib/fog/cosmic/requests/compute/add_nicira_nvp_device.rb +29 -0
- data/lib/fog/cosmic/requests/compute/add_region.rb +27 -0
- data/lib/fog/cosmic/requests/compute/add_resource_detail.rb +27 -0
- data/lib/fog/cosmic/requests/compute/add_secondary_storage.rb +25 -0
- data/lib/fog/cosmic/requests/compute/add_traffic_type.rb +26 -0
- data/lib/fog/cosmic/requests/compute/add_vpn_user.rb +26 -0
- data/lib/fog/cosmic/requests/compute/archive_alerts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/archive_events.rb +24 -0
- data/lib/fog/cosmic/requests/compute/assign_cert_to_load_balancer.rb +26 -0
- data/lib/fog/cosmic/requests/compute/assign_to_load_balancer_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/assign_virtual_machine.rb +27 -0
- data/lib/fog/cosmic/requests/compute/associate_ip_address.rb +55 -0
- data/lib/fog/cosmic/requests/compute/attach_iso.rb +26 -0
- data/lib/fog/cosmic/requests/compute/attach_volume.rb +76 -0
- data/lib/fog/cosmic/requests/compute/cancel_host_maintenance.rb +25 -0
- data/lib/fog/cosmic/requests/compute/cancel_storage_maintenance.rb +25 -0
- data/lib/fog/cosmic/requests/compute/change_service_for_router.rb +26 -0
- data/lib/fog/cosmic/requests/compute/change_service_for_system_vm.rb +26 -0
- data/lib/fog/cosmic/requests/compute/change_service_for_virtual_machine.rb +26 -0
- data/lib/fog/cosmic/requests/compute/clean_vmreservations.rb +24 -0
- data/lib/fog/cosmic/requests/compute/configure_virtual_router_element.rb +26 -0
- data/lib/fog/cosmic/requests/compute/copy_iso.rb +26 -0
- data/lib/fog/cosmic/requests/compute/copy_template.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_account.rb +30 -0
- data/lib/fog/cosmic/requests/compute/create_affinity_group.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_disk_offering.rb +56 -0
- data/lib/fog/cosmic/requests/compute/create_domain.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_egress_firewall_rule.rb +44 -0
- data/lib/fog/cosmic/requests/compute/create_firewall_rule.rb +48 -0
- data/lib/fog/cosmic/requests/compute/create_instance_group.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_ip_forwarding_rule.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_lb_health_check_policy.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_lb_stickiness_policy.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_load_balancer_rule.rb +28 -0
- data/lib/fog/cosmic/requests/compute/create_network.rb +30 -0
- data/lib/fog/cosmic/requests/compute/create_network_acl.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_network_acl_list.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_network_offering.rb +55 -0
- data/lib/fog/cosmic/requests/compute/create_physical_network.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_pod.rb +29 -0
- data/lib/fog/cosmic/requests/compute/create_port_forwarding_rule.rb +55 -0
- data/lib/fog/cosmic/requests/compute/create_private_gateway.rb +29 -0
- data/lib/fog/cosmic/requests/compute/create_project.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_remote_access_vpn.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_secondary_staging_store.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_service_offering.rb +55 -0
- data/lib/fog/cosmic/requests/compute/create_snapshot.rb +48 -0
- data/lib/fog/cosmic/requests/compute/create_ssh_key_pair.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_static_route.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_storage_network_ip_range.rb +28 -0
- data/lib/fog/cosmic/requests/compute/create_storage_pool.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_tags.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_template.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_user.rb +30 -0
- data/lib/fog/cosmic/requests/compute/create_virtual_router_element.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_vlan_ip_range.rb +24 -0
- data/lib/fog/cosmic/requests/compute/create_vm_snapshot.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_volume.rb +69 -0
- data/lib/fog/cosmic/requests/compute/create_vpc.rb +29 -0
- data/lib/fog/cosmic/requests/compute/create_vpcoffering.rb +27 -0
- data/lib/fog/cosmic/requests/compute/create_vpn_connection.rb +26 -0
- data/lib/fog/cosmic/requests/compute/create_vpn_customer_gateway.rb +29 -0
- data/lib/fog/cosmic/requests/compute/create_vpn_gateway.rb +25 -0
- data/lib/fog/cosmic/requests/compute/create_zone.rb +28 -0
- data/lib/fog/cosmic/requests/compute/dedicate_cluster.rb +26 -0
- data/lib/fog/cosmic/requests/compute/dedicate_guest_vlan_range.rb +28 -0
- data/lib/fog/cosmic/requests/compute/dedicate_host.rb +26 -0
- data/lib/fog/cosmic/requests/compute/dedicate_pod.rb +26 -0
- data/lib/fog/cosmic/requests/compute/dedicate_public_ip_range.rb +27 -0
- data/lib/fog/cosmic/requests/compute/dedicate_zone.rb +26 -0
- data/lib/fog/cosmic/requests/compute/delete_account.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_account_from_project.rb +26 -0
- data/lib/fog/cosmic/requests/compute/delete_affinity_group.rb +24 -0
- data/lib/fog/cosmic/requests/compute/delete_alerts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/delete_cluster.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_disk_offering.rb +33 -0
- data/lib/fog/cosmic/requests/compute/delete_domain.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_egress_firewall_rule.rb +34 -0
- data/lib/fog/cosmic/requests/compute/delete_events.rb +24 -0
- data/lib/fog/cosmic/requests/compute/delete_firewall_rule.rb +34 -0
- data/lib/fog/cosmic/requests/compute/delete_host.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_image_store.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_instance_group.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_ip_forwarding_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_iso.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_lb_health_check_policy.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_lb_stickiness_policy.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_ldap_configuration.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_load_balancer_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_network.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_network_acl.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_network_acl_list.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_network_device.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_network_offering.rb +34 -0
- data/lib/fog/cosmic/requests/compute/delete_network_service_provider.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_nicira_nvp_device.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_physical_network.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_pod.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_port_forwarding_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_private_gateway.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_project.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_project_invitation.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_remote_access_vpn.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_secondary_staging_store.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_service_offering.rb +34 -0
- data/lib/fog/cosmic/requests/compute/delete_snapshot.rb +61 -0
- data/lib/fog/cosmic/requests/compute/delete_ssh_key_pair.rb +27 -0
- data/lib/fog/cosmic/requests/compute/delete_ssl_cert.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_static_route.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_storage_network_ip_range.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_storage_pool.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_tags.rb +26 -0
- data/lib/fog/cosmic/requests/compute/delete_template.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_traffic_type.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vlan_ip_range.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vm_snapshot.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_volume.rb +45 -0
- data/lib/fog/cosmic/requests/compute/delete_vpc.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vpcoffering.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vpn_connection.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vpn_customer_gateway.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_vpn_gateway.rb +25 -0
- data/lib/fog/cosmic/requests/compute/delete_zone.rb +25 -0
- data/lib/fog/cosmic/requests/compute/deploy_virtual_machine.rb +127 -0
- data/lib/fog/cosmic/requests/compute/destroy_router.rb +25 -0
- data/lib/fog/cosmic/requests/compute/destroy_system_vm.rb +25 -0
- data/lib/fog/cosmic/requests/compute/destroy_virtual_machine.rb +54 -0
- data/lib/fog/cosmic/requests/compute/detach_iso.rb +25 -0
- data/lib/fog/cosmic/requests/compute/detach_volume.rb +64 -0
- data/lib/fog/cosmic/requests/compute/disable_account.rb +25 -0
- data/lib/fog/cosmic/requests/compute/disable_static_nat.rb +51 -0
- data/lib/fog/cosmic/requests/compute/disable_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/disassociate_ip_address.rb +35 -0
- data/lib/fog/cosmic/requests/compute/enable_account.rb +24 -0
- data/lib/fog/cosmic/requests/compute/enable_static_nat.rb +69 -0
- data/lib/fog/cosmic/requests/compute/enable_storage_maintenance.rb +25 -0
- data/lib/fog/cosmic/requests/compute/enable_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/expunge_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/extract_iso.rb +26 -0
- data/lib/fog/cosmic/requests/compute/extract_template.rb +65 -0
- data/lib/fog/cosmic/requests/compute/extract_volume.rb +27 -0
- data/lib/fog/cosmic/requests/compute/find_hosts_for_migration.rb +25 -0
- data/lib/fog/cosmic/requests/compute/find_storage_pools_for_migration.rb +25 -0
- data/lib/fog/cosmic/requests/compute/generate_alert.rb +27 -0
- data/lib/fog/cosmic/requests/compute/get_api_limit.rb +24 -0
- data/lib/fog/cosmic/requests/compute/get_cloud_identifier.rb +25 -0
- data/lib/fog/cosmic/requests/compute/get_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/get_virtual_machine_user_data.rb +25 -0
- data/lib/fog/cosmic/requests/compute/get_vm_password.rb +25 -0
- data/lib/fog/cosmic/requests/compute/import_ldap_users.rb +25 -0
- data/lib/fog/cosmic/requests/compute/ldap_create_account.rb +26 -0
- data/lib/fog/cosmic/requests/compute/list_accounts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_affinity_group_types.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_affinity_groups.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_alerts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_apis.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_async_jobs.rb +36 -0
- data/lib/fog/cosmic/requests/compute/list_capabilities.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_capacity.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_clusters.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_configurations.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_dedicated_clusters.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_dedicated_guest_vlan_ranges.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_dedicated_hosts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_dedicated_pods.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_dedicated_zones.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_deployment_planners.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_disk_offerings.rb +32 -0
- data/lib/fog/cosmic/requests/compute/list_domain_children.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_domains.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_egress_firewall_rules.rb +35 -0
- data/lib/fog/cosmic/requests/compute/list_event_types.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_events.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_firewall_rules.rb +35 -0
- data/lib/fog/cosmic/requests/compute/list_guest_os_mapping.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_hosts.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_hypervisor_capabilities.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_hypervisors.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_image_stores.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_instance_groups.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_ip_forwarding_rules.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_iso_permissions.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_isos.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_lb_health_check_policies.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_lb_stickiness_policies.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_ldap_configurations.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_ldap_users.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_load_balancer_rule_instances.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_load_balancer_rules.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_network_acl_lists.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_network_acls.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_network_device.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_network_isolation_methods.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_network_offerings.rb +31 -0
- data/lib/fog/cosmic/requests/compute/list_network_service_providers.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_networks.rb +28 -0
- data/lib/fog/cosmic/requests/compute/list_nicira_nvp_device_networks.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_nicira_nvp_devices.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_nics.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_os_categories.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_os_types.rb +32 -0
- data/lib/fog/cosmic/requests/compute/list_physical_networks.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_pods.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_port_forwarding_rules.rb +40 -0
- data/lib/fog/cosmic/requests/compute/list_private_gateways.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_project_accounts.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_project_invitations.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_projects.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_public_ip_addresses.rb +45 -0
- data/lib/fog/cosmic/requests/compute/list_regions.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_remote_access_vpns.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_resource_details.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_resource_limits.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_routers.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_secondary_staging_stores.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_service_offerings.rb +44 -0
- data/lib/fog/cosmic/requests/compute/list_snapshots.rb +43 -0
- data/lib/fog/cosmic/requests/compute/list_ssh_key_pairs.rb +26 -0
- data/lib/fog/cosmic/requests/compute/list_ssl_certs.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_static_routes.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_storage_network_ip_range.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_storage_pools.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_storage_providers.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_supported_network_services.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_system_vms.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_tags.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_template_permissions.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_templates.rb +42 -0
- data/lib/fog/cosmic/requests/compute/list_traffic_types.rb +25 -0
- data/lib/fog/cosmic/requests/compute/list_users.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_virtual_machines.rb +32 -0
- data/lib/fog/cosmic/requests/compute/list_virtual_router_elements.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vlan_ip_ranges.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vm_snapshot.rb +26 -0
- data/lib/fog/cosmic/requests/compute/list_volumes.rb +43 -0
- data/lib/fog/cosmic/requests/compute/list_vpc_offerings.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vpcs.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vpn_connections.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vpn_customer_gateways.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vpn_gateways.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_vpn_users.rb +24 -0
- data/lib/fog/cosmic/requests/compute/list_zones.rb +37 -0
- data/lib/fog/cosmic/requests/compute/lock_account.rb +26 -0
- data/lib/fog/cosmic/requests/compute/lock_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/mark_default_zone_for_account.rb +27 -0
- data/lib/fog/cosmic/requests/compute/migrate_system_vm.rb +26 -0
- data/lib/fog/cosmic/requests/compute/migrate_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/migrate_virtual_machine_with_volume.rb +26 -0
- data/lib/fog/cosmic/requests/compute/migrate_volume.rb +26 -0
- data/lib/fog/cosmic/requests/compute/prepare_host_for_maintenance.rb +25 -0
- data/lib/fog/cosmic/requests/compute/prepare_template.rb +26 -0
- data/lib/fog/cosmic/requests/compute/query_async_job_result.rb +38 -0
- data/lib/fog/cosmic/requests/compute/reboot_router.rb +25 -0
- data/lib/fog/cosmic/requests/compute/reboot_system_vm.rb +25 -0
- data/lib/fog/cosmic/requests/compute/reboot_virtual_machine.rb +35 -0
- data/lib/fog/cosmic/requests/compute/reconnect_host.rb +25 -0
- data/lib/fog/cosmic/requests/compute/recover_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/register_iso.rb +28 -0
- data/lib/fog/cosmic/requests/compute/register_ssh_key_pair.rb +28 -0
- data/lib/fog/cosmic/requests/compute/register_template.rb +45 -0
- data/lib/fog/cosmic/requests/compute/register_user_keys.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_dedicated_cluster.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_dedicated_guest_vlan_range.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_dedicated_host.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_dedicated_pod.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_dedicated_zone.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_host_reservation.rb +25 -0
- data/lib/fog/cosmic/requests/compute/release_public_ip_range.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_cert_from_load_balancer.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_from_load_balancer_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_guest_os.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_guest_os_mapping.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_ip_from_nic.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_nic_from_virtual_machine.rb +26 -0
- data/lib/fog/cosmic/requests/compute/remove_region.rb +25 -0
- data/lib/fog/cosmic/requests/compute/remove_resource_detail.rb +26 -0
- data/lib/fog/cosmic/requests/compute/remove_vpn_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/replace_network_acl_list.rb +25 -0
- data/lib/fog/cosmic/requests/compute/reset_api_limit.rb +24 -0
- data/lib/fog/cosmic/requests/compute/reset_password_for_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/reset_ssh_key_for_virtual_machine.rb +28 -0
- data/lib/fog/cosmic/requests/compute/reset_vpn_connection.rb +25 -0
- data/lib/fog/cosmic/requests/compute/resize_volume.rb +25 -0
- data/lib/fog/cosmic/requests/compute/restart_network.rb +25 -0
- data/lib/fog/cosmic/requests/compute/restart_vpc.rb +25 -0
- data/lib/fog/cosmic/requests/compute/restore_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/revert_snapshot.rb +25 -0
- data/lib/fog/cosmic/requests/compute/revert_to_vm_snapshot.rb +25 -0
- data/lib/fog/cosmic/requests/compute/scale_system_vm.rb +26 -0
- data/lib/fog/cosmic/requests/compute/scale_virtual_machine.rb +26 -0
- data/lib/fog/cosmic/requests/compute/start_router.rb +25 -0
- data/lib/fog/cosmic/requests/compute/start_system_vm.rb +25 -0
- data/lib/fog/cosmic/requests/compute/start_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/stop_router.rb +25 -0
- data/lib/fog/cosmic/requests/compute/stop_system_vm.rb +25 -0
- data/lib/fog/cosmic/requests/compute/stop_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/suspend_project.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_account.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_cluster.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_configuration.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_default_nic_for_virtual_machine.rb +26 -0
- data/lib/fog/cosmic/requests/compute/update_disk_offering.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_domain.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_egress_firewall_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_firewall_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_guest_os.rb +26 -0
- data/lib/fog/cosmic/requests/compute/update_guest_os_mapping.rb +26 -0
- data/lib/fog/cosmic/requests/compute/update_host.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_host_password.rb +26 -0
- data/lib/fog/cosmic/requests/compute/update_hypervisor_capabilities.rb +24 -0
- data/lib/fog/cosmic/requests/compute/update_instance_group.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_ip_address.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_iso.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_iso_permissions.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_lb_health_check_policy.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_lb_stickiness_policy.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_load_balancer_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_network.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_network_acl_item.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_network_acl_list.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_network_offering.rb +24 -0
- data/lib/fog/cosmic/requests/compute/update_network_service_provider.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_physical_network.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_pod.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_port_forwarding_rule.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_project.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_project_invitation.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_region.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_remote_access_vpn.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_resource_count.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_resource_limit.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_service_offering.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_storage_network_ip_range.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_storage_pool.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_template.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_template_permissions.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_user.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_virtual_machine.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_vm_affinity_group.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_volume.rb +24 -0
- data/lib/fog/cosmic/requests/compute/update_vpc.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_vpcoffering.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_vpn_connection.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_vpn_customer_gateway.rb +30 -0
- data/lib/fog/cosmic/requests/compute/update_vpn_gateway.rb +25 -0
- data/lib/fog/cosmic/requests/compute/update_zone.rb +25 -0
- data/lib/fog/cosmic/requests/compute/upgrade_router_template.rb +24 -0
- data/lib/fog/cosmic/requests/compute/upload_custom_certificate.rb +26 -0
- data/lib/fog/cosmic/requests/compute/upload_ssl_cert.rb +26 -0
- data/lib/fog/cosmic/requests/compute/upload_volume.rb +30 -0
- data/lib/fog/cosmic/version.rb +5 -0
- data/tests/compute/models/disk_offering_tests.rb +7 -0
- data/tests/compute/models/egress_firewall_rule_tests.rb +9 -0
- data/tests/compute/models/public_ip_address_tests.rb +42 -0
- data/tests/compute/models/public_ip_addresses_tests.rb +3 -0
- data/tests/compute/models/server_tests.rb +20 -0
- data/tests/compute/models/snapshot_tests.rb +17 -0
- data/tests/compute/models/volume_tests.rb +46 -0
- data/tests/compute/models/volumes_tests.rb +14 -0
- data/tests/helper.rb +5 -0
- data/tests/helpers/collection_helper.rb +91 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/mock_helper.rb +20 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/requests/disk_offering_tests.rb +29 -0
- data/tests/requests/egress_firewall_rule_tests.rb +25 -0
- data/tests/requests/firewall_rule_tests.rb +29 -0
- data/tests/requests/network_offering_tests.rb +32 -0
- data/tests/requests/os_type_tests.rb +37 -0
- data/tests/requests/port_forwarding_rule_tests.rb +33 -0
- data/tests/requests/public_ip_address_tests.rb +38 -0
- data/tests/requests/service_offering_tests.rb +31 -0
- data/tests/requests/snapshot_tests.rb +32 -0
- data/tests/requests/ssh_key_pair_tests.rb +23 -0
- data/tests/requests/template_tests.rb +52 -0
- data/tests/requests/virtual_machine_tests.rb +66 -0
- data/tests/requests/volume_tests.rb +47 -0
- data/tests/requests/zone_tests.rb +32 -0
- data/tests/signed_params_tests.rb +12 -0
- metadata +583 -0
@@ -0,0 +1,151 @@
|
|
1
|
+
require 'fog/compute/models/server'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Cosmic
|
5
|
+
class Compute
|
6
|
+
class Server < Fog::Compute::Server
|
7
|
+
identity :id, :aliases => 'id'
|
8
|
+
attribute :name
|
9
|
+
attribute :account_name, :aliases => 'account'
|
10
|
+
attribute :domain_name, :aliases => 'domain'
|
11
|
+
attribute :created, :type => :time
|
12
|
+
attribute :state
|
13
|
+
attribute :haenable
|
14
|
+
attribute :memory
|
15
|
+
attribute :display_name, :aliases => 'displayname'
|
16
|
+
attribute :domain_id, :aliases => 'domainid'
|
17
|
+
attribute :host_id, :aliases => 'hostid'
|
18
|
+
attribute :host_name, :aliases => 'hostname'
|
19
|
+
attribute :project_id, :aliases => 'projectid'
|
20
|
+
attribute :zone_id, :aliases => 'zoneid'
|
21
|
+
attribute :zone_name, :aliases => 'zonename'
|
22
|
+
attribute :image_id, :aliases => ['templateid', :template_id]
|
23
|
+
attribute :image_name, :aliases => ['templatename', :template_name]
|
24
|
+
attribute :templated_display_text, :aliases => 'templatedisplaytext'
|
25
|
+
attribute :password_enabled, :aliases => 'passwordenabled'
|
26
|
+
attribute :flavor_id, :aliases => ['serviceofferingid', :service_offering_id]
|
27
|
+
attribute :flavor_name, :aliases => ['serviceofferingname', :service_offering_name]
|
28
|
+
attribute :affinity_group_ids, :aliases => 'affinitygroupids'
|
29
|
+
attribute :affinity_group_names, :aliases => 'affinitygroupnames'
|
30
|
+
attribute :cpu_number, :aliases => 'cpunumber'
|
31
|
+
attribute :cpu_speed, :aliases => 'cpuspeed'
|
32
|
+
attribute :cpu_used, :aliases => 'cpuused'
|
33
|
+
attribute :network_kbs_read, :aliases => 'networkkbsread'
|
34
|
+
attribute :network_kbs_write, :aliases => 'networkkbswrite'
|
35
|
+
attribute :guest_os_id, :aliases => 'guestosid'
|
36
|
+
attribute :root_device_id, :aliases => 'rootdeviceid'
|
37
|
+
attribute :root_device_type, :aliases => 'rootdevicetype'
|
38
|
+
attribute :group
|
39
|
+
attribute :key_name, :aliases => 'keypair'
|
40
|
+
attribute :user_data, :aliases => 'userdata'
|
41
|
+
attribute :nics, :type => :array, :aliases => 'nic'
|
42
|
+
attribute :job_id, :aliases => 'jobid' # only on create
|
43
|
+
attribute :size, :type => :integer
|
44
|
+
attribute :root_disk_size, :type => :integer
|
45
|
+
|
46
|
+
attr_accessor :network_ids, :disk_offering_id, :ip_address, :ip_to_network_list
|
47
|
+
|
48
|
+
alias_method :public_ip_address, :ip_address
|
49
|
+
alias_method :public_ip_address=, :ip_address=
|
50
|
+
|
51
|
+
def addresses
|
52
|
+
nics.map{|nic| Address.new(nic)}
|
53
|
+
end
|
54
|
+
|
55
|
+
def ip_addresses
|
56
|
+
addresses.map(&:ip_address)
|
57
|
+
end
|
58
|
+
|
59
|
+
def volumes
|
60
|
+
requires :id
|
61
|
+
service.volumes.all('virtualmachineid' => id)
|
62
|
+
end
|
63
|
+
|
64
|
+
def reset_password
|
65
|
+
requires :id
|
66
|
+
data = service.reset_password_for_virtual_machine(id)
|
67
|
+
service.jobs.new(data['resetpasswordforvirtualmachineresponse'])
|
68
|
+
end
|
69
|
+
|
70
|
+
def public_ip_addresses
|
71
|
+
if public_ip_address.nil? then [public_ip_address] else [] end
|
72
|
+
end
|
73
|
+
|
74
|
+
def private_ip_addresses
|
75
|
+
ip_addresses - public_ip_addresses
|
76
|
+
end
|
77
|
+
|
78
|
+
def private_ip_address
|
79
|
+
private_ip_addresses.first
|
80
|
+
end
|
81
|
+
|
82
|
+
def destroy(options={})
|
83
|
+
requires :id
|
84
|
+
data = service.destroy_virtual_machine(options.merge({'id'=> self.id}))
|
85
|
+
service.jobs.new(data["destroyvirtualmachineresponse"])
|
86
|
+
end
|
87
|
+
|
88
|
+
def flavor
|
89
|
+
service.flavors.get(self.flavor_id)
|
90
|
+
end
|
91
|
+
|
92
|
+
def ready?
|
93
|
+
state == 'Running'
|
94
|
+
end
|
95
|
+
|
96
|
+
def reboot
|
97
|
+
requires :id
|
98
|
+
data = service.reboot_virtual_machine('id' => self.id) # FIXME: does this ever fail?
|
99
|
+
service.jobs.new(data["rebootvirtualmachineresponse"])
|
100
|
+
end
|
101
|
+
|
102
|
+
def save
|
103
|
+
requires :image_id, :flavor_id, :zone_id
|
104
|
+
|
105
|
+
options = {
|
106
|
+
'templateid' => image_id,
|
107
|
+
'serviceofferingid' => flavor_id,
|
108
|
+
'zoneid' => zone_id,
|
109
|
+
'networkids' => network_ids,
|
110
|
+
'diskofferingid' => disk_offering_id,
|
111
|
+
'name' => name,
|
112
|
+
'displayname' => display_name,
|
113
|
+
'group' => group,
|
114
|
+
'domainid' => domain_id,
|
115
|
+
'hostid' => host_id,
|
116
|
+
'ipaddress' => ip_address,
|
117
|
+
'iptonetworklist' => ip_to_network_list,
|
118
|
+
'projectid' => project_id,
|
119
|
+
'keypair' => key_name,
|
120
|
+
'userdata' => user_data,
|
121
|
+
'size' => size,
|
122
|
+
}
|
123
|
+
|
124
|
+
options.merge!('affinitygroupids' => affinity_group_ids) if affinity_group_ids
|
125
|
+
options.merge!('affinitygroupnames' => affinity_group_names) if affinity_group_names
|
126
|
+
options.merge!('rootdisksize' => root_disk_size) if root_disk_size
|
127
|
+
options.merge!('networkids' => network_ids) if network_ids
|
128
|
+
|
129
|
+
data = service.deploy_virtual_machine(options)
|
130
|
+
merge_attributes(data['deployvirtualmachineresponse'])
|
131
|
+
end
|
132
|
+
|
133
|
+
def start
|
134
|
+
requires :id
|
135
|
+
data = service.start_virtual_machine("id" => self.id)
|
136
|
+
service.jobs.new(data["startvirtualmachineresponse"])
|
137
|
+
end
|
138
|
+
|
139
|
+
def stop(options={})
|
140
|
+
requires :id
|
141
|
+
unless options.is_a?(Hash)
|
142
|
+
Fog::Logger.deprecation("Passing force as a boolean option has been deprecated. Please pass a hash with 'force' => (true|false)")
|
143
|
+
options = {'force' => options}
|
144
|
+
end
|
145
|
+
data = service.stop_virtual_machine(options.merge({'id' => self.id}))
|
146
|
+
service.jobs.new(data["stopvirtualmachineresponse"])
|
147
|
+
end
|
148
|
+
end # Server
|
149
|
+
end # Cosmic
|
150
|
+
end # Compute
|
151
|
+
end # Fog
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/cosmic/models/compute/server'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Cosmic
|
6
|
+
class Compute
|
7
|
+
class Servers < Fog::Collection
|
8
|
+
model Fog::Cosmic::Compute::Server
|
9
|
+
|
10
|
+
def all(attributes={})
|
11
|
+
# add project id if we have one
|
12
|
+
response = service.list_virtual_machines(attributes)
|
13
|
+
data = response["listvirtualmachinesresponse"]["virtualmachine"] || []
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def bootstrap(new_attributes = {})
|
18
|
+
server = create(new_attributes)
|
19
|
+
server.wait_for { ready? }
|
20
|
+
server
|
21
|
+
end
|
22
|
+
|
23
|
+
def get(server_id)
|
24
|
+
attributes = {'id' => server_id}
|
25
|
+
# add project id if we have one
|
26
|
+
servers = service.list_virtual_machines(attributes)["listvirtualmachinesresponse"]["virtualmachine"]
|
27
|
+
if servers.nil? || servers.empty?
|
28
|
+
servers = service.list_virtual_machines('id' => server_id, 'projectid' => '-1')["listvirtualmachinesresponse"]["virtualmachine"]
|
29
|
+
end
|
30
|
+
unless servers.nil? || servers.empty?
|
31
|
+
new(servers.first)
|
32
|
+
end
|
33
|
+
rescue Fog::Cosmic::Compute::BadRequest
|
34
|
+
nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module Cosmic
|
3
|
+
class Compute
|
4
|
+
class Snapshot < Fog::Model
|
5
|
+
identity :id, :aliases => 'id'
|
6
|
+
|
7
|
+
attribute :name, :aliases => 'name'
|
8
|
+
attribute :volume_type, :aliases => 'volumetype'
|
9
|
+
attribute :volume_name, :aliases => 'volumename'
|
10
|
+
attribute :volume_id, :aliases => 'volumeid'
|
11
|
+
attribute :created, :aliases => 'created'
|
12
|
+
attribute :state, :aliases => 'state'
|
13
|
+
attribute :account, :aliases => 'account'
|
14
|
+
attribute :domain_id, :aliases => 'domainid'
|
15
|
+
attribute :domain, :aliases => 'domain'
|
16
|
+
attribute :snapshot_type, :aliases => 'snapshot_type'
|
17
|
+
attribute :interval_type, :aliases => 'interval_type'
|
18
|
+
|
19
|
+
def save
|
20
|
+
requires :volume_id
|
21
|
+
|
22
|
+
options = {
|
23
|
+
'volumeid' => volume_id,
|
24
|
+
'domainid' => domain_id
|
25
|
+
}
|
26
|
+
data = service.create_snapshot(options)
|
27
|
+
merge_attributes(data['createsnapshotresponse'])
|
28
|
+
end
|
29
|
+
|
30
|
+
def ready?
|
31
|
+
state == 'BackedUp'
|
32
|
+
end
|
33
|
+
|
34
|
+
def volume
|
35
|
+
service.volumes.get(volume_id) if volume_id
|
36
|
+
end
|
37
|
+
|
38
|
+
def destroy
|
39
|
+
requires :id
|
40
|
+
service.delete_snapshot('id' => id)
|
41
|
+
true
|
42
|
+
end
|
43
|
+
end # Snapshot
|
44
|
+
end # Cosmic
|
45
|
+
end # Compute
|
46
|
+
end # Fog
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/cosmic/models/compute/snapshot'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Cosmic
|
6
|
+
class Compute
|
7
|
+
class Snapshots < Fog::Collection
|
8
|
+
model Fog::Cosmic::Compute::Snapshot
|
9
|
+
|
10
|
+
def all(attributes = {})
|
11
|
+
response = service.list_snapshots(attributes)
|
12
|
+
data = response["listsnapshotsresponse"]["snapshot"] || []
|
13
|
+
load(data)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(snapshot_id)
|
17
|
+
snapshot = service.list_snapshots('id' => snapshot_id)["listsnapshotsresponse"]["snapshot"].first
|
18
|
+
new(snapshot) if snapshot
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
module Fog
|
2
|
+
module Cosmic
|
3
|
+
class Compute
|
4
|
+
class Volume < Fog::Model
|
5
|
+
identity :id, :aliases => 'id'
|
6
|
+
|
7
|
+
attribute :name, :aliases => 'name'
|
8
|
+
attribute :zone_id, :aliases => 'zoneid'
|
9
|
+
attribute :zone_name, :aliases => 'zonename'
|
10
|
+
attribute :type, :aliases => 'type'
|
11
|
+
attribute :size, :aliases => 'size'
|
12
|
+
attribute :created, :aliases => 'created'
|
13
|
+
attribute :state, :aliases => 'state'
|
14
|
+
attribute :account, :aliases => 'account'
|
15
|
+
attribute :domain_id, :aliases => 'domainid'
|
16
|
+
attribute :domain, :aliases => 'domain'
|
17
|
+
attribute :storage_type, :aliases => 'storagetype'
|
18
|
+
attribute :hypervisor, :aliases => 'hypervisor'
|
19
|
+
attribute :disk_offering_id, :aliases => 'diskofferingid'
|
20
|
+
attribute :disk_offering_name, :aliases => 'diskofferingname'
|
21
|
+
attribute :disk_offering_display_text, :aliases => 'diskofferingdisplaytext'
|
22
|
+
attribute :storage, :aliases => 'storage'
|
23
|
+
attribute :destroyed, :aliases => 'destroyed'
|
24
|
+
attribute :is_extractable, :aliases => 'isextractable', :type => :boolean
|
25
|
+
attribute :server_id, :aliases => 'virtualmachineid'
|
26
|
+
attribute :server_name, :aliases => 'vmname'
|
27
|
+
attribute :server_display_name, :aliases => 'vmdisplayname'
|
28
|
+
attribute :job_id, :aliases => 'jobid' # only on create
|
29
|
+
|
30
|
+
attr_accessor :snapshot_id, :project_id
|
31
|
+
|
32
|
+
def save
|
33
|
+
requires :name, :disk_offering_id, :zone_id
|
34
|
+
|
35
|
+
options = {
|
36
|
+
'size' => size,
|
37
|
+
'name' => name,
|
38
|
+
'diskofferingid' => disk_offering_id,
|
39
|
+
'zoneid' => zone_id,
|
40
|
+
'snapshotid' => snapshot_id,
|
41
|
+
'projectid' => project_id
|
42
|
+
}
|
43
|
+
|
44
|
+
data = service.create_volume(options)
|
45
|
+
merge_attributes(data['createvolumeresponse'])
|
46
|
+
end
|
47
|
+
|
48
|
+
def ready?
|
49
|
+
state == 'Allocated' || state == 'Ready'
|
50
|
+
end
|
51
|
+
|
52
|
+
def flavor
|
53
|
+
service.disk_offerings.get(self.disk_offering_id)
|
54
|
+
end
|
55
|
+
alias_method :disk_offering, :flavor
|
56
|
+
|
57
|
+
def server
|
58
|
+
if server_id
|
59
|
+
service.servers.get(server_id)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def snapshots
|
64
|
+
requires :id
|
65
|
+
service.snapshots.all('volumeid' => id)
|
66
|
+
end
|
67
|
+
|
68
|
+
def reload
|
69
|
+
requires :identity
|
70
|
+
|
71
|
+
return unless data = begin
|
72
|
+
collection.get(identity)
|
73
|
+
rescue Excon::Errors::SocketError
|
74
|
+
nil
|
75
|
+
end
|
76
|
+
|
77
|
+
new_attributes = {
|
78
|
+
'virtualmachineid' => nil,
|
79
|
+
'vmname' => nil,
|
80
|
+
'vmdisplayname' => nil
|
81
|
+
}.merge(data.attributes)
|
82
|
+
|
83
|
+
merge_attributes(new_attributes)
|
84
|
+
self
|
85
|
+
end
|
86
|
+
|
87
|
+
def attach(instance_or_id, mountpoint=nil)
|
88
|
+
requires :id
|
89
|
+
instance_id = instance_or_id.is_a?(Server) ? instance_or_id.id : instance_or_id
|
90
|
+
unless instance_id
|
91
|
+
raise ArgumentError, "Missing required argument: instance_or_id"
|
92
|
+
end
|
93
|
+
|
94
|
+
options = {
|
95
|
+
'id' => id,
|
96
|
+
'virtualmachineid' => instance_id,
|
97
|
+
}
|
98
|
+
options.merge!('deviceid' => mountpoint) if mountpoint
|
99
|
+
|
100
|
+
data = service.attach_volume(options)
|
101
|
+
|
102
|
+
service.jobs.new(data["attachvolumeresponse"])
|
103
|
+
end
|
104
|
+
|
105
|
+
def detach
|
106
|
+
requires :id
|
107
|
+
|
108
|
+
data = service.detach_volume('id' => id)
|
109
|
+
|
110
|
+
service.jobs.new(data["detachvolumeresponse"])
|
111
|
+
end
|
112
|
+
|
113
|
+
def destroy
|
114
|
+
requires :id
|
115
|
+
service.delete_volume('id' => id)
|
116
|
+
true
|
117
|
+
end
|
118
|
+
end # Volume
|
119
|
+
end # Cosmic
|
120
|
+
end # Compute
|
121
|
+
end # Fog
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/cosmic/models/compute/volume'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Cosmic
|
6
|
+
class Compute
|
7
|
+
class Volumes < Fog::Collection
|
8
|
+
model Fog::Cosmic::Compute::Volume
|
9
|
+
|
10
|
+
def all(attributes = {})
|
11
|
+
response = service.list_volumes(attributes)
|
12
|
+
data = response["listvolumesresponse"]["volume"] || []
|
13
|
+
load(data)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(volume_id)
|
17
|
+
if volume = service.list_volumes('id' => volume_id)["listvolumesresponse"]["volume"].first
|
18
|
+
new(volume)
|
19
|
+
end
|
20
|
+
rescue Fog::Cosmic::Compute::BadRequest
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Fog
|
2
|
+
module Cosmic
|
3
|
+
class Compute
|
4
|
+
class Zone < Fog::Model
|
5
|
+
identity :id, :aliases => 'id'
|
6
|
+
attribute :name
|
7
|
+
attribute :domain_id, :aliases => 'domainid'
|
8
|
+
attribute :domain_name, :aliases => ['domainname', 'domain']
|
9
|
+
attribute :network_type, :aliases => 'networktype'
|
10
|
+
attribute :allocation_state, :aliases => 'allocationstate'
|
11
|
+
attribute :zone_token, :aliases => 'zonetoken'
|
12
|
+
attribute :dhcp_provider, :aliases => 'dhcpprovider'
|
13
|
+
|
14
|
+
attr_accessor :dns1, :dns2, :internaldns1, :internaldns2, :guest_cidr_address
|
15
|
+
|
16
|
+
def save
|
17
|
+
options = {
|
18
|
+
'dns1' => dns1,
|
19
|
+
'internaldns1' => internaldns1,
|
20
|
+
'name' => name,
|
21
|
+
'networktype' => network_type,
|
22
|
+
'allocationstate' => allocation_state,
|
23
|
+
'dns2' => dns2,
|
24
|
+
'domain' => domain_name,
|
25
|
+
'domainid' => domain_id,
|
26
|
+
'guestcidraddress' => guest_cidr_address,
|
27
|
+
'internaldns2' => internaldns2,
|
28
|
+
}
|
29
|
+
data = service.create_zone(options)
|
30
|
+
merge_attributes(data['createzoneresponse'])
|
31
|
+
end
|
32
|
+
|
33
|
+
end # Zone
|
34
|
+
end # Cosmic
|
35
|
+
end # Compute
|
36
|
+
end # Fog
|