Merge branch 'trunk' into LIBCLOUD-781_containers # Conflicts: # CHANGES.rst # contrib/generate_provider_feature_matrix_table.py # docs/index.rst # docs/supported_providers.rst # libcloud/test/file_fixtures.py # setup.py
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f909e6b3 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f909e6b3 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f909e6b3 Branch: refs/heads/trunk Commit: f909e6b33ab5ac52303259d358c364b5e306684c Parents: db7d8f0 9a7556f Author: anthony-shaw <[email protected]> Authored: Wed Jan 6 21:39:33 2016 +1100 Committer: anthony-shaw <[email protected]> Committed: Wed Jan 6 21:39:33 2016 +1100 ---------------------------------------------------------------------- .travis.yml | 2 +- CHANGES.rst | 19 + .../generate_provider_feature_matrix_table.py | 35 +- .../images/provider_logos/cloudflare.png | Bin 0 -> 19863 bytes docs/backup/_supported_methods.rst | 13 + docs/backup/_supported_providers.rst | 13 + docs/backup/api.rst | 22 + docs/backup/drivers/dimensiondata.rst | 66 +++ docs/backup/drivers/index.rst | 12 + docs/backup/examples.rst | 16 + docs/backup/index.rst | 40 ++ docs/backup/supported_providers.rst | 14 + docs/conf.py | 9 +- docs/dns/_supported_providers.rst | 2 +- docs/dns/drivers/cloudflare.rst | 30 ++ docs/examples/backup/create_backup_from_node.py | 41 ++ .../dns/cloudflare/instantiate_driver.py | 5 + docs/index.rst | 4 + docs/supported_providers.rst | 28 +- libcloud/backup/__init__.py | 0 libcloud/backup/base.py | 489 +++++++++++++++++++ libcloud/backup/drivers/__init__.py | 0 libcloud/backup/drivers/dimensiondata.py | 487 ++++++++++++++++++ libcloud/backup/drivers/dummy.py | 41 ++ libcloud/backup/drivers/ebs.py | 422 ++++++++++++++++ libcloud/backup/drivers/gce.py | 478 ++++++++++++++++++ libcloud/backup/providers.py | 37 ++ libcloud/backup/types.py | 63 +++ libcloud/common/base.py | 35 ++ libcloud/compute/drivers/dimensiondata.py | 11 +- libcloud/compute/drivers/gce.py | 63 ++- libcloud/loadbalancer/drivers/dimensiondata.py | 10 +- libcloud/test/backup/__init__.py | 36 ++ ...745_4d8a_9cbc_8dabe5a7d0e4_server_server.xml | 49 ++ ...ead52_692f_4314_8725_c8a4f4d13a87_backup.xml | 18 + ...8a4f4d13a87_backup_client_schedulePolicy.xml | 5 + ...c8a4f4d13a87_backup_client_storagePolicy.xml | 6 + ...314_8725_c8a4f4d13a87_backup_client_type.xml | 6 + ...92f_4314_8725_c8a4f4d13a87_backup_modify.xml | 7 + .../dimensiondata/oec_0_9_myaccount.xml | 26 + libcloud/test/backup/test_base.py | 29 ++ libcloud/test/backup/test_dimensiondata.py | 159 ++++++ libcloud/test/common/test_base.py | 44 ++ libcloud/test/file_fixtures.py | 12 +- setup.py | 6 +- tox.ini | 12 +- 46 files changed, 2866 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/CHANGES.rst ---------------------------------------------------------------------- diff --cc CHANGES.rst index c14ce78,3270266..d14076c --- a/CHANGES.rst +++ b/CHANGES.rst @@@ -7,9 -7,24 +7,28 @@@ Changes with current version of Apache General ~~~~~~~ +- Introduction of container based drivers for Docker, Rkt and Container-as-a-service + providers + (LIBCLOUD-781, GITHUB-666) ++ + - Introduced a Backup API driver + (GITHUB-621) + [Anthony Shaw] + + Compute + ~~~~~~~ + + - Add LazyObject class that provides lazy-loading, see `GCELicense` for usage + (LIBCLOUD-786, GITHUB-665) + [Scott Crunkleton] + + - Added t2.nano instance type to EC2 Compute driver + (GITHUB-663) + [Anthony Shaw] + + - Support for passing the image ID as a string instead of an instance of image when + creating nodes in Dimension Data driver. + (GITHUB-664) [Anthony Shaw] Changes with Apache Libcloud 0.20.0 http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/contrib/generate_provider_feature_matrix_table.py ---------------------------------------------------------------------- diff --cc contrib/generate_provider_feature_matrix_table.py index f5ccb2c,b806434..43e6bfb --- a/contrib/generate_provider_feature_matrix_table.py +++ b/contrib/generate_provider_feature_matrix_table.py @@@ -45,10 -45,10 +45,17 @@@ from libcloud.dns.providers import get_ from libcloud.dns.providers import DRIVERS as DNS_DRIVERS from libcloud.dns.types import Provider as DNSProvider ++<<<<<<< HEAD +from libcloud.container.base import ContainerDriver +from libcloud.container.providers import get_driver as get_container_driver +from libcloud.container.providers import DRIVERS as CONTAINER_DRIVERS +from libcloud.container.types import Provider as ContainerProvider ++======= + from libcloud.backup.base import BackupDriver + from libcloud.backup.providers import get_driver as get_backup_driver + from libcloud.backup.providers import DRIVERS as BACKUP_DRIVERS + from libcloud.backup.types import Provider as BackupProvider ++>>>>>>> trunk REQUIRED_DEPENDENCIES = [ 'pysphere' @@@ -94,11 -94,10 +101,15 @@@ BASE_API_METHODS = 'dns': ['list_zones', 'list_records', 'iterate_zones', 'iterate_records', 'create_zone', 'update_zone', 'create_record', 'update_record', 'delete_zone', 'delete_record'], + 'container': ['install_image', 'list_images', 'deploy_container', + 'get_container', 'start_container', 'stop_container', + 'restart_container', 'destroy_container', 'list_containers', + 'list_locations', 'create_cluster', 'destroy_cluster', - 'list_clusters'] ++ 'list_clusters'], + 'backup': ['get_supported_target_types', 'list_targets', 'create_target', 'create_target_from_node', + 'create_target_from_storage_container', 'update_target', 'delete_target', 'list_recovery_points', + 'recover_target', 'recover_target_out_of_place', 'list_target_jobs', 'create_target_job', + 'resume_target_job', 'suspend_target_job', 'cancel_target_job'] } FRIENDLY_METHODS_NAMES = { @@@ -170,21 -169,23 +181,38 @@@ 'delete_zone': 'delete zone', 'delete_record': 'delete record' }, + 'container': { + 'install_image': 'install image', + 'list_images': 'list images', + 'deploy_container': 'deploy container', + 'get_container': 'get container', + 'list_containers': 'list containers', + 'start_container': 'start container', + 'stop_container': 'stop container', + 'restart_container': 'restart container', + 'destroy_container': 'destroy container', + 'list_locations': 'list locations', + 'create_cluster': 'create cluster', + 'destroy_cluster': 'destroy cluster', + 'list_clusters': 'list clusters' ++ }, + 'backup': { + 'get_supported_target_types': 'get supported target types', + 'list_targets': 'list targets', + 'create_target': 'create target', + 'create_target_from_node': 'create target from node', + 'create_target_from_storage_container': 'create target from storage container', + 'update_target': 'update target', + 'delete_target': 'delete target', + 'list_recovery_points': 'list recovery points', + 'recover_target': 'recover target', + 'recover_target_out_of_place': 'recover target out of place', + 'list_target_jobs': 'list target jobs', + 'create_target_job': 'create target job', + 'resume_target_job': 'resume target job', + 'suspend_target_job': 'suspend target job', + 'cancel_target_job': 'cancel target job' - }, + } } IGNORED_PROVIDERS = [ @@@ -228,11 -229,11 +256,16 @@@ def generate_providers_table(api) drivers = DNS_DRIVERS provider = DNSProvider get_driver_method = get_dns_driver + elif api == 'container': + driver = ContainerDriver + drivers = CONTAINER_DRIVERS + provider = ContainerProvider + get_driver_method = get_container_driver + elif api == 'backup': + driver = BackupDriver + drivers = BACKUP_DRIVERS + provider = BackupProvider + get_driver_method = get_backup_driver else: raise Exception('Invalid api: %s' % (api)) http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/docs/conf.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/docs/index.rst ---------------------------------------------------------------------- diff --cc docs/index.rst index 6c0c7fc,929151c..aeba4a1 --- a/docs/index.rst +++ b/docs/index.rst @@@ -13,7 -13,8 +13,10 @@@ Resource you can manage with Libcloud a Rackspace CloudFiles * :doc:`Load Balancers as a Service </loadbalancer/index>` - services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers * :doc:`DNS as a Service </dns/index>` - services such as Amazon Route 53 and Zerigo +* :doc:`Container Services </container/index>` - container virtualization like Docker and Rkt as well as container based services + * :doc:`Backup as a Service </backup/index>` - services such as Amazon EBS and OpenStack Freezer + ++>>>>>>> trunk .. figure:: /_static/images/supported_providers.png :align: center @@@ -37,7 -38,7 +40,8 @@@ Mai storage/index loadbalancer/index dns/index + container/index + backup/index troubleshooting api_docs faq http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/docs/supported_providers.rst ---------------------------------------------------------------------- diff --cc docs/supported_providers.rst index 756d4d1,f4735e6..f7f2464 --- a/docs/supported_providers.rst +++ b/docs/supported_providers.rst @@@ -57,29 -57,28 +57,41 @@@ Supported Methods (CDN .. include:: storage/_supported_methods_cdn.rst --DNS ----- ++Container ++--------- Provider Matrix ~~~~~~~~~~~~~~~ --.. include:: dns/_supported_providers.rst ++.. include:: container/_supported_providers.rst Supported Methods ~~~~~~~~~~~~~~~~~ --.. include:: dns/_supported_methods.rst ++.. include:: container/_supported_methods.rst + Backup ---- ++------ - Container - --------- + Provider Matrix + ~~~~~~~~~~~~~~~ + + .. include:: backup/_supported_providers.rst + + Supported Methods + ~~~~~~~~~~~~~~~~~ + -.. include:: backup/_supported_methods.rst ++.. include:: backup/_supported_methods.rst ++ ++DNS ++--- + +Provider Matrix +~~~~~~~~~~~~~~~ + - .. include:: container/_supported_providers.rst ++.. include:: dns/_supported_providers.rst + +Supported Methods +~~~~~~~~~~~~~~~~~ + - .. include:: container/_supported_methods.rst ++.. include:: dns/_supported_methods.rst http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/libcloud/common/base.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/libcloud/test/file_fixtures.py ---------------------------------------------------------------------- diff --cc libcloud/test/file_fixtures.py index 8b5b343,60d4358..59f8e2e --- a/libcloud/test/file_fixtures.py +++ b/libcloud/test/file_fixtures.py @@@ -27,8 -27,8 +27,9 @@@ FIXTURES_ROOT = 'storage': 'storage/fixtures', 'loadbalancer': 'loadbalancer/fixtures', 'dns': 'dns/fixtures', + 'backup': 'backup/fixtures', 'openstack': 'compute/fixtures/openstack', + 'container': 'container/fixtures' } @@@ -83,7 -84,7 +85,13 @@@ class OpenStackFixtures(FileFixtures) sub_dir=sub_dir) +class ContainerFileFixtures(FileFixtures): + def __init__(self, sub_dir=''): + super(ContainerFileFixtures, self).__init__(fixtures_type='container', + sub_dir=sub_dir) ++ ++ + class BackupFileFixtures(FileFixtures): + def __init__(self, sub_dir=''): + super(BackupFileFixtures, self).__init__(fixtures_type='backup', + sub_dir=sub_dir) http://git-wip-us.apache.org/repos/asf/libcloud/blob/f909e6b3/setup.py ---------------------------------------------------------------------- diff --cc setup.py index 1ea444a,7daac52..e8cc1bf --- a/setup.py +++ b/setup.py @@@ -48,11 -48,11 +48,13 @@@ HTML_VIEWSOURCE_BASE = 'https://svn.apa PROJECT_BASE_DIR = 'http://libcloud.apache.org' TEST_PATHS = ['libcloud/test', 'libcloud/test/common', 'libcloud/test/compute', 'libcloud/test/storage', 'libcloud/test/loadbalancer', - 'libcloud/test/dns', 'libcloud/test/container'] - 'libcloud/test/dns', 'libcloud/test/backup'] ++ 'libcloud/test/dns', 'libcloud/test/container', ++ 'libcloud/test/backup'] DOC_TEST_MODULES = ['libcloud.compute.drivers.dummy', 'libcloud.storage.drivers.dummy', 'libcloud.dns.drivers.dummy', - 'libcloud.container.drivers.dummy'] ++ 'libcloud.container.drivers.dummy', + 'libcloud.backup.drivers.dummy'] SUPPORTED_VERSIONS = ['2.5', '2.6', '2.7', 'PyPy', '3.x']
