Fix bug 1701: remove vcaId parameter on ns-create
[osm/osmclient.git] / osmclient / sol005 / ns.py
index d457cbd..ac40aad 100644 (file)
@@ -194,11 +194,12 @@ class Ns(object):
             wim_account_id[wim_account] = wim["_id"]
             return wim["_id"]
 
+        vim_id = get_vim_account_id(account)
         ns = {}
         ns["nsdId"] = nsd["_id"]
         ns["nsName"] = nsr_name
         ns["nsDescription"] = description
-        ns["vimAccountId"] = get_vim_account_id(account)
+        ns["vimAccountId"] = vim_id
         # ns['userdata'] = {}
         # ns['userdata']['key1']='value1'
         # ns['userdata']['key2']='value2'
@@ -524,6 +525,59 @@ class Ns(object):
             message = "failed to delete alarm: alarm {}\n{}".format(name, str(exc))
             raise ClientException(message)
 
+    def get_alarm(self, project_name=None, ns_id=None, uuid=None):
+        self._client.get_token()
+        try:
+            self._apiName = "/nsfm"
+            self._apiResource = "/alarms"
+            self._apiBase = "{}{}{}".format(
+                self._apiName, self._apiVersion, self._apiResource
+            )
+            if uuid:
+                # if request is for any uuid
+                http_code, resp = self._http.get2_cmd(
+                    "{}/{}".format(self._apiBase, uuid)
+                )
+            if not uuid:
+                http_code, resp = self._http.get2_cmd(
+                    "{}/{}/{}/{}".format(self._apiBase, uuid, project_name, ns_id)
+                )
+            if http_code == 200:
+                if resp:
+                    resp = json.loads(resp)
+                    return resp
+                else:
+                    raise ClientException("unexpected response from server")
+            else:
+                msg = resp or ""
+                raise ClientException(msg)
+        except ClientException as exc:
+            message = "failed to get alarm :\nerror:\n{}".format(str(exc))
+            raise ClientException(message)
+
+    def update_alarm(self, uuid, threshold=None, is_enable=None, wait=None):
+        self._client.get_token()
+        try:
+            op_data = {}
+            op_data["uuid"] = uuid
+            op_data["threshold"] = threshold
+            op_data["is_enable"] = is_enable
+            self._apiName = "/nsfm"
+            self._apiResource = "/alarms"
+            self._apiBase = "{}{}{}".format(
+                self._apiName, self._apiVersion, self._apiResource
+            )
+            http_code, resp = self._http.patch_cmd(
+                endpoint="{}".format(self._apiBase), postfields_dict=op_data
+            )
+            if resp:
+                resp = json.loads(resp)
+            print(resp)
+            return resp
+        except ClientException as exc:
+            message = "failed to update alarm :\nerror:\n{}".format(str(exc))
+            raise ClientException(message)
+
     def export_metric(self, metric):
         self._logger.debug("")
         self._client.get_token()