From dcc20879cd92439c4efea30f381a0dace0419d7a Mon Sep 17 00:00:00 2001 From: Amrith Kumar Date: Wed, 25 Feb 2015 14:02:04 -0500 Subject: [PATCH] Introduce a classification of datastores and strategies This change introduces a classification of datastores and strategies based on our understanding of the readiness of that particular item of code. It reflects the conversation at the mid-cycle in Seattle (Kilo). A specification for this change was submitted for review in https://review.openstack.org/#/c/154119/ Implements: blueprint experimental-datastores DocImpact Change-Id: Id710bdd21070c3af160f1594d29c5ac41d5c3548 --- trove/common/cfg.py | 24 ++++---- .../{mongodb => experimental}/__init__.py | 0 .../cluster/experimental/mongodb}/__init__.py | 0 .../cluster/{ => experimental}/mongodb/api.py | 0 .../{ => experimental}/mongodb/guestagent.py | 0 .../{ => experimental}/mongodb/taskmanager.py | 0 .../{couchbase => experimental}/__init__.py | 0 .../cassandra}/__init__.py | 0 .../{ => experimental}/cassandra/manager.py | 2 +- .../{ => experimental}/cassandra/service.py | 2 +- .../{ => experimental}/cassandra/system.py | 0 .../couchbase}/__init__.py | 0 .../{ => experimental}/couchbase/manager.py | 4 +- .../{ => experimental}/couchbase/service.py | 2 +- .../{ => experimental}/couchbase/system.py | 0 .../mongodb}/__init__.py | 0 .../{ => experimental}/mongodb/manager.py | 5 +- .../{ => experimental}/mongodb/service.py | 2 +- .../{ => experimental}/mongodb/system.py | 0 .../postgresql}/__init__.py | 0 .../{ => experimental}/postgresql/manager.py | 0 .../{ => experimental}/postgresql/pgutil.py | 0 .../postgresql/service/__init__.py | 0 .../postgresql/service/access.py | 2 +- .../postgresql/service/config.py | 8 ++- .../postgresql/service/database.py | 2 +- .../postgresql/service/install.py | 6 +- .../postgresql/service/process.py | 3 +- .../postgresql/service/root.py | 2 +- .../postgresql/service/status.py | 2 +- .../postgresql/service/users.py | 5 +- .../datastore/experimental/redis/__init__.py | 0 .../{ => experimental}/redis/manager.py | 6 +- .../{ => experimental}/redis/service.py | 2 +- .../{ => experimental}/redis/system.py | 0 .../datastore/technical-preview/__init__.py | 0 trove/guestagent/dbaas.py | 21 ++++--- .../backup/experimental/__init__.py | 0 .../{ => experimental}/couchbase_impl.py | 4 +- .../{ => experimental}/postgresql_impl.py | 0 .../replication/experimental/__init__.py | 0 .../restore/experimental/__init__.py | 0 .../{ => experimental}/couchbase_impl.py | 4 +- .../{ => experimental}/postgresql_impl.py | 0 .../storage/experimental/__init__.py | 0 .../unittests/backup/test_backupagent.py | 2 +- trove/tests/unittests/cluster/test_cluster.py | 3 +- .../unittests/cluster/test_cluster_models.py | 3 +- .../unittests/cluster/test_cluster_views.py | 3 +- .../unittests/guestagent/test_backups.py | 4 +- .../guestagent/test_cassandra_manager.py | 6 +- .../guestagent/test_couchbase_manager.py | 6 +- .../tests/unittests/guestagent/test_dbaas.py | 55 +++++++++++-------- .../test_mongodb_cluster_manager.py | 7 ++- .../guestagent/test_mongodb_manager.py | 6 +- .../guestagent/test_redis_manager.py | 6 +- trove/tests/unittests/taskmanager/test_api.py | 2 +- .../unittests/taskmanager/test_clusters.py | 2 +- 58 files changed, 127 insertions(+), 86 deletions(-) rename trove/common/strategies/cluster/{mongodb => experimental}/__init__.py (100%) rename trove/{guestagent/datastore/cassandra => common/strategies/cluster/experimental/mongodb}/__init__.py (100%) rename trove/common/strategies/cluster/{ => experimental}/mongodb/api.py (100%) rename trove/common/strategies/cluster/{ => experimental}/mongodb/guestagent.py (100%) rename trove/common/strategies/cluster/{ => experimental}/mongodb/taskmanager.py (100%) rename trove/guestagent/datastore/{couchbase => experimental}/__init__.py (100%) rename trove/guestagent/datastore/{mongodb => experimental/cassandra}/__init__.py (100%) rename trove/guestagent/datastore/{ => experimental}/cassandra/manager.py (99%) rename trove/guestagent/datastore/{ => experimental}/cassandra/service.py (99%) rename trove/guestagent/datastore/{ => experimental}/cassandra/system.py (100%) rename trove/guestagent/datastore/{postgresql => experimental/couchbase}/__init__.py (100%) rename trove/guestagent/datastore/{ => experimental}/couchbase/manager.py (98%) rename trove/guestagent/datastore/{ => experimental}/couchbase/service.py (99%) rename trove/guestagent/datastore/{ => experimental}/couchbase/system.py (100%) rename trove/guestagent/datastore/{postgresql/service => experimental/mongodb}/__init__.py (100%) rename trove/guestagent/datastore/{ => experimental}/mongodb/manager.py (98%) rename trove/guestagent/datastore/{ => experimental}/mongodb/service.py (99%) rename trove/guestagent/datastore/{ => experimental}/mongodb/system.py (100%) rename trove/guestagent/datastore/{redis => experimental/postgresql}/__init__.py (100%) rename trove/guestagent/datastore/{ => experimental}/postgresql/manager.py (100%) rename trove/guestagent/datastore/{ => experimental}/postgresql/pgutil.py (100%) create mode 100644 trove/guestagent/datastore/experimental/postgresql/service/__init__.py rename trove/guestagent/datastore/{ => experimental}/postgresql/service/access.py (97%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/config.py (94%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/database.py (98%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/install.py (94%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/process.py (97%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/root.py (97%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/status.py (97%) rename trove/guestagent/datastore/{ => experimental}/postgresql/service/users.py (97%) create mode 100644 trove/guestagent/datastore/experimental/redis/__init__.py rename trove/guestagent/datastore/{ => experimental}/redis/manager.py (98%) rename trove/guestagent/datastore/{ => experimental}/redis/service.py (99%) rename trove/guestagent/datastore/{ => experimental}/redis/system.py (100%) create mode 100644 trove/guestagent/datastore/technical-preview/__init__.py create mode 100644 trove/guestagent/strategies/backup/experimental/__init__.py rename trove/guestagent/strategies/backup/{ => experimental}/couchbase_impl.py (96%) rename trove/guestagent/strategies/backup/{ => experimental}/postgresql_impl.py (100%) create mode 100644 trove/guestagent/strategies/replication/experimental/__init__.py create mode 100644 trove/guestagent/strategies/restore/experimental/__init__.py rename trove/guestagent/strategies/restore/{ => experimental}/couchbase_impl.py (98%) rename trove/guestagent/strategies/restore/{ => experimental}/postgresql_impl.py (100%) create mode 100644 trove/guestagent/strategies/storage/experimental/__init__.py diff --git a/trove/common/cfg.py b/trove/common/cfg.py index 28fc5e1f55..cb34d1b316 100644 --- a/trove/common/cfg.py +++ b/trove/common/cfg.py @@ -623,12 +623,14 @@ couchbase_opts = [ 'the root user is immediately returned in the response of ' "instance-create as the 'password' field."), cfg.StrOpt('backup_namespace', - default='trove.guestagent.strategies.backup.couchbase_impl', + default='trove.guestagent.strategies.backup.experimental.' + 'couchbase_impl', help='Namespace to load backup strategies from.', deprecated_name='backup_namespace', deprecated_group='DEFAULT'), cfg.StrOpt('restore_namespace', - default='trove.guestagent.strategies.restore.couchbase_impl', + default='trove.guestagent.strategies.restore.experimental.' + 'couchbase_impl', help='Namespace to load restore strategies from.', deprecated_name='restore_namespace', deprecated_group='DEFAULT'), @@ -678,17 +680,17 @@ mongodb_opts = [ cfg.BoolOpt('cluster_support', default=True, help='Enable clusters to be created and managed.'), cfg.StrOpt('api_strategy', - default='trove.common.strategies.cluster.mongodb.api.' - 'MongoDbAPIStrategy', + default='trove.common.strategies.cluster.experimental.' + 'mongodb.api.MongoDbAPIStrategy', help='Class that implements datastore-specific API logic.'), cfg.StrOpt('taskmanager_strategy', - default='trove.common.strategies.cluster.mongodb.taskmanager.' - 'MongoDbTaskManagerStrategy', + default='trove.common.strategies.cluster.experimental.mongodb.' + 'taskmanager.MongoDbTaskManagerStrategy', help='Class that implements datastore-specific task manager ' 'logic.'), cfg.StrOpt('guestagent_strategy', - default='trove.common.strategies.cluster.mongodb.guestagent.' - 'MongoDbGuestAgentStrategy', + default='trove.common.strategies.cluster.experimental.' + 'mongodb.guestagent.MongoDbGuestAgentStrategy', help='Class that implements datastore-specific Guest Agent API ' 'logic.'), cfg.StrOpt('backup_namespace', default=None, @@ -729,10 +731,12 @@ postgresql_opts = [ 'the root user is immediately returned in the response of ' "instance-create as the 'password' field."), cfg.StrOpt('backup_namespace', - default='trove.guestagent.strategies.backup.postgresql_impl', + default='trove.guestagent.strategies.backup.experimental.' + 'postgresql_impl', help='Namespace to load backup strategies from.'), cfg.StrOpt('restore_namespace', - default='trove.guestagent.strategies.restore.postgresql_impl', + default='trove.guestagent.strategies.restore.experimental.' + 'postgresql_impl', help='Namespace to load restore strategies from.'), cfg.BoolOpt('volume_support', default=True, help='Whether to provision a Cinder volume for datadir.'), diff --git a/trove/common/strategies/cluster/mongodb/__init__.py b/trove/common/strategies/cluster/experimental/__init__.py similarity index 100% rename from trove/common/strategies/cluster/mongodb/__init__.py rename to trove/common/strategies/cluster/experimental/__init__.py diff --git a/trove/guestagent/datastore/cassandra/__init__.py b/trove/common/strategies/cluster/experimental/mongodb/__init__.py similarity index 100% rename from trove/guestagent/datastore/cassandra/__init__.py rename to trove/common/strategies/cluster/experimental/mongodb/__init__.py diff --git a/trove/common/strategies/cluster/mongodb/api.py b/trove/common/strategies/cluster/experimental/mongodb/api.py similarity index 100% rename from trove/common/strategies/cluster/mongodb/api.py rename to trove/common/strategies/cluster/experimental/mongodb/api.py diff --git a/trove/common/strategies/cluster/mongodb/guestagent.py b/trove/common/strategies/cluster/experimental/mongodb/guestagent.py similarity index 100% rename from trove/common/strategies/cluster/mongodb/guestagent.py rename to trove/common/strategies/cluster/experimental/mongodb/guestagent.py diff --git a/trove/common/strategies/cluster/mongodb/taskmanager.py b/trove/common/strategies/cluster/experimental/mongodb/taskmanager.py similarity index 100% rename from trove/common/strategies/cluster/mongodb/taskmanager.py rename to trove/common/strategies/cluster/experimental/mongodb/taskmanager.py diff --git a/trove/guestagent/datastore/couchbase/__init__.py b/trove/guestagent/datastore/experimental/__init__.py similarity index 100% rename from trove/guestagent/datastore/couchbase/__init__.py rename to trove/guestagent/datastore/experimental/__init__.py diff --git a/trove/guestagent/datastore/mongodb/__init__.py b/trove/guestagent/datastore/experimental/cassandra/__init__.py similarity index 100% rename from trove/guestagent/datastore/mongodb/__init__.py rename to trove/guestagent/datastore/experimental/cassandra/__init__.py diff --git a/trove/guestagent/datastore/cassandra/manager.py b/trove/guestagent/datastore/experimental/cassandra/manager.py similarity index 99% rename from trove/guestagent/datastore/cassandra/manager.py rename to trove/guestagent/datastore/experimental/cassandra/manager.py index 95327f3028..50a69635bd 100644 --- a/trove/guestagent/datastore/cassandra/manager.py +++ b/trove/guestagent/datastore/experimental/cassandra/manager.py @@ -18,7 +18,7 @@ import os from trove.common import cfg from trove.common import exception from trove.guestagent import volume -from trove.guestagent.datastore.cassandra import service +from trove.guestagent.datastore.experimental.cassandra import service from trove.openstack.common import periodic_task from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/cassandra/service.py b/trove/guestagent/datastore/experimental/cassandra/service.py similarity index 99% rename from trove/guestagent/datastore/cassandra/service.py rename to trove/guestagent/datastore/experimental/cassandra/service.py index 5ce7f22f2c..29541f07b3 100644 --- a/trove/guestagent/datastore/cassandra/service.py +++ b/trove/guestagent/datastore/experimental/cassandra/service.py @@ -21,7 +21,7 @@ from trove.common import utils from trove.common import exception from trove.common import instance as rd_instance from trove.guestagent.common import operating_system -from trove.guestagent.datastore.cassandra import system +from trove.guestagent.datastore.experimental.cassandra import system from trove.guestagent.datastore import service from trove.guestagent import pkg from trove.openstack.common import log as logging diff --git a/trove/guestagent/datastore/cassandra/system.py b/trove/guestagent/datastore/experimental/cassandra/system.py similarity index 100% rename from trove/guestagent/datastore/cassandra/system.py rename to trove/guestagent/datastore/experimental/cassandra/system.py diff --git a/trove/guestagent/datastore/postgresql/__init__.py b/trove/guestagent/datastore/experimental/couchbase/__init__.py similarity index 100% rename from trove/guestagent/datastore/postgresql/__init__.py rename to trove/guestagent/datastore/experimental/couchbase/__init__.py diff --git a/trove/guestagent/datastore/couchbase/manager.py b/trove/guestagent/datastore/experimental/couchbase/manager.py similarity index 98% rename from trove/guestagent/datastore/couchbase/manager.py rename to trove/guestagent/datastore/experimental/couchbase/manager.py index 8523c5392f..4e7450ac82 100644 --- a/trove/guestagent/datastore/couchbase/manager.py +++ b/trove/guestagent/datastore/experimental/couchbase/manager.py @@ -21,8 +21,8 @@ from trove.common import instance as rd_instance from trove.guestagent import backup from trove.guestagent import dbaas from trove.guestagent import volume -from trove.guestagent.datastore.couchbase import service -from trove.guestagent.datastore.couchbase import system +from trove.guestagent.datastore.experimental.couchbase import service +from trove.guestagent.datastore.experimental.couchbase import system from trove.openstack.common import log as logging from trove.openstack.common import periodic_task from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/couchbase/service.py b/trove/guestagent/datastore/experimental/couchbase/service.py similarity index 99% rename from trove/guestagent/datastore/couchbase/service.py rename to trove/guestagent/datastore/experimental/couchbase/service.py index 7c93ddcac5..4a79ae59b0 100644 --- a/trove/guestagent/datastore/couchbase/service.py +++ b/trove/guestagent/datastore/experimental/couchbase/service.py @@ -27,7 +27,7 @@ from trove.common import utils as utils from trove.guestagent import pkg from trove.guestagent.common import operating_system from trove.guestagent.datastore import service -from trove.guestagent.datastore.couchbase import system +from trove.guestagent.datastore.experimental.couchbase import system from trove.guestagent.db import models from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/couchbase/system.py b/trove/guestagent/datastore/experimental/couchbase/system.py similarity index 100% rename from trove/guestagent/datastore/couchbase/system.py rename to trove/guestagent/datastore/experimental/couchbase/system.py diff --git a/trove/guestagent/datastore/postgresql/service/__init__.py b/trove/guestagent/datastore/experimental/mongodb/__init__.py similarity index 100% rename from trove/guestagent/datastore/postgresql/service/__init__.py rename to trove/guestagent/datastore/experimental/mongodb/__init__.py diff --git a/trove/guestagent/datastore/mongodb/manager.py b/trove/guestagent/datastore/experimental/mongodb/manager.py similarity index 98% rename from trove/guestagent/datastore/mongodb/manager.py rename to trove/guestagent/datastore/experimental/mongodb/manager.py index dca1e46bd9..973b6afb04 100644 --- a/trove/guestagent/datastore/mongodb/manager.py +++ b/trove/guestagent/datastore/experimental/mongodb/manager.py @@ -21,8 +21,9 @@ from trove.common import instance as ds_instance from trove.guestagent import dbaas from trove.guestagent import volume from trove.guestagent.common import operating_system -from trove.guestagent.datastore.mongodb import service as mongo_service -from trove.guestagent.datastore.mongodb import system +from trove.guestagent.datastore.experimental.mongodb import ( + service as mongo_service) +from trove.guestagent.datastore.experimental.mongodb import system from trove.openstack.common import log as logging from trove.common.i18n import _ from trove.openstack.common import periodic_task diff --git a/trove/guestagent/datastore/mongodb/service.py b/trove/guestagent/datastore/experimental/mongodb/service.py similarity index 99% rename from trove/guestagent/datastore/mongodb/service.py rename to trove/guestagent/datastore/experimental/mongodb/service.py index 0c57057ff9..9861b85d6f 100644 --- a/trove/guestagent/datastore/mongodb/service.py +++ b/trove/guestagent/datastore/experimental/mongodb/service.py @@ -23,7 +23,7 @@ from trove.common import exception from trove.common import instance as ds_instance from trove.common.exception import ProcessExecutionError from trove.guestagent.datastore import service -from trove.guestagent.datastore.mongodb import system +from trove.guestagent.datastore.experimental.mongodb import system from trove.openstack.common import log as logging from trove.guestagent.common import operating_system from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/mongodb/system.py b/trove/guestagent/datastore/experimental/mongodb/system.py similarity index 100% rename from trove/guestagent/datastore/mongodb/system.py rename to trove/guestagent/datastore/experimental/mongodb/system.py diff --git a/trove/guestagent/datastore/redis/__init__.py b/trove/guestagent/datastore/experimental/postgresql/__init__.py similarity index 100% rename from trove/guestagent/datastore/redis/__init__.py rename to trove/guestagent/datastore/experimental/postgresql/__init__.py diff --git a/trove/guestagent/datastore/postgresql/manager.py b/trove/guestagent/datastore/experimental/postgresql/manager.py similarity index 100% rename from trove/guestagent/datastore/postgresql/manager.py rename to trove/guestagent/datastore/experimental/postgresql/manager.py diff --git a/trove/guestagent/datastore/postgresql/pgutil.py b/trove/guestagent/datastore/experimental/postgresql/pgutil.py similarity index 100% rename from trove/guestagent/datastore/postgresql/pgutil.py rename to trove/guestagent/datastore/experimental/postgresql/pgutil.py diff --git a/trove/guestagent/datastore/experimental/postgresql/service/__init__.py b/trove/guestagent/datastore/experimental/postgresql/service/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/datastore/postgresql/service/access.py b/trove/guestagent/datastore/experimental/postgresql/service/access.py similarity index 97% rename from trove/guestagent/datastore/postgresql/service/access.py rename to trove/guestagent/datastore/experimental/postgresql/service/access.py index e7151cccf7..734f29ed9b 100644 --- a/trove/guestagent/datastore/postgresql/service/access.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/access.py @@ -14,7 +14,7 @@ # under the License. from trove.common import cfg -from trove.guestagent.datastore.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/postgresql/service/config.py b/trove/guestagent/datastore/experimental/postgresql/service/config.py similarity index 94% rename from trove/guestagent/datastore/postgresql/service/config.py rename to trove/guestagent/datastore/experimental/postgresql/service/config.py index c3b9ad20a8..219eb184ec 100644 --- a/trove/guestagent/datastore/postgresql/service/config.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/config.py @@ -16,9 +16,11 @@ import re from trove.common import cfg from trove.common import utils -from trove.guestagent.datastore.postgresql import pgutil -from trove.guestagent.datastore.postgresql.service.process import PgSqlProcess -from trove.guestagent.datastore.postgresql.service.status import PgSqlAppStatus +from trove.guestagent.datastore.experimental.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql.service.process import( + PgSqlProcess) +from trove.guestagent.datastore.experimental.postgresql.service.status import( + PgSqlAppStatus) from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/postgresql/service/database.py b/trove/guestagent/datastore/experimental/postgresql/service/database.py similarity index 98% rename from trove/guestagent/datastore/postgresql/service/database.py rename to trove/guestagent/datastore/experimental/postgresql/service/database.py index 47b0ece022..d5cfb37f2d 100644 --- a/trove/guestagent/datastore/postgresql/service/database.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/database.py @@ -15,7 +15,7 @@ import itertools from trove.common import cfg -from trove.guestagent.datastore.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/postgresql/service/install.py b/trove/guestagent/datastore/experimental/postgresql/service/install.py similarity index 94% rename from trove/guestagent/datastore/postgresql/service/install.py rename to trove/guestagent/datastore/experimental/postgresql/service/install.py index 376512b580..1053bf4fc0 100644 --- a/trove/guestagent/datastore/postgresql/service/install.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/install.py @@ -16,8 +16,10 @@ from trove.common import cfg from trove.common import instance from trove.guestagent import pkg -from trove.guestagent.datastore.postgresql.service.process import PgSqlProcess -from trove.guestagent.datastore.postgresql.service.status import PgSqlAppStatus +from trove.guestagent.datastore.experimental.postgresql.service.process import( + PgSqlProcess) +from trove.guestagent.datastore.experimental.postgresql.service.status import( + PgSqlAppStatus) from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/postgresql/service/process.py b/trove/guestagent/datastore/experimental/postgresql/service/process.py similarity index 97% rename from trove/guestagent/datastore/postgresql/service/process.py rename to trove/guestagent/datastore/experimental/postgresql/service/process.py index ab1b197f2e..2b4c7cb174 100644 --- a/trove/guestagent/datastore/postgresql/service/process.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/process.py @@ -16,7 +16,8 @@ from trove.common import cfg from trove.common import utils from trove.guestagent.common import operating_system -from trove.guestagent.datastore.postgresql.service.status import PgSqlAppStatus +from trove.guestagent.datastore.experimental.postgresql.service.status import ( + PgSqlAppStatus) from trove.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/trove/guestagent/datastore/postgresql/service/root.py b/trove/guestagent/datastore/experimental/postgresql/service/root.py similarity index 97% rename from trove/guestagent/datastore/postgresql/service/root.py rename to trove/guestagent/datastore/experimental/postgresql/service/root.py index 205a6d1011..e99decce85 100644 --- a/trove/guestagent/datastore/postgresql/service/root.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/root.py @@ -15,7 +15,7 @@ import uuid from trove.common import cfg -from trove.guestagent.datastore.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/trove/guestagent/datastore/postgresql/service/status.py b/trove/guestagent/datastore/experimental/postgresql/service/status.py similarity index 97% rename from trove/guestagent/datastore/postgresql/service/status.py rename to trove/guestagent/datastore/experimental/postgresql/service/status.py index dd3ebdabf5..0e35997565 100644 --- a/trove/guestagent/datastore/postgresql/service/status.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/status.py @@ -18,7 +18,7 @@ from trove.common import utils from trove.common import exception from trove.common import instance from trove.guestagent.datastore import service -from trove.guestagent.datastore.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/trove/guestagent/datastore/postgresql/service/users.py b/trove/guestagent/datastore/experimental/postgresql/service/users.py similarity index 97% rename from trove/guestagent/datastore/postgresql/service/users.py rename to trove/guestagent/datastore/experimental/postgresql/service/users.py index a81a5aa171..c280db3572 100644 --- a/trove/guestagent/datastore/postgresql/service/users.py +++ b/trove/guestagent/datastore/experimental/postgresql/service/users.py @@ -15,8 +15,9 @@ import itertools from trove.common import cfg -from trove.guestagent.datastore.postgresql import pgutil -from trove.guestagent.datastore.postgresql.service.access import PgSqlAccess +from trove.guestagent.datastore.experimental.postgresql import pgutil +from trove.guestagent.datastore.experimental.postgresql.service.access import ( + PgSqlAccess) from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/experimental/redis/__init__.py b/trove/guestagent/datastore/experimental/redis/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/datastore/redis/manager.py b/trove/guestagent/datastore/experimental/redis/manager.py similarity index 98% rename from trove/guestagent/datastore/redis/manager.py rename to trove/guestagent/datastore/experimental/redis/manager.py index fd030e15ab..2fe3e76d7b 100644 --- a/trove/guestagent/datastore/redis/manager.py +++ b/trove/guestagent/datastore/experimental/redis/manager.py @@ -19,8 +19,10 @@ from trove.guestagent import dbaas from trove.guestagent import volume from trove.common import instance as rd_instance from trove.guestagent.common import operating_system -from trove.guestagent.datastore.redis.service import RedisAppStatus -from trove.guestagent.datastore.redis.service import RedisApp +from trove.guestagent.datastore.experimental.redis.service import ( + RedisAppStatus) +from trove.guestagent.datastore.experimental.redis.service import ( + RedisApp) from trove.openstack.common import log as logging from trove.common.i18n import _ from trove.openstack.common import periodic_task diff --git a/trove/guestagent/datastore/redis/service.py b/trove/guestagent/datastore/experimental/redis/service.py similarity index 99% rename from trove/guestagent/datastore/redis/service.py rename to trove/guestagent/datastore/experimental/redis/service.py index 74be293862..1ac024147b 100644 --- a/trove/guestagent/datastore/redis/service.py +++ b/trove/guestagent/datastore/experimental/redis/service.py @@ -22,7 +22,7 @@ from trove.common import instance as rd_instance from trove.guestagent import pkg from trove.guestagent.common import operating_system from trove.guestagent.datastore import service -from trove.guestagent.datastore.redis import system +from trove.guestagent.datastore.experimental.redis import system from trove.openstack.common import log as logging from trove.common.i18n import _ diff --git a/trove/guestagent/datastore/redis/system.py b/trove/guestagent/datastore/experimental/redis/system.py similarity index 100% rename from trove/guestagent/datastore/redis/system.py rename to trove/guestagent/datastore/experimental/redis/system.py diff --git a/trove/guestagent/datastore/technical-preview/__init__.py b/trove/guestagent/datastore/technical-preview/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/dbaas.py b/trove/guestagent/dbaas.py index 771ee96393..8666d713a0 100644 --- a/trove/guestagent/dbaas.py +++ b/trove/guestagent/dbaas.py @@ -33,13 +33,20 @@ from trove.common.i18n import _ LOG = log.getLogger(__name__) defaults = { - 'mysql': 'trove.guestagent.datastore.mysql.manager.Manager', - 'percona': 'trove.guestagent.datastore.mysql.manager.Manager', - 'redis': 'trove.guestagent.datastore.redis.manager.Manager', - 'cassandra': 'trove.guestagent.datastore.cassandra.manager.Manager', - 'couchbase': 'trove.guestagent.datastore.couchbase.manager.Manager', - 'mongodb': 'trove.guestagent.datastore.mongodb.manager.Manager', - 'postgresql': 'trove.guestagent.datastore.postgresql.manager.Manager', + 'mysql': + 'trove.guestagent.datastore.mysql.manager.Manager', + 'percona': + 'trove.guestagent.datastore.mysql.manager.Manager', + 'redis': + 'trove.guestagent.datastore.experimental.redis.manager.Manager', + 'cassandra': + 'trove.guestagent.datastore.experimental.cassandra.manager.Manager', + 'couchbase': + 'trove.guestagent.datastore.experimental.couchbase.manager.Manager', + 'mongodb': + 'trove.guestagent.datastore.experimental.mongodb.manager.Manager', + 'postgresql': + 'trove.guestagent.datastore.experimental.postgresql.manager.Manager', } CONF = cfg.CONF diff --git a/trove/guestagent/strategies/backup/experimental/__init__.py b/trove/guestagent/strategies/backup/experimental/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/strategies/backup/couchbase_impl.py b/trove/guestagent/strategies/backup/experimental/couchbase_impl.py similarity index 96% rename from trove/guestagent/strategies/backup/couchbase_impl.py rename to trove/guestagent/strategies/backup/experimental/couchbase_impl.py index cd93f93b30..798326d35c 100644 --- a/trove/guestagent/strategies/backup/couchbase_impl.py +++ b/trove/guestagent/strategies/backup/experimental/couchbase_impl.py @@ -18,8 +18,8 @@ import json from trove.common import exception from trove.common import utils -from trove.guestagent.datastore.couchbase import service -from trove.guestagent.datastore.couchbase import system +from trove.guestagent.datastore.experimental.couchbase import service +from trove.guestagent.datastore.experimental.couchbase import system from trove.guestagent.strategies.backup import base from trove.common.i18n import _ from trove.openstack.common import log as logging diff --git a/trove/guestagent/strategies/backup/postgresql_impl.py b/trove/guestagent/strategies/backup/experimental/postgresql_impl.py similarity index 100% rename from trove/guestagent/strategies/backup/postgresql_impl.py rename to trove/guestagent/strategies/backup/experimental/postgresql_impl.py diff --git a/trove/guestagent/strategies/replication/experimental/__init__.py b/trove/guestagent/strategies/replication/experimental/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/strategies/restore/experimental/__init__.py b/trove/guestagent/strategies/restore/experimental/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/guestagent/strategies/restore/couchbase_impl.py b/trove/guestagent/strategies/restore/experimental/couchbase_impl.py similarity index 98% rename from trove/guestagent/strategies/restore/couchbase_impl.py rename to trove/guestagent/strategies/restore/experimental/couchbase_impl.py index 185fd3fe22..85d4db7438 100644 --- a/trove/guestagent/strategies/restore/couchbase_impl.py +++ b/trove/guestagent/strategies/restore/experimental/couchbase_impl.py @@ -21,8 +21,8 @@ import time from trove.common import exception from trove.common import utils from trove.guestagent import dbaas -from trove.guestagent.datastore.couchbase import service -from trove.guestagent.datastore.couchbase import system +from trove.guestagent.datastore.experimental.couchbase import service +from trove.guestagent.datastore.experimental.couchbase import system from trove.guestagent.strategies.restore import base from trove.openstack.common import log as logging diff --git a/trove/guestagent/strategies/restore/postgresql_impl.py b/trove/guestagent/strategies/restore/experimental/postgresql_impl.py similarity index 100% rename from trove/guestagent/strategies/restore/postgresql_impl.py rename to trove/guestagent/strategies/restore/experimental/postgresql_impl.py diff --git a/trove/guestagent/strategies/storage/experimental/__init__.py b/trove/guestagent/strategies/storage/experimental/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/trove/tests/unittests/backup/test_backupagent.py b/trove/tests/unittests/backup/test_backupagent.py index 01a7140259..0562e19716 100644 --- a/trove/tests/unittests/backup/test_backupagent.py +++ b/trove/tests/unittests/backup/test_backupagent.py @@ -24,7 +24,7 @@ from trove.common.context import TroveContext from trove.conductor import api as conductor_api from trove.guestagent.common import operating_system from trove.guestagent.strategies.backup import mysql_impl -from trove.guestagent.strategies.backup import couchbase_impl +from trove.guestagent.strategies.backup.experimental import couchbase_impl from trove.guestagent.strategies.restore.base import RestoreRunner from trove.backup.state import BackupState from trove.guestagent.backup import backupagent diff --git a/trove/tests/unittests/cluster/test_cluster.py b/trove/tests/unittests/cluster/test_cluster.py index 98975198c0..dcaa3ff3d8 100644 --- a/trove/tests/unittests/cluster/test_cluster.py +++ b/trove/tests/unittests/cluster/test_cluster.py @@ -24,7 +24,8 @@ from trove.cluster.models import DBCluster from trove.common import cfg from trove.common import exception from trove.common import remote -from trove.common.strategies.cluster.mongodb import api as mongodb_api +from trove.common.strategies.cluster.experimental.mongodb import ( + api as mongodb_api) from trove.datastore import models as datastore_models from trove.instance import models as inst_models from trove.instance.models import DBInstance diff --git a/trove/tests/unittests/cluster/test_cluster_models.py b/trove/tests/unittests/cluster/test_cluster_models.py index 9f3eb6829d..1d471770c6 100644 --- a/trove/tests/unittests/cluster/test_cluster_models.py +++ b/trove/tests/unittests/cluster/test_cluster_models.py @@ -17,7 +17,8 @@ from mock import Mock, patch from testtools import TestCase from trove.cluster import models -from trove.common.strategies.cluster.mongodb.api import MongoDbCluster +from trove.common.strategies.cluster.experimental.mongodb.api import ( + MongoDbCluster) from trove.datastore import models as datastore_models diff --git a/trove/tests/unittests/cluster/test_cluster_views.py b/trove/tests/unittests/cluster/test_cluster_views.py index a0d7492c46..d4eb45a614 100644 --- a/trove/tests/unittests/cluster/test_cluster_views.py +++ b/trove/tests/unittests/cluster/test_cluster_views.py @@ -21,7 +21,8 @@ from trove.cluster.views import ClusterInstanceDetailView from trove.cluster.views import ClusterView from trove.cluster.views import load_view from trove.common import cfg -from trove.common.strategies.cluster.mongodb.api import MongoDbClusterView +from trove.common.strategies.cluster.experimental.mongodb.api import ( + MongoDbClusterView) CONF = cfg.CONF diff --git a/trove/tests/unittests/guestagent/test_backups.py b/trove/tests/unittests/guestagent/test_backups.py index cd8505b537..d251836de1 100644 --- a/trove/tests/unittests/guestagent/test_backups.py +++ b/trove/tests/unittests/guestagent/test_backups.py @@ -37,9 +37,9 @@ BACKUP_SQLDUMP_CLS = ("trove.guestagent.strategies.backup." RESTORE_SQLDUMP_CLS = ("trove.guestagent.strategies.restore." "mysql_impl.MySQLDump") BACKUP_CBBACKUP_CLS = ("trove.guestagent.strategies.backup." - "couchbase_impl.CbBackup") + "experimental.couchbase_impl.CbBackup") RESTORE_CBBACKUP_CLS = ("trove.guestagent.strategies.restore." - "couchbase_impl.CbBackup") + "experimental.couchbase_impl.CbBackup") PIPE = " | " ZIP = "gzip" UNZIP = "gzip -d -c" diff --git a/trove/tests/unittests/guestagent/test_cassandra_manager.py b/trove/tests/unittests/guestagent/test_cassandra_manager.py index 186c7525b5..03bab43d60 100644 --- a/trove/tests/unittests/guestagent/test_cassandra_manager.py +++ b/trove/tests/unittests/guestagent/test_cassandra_manager.py @@ -20,8 +20,10 @@ from trove.common.context import TroveContext from trove.common.instance import ServiceStatuses from trove.guestagent import volume from trove.guestagent.common import operating_system -from trove.guestagent.datastore.cassandra import service as cass_service -from trove.guestagent.datastore.cassandra import manager as cass_manager +from trove.guestagent.datastore.experimental.cassandra import ( + service as cass_service) +from trove.guestagent.datastore.experimental.cassandra import ( + manager as cass_manager) from trove.guestagent import pkg as pkg diff --git a/trove/tests/unittests/guestagent/test_couchbase_manager.py b/trove/tests/unittests/guestagent/test_couchbase_manager.py index e86eeac855..89b2cefb7d 100644 --- a/trove/tests/unittests/guestagent/test_couchbase_manager.py +++ b/trove/tests/unittests/guestagent/test_couchbase_manager.py @@ -24,8 +24,10 @@ from trove.common.context import TroveContext from trove.guestagent import volume from trove.guestagent import backup from trove.guestagent.common import operating_system -from trove.guestagent.datastore.couchbase import service as couch_service -from trove.guestagent.datastore.couchbase import manager as couch_manager +from trove.guestagent.datastore.experimental.couchbase import ( + service as couch_service) +from trove.guestagent.datastore.experimental.couchbase import ( + manager as couch_manager) class GuestAgentCouchbaseManagerTest(testtools.TestCase): diff --git a/trove/tests/unittests/guestagent/test_dbaas.py b/trove/tests/unittests/guestagent/test_dbaas.py index 0f595b097e..45c5e84c22 100644 --- a/trove/tests/unittests/guestagent/test_dbaas.py +++ b/trove/tests/unittests/guestagent/test_dbaas.py @@ -36,19 +36,24 @@ from trove.guestagent.common import operating_system from trove.guestagent.dbaas import to_gb from trove.guestagent.dbaas import get_filesystem_volume_stats from trove.guestagent.datastore.service import BaseDbStatus -from trove.guestagent.datastore.redis import service as rservice -from trove.guestagent.datastore.redis.service import RedisApp -from trove.guestagent.datastore.redis import system as RedisSystem -from trove.guestagent.datastore.cassandra import service as cass_service -from trove.guestagent.datastore.cassandra import system as cass_system +from trove.guestagent.datastore.experimental.redis import service as rservice +from trove.guestagent.datastore.experimental.redis.service import RedisApp +from trove.guestagent.datastore.experimental.redis import system as RedisSystem +from trove.guestagent.datastore.experimental.cassandra import ( + service as cass_service) +from trove.guestagent.datastore.experimental.cassandra import ( + system as cass_system) from trove.guestagent.datastore.mysql.service import MySqlAdmin from trove.guestagent.datastore.mysql.service import MySqlRootAccess from trove.guestagent.datastore.mysql.service import MySqlApp from trove.guestagent.datastore.mysql.service import MySqlAppStatus from trove.guestagent.datastore.mysql.service import KeepAliveConnection -from trove.guestagent.datastore.couchbase import service as couchservice -from trove.guestagent.datastore.mongodb import service as mongo_service -from trove.guestagent.datastore.mongodb import system as mongo_system +from trove.guestagent.datastore.experimental.couchbase import ( + service as couchservice) +from trove.guestagent.datastore.experimental.mongodb import ( + service as mongo_service) +from trove.guestagent.datastore.experimental.mongodb import ( + system as mongo_system) from trove.guestagent.db import models from trove.instance.models import InstanceServiceStatus from trove.tests.unittests.util import util @@ -977,15 +982,15 @@ class ServiceRegistryTest(testtools.TestCase): 'trove.guestagent.datastore.mysql.' 'manager.Manager') self.assertEqual(test_dict.get('redis'), - 'trove.guestagent.datastore.redis.' + 'trove.guestagent.datastore.experimental.redis.' 'manager.Manager') self.assertEqual(test_dict.get('cassandra'), - 'trove.guestagent.datastore.cassandra.' + 'trove.guestagent.datastore.experimental.cassandra.' 'manager.Manager') self.assertEqual(test_dict.get('couchbase'), - 'trove.guestagent.datastore.couchbase.manager' - '.Manager') - self.assertEqual('trove.guestagent.datastore.mongodb.' + 'trove.guestagent.datastore.experimental.' + 'couchbase.manager.Manager') + self.assertEqual('trove.guestagent.datastore.experimental.mongodb.' 'manager.Manager', test_dict.get('mongodb')) @@ -1004,14 +1009,16 @@ class ServiceRegistryTest(testtools.TestCase): 'trove.guestagent.datastore.mysql.' 'manager.Manager') self.assertEqual(test_dict.get('redis'), - 'trove.guestagent.datastore.redis.manager.Manager') + 'trove.guestagent.datastore.experimental.redis.' + 'manager.Manager') self.assertEqual(test_dict.get('cassandra'), - 'trove.guestagent.datastore.cassandra.' + 'trove.guestagent.datastore.experimental.cassandra.' 'manager.Manager') self.assertEqual(test_dict.get('couchbase'), - 'trove.guestagent.datastore.couchbase.manager' - '.Manager') - self.assertEqual('trove.guestagent.datastore.mongodb.manager.Manager', + 'trove.guestagent.datastore.experimental.couchbase.' + 'manager.Manager') + self.assertEqual('trove.guestagent.datastore.experimental.mongodb.' + 'manager.Manager', test_dict.get('mongodb')) def test_datastore_registry_with_blank_dict(self): @@ -1026,14 +1033,16 @@ class ServiceRegistryTest(testtools.TestCase): 'trove.guestagent.datastore.mysql.' 'manager.Manager') self.assertEqual(test_dict.get('redis'), - 'trove.guestagent.datastore.redis.manager.Manager') + 'trove.guestagent.datastore.experimental.redis.' + 'manager.Manager') self.assertEqual(test_dict.get('cassandra'), - 'trove.guestagent.datastore.cassandra.' + 'trove.guestagent.datastore.experimental.cassandra.' 'manager.Manager') self.assertEqual(test_dict.get('couchbase'), - 'trove.guestagent.datastore.couchbase.manager' - '.Manager') - self.assertEqual('trove.guestagent.datastore.mongodb.manager.Manager', + 'trove.guestagent.datastore.experimental.couchbase.' + 'manager.Manager') + self.assertEqual('trove.guestagent.datastore.experimental.mongodb.' + 'manager.Manager', test_dict.get('mongodb')) diff --git a/trove/tests/unittests/guestagent/test_mongodb_cluster_manager.py b/trove/tests/unittests/guestagent/test_mongodb_cluster_manager.py index c2750ffa6b..8690a132c7 100644 --- a/trove/tests/unittests/guestagent/test_mongodb_cluster_manager.py +++ b/trove/tests/unittests/guestagent/test_mongodb_cluster_manager.py @@ -21,9 +21,10 @@ from trove.common import utils from trove.common.context import TroveContext from trove.guestagent import volume from trove.guestagent.common import operating_system -from trove.guestagent.datastore.mongodb import service as mongo_service -from trove.guestagent.datastore.mongodb.manager import Manager -from trove.guestagent.datastore.mongodb.service import MongoDBApp +from trove.guestagent.datastore.experimental.mongodb import ( + service as mongo_service) +from trove.guestagent.datastore.experimental.mongodb.manager import Manager +from trove.guestagent.datastore.experimental.mongodb.service import MongoDBApp class GuestAgentMongoDBClusterManagerTest(testtools.TestCase): diff --git a/trove/tests/unittests/guestagent/test_mongodb_manager.py b/trove/tests/unittests/guestagent/test_mongodb_manager.py index 6918f5b10e..23f27e9d28 100644 --- a/trove/tests/unittests/guestagent/test_mongodb_manager.py +++ b/trove/tests/unittests/guestagent/test_mongodb_manager.py @@ -20,8 +20,10 @@ from mock import patch from trove.common import utils from trove.common.context import TroveContext from trove.guestagent import volume -from trove.guestagent.datastore.mongodb import service as mongo_service -from trove.guestagent.datastore.mongodb import manager as mongo_manager +from trove.guestagent.datastore.experimental.mongodb import ( + service as mongo_service) +from trove.guestagent.datastore.experimental.mongodb import ( + manager as mongo_manager) from trove.guestagent.volume import VolumeDevice diff --git a/trove/tests/unittests/guestagent/test_redis_manager.py b/trove/tests/unittests/guestagent/test_redis_manager.py index ad97e98e4a..9253b4f32a 100644 --- a/trove/tests/unittests/guestagent/test_redis_manager.py +++ b/trove/tests/unittests/guestagent/test_redis_manager.py @@ -15,8 +15,10 @@ import testtools from mock import MagicMock from trove.common.context import TroveContext -from trove.guestagent.datastore.redis.manager import Manager as RedisManager -import trove.guestagent.datastore.redis.service as redis_service +from trove.guestagent.datastore.experimental.redis.manager import ( + Manager as RedisManager) +from trove.guestagent.datastore.experimental.redis import ( + service as redis_service) from trove.guestagent import backup from trove.guestagent.common import operating_system from trove.guestagent.volume import VolumeDevice diff --git a/trove/tests/unittests/taskmanager/test_api.py b/trove/tests/unittests/taskmanager/test_api.py index 24ecb8d066..c57113e9c3 100644 --- a/trove/tests/unittests/taskmanager/test_api.py +++ b/trove/tests/unittests/taskmanager/test_api.py @@ -16,7 +16,7 @@ from mock import Mock from testtools import TestCase -from trove.common.strategies.cluster.mongodb.taskmanager import ( +from trove.common.strategies.cluster.experimental.mongodb.taskmanager import ( MongoDbTaskManagerAPI) from trove.taskmanager import api as task_api diff --git a/trove/tests/unittests/taskmanager/test_clusters.py b/trove/tests/unittests/taskmanager/test_clusters.py index 7a7386c004..022985ac5e 100644 --- a/trove/tests/unittests/taskmanager/test_clusters.py +++ b/trove/tests/unittests/taskmanager/test_clusters.py @@ -21,7 +21,7 @@ from mock import patch from trove.cluster.models import ClusterTasks as ClusterTaskStatus from trove.cluster.models import DBCluster -from trove.common.strategies.cluster.mongodb.taskmanager import ( +from trove.common.strategies.cluster.experimental.mongodb.taskmanager import ( MongoDbClusterTasks as ClusterTasks) from trove.datastore import models as datastore_models from trove.instance.models import BaseInstance