Added description of resources on each SLA agreement when they are created
[myslice.git] / sla / slaclient / restclient.py
index 602c927..8091f4e 100755 (executable)
@@ -43,7 +43,7 @@ rooturl = settings.SLA_MANAGER_URL
 
 class Factory(object):
     @staticmethod
-    def agreements(path):
+    def agreements(path=_AGREEMENTS_PATH):
         """Returns a REST client for Agreements
 
         :rtype : Agreements
@@ -114,15 +114,15 @@ class Client(object):
         url = _buildpath_(self.rooturl, path)
         if "testbed" in kwargs:
             url = url + "?testbed=" + kwargs["testbed"]
-        #kwargs['params']['testbed'] = 'iminds'
 
         if "headers" not in kwargs:
             kwargs["headers"] = {"accept": "application/xml"}
-        # kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
-        #                                settings.SLA_MANAGER_PASSWORD)
 
-        for key, values in kwargs.iteritems():
-            print key, values
+        kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
+                                       settings.SLA_MANAGER_PASSWORD)
+
+        # for key, values in kwargs.iteritems():
+        #     print key, values
 
         result = requests.get(url, **kwargs)
         print "GET {} {} {}".format(
@@ -151,12 +151,17 @@ class Client(object):
             )
         """
         url = _buildpath_(self.rooturl, path)
-        url = url + "?testbed=iminds"  # TODO remove hardcoded string
-        # kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
-        #                                settings.SLA_MANAGER_PASSWORD)
+
+        if "testbed" in kwargs:
+            url = url + "?testbed=" + kwargs["testbed"]
+
         if "headers" not in kwargs:
-            kwargs = {"accept": "application/xml",
-                      "content-type": "application/xml"}
+            kwargs["headers"] = {"accept": "application/xml",
+                                 "content-type": "application/xml"}
+
+        kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
+                                       settings.SLA_MANAGER_PASSWORD)
+
         result = requests.post(url, data, **kwargs)
         location = result.headers["location"] \
             if "location" in result.headers else "<null>"
@@ -313,12 +318,12 @@ class Agreements(object):
         """
         return self.res.get(slicename, dict())
 
-    def create(self, agreement):
+    def create(self, agreement, testbed):
         """Create a new agreement
 
         :param str agreement: sla template in ws-agreement format.
         """
-        return self.res.create(agreement)
+        return self.res.create(agreement, params={'testbed': testbed})
 
 
 class Templates(object):
@@ -346,7 +351,7 @@ class Templates(object):
 
         :rtype: wsag_model.Template
         """
-        return self.res.getbyid(provider_id)
+        return self.res.getbyid(provider_id, {"testbed": provider_id})
 
     def create(self, template):
         """Create a new template
@@ -426,8 +431,9 @@ class Violations(object):
             violations from all terms will be returned
         :rtype: list[wsag_model.Violation]
         """
-        path = _buildpath_(agreement_id, term)
-        return self.res.get(path, params={"testbed": testbed})
+        return self.res.get("", params={"agreementId": agreement_id,
+                                        "guaranteeTerm": term,
+                                        "testbed": testbed})
 
 
 class Enforcements(object):