git://git.onelab.eu
/
myslice.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Scheduler: adding/removing resources enforce warnings and recount number of unconfigu...
[myslice.git]
/
sla
/
slaclient
/
restclient.py
diff --git
a/sla/slaclient/restclient.py
b/sla/slaclient/restclient.py
index
5d1641f
..
8091f4e
100755
(executable)
--- a/
sla/slaclient/restclient.py
+++ b/
sla/slaclient/restclient.py
@@
-43,12
+43,12
@@
rooturl = settings.SLA_MANAGER_URL
class Factory(object):
@staticmethod
class Factory(object):
@staticmethod
- def agreements():
+ def agreements(
path=_AGREEMENTS_PATH
):
"""Returns a REST client for Agreements
:rtype : Agreements
"""
"""Returns a REST client for Agreements
:rtype : Agreements
"""
- return Agreements(rooturl)
+ return Agreements(rooturl
, path
)
@staticmethod
def providers():
@staticmethod
def providers():
@@
-112,16
+112,22
@@
class Client(object):
c.get("/resource", headers = { "accept": "application/json" })
"""
url = _buildpath_(self.rooturl, path)
c.get("/resource", headers = { "accept": "application/json" })
"""
url = _buildpath_(self.rooturl, path)
- url = url + "?testbed=iminds" # TODO remove hardcoded string
- #kwargs['params']['testbed'] = 'iminds'
+ if "testbed" in kwargs:
+ url = url + "?testbed=" + kwargs["testbed"]
if "headers" not in kwargs:
kwargs["headers"] = {"accept": "application/xml"}
if "headers" not in kwargs:
kwargs["headers"] = {"accept": "application/xml"}
- # kwargs["auth"] = HTTPBasicAuth(settings.SLA_MANAGER_USER,
- # settings.SLA_MANAGER_PASSWORD)
+
+ 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)
result = requests.get(url, **kwargs)
- #print "GET {} {} {}".format(
- # result.url, result.status_code, result.text[0:70])
+ print "GET {} {} {}".format(
+ result.url, result.status_code, result.text[0:70])
+ print result.encoding
return result
return result
@@
-145,12
+151,17
@@
class Client(object):
)
"""
url = _buildpath_(self.rooturl, path)
)
"""
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:
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>"
result = requests.post(url, data, **kwargs)
location = result.headers["location"] \
if "location" in result.headers else "<null>"
@@
-211,18
+222,21
@@
class _Resource(object):
resources = self._processresult(r, self.listconverter)
return resources, r
resources = self._processresult(r, self.listconverter)
return resources, r
- def getbyid(self, id):
+ def getbyid(self, id
, params
):
"""Get resource 'id'"""
"""Get resource 'id'"""
- r = self.client.get(id)
+ r = self.client.get(id
, params=params
)
resource = _Resource._processresult(r, self.converter)
return resource, r
resource = _Resource._processresult(r, self.converter)
return resource, r
- def get(self, params):
+ def get(self, pa
th, pa
rams):
"""Generic query over resource: GET /resource?q1=v1&q2=v2...
:param dict[str,str] params: values to pass as get parameters
"""
"""Generic query over resource: GET /resource?q1=v1&q2=v2...
:param dict[str,str] params: values to pass as get parameters
"""
- r = self.client.get("", params=params)
+ if path is None:
+ path = ""
+
+ r = self.client.get(path, params=params)
resources = self._processresult(r, self.listconverter)
return resources, r
resources = self._processresult(r, self.listconverter)
return resources, r
@@
-281,14
+295,15
@@
class Agreements(object):
"""
return self.res.get(dict(providerId=providerid))
"""
return self.res.get(dict(providerId=providerid))
- def getstatus(self, agreementid):
+ def getstatus(self, agreementid
, testbed
):
"""Get guarantee status of an agreement
:param str agreementid :
:rtype : wsag_model.AgreementStatus
"""
"""Get guarantee status of an agreement
:param str agreementid :
:rtype : wsag_model.AgreementStatus
"""
- path = _buildpath_(agreementid, "guaranteestatus")
- r = self.res.client.get(path, headers={'accept': 'application/json'})
+ path = _buildpath_(_AGREEMENTS_PATH, agreementid, "guaranteestatus")
+ r = self.res.client.get(path, headers={'accept': 'application/json'},
+ params={'testbed': testbed})
json_obj = r.json()
json_obj = r.json()
@@
-296,12
+311,19
@@
class Agreements(object):
return status, r
return status, r
- def create(self, agreement):
+ def getbyslice(self, slicename):
+ """Get the agreements corresponding to a slice
+
+ :rtype : list[wsag_model.Agreement]
+ """
+ return self.res.get(slicename, dict())
+
+ def create(self, agreement, testbed):
"""Create a new agreement
:param str agreement: sla template in ws-agreement format.
"""
"""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):
class Templates(object):
@@
-329,7
+351,7
@@
class Templates(object):
:rtype: wsag_model.Template
"""
: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
def create(self, template):
"""Create a new template
@@
-401,7
+423,7
@@
class Violations(object):
"""
return self.res.getbyid(violationid)
"""
return self.res.getbyid(violationid)
- def getbyagreement(self, agreement_id, term=None):
+ def getbyagreement(self, agreement_id, te
stbed, te
rm=None):
"""Get the violations of an agreement.
:param str agreement_id:
"""Get the violations of an agreement.
:param str agreement_id:
@@
-409,9
+431,9
@@
class Violations(object):
violations from all terms will be returned
:rtype: list[wsag_model.Violation]
"""
violations from all terms will be returned
:rtype: list[wsag_model.Violation]
"""
-
- return self.res.get(
-
{"agreementId": agreement_id, "guaranteeTerm": term
})
+ return self.res.get("", params={"agreementId": agreement_id,
+ "guaranteeTerm": term,
+
"testbed": testbed
})
class Enforcements(object):
class Enforcements(object):
@@
-433,17
+455,20
@@
class Enforcements(object):
"""
return self.res.getall()
"""
return self.res.getall()
- def getbyagreement(self, agreement_id):
+ def getbyagreement(self, agreement_id
, testbed
):
"""Get the enforcement of an agreement.
:param str agreement_id:
:rtype: list[wsag_model.Enforcement]
"""
"""Get the enforcement of an agreement.
:param str agreement_id:
:rtype: list[wsag_model.Enforcement]
"""
- return self.res.getbyid(agreement_id)
+ return self.res.getbyid(agreement_id
, params={"testbed": testbed}
)
def _buildpath_(*paths):
def _buildpath_(*paths):
+ if "" in paths:
+ paths = [path for path in paths if path != ""]
+
return "/".join(paths)
return "/".join(paths)