From 8c38da110bf4e62dcf71747d5260e217989afb4a Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Sun, 5 Apr 2015 18:13:00 +0100 Subject: [PATCH] Add initial Overcloud Deploy command This is currently a no-op but defines the command layout. Change-Id: Ic289db1b681516296550691db08bb5332fded83a --- .../tests/v1/overcloud_deploy/__init__.py | 0 .../tests/v1/overcloud_deploy/fakes.py | 40 +++++++++++++++++++ .../overcloud_deploy/test_overcloud_deploy.py | 26 ++++++++++++ rdomanager_oscplugin/v1/overcloud_deploy.py | 32 +++++++++++++++ setup.cfg | 1 + 5 files changed, 99 insertions(+) create mode 100644 rdomanager_oscplugin/tests/v1/overcloud_deploy/__init__.py create mode 100644 rdomanager_oscplugin/tests/v1/overcloud_deploy/fakes.py create mode 100644 rdomanager_oscplugin/tests/v1/overcloud_deploy/test_overcloud_deploy.py create mode 100644 rdomanager_oscplugin/v1/overcloud_deploy.py diff --git a/rdomanager_oscplugin/tests/v1/overcloud_deploy/__init__.py b/rdomanager_oscplugin/tests/v1/overcloud_deploy/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdomanager_oscplugin/tests/v1/overcloud_deploy/fakes.py b/rdomanager_oscplugin/tests/v1/overcloud_deploy/fakes.py new file mode 100644 index 000000000..97475324b --- /dev/null +++ b/rdomanager_oscplugin/tests/v1/overcloud_deploy/fakes.py @@ -0,0 +1,40 @@ +# Copyright 2015 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +import mock +from openstackclient.tests import utils + + +class FakeClientWrapper(object): + + def __init__(self): + self._instace = mock.Mock() + self._orchestration = None + + def orchestration(self): + + if self._orchestration is None: + self._orchestration = mock.Mock() + + return self._orchestration + + +class TestOrchestration(utils.TestCommand): + + def setUp(self): + super(TestOrchestration, self).setUp() + + self.app.client_manager.auth_ref = mock.Mock(auth_token="TOKEN") + self.app.client_manager.rdomanager_oscplugin = FakeClientWrapper() diff --git a/rdomanager_oscplugin/tests/v1/overcloud_deploy/test_overcloud_deploy.py b/rdomanager_oscplugin/tests/v1/overcloud_deploy/test_overcloud_deploy.py new file mode 100644 index 000000000..60d350f5e --- /dev/null +++ b/rdomanager_oscplugin/tests/v1/overcloud_deploy/test_overcloud_deploy.py @@ -0,0 +1,26 @@ +# Copyright 2015 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +from rdomanager_oscplugin.tests.v1.overcloud_deploy import fakes +from rdomanager_oscplugin.v1 import overcloud_deploy + + +class TestOvercloudDeploy(fakes.TestOrchestration): + + def setUp(self): + super(TestOvercloudDeploy, self).setUp() + + # Get the command object to test + self.cmd = overcloud_deploy.DeployPlugin(self.app, None) diff --git a/rdomanager_oscplugin/v1/overcloud_deploy.py b/rdomanager_oscplugin/v1/overcloud_deploy.py new file mode 100644 index 000000000..5e001d98e --- /dev/null +++ b/rdomanager_oscplugin/v1/overcloud_deploy.py @@ -0,0 +1,32 @@ +# Copyright 2015 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +import logging + +from cliff import command + + +class DeployPlugin(command.Command): + """Overcloud Image Build plugin""" + + auth_required = False + log = logging.getLogger(__name__ + ".BuildPlugin") + + def get_parser(self, prog_name): + parser = super(DeployPlugin, self).get_parser(prog_name) + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)" % parsed_args) diff --git a/setup.cfg b/setup.cfg index 9ea9c06a3..0ffef21d9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -57,6 +57,7 @@ openstack.rdomanager_oscplugin.v1 = baremetal_import = rdomanager_oscplugin.v1.baremetal:ImportPlugin baremetal_introspection_all_start = rdomanager_oscplugin.v1.baremetal:IntrospectionAllPlugin baremetal_introspection_all_status = rdomanager_oscplugin.v1.baremetal:StatusAllPlugin + overcloud_deploy = rdomanager_oscplugin.v1.overcloud_deploy:DeployPlugin overcloud_image_build = rdomanager_oscplugin.v1.overcloud_image:BuildPlugin overcloud_image_create = rdomanager_oscplugin.v1.overcloud_image:CreatePlugin undercloud_install = rdomanager_oscplugin.v1.undercloud:InstallPlugin