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']
  

Reply via email to