Repository URL to install this package:
|
Version:
5.1.2 ▾
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright (c) 2013 TrilioData, Inc.
# All Rights Reserved.
"""
Client side of the workload scheduler RPC API.
"""
from workloadmgr import flags
from workloadmgr.openstack.common import log as logging
import oslo_messaging as messaging
from workloadmgr import autolog
from workloadmgr import rpc
LOG = logging.getLogger(__name__)
Logger = autolog.Logger(LOG)
FLAGS = flags.FLAGS
class WorkloadMgrAPI():
"""
Client side of the workloadmgr rpc API.
API version history:
1.0 - Initial version.
2.0 - Using oslo_messaging module
"""
BASE_RPC_API_VERSION = '2.0'
@autolog.log_method(logger=Logger)
def __init__(self):
super(WorkloadMgrAPI, self).__init__()
target = messaging.Target(topic=FLAGS.workloads_topic,
version=self.BASE_RPC_API_VERSION)
self.client = rpc.get_client(target, self.BASE_RPC_API_VERSION)
@autolog.log_method(logger=Logger, password_arg=5)
def workload_type_discover_instances(
self, ctxt, host, workload_type_id, metadata):
LOG.debug(
"workload_type_discover_instances in rpcapi workload_type_id %s",
workload_type_id)
cctxt = self.client.prepare(server=host, timeout=300)
instances = cctxt.call(ctxt, 'workload_type_discover_instances',
workload_type_id=workload_type_id,
metadata=metadata)
return instances
@autolog.log_method(logger=Logger, password_arg=5)
def workload_type_topology(self, ctxt, host, workload_type_id, metadata):
LOG.debug(
"workload_type_topology in rpcapi workload_type_id %s",
workload_type_id)
cctxt = self.client.prepare(server=host, timeout=300)
topology = cctxt.call(ctxt, 'workload_type_topology',
workload_type_id=workload_type_id,
metadata=metadata)
return topology
@autolog.log_method(logger=Logger)
def workload_discover_instances(self, ctxt, host, workload_id):
LOG.debug(
"workload_discover_instances in rpcapi workload_id %s",
workload_id)
cctxt = self.client.prepare(server=host, timeout=300)
instances = cctxt.call(ctxt, 'workload_discover_instances',
workload_id=workload_id)
return instances
@autolog.log_method(logger=Logger)
def workload_get_topology(self, ctxt, host, workload_id):
LOG.debug(
"workload_get_topology in rpcapi workload_id %s",
workload_id)
cctxt = self.client.prepare(server=host, timeout=300)
topology = cctxt.call(ctxt, 'workload_get_topology',
workload_id=workload_id)
return topology
@autolog.log_method(logger=Logger)
def workload_get_workflow_details(self, ctxt, host, workload_id):
LOG.debug(
"workload_get_workflow_details in rpcapi workload_id %s",
workload_id)
cctxt = self.client.prepare(server=host, timeout=300)
workflow = cctxt.call(ctxt, 'workload_get_workflow_details',
workload_id=workload_id)
return workflow
@autolog.log_method(logger=Logger)
def workload_create(self, ctxt, host, workload_id):
LOG.debug("create_workload in rpcapi workload_id %s", workload_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'workload_create', workload_id=workload_id)
@autolog.log_method(logger=Logger)
def file_search(self, ctxt, host, search_id):
LOG.debug("file search in rpcapi search_id:%s", search_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'file_search', search_id=search_id)
@autolog.log_method(logger=Logger)
def workload_snapshot(self, ctxt, host, snapshot_id):
LOG.debug("snapshot workload in rpcapi snapshot_id:%s", snapshot_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'workload_snapshot', snapshot_id=snapshot_id)
@autolog.log_method(logger=Logger)
def workload_reset(self, ctxt, host, workload_id):
LOG.debug("workload_reset workload_id:%s", workload_id)
cctxt = self.client.prepare(server=host)
return cctxt.call(ctxt, 'workload_reset', workload_id=workload_id)
@autolog.log_method(logger=Logger)
def workload_delete(self, ctxt, host, workload_id):
LOG.debug("delete_workload rpcapi workload_id %s", workload_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'workload_delete', workload_id=workload_id)
@autolog.log_method(logger=Logger)
def security_groups_restore(self, ctxt, host, restore_id):
LOG.debug(
"security groups restore is in rpcapi restore_id %s", restore_id
)
cctxt = self.client.prepare(server=host)
return cctxt.cast(
ctxt, 'security_groups_restore', restore_id=restore_id
)
@autolog.log_method(logger=Logger)
def network_topology_restore(self, ctxt, host, restore_id):
LOG.debug("network topology restore is in rpcapi restore_id %s", restore_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'network_topology_restore', restore_id=restore_id)
@autolog.log_method(logger=Logger)
def snapshot_restore(self, ctxt, host, restore_id):
LOG.debug("restore_snapshot in rpcapi restore_id %s", restore_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'snapshot_restore', restore_id=restore_id)
@autolog.log_method(logger=Logger)
def snapshot_delete(self, ctxt, host, snapshot_id):
LOG.debug("delete_snapshot rpcapi snapshot_id %s", snapshot_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'snapshot_delete',
snapshot_id=snapshot_id)
@autolog.log_method(logger=Logger)
def snapshot_mount(self, ctxt, host, snapshot_id, mount_vm_id):
LOG.debug("snapshot_mount in rpcapi snapshot_id %s, mount_vm_id %s",
snapshot_id, mount_vm_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'snapshot_mount',
snapshot_id=snapshot_id,
mount_vm_id=mount_vm_id)
@autolog.log_method(logger=Logger)
def snapshot_dismount(self, ctxt, host, snapshot_id):
LOG.debug("snapshot_dismount in rpcapi snapshot_id %s",
snapshot_id)
cctxt = self.client.prepare(server=host, timeout=300)
return cctxt.call(ctxt, 'snapshot_dismount',
snapshot_id=snapshot_id)
@autolog.log_method(logger=Logger)
def restore_delete(self, ctxt, host, restore_id):
LOG.debug("delete_restore rpcapi restore_id %s", restore_id)
cctxt = self.client.prepare(server=host, timeout=300)
return cctxt.call(ctxt, 'restore_delete', restore_id=restore_id)
@autolog.log_method(logger=Logger)
def schedule_send_email(self, ctxt, host, object_id, object_type):
LOG.debug("schedule_send_email in rpcapi {} ID: {}".format(object_type, object_id))
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'config_backup',
backup_id=backup_id)
@autolog.log_method(logger=Logger)
def migration_plan_create(self, ctxt, host, migration_plan_id):
LOG.debug("create_workload in rpcapi migration_plan_id %s", migration_plan_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'migration_plan_create', migration_plan_id=migration_plan_id)
@autolog.log_method(logger=Logger)
def migration_plan_delete(self, ctxt, host, migration_plan_id):
LOG.debug("migration_plan_delete rpcapi migration_plan_id %s", migration_plan_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'migration_plan_delete', migration_plan_id=migration_plan_id)
@autolog.log_method(logger=Logger)
def migration_plan_discovervms(self, ctxt, host, migration_plan_id):
LOG.debug("migration_plan_discovervms rpcapi migration_plan_id %s", migration_plan_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'migration_plan_discovervms', migration_plan_id=migration_plan_id)
@autolog.log_method(logger=Logger)
def migration_create(self, ctxt, host, migration_id):
LOG.debug("migration create in rpcapi migration_id:%s", migration_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'migration_create', migration_id=migration_id)
@autolog.log_method(logger=Logger)
def migration_delete(self, ctxt, host, migration_id):
LOG.debug("migration_delete rpcapi migration_id %s", migration_id)
cctxt = self.client.prepare(server=host)
return cctxt.cast(ctxt, 'migration_delete',
migration_id=migration_id)
return cctxt.cast(ctxt, 'schedule_send_email', object_id=object_id, object_type=object_type)