projects
/
osm
/
NBI.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Bug 1011: Multiple interface referenced to a single connection point
[osm/NBI.git]
/
osm_nbi
/
instance_topics.py
diff --git
a/osm_nbi/instance_topics.py
b/osm_nbi/instance_topics.py
index
139ced7
..
8ca35d0
100644
(file)
--- a/
osm_nbi/instance_topics.py
+++ b/
osm_nbi/instance_topics.py
@@
-232,6
+232,14
@@
class NsrTopic(BaseTopic):
"name-ref": ns_request["nsName"],
"short-name": ns_request["nsName"],
"admin-status": "ENABLED",
"name-ref": ns_request["nsName"],
"short-name": ns_request["nsName"],
"admin-status": "ENABLED",
+ "nsState": "NOT_INSTANTIATED",
+ "currentOperation": "IDLE",
+ "currentOperationID": None,
+ "errorDescription": None,
+ "errorDetail": None,
+ "deploymentStatus": None,
+ "configurationStatus": None,
+ "vcaStatus": None,
"nsd": nsd,
"datacenter": ns_request["vimAccountId"],
"resource-orchestrator": "osmopenmano",
"nsd": nsd,
"datacenter": ns_request["vimAccountId"],
"resource-orchestrator": "osmopenmano",
@@
-921,6
+929,10
@@
class NsLcmOpTopic(BaseTopic):
"id": _id,
"_id": _id,
"operationState": "PROCESSING", # COMPLETED,PARTIALLY_COMPLETED,FAILED_TEMP,FAILED,ROLLING_BACK,ROLLED_BACK
"id": _id,
"_id": _id,
"operationState": "PROCESSING", # COMPLETED,PARTIALLY_COMPLETED,FAILED_TEMP,FAILED,ROLLING_BACK,ROLLED_BACK
+ "queuePosition": None,
+ "stage": None,
+ "errorMessage": None,
+ "detailedStatus": None,
"statusEnteredTime": now,
"nsInstanceId": nsr_id,
"lcmOperationType": operation,
"statusEnteredTime": now,
"nsInstanceId": nsr_id,
"lcmOperationType": operation,
@@
-935,6
+947,19
@@
class NsLcmOpTopic(BaseTopic):
}
return nslcmop
}
return nslcmop
+ def _get_enabled_vims(self, session):
+ """
+ Retrieve and return VIM accounts that are accessible by current user and has state ENABLE
+ :param session: current session with user information
+ """
+ db_filter = self._get_project_filter(session)
+ db_filter["_admin.operationalState"] = "ENABLED"
+ vims = self.db.get_list("vim_accounts", db_filter)
+ vimAccounts = []
+ for vim in vims:
+ vimAccounts.append(vim['_id'])
+ return vimAccounts
+
def new(self, rollback, session, indata=None, kwargs=None, headers=None, slice_object=False):
"""
Performs a new operation over a ns
def new(self, rollback, session, indata=None, kwargs=None, headers=None, slice_object=False):
"""
Performs a new operation over a ns
@@
-990,6
+1015,9
@@
class NsLcmOpTopic(BaseTopic):
nslcmop_desc = self._create_nslcmop(nsInstanceId, operation, indata)
_id = nslcmop_desc["_id"]
self.format_on_new(nslcmop_desc, session["project_id"], make_public=session["public"])
nslcmop_desc = self._create_nslcmop(nsInstanceId, operation, indata)
_id = nslcmop_desc["_id"]
self.format_on_new(nslcmop_desc, session["project_id"], make_public=session["public"])
+ if indata.get("placement-engine"):
+ # Save valid vim accounts in lcm operation descriptor
+ nslcmop_desc['operationParams']['validVimAccounts'] = self._get_enabled_vims(session)
self.db.create("nslcmops", nslcmop_desc)
rollback.append({"topic": "nslcmops", "_id": _id})
if not slice_object:
self.db.create("nslcmops", nslcmop_desc)
rollback.append({"topic": "nslcmops", "_id": _id})
if not slice_object: