It is intended as backend service for a rest interface.\r
\r
The json input must work together with the templates to form a valid template\r
- or agreement for Xifi (be careful!)\r
+ or agreement for fed4fire (be careful!)\r
\r
-This (very simple) service is coupled to the way xifi is interpreting\r
+This (very simple) service is coupled to the way fed4fire is interpreting\r
ws-agreement.\r
\r
\r
from sla.slaclient import restclient\r
from sla.slaclient.templates.fed4fire.django.factory import Factory as TemplateFactory\r
import sla.slaclient.templates.fed4fire as fed4fire\r
-from time import localtime, strftime\r
+#from time import localtime, strftime\r
import uuid\r
+import dateutil.parser\r
+\r
+\r
class ServiceContext(object):\r
- def __init__(self, restfactory = None, templatefactory=None):\r
+ def __init__(self, restfactory=None, templatefactory=None):\r
"""\r
:type restfactory: restclient.Factory\r
"""\r
\r
# Builds AgreementInput from json\r
data = jsonparser.agreementinput_from_json(json_data)\r
+\r
# Read template from manager\r
+ # client_templates.getbyid(provider_id, testbed)\r
slatemplate, request = client_templates.getbyid(data.template_id)\r
# Copy (overriding if necessary) from template to AgreementInput\r
final_data = data.from_template(slatemplate)\r
+\r
slaagreement = fed4fire.render_slaagreement(final_data)\r
\r
client_agreements = context.restfactory.agreements()\r
- return client_agreements.create(slaagreement)\r
- \r
-\r
-def createagreementsimplified(template_id, user, expiration_time):\r
- context = ServiceContext(\r
- restclient.Factory(),\r
- TemplateFactory()\r
- )\r
- \r
- agreement = {\r
- "agreement_id": str(uuid.uuid4()),\r
- "template_id": template_id,\r
- "expiration_time": expiration_time,\r
- "consumer": user,\r
- }\r
- \r
- json_data = json.dumps(agreement)\r
-\r
- return createagreement(json_data, context)\r
- \r
-def main():\r
- createagreementsimplified("iMindsServiceWiLab2", "virtualwall", "2014-04-34T23:12:12")\r
-\r
-\r
-if __name__ == "__main__":\r
- main()\r
- \r
- \r
+ return client_agreements.create(slaagreement, data.template_id)\r
+\r
+\r
+def createagreementsimplified(template_id, user, expiration_time, resources):\r
+ context = ServiceContext(\r
+ restclient.Factory(),\r
+ TemplateFactory()\r
+ )\r
+\r
+ agreement = {\r
+ "agreement_id": str(uuid.uuid4()),\r
+ "template_id": template_id,\r
+ "expiration_time": expiration_time.strftime('%Y-%m-%dT%H:%M:%S%Z'),\r
+ "consumer": user,\r
+ "guarantees": [\r
+ {\r
+ "name": "uptime",\r
+ "bounds": ["0", "1"],\r
+ "scope": {\r
+ "service_name": "",\r
+ "scope": resources[template_id]\r
+ }\r
+ }\r
+ ]\r
+ }\r
+\r
+ json_data = json.dumps(agreement)\r
+\r
+ return createagreement(json_data, context)\r