refactor vSM cord-3.0

Change-Id: I3ce14febefccd0232ba24f491e0f0e37737e59b7
diff --git a/xos/admin.py b/xos/admin.py
deleted file mode 100644
index 6f74757..0000000
--- a/xos/admin.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from core.admin import ReadOnlyAwareAdmin, SliceInline
-from core.middleware import get_request
-from core.models import User
-
-from django import forms
-from django.contrib import admin
-
-from services.vsm.models import *
-
-class VSMServiceForm(forms.ModelForm):
-
-    class Meta:
-        model = VSMService
-        fields = '__all__'
-
-    def __init__(self, *args, **kwargs):
-        super(VSMServiceForm, self).__init__(*args, **kwargs)
-
-    def save(self, commit=True):
-        return super(VSMServiceForm, self).save(commit=commit)
-
-class VSMServiceAdmin(ReadOnlyAwareAdmin):
-
-    model = VSMService
-    verbose_name = "VSM Service"
-    verbose_name_plural = "VSM Services"
-    form = VSMServiceForm
-    inlines = [SliceInline]
-
-    list_display = ('backend_status_icon', 'name', 'enabled')
-    list_display_links = ('backend_status_icon', 'name')
-
-    fieldsets = [(None, {
-        'fields': ['backend_status_text', 'name', 'enabled', 'versionNumber', 'description',],
-        'classes':['suit-tab suit-tab-general',],
-        })]
-
-    readonly_fields = ('backend_status_text', )
-    user_readonly_fields = ['name', 'enabled', 'versionNumber', 'description',]
-
-    extracontext_registered_admins = True
-
-    suit_form_tabs = (
-        ('general', 'VSM Service Details', ),
-        ('slices', 'Slices',),
-        )
-
-    suit_form_includes = (('mcordadmin.html',
-                           'top',
-                           'administration'),)
-
-    def get_queryset(self, request):
-        return VSMService.get_service_objects_by_user(request.user)
-
-admin.site.register(VSMService, VSMServiceAdmin)
-
-class VSMTenantForm(forms.ModelForm):
-
-    class Meta:
-        model = VSMTenant
-        fields = '__all__'
-
-    creator = forms.ModelChoiceField(queryset=User.objects.all())
-
-    def __init__(self, *args, **kwargs):
-        super(VSMTenantForm, self).__init__(*args, **kwargs)
-
-        self.fields['kind'].widget.attrs['readonly'] = True
-        self.fields['kind'].initial = "vSm"
-
-        self.fields['provider_service'].queryset = VSMService.get_service_objects().all()
-
-        if self.instance:
-            self.fields['creator'].initial = self.instance.creator
-            self.fields['tenant_message'].initial = self.instance.tenant_message
-            self.fields['image_name'].initial = self.instance.image_name
-
-        if (not self.instance) or (not self.instance.pk):
-            self.fields['creator'].initial = get_request().user
-            if VSMService.get_service_objects().exists():
-                self.fields['provider_service'].initial = VSMService.get_service_objects().all()[0]
-
-    def save(self, commit=True):
-        self.instance.creator = self.cleaned_data.get('creator')
-        self.instance.tenant_message = self.cleaned_data.get('tenant_message')
-        self.instance.image_name = self.cleaned_data.get('image_name')
-        return super(VSMTenantForm, self).save(commit=commit)
-
-
-class VSMTenantAdmin(ReadOnlyAwareAdmin):
-
-    verbose_name = "VSM Service Tenant"
-    verbose_name_plural = "VSM Service Tenants"
-
-    list_display = ('id', 'backend_status_icon', 'instance', 'tenant_message', 'image_name')
-    list_display_links = ('backend_status_icon', 'instance', 'tenant_message', 'id', 'image_name')
-
-    fieldsets = [(None, {
-        'fields': ['backend_status_text', 'kind', 'provider_service', 'instance', 'creator', 'tenant_message', 'image_name'],
-        'classes': ['suit-tab suit-tab-general'],
-        })]
-
-    readonly_fields = ('backend_status_text', 'instance',)
-
-    form = VSMTenantForm
-
-    suit_form_tabs = (('general', 'Details'),)
-
-    def get_queryset(self, request):
-        return VSMTenant.get_tenant_objects_by_user(request.user)
-
-admin.site.register(VSMTenant, VSMTenantAdmin)
diff --git a/xos/header.py b/xos/header.py
deleted file mode 100644
index 2e60747..0000000
--- a/xos/header.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django.db import models
-from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
-from core.models.plcorebase import StrippedCharField
-import os
-from django.db import models, transaction
-from django.forms.models import model_to_dict
-from django.db.models import *
-from operator import itemgetter, attrgetter, methodcaller
-from core.models import Tag
-from core.models.service import LeastLoadedNodeScheduler
-import traceback
-from xos.exceptions import *
-from xos.config import Config
-from django.contrib.contenttypes.models import ContentType
-from django.contrib.contenttypes.fields import GenericForeignKey
diff --git a/xos/make_synchronizer_manifest.sh b/xos/make_synchronizer_manifest.sh
old mode 100644
new mode 100755
diff --git a/xos/models.py b/xos/models.py
index b52029c..56350a7 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -2,6 +2,22 @@
 from models_decl import VSMService_decl
 from models_decl import VSMTenant_decl
 
+from django.db import models
+from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
+from core.models.plcorebase import StrippedCharField
+import os
+from django.db import models, transaction
+from django.forms.models import model_to_dict
+from django.db.models import *
+from operator import itemgetter, attrgetter, methodcaller
+from core.models import Tag
+from core.models.service import LeastLoadedNodeScheduler
+import traceback
+from xos.exceptions import *
+from xos.config import Config
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.contenttypes.fields import GenericForeignKey
+
 class VSMService(VSMService_decl):
    class Meta:
         proxy = True 
@@ -37,4 +53,4 @@
             return
         # Since this code is atomic it is safe to always use the first tenant
         tenant = tenant[0]
-        tenant.manage_container()
\ No newline at end of file
+        tenant.manage_container()
diff --git a/xos/synchronizer/steps/sync_vmmetenant.py b/xos/synchronizer/steps/sync_vsmtenant.py
similarity index 76%
rename from xos/synchronizer/steps/sync_vmmetenant.py
rename to xos/synchronizer/steps/sync_vsmtenant.py
index cf42ee0..dfb24f3 100644
--- a/xos/synchronizer/steps/sync_vmmetenant.py
+++ b/xos/synchronizer/steps/sync_vsmtenant.py
@@ -17,7 +17,7 @@
 
     template_name = "vsmtenant_playbook.yaml"
 
-    service_key_name = "/opt/xos/synchronizers/vsm/vsm_private_key"
+    service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
 
     def __init__(self, *args, **kwargs):
         super(SyncVSMTenant, self).__init__(*args, **kwargs)
@@ -33,22 +33,10 @@
 
         return objs
 
-    def get_vsmservice(self, o):
-        if not o.provider_service:
-            return None
-
-        vsmservice = VSMService.get_service_objects().filter(id=o.provider_service.id)
-
-        if not vsmservice:
-            return None
-
-        return vsmservice[0]
-
     # Gets the attributes that are used by the Ansible template but are not
     # part of the set of default attributes.
     def get_extra_attributes(self, o):
         fields = {}
         fields['tenant_message'] = o.tenant_message
-        fields['image_name'] = o.image_name
         return fields
 
diff --git a/xos/synchronizer/steps/vmmetenant_playbook.yaml b/xos/synchronizer/steps/vsmtenant_playbook.yaml
similarity index 100%
rename from xos/synchronizer/steps/vmmetenant_playbook.yaml
rename to xos/synchronizer/steps/vsmtenant_playbook.yaml
diff --git a/xos/synchronizer/vmm-synchronizer.py b/xos/synchronizer/vsm-synchronizer.py
old mode 100644
new mode 100755
similarity index 100%
rename from xos/synchronizer/vmm-synchronizer.py
rename to xos/synchronizer/vsm-synchronizer.py
diff --git a/xos/synchronizer/vmm_from_api_config b/xos/synchronizer/vsm_from_api_config
similarity index 100%
rename from xos/synchronizer/vmm_from_api_config
rename to xos/synchronizer/vsm_from_api_config
diff --git a/xos/templates/mcordadmin.html b/xos/templates/mcordadmin.html
deleted file mode 100644
index 106be25..0000000
--- a/xos/templates/mcordadmin.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class = "left-nav">
-  <ul>
-    <li>
-      <a href="/admin/mcordservice/vsmcomponent/">
-        MCORD Service Components
-      </a>
-    </li>
-  </ul>
-</div>
diff --git a/xos/tosca/custom_types/vsm.m4 b/xos/tosca/custom_types/vsm.m4
index c81705f..2c839a8 100644
--- a/xos/tosca/custom_types/vsm.m4
+++ b/xos/tosca/custom_types/vsm.m4
@@ -15,9 +15,6 @@
         properties:
             xos_base_props
             xos_base_service_props
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VSMTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/vsm.yaml b/xos/tosca/custom_types/vsm.yaml
index 444c659..a9603fb 100644
--- a/xos/tosca/custom_types/vsm.yaml
+++ b/xos/tosca/custom_types/vsm.yaml
@@ -78,9 +78,6 @@
                 type: string
                 required: false
                 description: Version number of Service.
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VSMTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/vsmservice.py b/xos/tosca/resources/vsmservice.py
index b702029..0fd7d6c 100644
--- a/xos/tosca/resources/vsmservice.py
+++ b/xos/tosca/resources/vsmservice.py
@@ -4,4 +4,4 @@
 class XOSVSMService(XOSService):
 	provides = "tosca.nodes.VSMService"
 	xos_model = VSMService
-	copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
\ No newline at end of file
+	copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
diff --git a/xos/tosca/resources/vsmtenant.py b/xos/tosca/resources/vsmtenant.py
index 56b2472..e932953 100644
--- a/xos/tosca/resources/vsmtenant.py
+++ b/xos/tosca/resources/vsmtenant.py
@@ -4,15 +4,15 @@
 class XOSVSMTenant(XOSResource):
     provides = "tosca.nodes.VSMTenant"
     xos_model = VSMTenant
-    copyin_props = ["tenant_message", "image_name"]  
+    copyin_props = ("tenant_message",) 
     name_field = None  
 
     def get_xos_args(self, throw_exception=True):
         args = super(XOSVSMTenant, self).get_xos_args()
 
-        provider_name = self.get_requirement("tosca.relationships.MemberOfService", throw_exception=throw_exception)
+        provider_name = self.get_requirement("tosca.relationships.TenantOfService", throw_exception=throw_exception)
         if provider_name:
-            args["provider_service"] = self.get_xos_object(VSMService, throw_exception=throw_exception, name=provider_name)
+            args["provider_service"] = self.get_xos_object(Service, throw_exception=throw_exception, name=provider_name)
 
         return args
 
diff --git a/xos/vsm-onboard.yaml b/xos/vsm-onboard.yaml
index bd8463a..9a0e5b0 100644
--- a/xos/vsm-onboard.yaml
+++ b/xos/vsm-onboard.yaml
@@ -14,8 +14,6 @@
           # The following will concatenate with base_url automatically, if
           # base_url is non-null.
           xproto: ./
-          admin: admin.py
-          admin_template: templates/mcordadmin.html
           tosca_custom_types: tosca/custom_types/vsm.yaml
           synchronizer: synchronizer/manifest
           synchronizer_run: vsm-synchronizer.py
diff --git a/xos/vsm.xproto b/xos/vsm.xproto
index 41dd1e0..9a9848c 100644
--- a/xos/vsm.xproto
+++ b/xos/vsm.xproto
@@ -1,15 +1,16 @@
-option name = "vsm";
+option name = "vSM";
+option verbose_name = "Virtual Session Management";
 option app_label = "vsm";
-option verbose_name = "vSM Service";
 option kind = "vEPC";
 option legacy = "True";
 
 message VSMService (Service){
-    required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
+    option name = "VSMService";
+    option verbose_name = "Virtual Session Management Service";
 }
 
 message VSMTenant (TenantWithContainer){
-     option name = "vsmtenant";
-     option verbose_name = "vSM Tenant";
+     option name = "VSMTenant";
+     option verbose_name = "Virtual Session Management Tenant";
      required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
 }