fix sol005 client so that delete_cmd output is processed in the caller function
[osm/osmclient.git] / osmclient / sol005 / ns.py
index 945e622..ebb779c 100644 (file)
@@ -77,6 +77,8 @@ class Ns(object):
     def delete(self, name):
         ns = self.get(name)
         http_code, resp = self._http.delete_cmd('{}/{}'.format(self._apiBase,ns['_id']))
+        if resp:
+            resp = json.loads(resp)
         #print 'RESP: {}'.format(resp)
         if http_code == 202:
             print 'Deletion in progress'
@@ -238,22 +240,19 @@ class Ns(object):
             raise ClientException(message)
 
     def create_alarm(self, alarm):
-        ns = self.get(alarm['ns_name'])
-        alarm['ns_id'] = ns['_id']
-        alarm.pop('ns_name')
         data = {}
         data["create_alarm_request"] = {}
         data["create_alarm_request"]["alarm_create_request"] = alarm
         try:
             http_code, resp = self._http.post_cmd(endpoint='/test/message/alarm_request',
                                        postfields_dict=data)
-            if resp:
-                resp = json.loads(resp)
-            #print 'RESP: {}'.format(resp)
-            if not resp:
-                raise ClientException('unexpected response from server: '.format(
-                                      resp))
-            print 'Alarm created'
+            if http_code in (200, 201, 202, 204):
+                #resp = json.loads(resp)
+                #print 'RESP: {}'.format(resp)
+                print 'Alarm created'
+            else:
+                raise ClientException('unexpected response from server: code: {}, resp: {}'.format(
+                                      http_code, resp))
         except ClientException as exc:
             message="failed to create alarm: alarm {}\nerror:\n{}".format(
                     alarm,
@@ -268,13 +267,13 @@ class Ns(object):
         try:
             http_code, resp = self._http.post_cmd(endpoint='/test/message/alarm_request',
                                        postfields_dict=data)
-            if resp:
-                resp = json.loads(resp)
-            #print 'RESP: {}'.format(resp)
-            if not resp:
-                raise ClientException('unexpected response from server: '.format(
-                                      resp))
-            print 'Alarm deleted'
+            if http_code in (200, 201, 202, 204):
+                #resp = json.loads(resp)
+                #print 'RESP: {}'.format(resp)
+                print 'Alarm deleted'
+            else:
+                raise ClientException('unexpected response from server: code: {}, resp: {}'.format(
+                                      http_code, resp))
         except ClientException as exc:
             message="failed to delete alarm: alarm {}\nerror:\n{}".format(
                     alarm,
@@ -282,21 +281,18 @@ class Ns(object):
             raise ClientException(message)
 
     def export_metric(self, metric):
-        ns = self.get(metric['ns_name'])
-        metric['ns_id'] = ns['_id']
-        metric.pop('ns_name')
         data = {}
         data["read_metric_data_request"] = metric
         try:
             http_code, resp = self._http.post_cmd(endpoint='/test/message/metric_request',
                                        postfields_dict=data)
-            if resp:
-                resp = json.loads(resp)
-            #print 'RESP: {}'.format(resp)
-            if not resp:
-                raise ClientException('unexpected response from server: '.format(
-                                      resp))
-            print 'Metric exported'
+            if http_code in (200, 201, 202, 204):
+                #resp = json.loads(resp)
+                #print 'RESP: {}'.format(resp)
+                return 'Metric exported'
+            else:
+                raise ClientException('unexpected response from server: code: {}, resp: {}'.format(
+                                      http_code, resp))
         except ClientException as exc:
             message="failed to export metric: metric {}\nerror:\n{}".format(
                     metric,