Initial Commit
Change-Id: I217ec7500eac7c94171f3789704cfd04836bc73a
diff --git a/xos/tosca/resources/vsgwservice.py b/xos/tosca/resources/vsgwservice.py
new file mode 100644
index 0000000..6289ffd
--- /dev/null
+++ b/xos/tosca/resources/vsgwservice.py
@@ -0,0 +1,38 @@
+import os
+import pdb
+import sys
+import tempfile
+sys.path.append("/opt/tosca")
+from translator.toscalib.tosca_template import ToscaTemplate
+import pdb
+
+from core.models import Service,User,CoarseTenant
+from services.vsgwservice.models import VSGWService
+
+from xosresource import XOSResource
+
+class XOSVSGWService(XOSResource):
+ provides = "tosca.nodes.VSGWService"
+ xos_model = VSGWService
+ copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber", "service_message"]
+
+ def postprocess(self, obj):
+ for provider_service_name in self.get_requirements("tosca.relationships.TenantOfService"):
+ provider_service = self.get_xos_object(VSGWService, name=provider_service_name)
+
+ existing_tenancy = CoarseTenant.get_tenant_objects().filter(provider_service = provider_service, subscriber_service = obj)
+ if existing_tenancy:
+ self.info("Tenancy relationship from %s to %s already exists" % (str(obj), str(provider_service)))
+ else:
+ tenancy = CoarseTenant(provider_service = provider_service,
+ subscriber_service = obj)
+ tenancy.save()
+
+ self.info("Created Tenancy relationship from %s to %s" % (str(obj), str(provider_service)))
+
+ def can_delete(self, obj):
+ if obj.slices.exists():
+ self.info("Service %s has active slices; skipping delete" % obj.name)
+ return False
+ return super(XOSVSGWService, self).can_delete(obj)
+