|
@@ -17,6 +17,8 @@ from coriolis.conductor.rpc import client as rpc_conductor_client
|
|
|
from coriolis import constants
|
|
from coriolis import constants
|
|
|
from coriolis import events
|
|
from coriolis import events
|
|
|
from coriolis import exception
|
|
from coriolis import exception
|
|
|
|
|
+from coriolis.providers import factory as providers_factory
|
|
|
|
|
+from coriolis import schemas
|
|
|
from coriolis.tasks import factory as task_runners_factory
|
|
from coriolis.tasks import factory as task_runners_factory
|
|
|
from coriolis import utils
|
|
from coriolis import utils
|
|
|
|
|
|
|
@@ -165,6 +167,23 @@ class WorkerServerEndpoint(object):
|
|
|
if not retain_export_path:
|
|
if not retain_export_path:
|
|
|
self._check_remove_dir(export_path)
|
|
self._check_remove_dir(export_path)
|
|
|
|
|
|
|
|
|
|
+ def get_endpoint_instances(self, ctxt, endpoint_type, connection_info,
|
|
|
|
|
+ marker, limit, instance_name_pattern):
|
|
|
|
|
+ export_provider = providers_factory.get_provider(
|
|
|
|
|
+ endpoint_type, constants.PROVIDER_TYPE_ENDPOINT, None)
|
|
|
|
|
+
|
|
|
|
|
+ secret_connection_info = utils.get_secret_connection_info(
|
|
|
|
|
+ ctxt, connection_info)
|
|
|
|
|
+
|
|
|
|
|
+ instances_info = export_provider.get_instances(
|
|
|
|
|
+ ctxt, secret_connection_info, last_seen_id=marker, limit=limit,
|
|
|
|
|
+ instance_name_pattern=instance_name_pattern)
|
|
|
|
|
+ for instance_info in instances_info:
|
|
|
|
|
+ schemas.validate_value(
|
|
|
|
|
+ instance_info, schemas.CORIOLIS_VM_INSTANCE_INFO_SCHEMA)
|
|
|
|
|
+
|
|
|
|
|
+ return instances_info
|
|
|
|
|
+
|
|
|
|
|
|
|
|
def _get_task_export_path(task_id, create=False):
|
|
def _get_task_export_path(task_id, create=False):
|
|
|
export_path = os.path.join(CONF.worker.export_base_path, task_id)
|
|
export_path = os.path.join(CONF.worker.export_base_path, task_id)
|