Feature: 11055 Support of several node groups in clusters created by OSM​
Change-Id: I3f18708c33bb37cec77a05417b56fb5fba3dfda6
Signed-off-by: yshah <shahithya.y@tataelxsi.co.in>
diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py
index 134d565..e67588c 100644
--- a/osm_nbi/nbi.py
+++ b/osm_nbi/nbi.py
@@ -731,6 +731,22 @@
"METHODS": ("POST",),
"ROLE_PERMISSION": "k8scluster:id:upgrade:",
},
+ "nodegroup": {
+ "METHODS": ("POST", "GET"),
+ "ROLE_PERMISSION": "k8scluster:id:nodegroup:",
+ "<ID>": {
+ "METHODS": ("GET", "PATCH", "DELETE"),
+ "ROLE_PERMISSION": "k8scluster:id:nodegroup:id",
+ "scale": {
+ "METHODS": ("POST",),
+ "ROLE_PERMISSION": "k8scluster:id:nodegroup:id:scale:",
+ },
+ },
+ },
+ "ksus": {
+ "METHODS": ("GET",),
+ "ROLE_PERMISSION": "k8scluster:id:ksus:",
+ },
},
"register": {
"METHODS": ("POST",),
@@ -1728,6 +1744,8 @@
engine_topic = "resources"
elif topic == "app_profiles":
engine_topic = "apps"
+ if topic == "clusters" and item == "nodegroup":
+ engine_topic = "node_groups"
elif main_topic == "k8scluster" and item in (
"upgrade",
"get_creds",
@@ -1811,6 +1829,22 @@
outdata = self.engine.get_item_list_cluster(
engine_session, engine_topic, kwargs, api_req=True
)
+ elif topic == "clusters" and item == "nodegroup" and args:
+ _id = args[0]
+ outdata = outdata = self.engine.get_item(
+ engine_session, engine_topic, _id, kwargs, True
+ )
+ elif topic == "clusters" and item == "nodegroup":
+ kwargs["cluster_id"] = _id
+ outdata = self.engine.get_item_list(
+ engine_session, engine_topic, kwargs, api_req=True
+ )
+ elif topic == "clusters" and item == "ksus":
+ engine_topic = "ksus"
+ kwargs["cluster_id"] = _id
+ outdata = self.engine.get_cluster_list_ksu(
+ engine_session, engine_topic, kwargs, api_req=True
+ )
elif not _id:
outdata = self.engine.get_item_list(
engine_session, engine_topic, kwargs, api_req=True
@@ -2053,10 +2087,24 @@
)
outdata = {"op_id": op_id}
elif topic == "clusters" and item in ("upgrade", "scale"):
- op_id = self.engine.update_cluster(
+ op_id = self.engine.update_item(
engine_session, engine_topic, _id, item, indata
)
outdata = {"op_id": op_id}
+ elif topic == "clusters" and item == "nodegroup":
+ indata["cluster_id"] = _id
+ if args:
+ _id = args[0]
+ op_id = self.engine.update_item(
+ engine_session, engine_topic, _id, item, indata
+ )
+ outdata = {"op_id": op_id}
+ else:
+ _id, _ = self.engine.new_item(
+ rollback, engine_session, engine_topic, indata, kwargs
+ )
+ self._set_location_header(main_topic, version, topic, _id)
+ outdata = {"_id": _id, "id": _id}
else:
_id, op_id = self.engine.new_item(
rollback,
@@ -2119,6 +2167,11 @@
if op_id
else HTTPStatus.NO_CONTENT.value
)
+ elif topic == "clusters" and item == "nodegroup" and args:
+ _id = args[0]
+ op_id = self.engine.del_item(engine_session, engine_topic, _id)
+ if op_id:
+ outdata = {"_id": op_id}
elif topic == "ksus":
op_id = self.engine.delete_ksu(
engine_session, engine_topic, _id, indata
@@ -2206,6 +2259,11 @@
)
if not completed:
cherrypy.response.headers["Transaction-Id"] = id
+ elif topic == "clusters" and item == "nodegroup" and args:
+ _id = args[0]
+ op_id = self.engine.edit_item(
+ engine_session, engine_topic, _id, indata, kwargs
+ )
else:
op_id = self.engine.edit_item(
engine_session, engine_topic, _id, indata, kwargs