Rename EngineFactory -> Engine
Renaming as part of refactoring engine.py. Change-Id: I1f5814d9fe16aa8f95d2882bdf53376fd3c31785
This commit is contained in:
@@ -52,7 +52,7 @@ class Deployment(object):
|
||||
LOG.exception(e)
|
||||
raise
|
||||
|
||||
deployer = deploy_engine.EngineFactory.get_engine(
|
||||
deployer = deploy_engine.Engine.get_engine(
|
||||
deployment["config"]["type"], deployment)
|
||||
try:
|
||||
deployer.validate()
|
||||
@@ -78,7 +78,7 @@ class Deployment(object):
|
||||
# TODO(akscram): Check that the deployment have got a status that
|
||||
# is equal to "*->finished" or "deploy->inconsistent".
|
||||
deployment = objects.Deployment.get(deployment)
|
||||
deployer = deploy_engine.EngineFactory.get_engine(
|
||||
deployer = deploy_engine.Engine.get_engine(
|
||||
deployment["config"]["type"], deployment)
|
||||
|
||||
tempest.Tempest(deployment["uuid"]).uninstall()
|
||||
@@ -93,7 +93,7 @@ class Deployment(object):
|
||||
:param deployment: UUID or name of the deployment
|
||||
"""
|
||||
deployment = objects.Deployment.get(deployment)
|
||||
deployer = deploy_engine.EngineFactory.get_engine(
|
||||
deployer = deploy_engine.Engine.get_engine(
|
||||
deployment["config"]["type"], deployment)
|
||||
with deployer:
|
||||
deployer.make_cleanup()
|
||||
|
@@ -181,7 +181,7 @@ class InfoCommands(object):
|
||||
@plugins.ensure_plugins_are_loaded
|
||||
def DeploymentEngines(self):
|
||||
"""Get information about deploy engines available in Rally."""
|
||||
engines = self._get_descriptions(engine.EngineFactory)
|
||||
engines = self._get_descriptions(engine.Engine)
|
||||
info = (self._make_header("Rally - Deployment engines") +
|
||||
"\n\n"
|
||||
"Rally is an OpenStack benchmarking system. Before starting "
|
||||
@@ -273,7 +273,7 @@ class InfoCommands(object):
|
||||
scenario_methods = list(set(s.split(".")[1] for s in scenarios))
|
||||
sla_info = [cls.get_name() for cls in sla.SLA.get_all()]
|
||||
deploy_engines = [cls.get_name() for cls in
|
||||
engine.EngineFactory.get_all()]
|
||||
engine.Engine.get_all()]
|
||||
server_providers = [cls.get_name() for cls in
|
||||
provider.ProviderFactory.get_all()]
|
||||
|
||||
@@ -364,7 +364,7 @@ class InfoCommands(object):
|
||||
|
||||
def _get_deploy_engine_info(self, query):
|
||||
try:
|
||||
deploy_engine = engine.EngineFactory.get(query)
|
||||
deploy_engine = engine.Engine.get(query)
|
||||
header = "%s (deploy engine)" % deploy_engine.get_name()
|
||||
info = self._make_header(header)
|
||||
info += "\n\n"
|
||||
|
@@ -40,7 +40,7 @@ def configure(name, namespace="default"):
|
||||
# engines class should have own base.
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
@configure("base_engine")
|
||||
class EngineFactory(plugin.Plugin):
|
||||
class Engine(plugin.Plugin):
|
||||
"""Base class of all deployment engines.
|
||||
|
||||
It's a base class with self-discovery of subclasses. Each subclass
|
||||
@@ -51,7 +51,7 @@ class EngineFactory(plugin.Plugin):
|
||||
Example of usage with a simple engine:
|
||||
|
||||
# Add new engine with __name__ == "A"
|
||||
class A(EngineFactory):
|
||||
class A(Engine):
|
||||
def __init__(self, deployment):
|
||||
# do something
|
||||
|
||||
@@ -69,7 +69,7 @@ class EngineFactory(plugin.Plugin):
|
||||
operations to a deployment. Any unhandled exceptions bring a status
|
||||
of the deployment to the inconsistent state.
|
||||
|
||||
with EngineFactory.get_engine("A", deployment) as deploy:
|
||||
with Engine.get_engine("A", deployment) as deploy:
|
||||
# deploy is an instance of the A engine
|
||||
# perform all usage operations on your cloud
|
||||
"""
|
||||
@@ -94,7 +94,7 @@ class EngineFactory(plugin.Plugin):
|
||||
def get_engine(name, deployment):
|
||||
"""Returns instance of a deploy engine with corresponding name."""
|
||||
try:
|
||||
engine_cls = EngineFactory.get(name)
|
||||
engine_cls = Engine.get(name)
|
||||
return engine_cls(deployment)
|
||||
except exceptions.PluginNotFound:
|
||||
LOG.error(_("Deployment %(uuid)s: Deploy engine for %(name)s "
|
||||
|
@@ -44,7 +44,7 @@ def get_updated_server(server, **kwargs):
|
||||
|
||||
|
||||
@engine.configure(name="DevstackEngine")
|
||||
class DevstackEngine(engine.EngineFactory):
|
||||
class DevstackEngine(engine.Engine):
|
||||
"""Deploy Devstack cloud.
|
||||
|
||||
Sample configuration:
|
||||
|
@@ -19,7 +19,7 @@ from rally import objects
|
||||
|
||||
|
||||
@engine.configure(name="ExistingCloud")
|
||||
class ExistingCloud(engine.EngineFactory):
|
||||
class ExistingCloud(engine.Engine):
|
||||
"""Just use an existing OpenStack deployment without deploying anything.
|
||||
|
||||
To use ExistingCloud, you should put endpoint information to the config:
|
||||
|
@@ -77,7 +77,7 @@ NETWORKS_SCHEMA = {
|
||||
|
||||
|
||||
@engine.configure(name="FuelEngine")
|
||||
class FuelEngine(engine.EngineFactory):
|
||||
class FuelEngine(engine.Engine):
|
||||
"""Deploy with FuelWeb.
|
||||
|
||||
Sample configuration:
|
||||
|
@@ -37,7 +37,7 @@ def get_script_path(name):
|
||||
|
||||
|
||||
@engine.configure(name="LxcEngine")
|
||||
class LxcEngine(engine.EngineFactory):
|
||||
class LxcEngine(engine.Engine):
|
||||
"""Deploy with other engines in lxc containers.
|
||||
|
||||
Sample configuration:
|
||||
@@ -102,8 +102,8 @@ class LxcEngine(engine.EngineFactory):
|
||||
"credentials": [credentials]}
|
||||
deployment = objects.Deployment(config=engine_config,
|
||||
parent_uuid=self.deployment["uuid"])
|
||||
deployer = engine.EngineFactory.get_engine(engine_config["name"],
|
||||
deployment)
|
||||
deployer = engine.Engine.get_engine(engine_config["name"],
|
||||
deployment)
|
||||
deployer.deploy()
|
||||
lxc_host.stop_containers()
|
||||
|
||||
|
@@ -25,7 +25,7 @@ from rally import objects
|
||||
|
||||
|
||||
@engine.configure(name="MultihostEngine")
|
||||
class MultihostEngine(engine.EngineFactory):
|
||||
class MultihostEngine(engine.Engine):
|
||||
"""Deploy multihost cloud with existing engines.
|
||||
|
||||
Sample configuration:
|
||||
@@ -66,7 +66,7 @@ class MultihostEngine(engine.EngineFactory):
|
||||
def _deploy_node(self, config):
|
||||
deployment = objects.Deployment(config=config,
|
||||
parent_uuid=self.deployment["uuid"])
|
||||
deployer = engine.EngineFactory.get_engine(config["type"], deployment)
|
||||
deployer = engine.Engine.get_engine(config["type"], deployment)
|
||||
with deployer:
|
||||
endpoints = deployer.make_deploy()
|
||||
return deployer, endpoints
|
||||
|
@@ -31,7 +31,7 @@ from tests.unit import test
|
||||
|
||||
SCENARIO = "rally.cli.commands.info.scenario_base.Scenario"
|
||||
SLA = "rally.cli.commands.info.sla.SLA"
|
||||
ENGINE = "rally.cli.commands.info.engine.EngineFactory"
|
||||
ENGINE = "rally.cli.commands.info.engine.Engine"
|
||||
PROVIDER = "rally.cli.commands.info.provider.ProviderFactory"
|
||||
UTILS = "rally.cli.commands.info.utils"
|
||||
DISCOVER = "rally.cli.commands.info.discover"
|
||||
@@ -76,10 +76,10 @@ class InfoCommandsTestCase(test.TestCase):
|
||||
|
||||
@mock.patch(ENGINE + ".get",
|
||||
return_value=existing_cloud.ExistingCloud)
|
||||
def test_find_existing_cloud(self, mock_engine_factory_get):
|
||||
def test_find_existing_cloud(self, mock_engine_get):
|
||||
query = "ExistingCloud"
|
||||
status = self.info.find(query)
|
||||
mock_engine_factory_get.assert_called_once_with(query)
|
||||
mock_engine_get.assert_called_once_with(query)
|
||||
self.assertIsNone(status)
|
||||
|
||||
@mock.patch(PROVIDER + ".get",
|
||||
@@ -120,7 +120,7 @@ class InfoCommandsTestCase(test.TestCase):
|
||||
return_value=[existing_cloud.ExistingCloud])
|
||||
def test_DeploymentEngines(self, mock_itersubclasses):
|
||||
status = self.info.DeploymentEngines()
|
||||
mock_itersubclasses.assert_called_with(engine.EngineFactory)
|
||||
mock_itersubclasses.assert_called_with(engine.Engine)
|
||||
self.assertIsNone(status)
|
||||
|
||||
@mock.patch(DISCOVER + ".itersubclasses",
|
||||
|
@@ -70,14 +70,14 @@ class DevstackEngineTestCase(test.TestCase):
|
||||
"devstack/install.sh"))
|
||||
self.assertEqual([mock.call(filename, "rb")], mock_open.mock_calls)
|
||||
|
||||
@mock.patch("rally.deployment.engine.EngineFactory.get_provider")
|
||||
@mock.patch("rally.deployment.engine.Engine.get_provider")
|
||||
@mock.patch("rally.deployment.engines.devstack.get_updated_server")
|
||||
@mock.patch("rally.deployment.engines.devstack.get_script")
|
||||
@mock.patch("rally.deployment.serverprovider.provider.Server")
|
||||
@mock.patch("rally.deployment.engines.devstack.objects.Endpoint")
|
||||
def test_deploy(self, mock_endpoint, mock_server, mock_get_script,
|
||||
mock_get_updated_server, mock_engine_factory_get_provider):
|
||||
mock_engine_factory_get_provider.return_value = fake_provider = (
|
||||
mock_get_updated_server, mock_engine_get_provider):
|
||||
mock_engine_get_provider.return_value = fake_provider = (
|
||||
mock.Mock()
|
||||
)
|
||||
server = mock.Mock(host="host")
|
||||
|
@@ -70,6 +70,6 @@ class TestExistingCloud(test.TestCase):
|
||||
|
||||
def test_is_in_factory(self):
|
||||
name = self.deployment["config"]["type"]
|
||||
engine = deploy_engine.EngineFactory.get_engine(name,
|
||||
self.deployment)
|
||||
engine = deploy_engine.Engine.get_engine(name,
|
||||
self.deployment)
|
||||
self.assertIsInstance(engine, existing.ExistingCloud)
|
||||
|
@@ -56,7 +56,7 @@ class FakeDeployment(object):
|
||||
|
||||
|
||||
@engine.configure(name="FakeEngine")
|
||||
class FakeEngine(engine.EngineFactory):
|
||||
class FakeEngine(engine.Engine):
|
||||
"""Fake deployment engine.
|
||||
|
||||
Used for tests.
|
||||
@@ -84,12 +84,12 @@ class EngineMixIn(object):
|
||||
pass
|
||||
|
||||
|
||||
class EngineFactoryTestCase(test.TestCase):
|
||||
class EngineTestCase(test.TestCase):
|
||||
|
||||
def test_get_engine_not_found(self):
|
||||
deployment = make_fake_deployment()
|
||||
self.assertRaises(exceptions.PluginNotFound,
|
||||
engine.EngineFactory.get_engine,
|
||||
engine.Engine.get_engine,
|
||||
"non_existing_engine", deployment)
|
||||
self.assertEqual(consts.DeployStatus.DEPLOY_FAILED,
|
||||
deployment["status"])
|
||||
@@ -207,9 +207,9 @@ class EngineFactoryTestCase(test.TestCase):
|
||||
|
||||
def test_get_engine(self):
|
||||
deployment = make_fake_deployment()
|
||||
engine_inst = engine.EngineFactory.get_engine("FakeEngine",
|
||||
deployment)
|
||||
engine_inst = engine.Engine.get_engine("FakeEngine",
|
||||
deployment)
|
||||
self.assertIsInstance(engine_inst, FakeEngine)
|
||||
|
||||
def test_engine_factory_is_abstract(self):
|
||||
self.assertRaises(TypeError, engine.EngineFactory)
|
||||
self.assertRaises(TypeError, engine.Engine)
|
||||
|
@@ -49,8 +49,8 @@ class LxcEngineTestCase(test.TestCase):
|
||||
"uuid": "test-deployment-uuid",
|
||||
"config": self.config,
|
||||
}
|
||||
self.engine = engine.EngineFactory.get_engine("LxcEngine",
|
||||
self.deployment)
|
||||
self.engine = engine.Engine.get_engine("LxcEngine",
|
||||
self.deployment)
|
||||
|
||||
@mock.patch(MOD + "objects")
|
||||
@mock.patch(MOD + "engine")
|
||||
@@ -59,7 +59,7 @@ class LxcEngineTestCase(test.TestCase):
|
||||
fake_deployment = mock.Mock()
|
||||
fake_engine = mock.Mock()
|
||||
mock_objects.Deployment = mock.Mock(return_value=fake_deployment)
|
||||
mock_engine.EngineFactory.get_engine = mock.Mock(
|
||||
mock_engine.Engine.get_engine = mock.Mock(
|
||||
return_value=fake_engine)
|
||||
|
||||
fake_host = mock.Mock()
|
||||
@@ -75,7 +75,7 @@ class LxcEngineTestCase(test.TestCase):
|
||||
mock.call.stop_containers()]
|
||||
self.assertEqual(host_calls, fake_host.mock_calls)
|
||||
fake_engine.deploy.assert_called_once_with()
|
||||
mock_engine.EngineFactory.get_engine.assert_called_once_with(
|
||||
mock_engine.Engine.get_engine.assert_called_once_with(
|
||||
"FakeEngine", fake_deployment)
|
||||
engine_config = self.config["engine"].copy()
|
||||
engine_config["provider"] = {"credentials": [fake_credentials],
|
||||
|
@@ -49,12 +49,12 @@ class MultihostEngineTestCase(test.TestCase):
|
||||
uuid="905b2f16-6453-4b86-8ba5-6d32025fcfa6",
|
||||
config=self.config,
|
||||
)
|
||||
self.engine = engine.EngineFactory.get_engine("MultihostEngine",
|
||||
self.deployment)
|
||||
self.engine = engine.Engine.get_engine("MultihostEngine",
|
||||
self.deployment)
|
||||
|
||||
@mock.patch(MOD + "objects.Deployment")
|
||||
@mock.patch(MOD + "engine.EngineFactory")
|
||||
def test__deploy_node(self, mock_engine_factory, mock_deployment):
|
||||
@mock.patch(MOD + "engine.Engine")
|
||||
def test__deploy_node(self, mock_engine, mock_deployment):
|
||||
fake_endpoint = mock.Mock()
|
||||
fake_deployment = mock.Mock()
|
||||
fake_engine = mock.Mock()
|
||||
@@ -63,7 +63,7 @@ class MultihostEngineTestCase(test.TestCase):
|
||||
fake_engine.make_deploy = mock.Mock(return_value=fake_endpoint)
|
||||
|
||||
mock_deployment.return_value = fake_deployment
|
||||
mock_engine_factory.get_engine = mock.Mock(return_value=fake_engine)
|
||||
mock_engine.get_engine = mock.Mock(return_value=fake_engine)
|
||||
|
||||
engine, endpoint = self.engine._deploy_node(self.config["nodes"][0])
|
||||
|
||||
|
@@ -199,8 +199,8 @@ class BaseDeploymentTestCase(test.TestCase):
|
||||
class DeploymentAPITestCase(BaseDeploymentTestCase):
|
||||
@mock.patch("rally.objects.deploy.db.deployment_update")
|
||||
@mock.patch("rally.objects.deploy.db.deployment_create")
|
||||
@mock.patch("rally.deployment.engine.EngineFactory.validate")
|
||||
def test_create(self, mock_engine_factory_validate,
|
||||
@mock.patch("rally.deployment.engine.Engine.validate")
|
||||
def test_create(self, mock_engine_validate,
|
||||
mock_deployment_create, mock_deployment_update):
|
||||
mock_deployment_create.return_value = self.deployment
|
||||
mock_deployment_update.return_value = self.deployment
|
||||
@@ -209,17 +209,17 @@ class DeploymentAPITestCase(BaseDeploymentTestCase):
|
||||
"name": "fake_deployment",
|
||||
"config": self.deployment_config,
|
||||
})
|
||||
mock_engine_factory_validate.assert_called_with()
|
||||
mock_engine_validate.assert_called_with()
|
||||
mock_deployment_update.assert_has_calls([
|
||||
mock.call(self.deployment_uuid, self.endpoints)
|
||||
])
|
||||
|
||||
@mock.patch("rally.objects.deploy.db.deployment_update")
|
||||
@mock.patch("rally.objects.deploy.db.deployment_create")
|
||||
@mock.patch("rally.deployment.engine.EngineFactory.validate",
|
||||
@mock.patch("rally.deployment.engine.Engine.validate",
|
||||
side_effect=jsonschema.ValidationError("ValidationError"))
|
||||
def test_create_validation_error(
|
||||
self, mock_engine_factory_validate, mock_deployment_create,
|
||||
self, mock_engine_validate, mock_deployment_create,
|
||||
mock_deployment_update):
|
||||
mock_deployment_create.return_value = self.deployment
|
||||
self.assertRaises(jsonschema.ValidationError,
|
||||
|
@@ -81,7 +81,7 @@ class DocstringsTestCase(test.TestCase):
|
||||
long_description=False)
|
||||
|
||||
def test_all_deploy_engines_have_docstrings(self):
|
||||
for deploy_engine in engine.EngineFactory.get_all():
|
||||
for deploy_engine in engine.Engine.get_all():
|
||||
self._assert_class_has_docstrings(deploy_engine)
|
||||
|
||||
def test_all_server_providers_have_docstrings(self):
|
||||
|
Reference in New Issue
Block a user