refactor vMME cord-3.0
Change-Id: I234b0ecf869de31fa7dbe76a2e3db4e2fc0b4e6b
diff --git a/xos/admin.py b/xos/admin.py
deleted file mode 100644
index df0f636..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.vmme.models import *
-
-class VMMEServiceForm(forms.ModelForm):
-
- class Meta:
- model = VMMEService
- fields = '__all__'
-
- def __init__(self, *args, **kwargs):
- super(VMMEServiceForm, self).__init__(*args, **kwargs)
-
- def save(self, commit=True):
- return super(VMMEServiceForm, self).save(commit=commit)
-
-class VMMEServiceAdmin(ReadOnlyAwareAdmin):
-
- model = VMMEService
- verbose_name = "VMME Service"
- verbose_name_plural = "VMME Services"
- form = VMMEServiceForm
- 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', 'VMME Service Details', ),
- ('slices', 'Slices',),
- )
-
- suit_form_includes = (('mcordadmin.html',
- 'top',
- 'administration'),)
-
- def get_queryset(self, request):
- return VMMEService.get_service_objects_by_user(request.user)
-
-admin.site.register(VMMEService, VMMEServiceAdmin)
-
-class VMMETenantForm(forms.ModelForm):
-
- class Meta:
- model = VMMETenant
- fields = '__all__'
-
- creator = forms.ModelChoiceField(queryset=User.objects.all())
-
- def __init__(self, *args, **kwargs):
- super(VMMETenantForm, self).__init__(*args, **kwargs)
-
- self.fields['kind'].widget.attrs['readonly'] = True
- self.fields['kind'].initial = "vmme"
-
- self.fields['provider_service'].queryset = VMMEService.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 VMMEService.get_service_objects().exists():
- self.fields['provider_service'].initial = VMMEService.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(VMMETenantForm, self).save(commit=commit)
-
-
-class VMMETenantAdmin(ReadOnlyAwareAdmin):
-
- verbose_name = "VMME Service Tenant"
- verbose_name_plural = "VMME 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 = VMMETenantForm
-
- suit_form_tabs = (('general', 'Details'),)
-
- def get_queryset(self, request):
- return VMMETenant.get_tenant_objects_by_user(request.user)
-
-admin.site.register(VMMETenant, VMMETenantAdmin)
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/models.py b/xos/models.py
index 9e93636..3c8cf20 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -2,6 +2,22 @@
from models_decl import VMMEService_decl
from models_decl import VMMETenant_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 VMMEService(VMMEService_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_vmmetenant.py
index 7147e3f..ebb1ef3 100644
--- a/xos/synchronizer/steps/sync_vmmetenant.py
+++ b/xos/synchronizer/steps/sync_vmmetenant.py
@@ -18,7 +18,7 @@
template_name = "vmmetenant_playbook.yaml"
- service_key_name = "/opt/xos/synchronizers/vmme/vmme_private_key"
+ service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
def __init__(self, *args, **kwargs):
super(SyncVMMETenant, self).__init__(*args, **kwargs)
@@ -34,22 +34,10 @@
return objs
- def get_vmmeservice(self, o):
- if not o.provider_service:
- return None
-
- vmmeservice = VMMEService.get_service_objects().filter(id=o.provider_service.id)
-
- if not vmmeservice:
- return None
-
- return vmmeservice[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/vmmetenant_playbook.yaml
index c8a74d0..a73231c 100644
--- a/xos/synchronizer/steps/vmmetenant_playbook.yaml
+++ b/xos/synchronizer/steps/vmmetenant_playbook.yaml
@@ -5,6 +5,8 @@
user: ubuntu
sudo: yes
tasks:
+ vars:
+ - tenant_message: "{{ tenant_message }}"
# - name: write message
# shell: echo "{{ tenant_message }}" > /var/tmp/index.html
diff --git a/xos/synchronizer/vmme-synchronizer.py b/xos/synchronizer/vmme-synchronizer.py
old mode 100644
new mode 100755
diff --git a/xos/templates/mcordadmin.html b/xos/templates/mcordadmin.html
deleted file mode 100644
index d8183c2..0000000
--- a/xos/templates/mcordadmin.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class = "left-nav">
- <ul>
- <li>
- <a href="/admin/mcordservice/vmmecomponent/">
- MCORD Service Components
- </a>
- </li>
- </ul>
-</div>
diff --git a/xos/tosca/custom_types/vmme.m4 b/xos/tosca/custom_types/vmme.m4
index d3eb7d4..cf35121 100644
--- a/xos/tosca/custom_types/vmme.m4
+++ b/xos/tosca/custom_types/vmme.m4
@@ -15,9 +15,6 @@
properties:
xos_base_props
xos_base_service_props
- service_message:
- type: string
- required: false
tosca.nodes.MMETenant:
derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/vmme.yaml b/xos/tosca/custom_types/vmme.yaml
index 337dffb..8c04163 100644
--- a/xos/tosca/custom_types/vmme.yaml
+++ b/xos/tosca/custom_types/vmme.yaml
@@ -78,9 +78,6 @@
type: string
required: false
description: Version number of Service.
- service_message:
- type: string
- required: false
tosca.nodes.MMETenant:
derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/vmmeservice.py b/xos/tosca/resources/vmmeservice.py
index e6280da..3001eac 100644
--- a/xos/tosca/resources/vmmeservice.py
+++ b/xos/tosca/resources/vmmeservice.py
@@ -1,7 +1,7 @@
-from services.vmme.models import VMMEService
from service import XOSService
+from services.vmme.models import VMMEService
class XOSVMMEService(XOSService):
provides = "tosca.nodes.VMMEService"
xos_model = VMMEService
- 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/vmmetenant.py b/xos/tosca/resources/vmmetenant.py
index 2a6e6d4..2ae223c 100644
--- a/xos/tosca/resources/vmmetenant.py
+++ b/xos/tosca/resources/vmmetenant.py
@@ -1,18 +1,19 @@
-from services.vmme.models import VMMETenant, VMMEService
from xosresource import XOSResource
+from core.models import Tenant, Service
+from services.vmme.models import VMMETenant
class XOSVMMETenant(XOSResource):
provides = "tosca.nodes.VMMETenant"
xos_model = VMMETenant
- copyin_props = ["tenant_message", "image_name"]
- name_field = None
+ name_field = None
+ copyin_props = ("tenant_message",)
def get_xos_args(self, throw_exception=True):
args = super(XOSVMMETenant, 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(VMMEService, 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/vmme-onboard.yaml b/xos/vmme-onboard.yaml
index 98d49e8..6774702 100644
--- a/xos/vmme-onboard.yaml
+++ b/xos/vmme-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/vmme.yaml
synchronizer: synchronizer/manifest
synchronizer_run: vmme-synchronizer.py
diff --git a/xos/vmme.xproto b/xos/vmme.xproto
index e46df6e..4948a28 100644
--- a/xos/vmme.xproto
+++ b/xos/vmme.xproto
@@ -1,15 +1,16 @@
-option name = "vmme";
+option name = "vMME";
+option verbose_name = "Virtual Mobility Management Entity";
option app_label = "vmme";
-option verbose_name = "vMME Service";
option kind = "vEPC";
option legacy = "True";
message VMMEService (Service){
- required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
+ option name = "VMMEService";
+ option verbose_name = "Virtual Mobility Management Entity Service";
}
message VMMETenant (TenantWithContainer){
- option name = "vmmetenant";
- option verbose_name = "vMME Tenant";
+ option name = "VMMETenant";
+ option verbose_name = "Virtual Mobility Management Entity Tenant";
required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
}