Merge "Keystone DB sync - enhance dcorch first audit"
This commit is contained in:
commit
fd498c843c
|
@ -22,6 +22,7 @@ from dcdbsync.dbsyncclient import exceptions as dbsync_exceptions
|
||||||
from dcorch.common import consts
|
from dcorch.common import consts
|
||||||
from dcorch.common import exceptions
|
from dcorch.common import exceptions
|
||||||
from dcorch.engine.sync_thread import SyncThread
|
from dcorch.engine.sync_thread import SyncThread
|
||||||
|
from dcorch.objects import resource
|
||||||
|
|
||||||
from keystoneauth1 import exceptions as keystone_exceptions
|
from keystoneauth1 import exceptions as keystone_exceptions
|
||||||
from keystoneclient import client as keystoneclient
|
from keystoneclient import client as keystoneclient
|
||||||
|
@ -1404,6 +1405,7 @@ class IdentitySyncThread(SyncThread):
|
||||||
return (m.id == sc.id and
|
return (m.id == sc.id and
|
||||||
m.domain_id == sc.domain_id and
|
m.domain_id == sc.domain_id and
|
||||||
m.name == sc.name and
|
m.name == sc.name and
|
||||||
|
m.description == sc.description and
|
||||||
m.extra == sc.extra)
|
m.extra == sc.extra)
|
||||||
|
|
||||||
def _has_same_role_ids(self, m, sc):
|
def _has_same_role_ids(self, m, sc):
|
||||||
|
@ -1629,7 +1631,19 @@ class IdentitySyncThread(SyncThread):
|
||||||
if self.has_same_ids(resource_type, m_r, sc_r):
|
if self.has_same_ids(resource_type, m_r, sc_r):
|
||||||
LOG.info("Mapping resource {} to existing subcloud resource {}"
|
LOG.info("Mapping resource {} to existing subcloud resource {}"
|
||||||
.format(m_r, sc_r), extra=self.log_extra)
|
.format(m_r, sc_r), extra=self.log_extra)
|
||||||
self.persist_db_subcloud_resource(m_rsrc_db.id,
|
# If the resource is not even in master cloud resource DB,
|
||||||
|
# create it first.
|
||||||
|
rsrc = m_rsrc_db
|
||||||
|
if not rsrc:
|
||||||
|
master_id = self.get_resource_id(resource_type, m_r)
|
||||||
|
rsrc = resource.Resource(
|
||||||
|
self.ctxt, resource_type=resource_type,
|
||||||
|
master_id=master_id)
|
||||||
|
rsrc.create()
|
||||||
|
LOG.info("Resource created in DB {}/{}/{}".format(
|
||||||
|
rsrc.id, resource_type, master_id))
|
||||||
|
|
||||||
|
self.persist_db_subcloud_resource(rsrc.id,
|
||||||
self.get_resource_id(
|
self.get_resource_id(
|
||||||
resource_type,
|
resource_type,
|
||||||
sc_r))
|
sc_r))
|
||||||
|
|
|
@ -354,7 +354,19 @@ class NetworkSyncThread(SyncThread):
|
||||||
LOG.info(
|
LOG.info(
|
||||||
"Mapping resource {} to existing subcloud resource {}"
|
"Mapping resource {} to existing subcloud resource {}"
|
||||||
.format(m_r, sc_r), extra=self.log_extra)
|
.format(m_r, sc_r), extra=self.log_extra)
|
||||||
self.persist_db_subcloud_resource(m_rsrc_db.id,
|
# If the resource is not even in master cloud resource DB,
|
||||||
|
# create it first.
|
||||||
|
rsrc = m_rsrc_db
|
||||||
|
if not rsrc:
|
||||||
|
master_id = self.get_resource_id(resource_type, m_r)
|
||||||
|
rsrc = resource.Resource(
|
||||||
|
self.ctxt, resource_type=resource_type,
|
||||||
|
master_id=master_id)
|
||||||
|
rsrc.create()
|
||||||
|
LOG.info("Resource created in DB {}/{}/{}".format(
|
||||||
|
rsrc.id, resource_type, master_id))
|
||||||
|
|
||||||
|
self.persist_db_subcloud_resource(rsrc.id,
|
||||||
sc_r['id'])
|
sc_r['id'])
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -564,6 +564,14 @@ class SyncThread(object):
|
||||||
LOG.info("{} not found in DB, will create it"
|
LOG.info("{} not found in DB, will create it"
|
||||||
.format(master_id),
|
.format(master_id),
|
||||||
extra=self.log_extra)
|
extra=self.log_extra)
|
||||||
|
# Check and see if there are any subcloud resources that
|
||||||
|
# match the master resource, and if so set up mappings.
|
||||||
|
# This returns true if it finds a match.
|
||||||
|
# This is for the case where the resource is not even in dcorch
|
||||||
|
# resource DB (ie, resource has not been tracked by dcorch yet)
|
||||||
|
if self.map_subcloud_resource(resource_type, m_r,
|
||||||
|
m_rsrc_db, sc_resources):
|
||||||
|
continue
|
||||||
missing_resource = True
|
missing_resource = True
|
||||||
|
|
||||||
if missing_resource:
|
if missing_resource:
|
||||||
|
|
Loading…
Reference in New Issue