Scheduler: adding/removing resources enforce warnings and recount number of unconfigu...
[myslice.git] / sla / slaclient / restclient.py
index 29fcae8..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
@@ -117,11 +117,12 @@ class Client(object):
 
         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
+        for key, values in kwargs.iteritems():
+            print key, values
 
         result = requests.get(url, **kwargs)
         print "GET {} {} {}".format(
@@ -150,12 +151,17 @@ class Client(object):
             )
         """
         url = _buildpath_(self.rooturl, path)
-        url = url + "?testbed=iminds"  # TODO remove hardcoded string
+
+        if "testbed" in kwargs:
+            url = url + "?testbed=" + kwargs["testbed"]
+
+        if "headers" not in kwargs:
+            kwargs["headers"] = {"accept": "application/xml",
+                                 "content-type": "application/xml"}
+
         kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
                                        settings.SLA_MANAGER_PASSWORD)
-        if "headers" not in kwargs:
-            kwargs = {"accept": "application/xml",
-                      "content-type": "application/xml"}
+
         result = requests.post(url, data, **kwargs)
         location = result.headers["location"] \
             if "location" in result.headers else "<null>"
@@ -312,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):
@@ -345,7 +351,7 @@ class Templates(object):
 
         :rtype: wsag_model.Template
         """
-        return self.res.getbyid(provider_id, None)
+        return self.res.getbyid(provider_id, {"testbed": provider_id})
 
     def create(self, template):
         """Create a new template