Merge "Remove unused modules of karbor"

This commit is contained in:
Jenkins 2017-02-07 16:52:02 +00:00 committed by Gerrit Code Review
commit ae8e573800
2 changed files with 0 additions and 100 deletions

View File

@ -1,100 +0,0 @@
# 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 abc
import six
from karbor.common import constants
from karbor.services.protection.protection_plugin import ProtectionPlugin
@six.add_metaclass(abc.ABCMeta)
class BaseProtectionPlugin(ProtectionPlugin):
def __init__(self, config=None):
super(BaseProtectionPlugin, self).__init__(config)
# operation == "start" or "suspend" not support
self.task_callback_map = {
constants.OPERATION_PROTECT: self.create_backup,
constants.OPERATION_RESTORE: self.restore_backup,
constants.OPERATION_DELETE: self.delete_backup
}
@abc.abstractmethod
def create_backup(self, cntxt, checkpoint, **kwargs):
pass
@abc.abstractmethod
def restore_backup(self, cntxt, checkpoint, **kwargs):
pass
@abc.abstractmethod
def delete_backup(self, cntxt, checkpoint, **kwargs):
pass
def on_resource_start(self, context):
task = None
kwargs = {}
inject = {}
requires = []
parameters = {}
resource = context.node.value
if context.is_first_visited is True:
parameters['node'] = context.node
parameters['cntxt'] = context.cntxt
kwargs['name'] = resource.id
operation = context.operation
if operation == constants.OPERATION_PROTECT:
parameters.update(context.parameters.get(resource.type, {}))
res_params = resource.type + '#' + str(resource.id)
parameters.update(context.parameters.get(res_params, {}))
inject = parameters
requires = parameters.keys()
requires.append('checkpoint')
elif operation == constants.OPERATION_RESTORE:
parameters.update(context.parameters.get(resource.type, {}))
res_params = resource.type + '#' + str(resource.id)
parameters.update(context.parameters.get(res_params, {}))
parameters['checkpoint'] = context.checkpoint
parameters['heat_template'] = context.heat_template
inject = parameters
requires = parameters.keys()
elif operation == constants.OPERATION_DELETE:
parameters['checkpoint'] = context.checkpoint
inject = parameters
requires = parameters.keys()
requires.append('checkpoint')
task_callback = self.task_callback_map.get(operation, None)
if task_callback is not None:
task = context.workflow_engine.create_task(task_callback,
inject=inject,
requires=requires,
**kwargs)
context.workflow_engine.add_tasks(context.task_flow, task)
else:
task = context.workflow_engine.search_task(context.task_flow,
resource.id)
if task is not None:
context.task_stack.append(task)
def on_resource_end(self, context):
operation = context.operation
task_stack = context.task_stack
if operation in self.task_callback_map:
length = len(task_stack)
if length > 1:
child_task = task_stack.pop()
parent_task = task_stack[-1]
context.workflow_engine.link_task(context.task_flow,
child_task, parent_task)
else:
task_stack.pop()