From 0ead5de97e5a102e7e1a0b4851d3aa753a4816f7 Mon Sep 17 00:00:00 2001 From: Alexandr Stavitskiy Date: Fri, 25 Dec 2015 17:42:25 +0300 Subject: [PATCH] Basic Strategy works Changes: * replace [user|project]_domain_NAME with [user|project]_domain_ID (in keystone auth), and set thess params from watcher.conf file (not manually in code); * specify values of Primitives.[LIVE|COLD]_MIGRATE and send PRIMITIVES.LIVE_MIGRATE param to Migrate()-class while build_primitive_from_action(); --- watcher/applier/mapping/default.py | 2 +- watcher/applier/primitives/migration.py | 13 +++++++------ watcher/common/keystone.py | 15 +++++++++++++-- watcher/decision_engine/planner/default.py | 4 ++-- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/watcher/applier/mapping/default.py b/watcher/applier/mapping/default.py index 65bd7b259..0e8318f97 100644 --- a/watcher/applier/mapping/default.py +++ b/watcher/applier/mapping/default.py @@ -34,7 +34,7 @@ def build_primitive_from_action(self, action): action.src, action.dst) elif action.action_type == Primitives.LIVE_MIGRATE.value: - return Migrate(action.applies_to, Primitives.COLD_MIGRATE, + return Migrate(action.applies_to, Primitives.LIVE_MIGRATE, action.src, action.dst) elif action.action_type == Primitives.HYPERVISOR_STATE.value: diff --git a/watcher/applier/primitives/migration.py b/watcher/applier/primitives/migration.py index 428bd0cb2..2e00c4d6c 100644 --- a/watcher/applier/primitives/migration.py +++ b/watcher/applier/primitives/migration.py @@ -54,16 +54,17 @@ def migrate(self, destination): 'username': CONF.keystone_authtoken.admin_user, 'password': CONF.keystone_authtoken.admin_password, 'project_id': project_id, - 'user_domain_name': "default", - 'project_domain_name': "default"} + 'user_domain_id': CONF.keystone_authtoken.user_domain_id, + 'project_domain_id': CONF.keystone_authtoken.project_domain_id + } auth2 = v3.Password(auth_url=creds2['auth_url'], username=creds2['username'], password=creds2['password'], project_id=creds2['project_id'], - user_domain_name=creds2[ - 'user_domain_name'], - project_domain_name=creds2[ - 'project_domain_name']) + user_domain_id=creds2[ + 'user_domain_id'], + project_domain_id=creds2[ + 'project_domain_id']) sess2 = session.Session(auth=auth2) wrapper2 = NovaClient(creds2, session=sess2) diff --git a/watcher/common/keystone.py b/watcher/common/keystone.py index e75f2a233..4ac52de6a 100644 --- a/watcher/common/keystone.py +++ b/watcher/common/keystone.py @@ -31,6 +31,17 @@ LOG = log.getLogger(__name__) CONF = cfg.CONF +watcher_domain_opts = [ + cfg.StrOpt('project_domain_id', + default='default', + help='Project domain ID'), + cfg.StrOpt('user_domain_id', + default='default', + help='User domain ID') +] + +CONF.register_opts(watcher_domain_opts, 'keystone_authtoken') + CONF.import_opt('admin_user', 'keystonemiddleware.auth_token', group='keystone_authtoken') CONF.import_opt('admin_tenant_name', 'keystonemiddleware.auth_token', @@ -105,8 +116,8 @@ def get_credentials(self): 'username': CONF.keystone_authtoken.admin_user, 'password': CONF.keystone_authtoken.admin_password, 'project_name': CONF.keystone_authtoken.admin_tenant_name, - 'user_domain_name': "default", - 'project_domain_name': "default"} + 'user_domain_id': CONF.keystone_authtoken.user_domain_id, + 'project_domain_id': CONF.keystone_authtoken.project_domain_id} LOG.debug(creds) return creds diff --git a/watcher/decision_engine/planner/default.py b/watcher/decision_engine/planner/default.py index 6262b29e9..3ace1aa9f 100644 --- a/watcher/decision_engine/planner/default.py +++ b/watcher/decision_engine/planner/default.py @@ -38,8 +38,8 @@ class Primitives(Enum): - LIVE_MIGRATE = 'MIGRATE' - COLD_MIGRATE = 'MIGRATE' + LIVE_MIGRATE = 'LIVE_MIGRATE' + COLD_MIGRATE = 'COLD_MIGRATE' POWER_STATE = 'POWERSTATE' HYPERVISOR_STATE = 'HYPERVISOR_STATE' NOP = 'NOP'