CORD-1010 add certificate to no-build containers, file log_file config option
Change-Id: Iebb72259cceaeb220c5e56373934c8732951dffa
diff --git a/xos/synchronizers/new_base/dependency_walker_new.py b/xos/synchronizers/new_base/dependency_walker_new.py
index b5ffff8..17b7a9a 100644
--- a/xos/synchronizers/new_base/dependency_walker_new.py
+++ b/xos/synchronizers/new_base/dependency_walker_new.py
@@ -20,7 +20,7 @@
missing_links={}
try:
- dep_data = open(Config().dependency_graph).read()
+ dep_data = open(Config().observer_dependency_graph).read()
except:
dep_data = open(XOS_DIR + '/model-deps').read()
diff --git a/xos/synchronizers/new_base/model_policy_loop.py b/xos/synchronizers/new_base/model_policy_loop.py
index eee49b1..61fb7c3 100644
--- a/xos/synchronizers/new_base/model_policy_loop.py
+++ b/xos/synchronizers/new_base/model_policy_loop.py
@@ -71,7 +71,7 @@
# These are the models whose children get deleted when they are
delete_policy_models = ['Slice','Instance','Network']
- sender_name = instance.__class__.__name__
+ sender_name = getattr(instance, "model_name", instance.__class__.__name__)
policy_name = 'model_policy_%s'%sender_name
noargs = False
@@ -82,7 +82,7 @@
walk_inv_deps(delete_if_inactive, instance)
try:
- policy_handler = model_policies.get(policy_name, None) # getattr(model_policies, policy_name, None)
+ policy_handler = model_policies.get(policy_name, None)
logger.debug("MODEL POLICY: handler %s %s" % (policy_name, policy_handler))
if policy_handler is not None:
if (deleted):
diff --git a/xos/synchronizers/new_base/syncstep.py b/xos/synchronizers/new_base/syncstep.py
index cf5b40a..492351a 100644
--- a/xos/synchronizers/new_base/syncstep.py
+++ b/xos/synchronizers/new_base/syncstep.py
@@ -27,6 +27,8 @@
def deepgetattr(obj, attr):
return reduce(getattr, attr.split('.'), obj)
+def obj_class_name(obj):
+ return getattr(obj, "model_name", obj.__class__.__name__)
class InnocuousException(Exception):
pass
@@ -120,11 +122,11 @@
if (obj.backend_status != failed.backend_status):
obj.backend_status = failed.backend_status
obj.save(update_fields=['backend_status'])
- raise FailedDependency("Failed dependency for %s:%s peer %s:%s failed %s:%s" % (obj.__class__.__name__, str(getattr(obj,"pk","no_pk")), peer_object.__class__.__name__, str(getattr(peer_object,"pk","no_pk")), failed.__class__.__name__, str(getattr(failed,"pk","no_pk"))))
+ raise FailedDependency("Failed dependency for %s:%s peer %s:%s failed %s:%s" % (obj_class_name(obj), str(getattr(obj,"pk","no_pk")), obj_class_name(peer_object), str(getattr(peer_object,"pk","no_pk")), obj_class_name(failed), str(getattr(failed,"pk","no_pk"))))
def sync_record(self, o):
- logger.debug("Sync_record called for %s %s" % (o.__class__.__name__, str(o)))
+ logger.debug("Sync_record called for %s %s" % (obj_class_name(o), str(o)))
# try:
# controller = o.get_controller()
diff --git a/xos/synchronizers/onboarding/xosbuilder.py b/xos/synchronizers/onboarding/xosbuilder.py
index 4b879aa..5ed4bc9 100644
--- a/xos/synchronizers/onboarding/xosbuilder.py
+++ b/xos/synchronizers/onboarding/xosbuilder.py
@@ -423,6 +423,9 @@
"read_only": True},
{"host_path": "/opt/cord/build/platform-install/credentials/xosadmin@opencord.org",
"container_path": "/opt/xos/services/%s/credentials/xosadmin@opencord.org" % c.name,
+ "read_only": True},
+ {"host_path": "/opt/cord_profile/im_cert_chain.pem",
+ "container_path": "/usr/local/share/ca-certificates/local_certs.crt",
"read_only": True}]
# keys inside onboarding sync are relative to /opt/xos/key_import
diff --git a/xos/xos/logger.py b/xos/xos/logger.py
index 271c808..1f57a4a 100644
--- a/xos/xos/logger.py
+++ b/xos/xos/logger.py
@@ -67,10 +67,7 @@
# default is to locate loggername from the logfile if avail.
if not logfile:
- try:
- logfile = Config().logfile
- except:
- logfile = "/var/log/xos.log"
+ logfile = getattr(Config(), "log_file", "/var/log/xos.log")
# allow config-file override of console/logfile level
level_str = getattr(Config(), "log_level", None)
diff --git a/xos/xos_client/xosapi/convenience/controller.py b/xos/xos_client/xosapi/convenience/controller.py
new file mode 100644
index 0000000..e7a864a
--- /dev/null
+++ b/xos/xos_client/xosapi/convenience/controller.py
@@ -0,0 +1,12 @@
+import json
+from xosapi.orm import ORMWrapper, register_convenience_wrapper
+
+class ORMWrapperController(ORMWrapper):
+ @property
+ def auth_url_v3(self):
+ if self.auth_url and self.auth_url[-1] == '/':
+ return '{}/v3/'.format('/'.join(self.auth_url.split('/')[:-2]))
+ else:
+ return '{}/v3/'.format('/'.join(self.auth_url.split('/')[:-1]))
+
+register_convenience_wrapper("Controller", ORMWrapperController)
diff --git a/xos/xos_client/xosapi/orm.py b/xos/xos_client/xosapi/orm.py
index 0566d7f..c21a994 100644
--- a/xos/xos_client/xosapi/orm.py
+++ b/xos/xos_client/xosapi/orm.py
@@ -461,4 +461,5 @@
import convenience.service
import convenience.tenant
import convenience.onosapp
+import convenience.controller