Merge remote-tracking branch 'upstream/trunk' into trunk
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/7deee735 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/7deee735 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/7deee735 Branch: refs/heads/trunk Commit: 7deee735c43b38e021153579d41193b49cbba1dd Parents: 814bc3e dcb0cef Author: micafer <[email protected]> Authored: Wed Nov 29 13:37:11 2017 +0100 Committer: micafer <[email protected]> Committed: Wed Nov 29 13:37:11 2017 +0100 ---------------------------------------------------------------------- .codecov.yml | 23 + .coveralls.yml | 2 - .gitignore | 7 + .travis.yml | 13 +- CHANGES.rst | 254 +- MANIFEST.in | 1 + README.rst | 4 +- .../generate_provider_feature_matrix_table.py | 25 +- contrib/scrape-ec2-prices.py | 4 +- contrib/update_google_prices.py | 4 +- demos/example_openstack.py | 17 + doap_libcloud.rdf | 23 +- .../images/provider_logos/profitbricks.png | Bin 0 -> 3866 bytes docs/_static/images/provider_logos/upcloud.png | Bin 0 -> 20107 bytes docs/committer_guide.rst | 26 +- .../_supported_methods_block_storage.rst | 4 +- .../_supported_methods_image_management.rst | 4 +- .../_supported_methods_key_pair_management.rst | 2 - docs/compute/_supported_methods_main.rst | 2 - docs/compute/_supported_providers.rst | 122 +- docs/compute/drivers/ec2.rst | 13 +- docs/compute/drivers/openstack.rst | 30 + docs/compute/drivers/profitbricks.rst | 83 + docs/compute/drivers/upcloud.rst | 45 + docs/compute/pricing.rst | 2 +- docs/conf.py | 20 +- docs/container/_supported_methods.rst | 2 + docs/container/_supported_providers.rst | 2 + docs/container/drivers/gke.rst | 28 + docs/copyright.rst | 10 + docs/dns/_supported_providers.rst | 2 +- docs/dns/drivers/powerdns.rst | 6 +- docs/examples/__init__.py | 0 docs/examples/backup/__init__.py | 0 docs/examples/compute/__init__.py | 0 docs/examples/compute/auroracompute/__init__.py | 0 .../auroracompute/instantiate_driver_region.py | 4 +- docs/examples/compute/azure/__init__.py | 0 docs/examples/compute/azure_arm/__init__.py | 0 docs/examples/compute/bsnl/__init__.py | 0 docs/examples/compute/cloudframes/__init__.py | 0 docs/examples/compute/cloudscale/__init__.py | 0 docs/examples/compute/cloudsigma/__init__.py | 0 docs/examples/compute/cloudstack/__init__.py | 0 .../start_interactive_shell_exoscale.py | 1 + .../start_interactive_shell_ikoula.py | 1 + docs/examples/compute/cloudwatt/__init__.py | 0 docs/examples/compute/digitalocean/__init__.py | 0 docs/examples/compute/dimensiondata/__init__.py | 0 docs/examples/compute/ec2/__init__.py | 0 .../ec2/create_general_purpose_ssd_volume.py | 4 +- .../ec2/create_provisioned_iops_volume.py | 4 +- docs/examples/compute/ecs/__init__.py | 0 docs/examples/compute/gandi/__init__.py | 0 docs/examples/compute/gce/__init__.py | 0 docs/examples/compute/indosat/__init__.py | 0 .../compute/internetsolutions/__init__.py | 0 docs/examples/compute/libvirt/__init__.py | 0 docs/examples/compute/medone/__init__.py | 0 docs/examples/compute/ntta/__init__.py | 0 docs/examples/compute/onapp/__init__.py | 0 docs/examples/compute/oneandone/__init__.py | 0 docs/examples/compute/openstack/__init__.py | 0 docs/examples/compute/ovh/__init__.py | 0 docs/examples/compute/packet/__init__.py | 0 docs/examples/compute/profitbricks/__init__.py | 0 .../compute/profitbricks/create_datacenter.py | 26 + .../examples/compute/profitbricks/create_lan.py | 20 + .../compute/profitbricks/create_node.py | 51 + .../compute/profitbricks/create_volume.py | 29 + .../compute/profitbricks/instantiate_driver.py | 5 + docs/examples/compute/rackspace/__init__.py | 0 docs/examples/compute/vsphere/__init__.py | 0 docs/examples/compute/vultr/__init__.py | 0 docs/examples/container/__init__.py | 0 docs/examples/container/docker/__init__.py | 0 docs/examples/container/ecs/__init__.py | 0 docs/examples/container/gke/__init__.py | 0 .../container/gke/instantiate_driver.py | 9 + docs/examples/container/joyent/__init__.py | 0 docs/examples/container/kubernetes/__init__.py | 0 docs/examples/container/rancher/__init__.py | 0 docs/examples/dns/__init__.py | 0 docs/examples/dns/auroradns/__init__.py | 0 docs/examples/dns/buddyns/__init__.py | 0 docs/examples/dns/cloudflare/__init__.py | 0 docs/examples/dns/digitalocean/__init__.py | 0 docs/examples/dns/dnsimple/__init__.py | 0 docs/examples/dns/durabledns/__init__.py | 0 docs/examples/dns/godaddy/__init__.py | 0 docs/examples/dns/hostvirtual/__init__.py | 0 docs/examples/dns/liquidweb/__init__.py | 0 docs/examples/dns/luadns/__init__.py | 0 docs/examples/dns/nfsn/__init__.py | 0 docs/examples/dns/onapp/__init__.py | 0 docs/examples/dns/pointdns/__init__.py | 0 docs/examples/dns/powerdns/__init__.py | 0 docs/examples/dns/vultr/__init__.py | 0 docs/examples/dns/worldwidedns/__init__.py | 0 docs/examples/dns/zonomi/__init__.py | 0 docs/examples/http_proxy/__init__.py | 0 docs/examples/loadbalancer/__init__.py | 0 docs/examples/loadbalancer/elb/__init__.py | 0 .../elb/create_lb_connection_for_aws.py | 4 +- .../loadbalancer/elb/create_lb_policy.py | 4 +- .../loadbalancer/elb/create_load_balancer.py | 4 +- .../elb/ex_create_balancer_listeners.py | 4 +- .../elb/ex_delete_balancer_policy.py | 4 +- .../elb/ex_list_balancer_policies.py | 4 +- .../elb/ex_list_balancer_policy_types.py | 4 +- .../ex_set_balancer_policies_backend_server.py | 4 +- .../elb/ex_set_balancer_policies_listener.py | 4 +- .../loadbalancer/elb/list_load_balancer.py | 4 +- docs/examples/loadbalancer/gce/__init__.py | 0 .../examples/loadbalancer/softlayer/__init__.py | 0 docs/examples/misc/__init__.py | 0 docs/examples/misc/twisted_create_node.py | 5 +- docs/examples/storage/__init__.py | 0 docs/examples/storage/auroraobjects/__init__.py | 0 docs/examples/storage/azure/__init__.py | 0 docs/examples/storage/backblaze_b2/__init__.py | 0 .../concurrent_file_download_using_gevent.py | 4 +- .../storage/digitalocean_spaces/__init__.py | 0 .../storage/digitalocean_spaces/instantiate.py | 6 + .../digitalocean_spaces/upload_object_acls.py | 19 + .../storage/digitalocean_spaces/v4sig.py | 8 + docs/examples/storage/s3/__init__.py | 0 docs/examples/storage/swift/__init__.py | 0 docs/loadbalancer/_supported_providers.rst | 2 +- docs/storage/_supported_methods_cdn.rst | 2 + docs/storage/_supported_methods_main.rst | 4 + docs/storage/_supported_providers.rst | 70 +- docs/storage/drivers/digitalocean_spaces.rst | 56 + libcloud/__init__.py | 3 +- libcloud/common/aws.py | 1 + libcloud/common/azure.py | 6 +- libcloud/common/azure_arm.py | 2 +- libcloud/common/base.py | 30 +- libcloud/common/exceptions.py | 36 +- libcloud/common/openstack.py | 33 +- libcloud/common/openstack_identity.py | 6 + libcloud/common/ovh.py | 3 +- libcloud/common/upcloud.py | 261 + libcloud/compute/drivers/azure_arm.py | 940 +- libcloud/compute/drivers/cloudstack.py | 2 + libcloud/compute/drivers/digitalocean.py | 6 + libcloud/compute/drivers/ec2.py | 296 +- libcloud/compute/drivers/gandi.py | 1 - libcloud/compute/drivers/gce.py | 192 +- libcloud/compute/drivers/libvirt_driver.py | 2 +- libcloud/compute/drivers/oneandone.py | 400 +- libcloud/compute/drivers/openstack.py | 29 + libcloud/compute/drivers/profitbricks.py | 190 +- libcloud/compute/drivers/softlayer.py | 19 + libcloud/compute/drivers/upcloud.py | 293 + libcloud/compute/drivers/vultr.py | 1 - libcloud/compute/providers.py | 2 + libcloud/compute/ssh.py | 5 +- libcloud/compute/types.py | 5 + libcloud/container/drivers/docker.py | 78 +- libcloud/container/drivers/gke.py | 179 + libcloud/container/drivers/kubernetes.py | 22 +- libcloud/container/providers.py | 2 + libcloud/container/types.py | 1 + libcloud/data/pricing.json | 304 +- libcloud/dns/drivers/linode.py | 3 +- libcloud/dns/drivers/route53.py | 7 + libcloud/http.py | 42 +- libcloud/loadbalancer/drivers/alb.py | 7 +- libcloud/loadbalancer/drivers/dimensiondata.py | 2 +- libcloud/loadbalancer/drivers/elb.py | 5 +- libcloud/security.py | 4 +- libcloud/storage/drivers/azure_blobs.py | 6 +- libcloud/storage/drivers/cloudfiles.py | 13 +- libcloud/storage/drivers/digitalocean_spaces.py | 102 + libcloud/storage/providers.py | 3 + libcloud/storage/types.py | 1 + libcloud/test/__init__.py | 2 + libcloud/test/common/test_base.py | 53 +- libcloud/test/common/test_upcloud.py | 266 + ...9_providers_Microsoft_Commerce_RateCard.json | 84270 ----------------- ...99999999999_providers_Microsoft_Compute.json | 200 - ...rosoft_Compute_locations_eastus_vmSizes.json | 28 - ...9_providers_Microsoft_Commerce_RateCard.json | 84270 +++++++++++++++++ ...ns_99999999_providers_Microsoft_Compute.json | 200 + ...99999_providers_Microsoft_Compute_disks.json | 65 + ...rosoft_Compute_locations_eastus_vmSizes.json | 28 + ...9_providers_Microsoft_Compute_snapshots.json | 75 + ...iders_Microsoft_Compute_virtualMachines.json | 52 + ...ers_Microsoft_Compute_disks_test_disk_1.json | 22 + ...Microsoft_Compute_snapshots_test_snap_1.json | 20 + ...oft_Compute_virtualMachines_test_node_1.json | 48 + ...irtualMachines_test_node_1_InstanceView.json | 27 + ...twork_networkInterfaces_test_node_1_nic.json | 38 + ...11111_providers_Microsoft_Compute_disks.json | 22 + ...1_providers_Microsoft_Compute_snapshots.json | 38 + .../listVirtualMachines_noipaddress.json | 98 + .../fixtures/digitalocean/ex_change_kernel.json | 12 - .../fixtures/digitalocean/ex_hard_reboot.json | 12 - .../digitalocean_v2/ex_enable_ipv6.json | 13 + .../fixtures/ec2/create_encrypted_volume.xml | 11 + .../test/compute/fixtures/ec2/create_volume.xml | 2 + .../ec2/describe_reserved_instances.xml | 1 + .../gce/global_custom_image_setLabels_post.json | 15 + .../compute/fixtures/gce/global_images.json | 30 +- ...perations_operation_setImageLabels_post.json | 15 + ..._us_central1_a_node_name_setLabels_post.json | 15 + .../projects_coreos-cloud_global_images.json | 1878 +- ...eos-cloud_global_licenses_coreos_stable.json | 6 + ...gions_us-central1_addresses_testaddress.json | 11 + ...l1_a_instances_node_name_setLabels_post.json | 15 + .../fixtures/profitbricks/attach_volume.json | 10 +- .../fixtures/profitbricks/create_node.json | 10 +- .../fixtures/profitbricks/create_volume.json | 8 +- .../profitbricks/create_volume_snapshot.json | 6 +- .../profitbricks/error_resource_not_found.json | 8 + .../profitbricks/ex_create_datacenter.json | 6 +- .../profitbricks/ex_create_firewall_rule.json | 10 +- .../profitbricks/ex_create_ip_block.json | 6 +- .../fixtures/profitbricks/ex_create_lan.json | 4 +- .../profitbricks/ex_create_load_balancer.json | 25 +- .../ex_create_network_interface.json | 6 +- .../profitbricks/ex_describe_datacenter.json | 60 +- .../profitbricks/ex_describe_firewall_rule.json | 10 +- .../profitbricks/ex_describe_image.json | 5 +- .../profitbricks/ex_describe_ip_block.json | 11 +- .../fixtures/profitbricks/ex_describe_lan.json | 6 +- .../profitbricks/ex_describe_load_balancer.json | 6 +- .../profitbricks/ex_describe_location.json | 6 +- .../ex_describe_network_interface.json | 8 +- .../fixtures/profitbricks/ex_describe_node.json | 28 +- .../profitbricks/ex_describe_snapshot.json | 6 +- .../profitbricks/ex_describe_volume.json | 10 +- .../profitbricks/ex_list_attached_volumes.json | 49 +- .../profitbricks/ex_list_datacenters.json | 18 +- .../profitbricks/ex_list_firewall_rules.json | 8 +- .../profitbricks/ex_list_ip_blocks.json | 10 +- .../fixtures/profitbricks/ex_list_lans.json | 24 +- .../ex_list_load_balanced_nics.json | 12 +- .../profitbricks/ex_list_load_balancers.json | 30 +- .../ex_list_network_interfaces.json | 14 +- .../profitbricks/ex_rename_datacenter.json | 16 +- .../profitbricks/ex_set_inet_access.json | 31 - .../profitbricks/ex_update_firewall_rule.json | 10 +- .../fixtures/profitbricks/ex_update_image.json | 5 +- .../fixtures/profitbricks/ex_update_lan.json | 8 +- .../profitbricks/ex_update_load_balancer.json | 6 +- .../ex_update_network_interface.json | 22 +- .../fixtures/profitbricks/ex_update_node.json | 16 +- .../profitbricks/ex_update_snapshot.json | 6 +- .../fixtures/profitbricks/ex_update_volume.json | 10 +- .../fixtures/profitbricks/list_images.json | 26 +- .../fixtures/profitbricks/list_locations.json | 83 +- .../fixtures/profitbricks/list_nodes.json | 46 +- .../fixtures/profitbricks/list_snapshots.json | 4 +- .../fixtures/profitbricks/list_volumes.json | 10 +- .../compute/fixtures/upcloud/api_1_2_plan.json | 38 + .../fixtures/upcloud/api_1_2_server.json | 22 + ...er_00893c98-5d5a-4363-b177-88df518a2b60.json | 58 + ...er_00f8c525-7e62-4108-8115-3958df5b43dc.json | 57 + ...525-7e62-4108-8115-3958df5b43dc_restart.json | 57 + .../upcloud/api_1_2_server_from_cdrom.json | 65 + .../upcloud/api_1_2_server_from_template.json | 59 + .../fixtures/upcloud/api_1_2_storage_cdrom.json | 411 + .../upcloud/api_1_2_storage_template.json | 114 + .../compute/fixtures/upcloud/api_1_2_zone.json | 30 + .../upcloud/api_1_2_zone_failed_auth.json | 6 + libcloud/test/compute/test_azure_arm.py | 535 +- libcloud/test/compute/test_cloudstack.py | 11 + libcloud/test/compute/test_digitalocean_v2.py | 11 + libcloud/test/compute/test_ec2.py | 67 +- libcloud/test/compute/test_gce.py | 115 +- libcloud/test/compute/test_openstack.py | 18 +- libcloud/test/compute/test_profitbricks.py | 1484 +- libcloud/test/compute/test_softlayer.py | 10 + libcloud/test/compute/test_upcloud.py | 248 + libcloud/test/conftest.py | 25 + ...nes_us-central1-a_instance_serverconfig.json | 1 + .../fixtures/gke/zones_us-central1-a_list.json | 29 + libcloud/test/container/test_gke.py | 93 + libcloud/test/dns/test_linode.py | 8 + libcloud/test/dns/test_route53.py | 75 + libcloud/test/secrets.py-dist | 6 + libcloud/test/storage/test_azure_blobs.py | 25 +- .../test/storage/test_digitalocean_spaces.py | 138 + libcloud/test/test_http.py | 22 +- requirements-tests.txt | 4 +- scripts/check_file_names.sh | 34 + setup.py | 1 + tox.ini | 39 +- 290 files changed, 93821 insertions(+), 87367 deletions(-) ----------------------------------------------------------------------
