blob: 112bc336bdfd4f2f493aa8af42094882bdb93208 [file] [log] [blame]
Matteo Scandolo0e7912c2017-08-08 13:05:24 -07001
2# Copyright 2017-present Open Networking Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16
Scott Bakerc3ce3e72016-06-20 17:35:19 -070017from django.contrib import admin
18
19from django import forms
20from django.utils.safestring import mark_safe
21from django.contrib.auth.admin import UserAdmin
22from django.contrib.admin.widgets import FilteredSelectMultiple
23from django.contrib.auth.forms import ReadOnlyPasswordHashField
24from django.contrib.auth.signals import user_logged_in
25from django.utils import timezone
26from django.contrib.contenttypes import generic
27from suit.widgets import LinkedSelect
Scott Bakerd949b622017-07-18 12:10:35 -070028from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline, ServicePrivilegeInline
Scott Bakerc3ce3e72016-06-20 17:35:19 -070029from core.middleware import get_request
30
31from services.vtn.models import *
32
33from functools import update_wrapper
34from django.contrib.admin.views.main import ChangeList
35from django.core.urlresolvers import reverse
36from django.contrib.admin.utils import quote
37
Scott Bakerc3ce3e72016-06-20 17:35:19 -070038class VTNServiceAdmin(ReadOnlyAwareAdmin):
39 model = VTNService
Scott Bakerc3ce3e72016-06-20 17:35:19 -070040 verbose_name = "VTN Service"
41 verbose_name_plural = "VTN Service"
42 list_display = ("backend_status_icon", "name", "enabled")
43 list_display_links = ('backend_status_icon', 'name', )
44 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber','description',"view_url","icon_url",
Scott Bakerff016682016-11-28 09:53:13 -080045 'privateGatewayMac', 'localManagementIp', 'ovsdbPort', 'sshPort', 'sshUser', 'sshKeyFile', 'mgmtSubnetBits', 'xosEndpoint', 'xosUser', 'xosPassword', 'vtnAPIVersion', 'controllerPort' ], 'classes':['suit-tab suit-tab-general']})]
Scott Bakerc3ce3e72016-06-20 17:35:19 -070046 readonly_fields = ('backend_status_text', )
47 inlines = [SliceInline,ServiceAttrAsTabInline,ServicePrivilegeInline]
48
49 extracontext_registered_admins = True
50
51 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
52
53 suit_form_tabs =(('general', 'VTN Service Details'),
54# ('administration', 'Administration'),
55 ('slices','Slices'),
56 ('serviceattrs','Additional Attributes'),
57 ('serviceprivileges','Privileges'),
58 )
59
60 suit_form_includes = ( # ('vtnadmin.html', 'top', 'administration'),
61 ) #('hpctools.html', 'top', 'tools') )
62
Zack Williamsabe24da2016-06-27 13:09:00 -070063 def get_queryset(self, request):
Scott Bakercd2db8c2017-05-25 09:07:19 -070064 return VTNService.select_by_user(request.user)
Scott Bakerc3ce3e72016-06-20 17:35:19 -070065
66admin.site.register(VTNService, VTNServiceAdmin)