Allow running "overcloud node delete" with heat templates directly

Depends-On: https://review.openstack.org/#/c/202054/
Change-Id: If1013ec981d659c85e96875d54aed270e6fca64e
This commit is contained in:
Jan Provaznik
2015-07-15 12:40:17 +02:00
parent da9b08ed88
commit 821a190c33

View File

@@ -19,6 +19,8 @@ from cliff import command
from openstackclient.common import utils from openstackclient.common import utils
from tripleo_common import scale from tripleo_common import scale
TRIPLEO_HEAT_TEMPLATES = "/usr/share/openstack-tripleo-heat-templates/"
class DeleteNode(command.Command): class DeleteNode(command.Command):
"""Delete overcloud nodes.""" """Delete overcloud nodes."""
@@ -37,18 +39,28 @@ class DeleteNode(command.Command):
help='Name or ID of tuskar plan to scale ' help='Name or ID of tuskar plan to scale '
'(default=Env: OVERCLOUD_PLAN_NAME)', '(default=Env: OVERCLOUD_PLAN_NAME)',
default=utils.env('OVERCLOUD_PLAN_NAME')) default=utils.env('OVERCLOUD_PLAN_NAME'))
parser.add_argument(
'--templates', nargs='?', const=TRIPLEO_HEAT_TEMPLATES,
help="The directory containing the Heat templates to deploy"
)
return parser return parser
def take_action(self, parsed_args): def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args) self.log.debug("take_action(%s)" % parsed_args)
management = self.app.client_manager.rdomanager_oscplugin.management() osc_plugin = self.app.client_manager.rdomanager_oscplugin
orchestration = (self.app.client_manager.rdomanager_oscplugin. if parsed_args.templates:
orchestration()) management = None
else:
management = osc_plugin.management()
orchestration = osc_plugin.orchestration()
scale_manager = scale.ScaleManager( scale_manager = scale.ScaleManager(
tuskarclient=management, tuskarclient=management,
heatclient=orchestration, heatclient=orchestration,
plan_id=parsed_args.plan, plan_id=parsed_args.plan,
stack_id=parsed_args.stack) stack_id=parsed_args.stack,
tht_dir=parsed_args.templates)
print("deleting nodes {0} from stack {1}".format(parsed_args.nodes, print("deleting nodes {0} from stack {1}".format(parsed_args.nodes,
parsed_args.plan)) parsed_args.plan))
scale_manager.scaledown(parsed_args.nodes) scale_manager.scaledown(parsed_args.nodes)