X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fadmin.py;h=8ec00a90444a7c860bf4d0e49f1f457d2bba18f2;hb=ab385c86e10475c711c350f1ddf1cca0c2accd65;hp=1debeb077ca35f8a7629ae48adad0502e4513c1c;hpb=fe290f49559b1e19b9251b83877862f70679bf86;p=plstackapi.git
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 1debeb0..8ec00a9 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -31,7 +31,7 @@ def backend_icon(obj): # backend_status, enacted, updated):
if (obj.enacted is not None) and obj.enacted >= obj.updated:
return ''
else:
- if obj.backend_status == "Provisioning in progress" or obj.backend_status=="":
+ if ((obj.backend_status is not None) and obj.backend_status.startswith("0 -")) or obj.backend_status == "Provisioning in progress" or obj.backend_status=="":
return '' % obj.backend_status
else:
return '' % html_escape(obj.backend_status, quote=True)
@@ -542,7 +542,7 @@ class DeploymentAdminForm(forms.ModelForm):
self.fields['accessControl'].initial = "allow site " + request.user.site.name
if self.instance and self.instance.pk:
- self.fields['sites'].initial = [x for x in self.instance.sitesdeployments.all()]
+ self.fields['sites'].initial = [x.site for x in self.instance.sitedeployments.all()]
self.fields['images'].initial = [x.image for x in self.instance.imagedeployments.all()]
self.fields['flavors'].initial = self.instance.flavors.all()
@@ -594,7 +594,7 @@ class DeploymentAdminForm(forms.ModelForm):
# create/destroy the through models ourselves. There has to be
# a better way...
- self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployment.all(), SiteDeployment, "deployment", "site")
+ self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployment, "deployment", "site")
self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), ImageDeployments, "deployment", "image")
# manipulate_m2m_objs doesn't work for Flavor/Deployment relationship
# so well handle that manually here
@@ -777,14 +777,17 @@ class SiteNodeInline(PlStackTabularInline):
suit_classes = 'suit-tab suit-tab-nodes'
class SiteAdmin(PlanetStackBaseAdmin):
- fieldList = ['backend_status_text', 'name', 'site_url', 'enabled', 'is_public', 'login_base', 'accountLink','location']
+ #fieldList = ['backend_status_text', 'name', 'site_url', 'enabled', 'is_public', 'login_base', 'accountLink','location']
+ fieldList = ['backend_status_text', 'name', 'site_url', 'enabled', 'is_public', 'login_base', 'location']
fieldsets = [
(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-general']}),
#('Deployment Networks', {'fields': ['deployments'], 'classes':['suit-tab suit-tab-deployments']}),
]
- readonly_fields = ['backend_status_text', 'accountLink']
+ #readonly_fields = ['backend_status_text', 'accountLink']
+ readonly_fields = ['backend_status_text']
- user_readonly_fields = ['name', 'deployments','site_url', 'enabled', 'is_public', 'login_base', 'accountLink']
+ #user_readonly_fields = ['name', 'deployments','site_url', 'enabled', 'is_public', 'login_base', 'accountLink']
+ user_readonly_fields = ['name', 'deployments','site_url', 'enabled', 'is_public', 'login_base']
list_display = ('backend_status_icon', 'name', 'login_base','site_url', 'enabled')
list_display_links = ('backend_status_icon', 'name', )
@@ -934,7 +937,7 @@ class SliceAdmin(PlanetStackBaseAdmin):
('slicenetworks','Networks'),
('sliceprivileges','Privileges'),
('slivers','Slivers'),
- ('reservations','Reservations'),
+ #('reservations','Reservations'),
('tags','Tags'),
]
@@ -958,7 +961,7 @@ class SliceAdmin(PlanetStackBaseAdmin):
def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
deployment_nodes = []
for node in Node.objects.all():
- deployment_nodes.append( (node.site_deployment.id, node.id, node.name) )
+ deployment_nodes.append( (node.site_deployment.deployment.id, node.id, node.name) )
deployment_flavors = []
for flavor in Flavor.objects.all():
@@ -1104,9 +1107,9 @@ class TagAdmin(PlanetStackBaseAdmin):
class SliverAdmin(PlanetStackBaseAdmin):
form = SliverForm
fieldsets = [
- ('Sliver Details', {'fields': ['backend_status_text', 'slice', 'deployment', 'node', 'ip', 'instance_id', 'instance_name', 'flavor', 'image', ], 'classes': ['suit-tab suit-tab-general'], })
+ ('Sliver Details', {'fields': ['backend_status_text', 'slice', 'deployment', 'node', 'ip', 'instance_id', 'instance_name', 'flavor', 'image', 'ssh_command'], 'classes': ['suit-tab suit-tab-general'], })
]
- readonly_fields = ('backend_status_text', )
+ readonly_fields = ('backend_status_text', 'ssh_command', )
list_display = ['backend_status_icon', 'ip', 'instance_id', 'instance_name', 'slice', 'flavor', 'image', 'node', 'deployment']
list_display_links = ('backend_status_icon', 'ip',)
@@ -1116,6 +1119,13 @@ class SliverAdmin(PlanetStackBaseAdmin):
user_readonly_fields = ['slice', 'deployment', 'node', 'ip', 'instance_name', 'flavor', 'image']
+ def ssh_command(self, obj):
+ ssh_command = obj.get_ssh_command()
+ if ssh_command:
+ return ssh_command
+ else:
+ return "(not available)"
+
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'slice':
kwargs['queryset'] = Slice.select_by_user(request.user)
@@ -1131,11 +1141,9 @@ class SliverAdmin(PlanetStackBaseAdmin):
def get_formsets(self, request, obj=None):
# make some fields read only if we are updating an existing record
if obj == None:
- #self.readonly_fields = ('ip', 'instance_name')
- self.readonly_fields = ('backend_status_text',)
+ self.readonly_fields = ('backend_status_text', 'ssh_command', )
else:
- self.readonly_fields = ('backend_status_text',)
- #self.readonly_fields = ('ip', 'instance_name', 'slice', 'image', 'key')
+ self.readonly_fields = ('backend_status_text', 'ssh_command',)
for inline in self.get_inline_instances(request, obj):
# hide MyInline in the add view
@@ -1234,7 +1242,8 @@ class UserAdmin(PermissionCheckingAdminMixin, UserAdmin):
# The fields to be used in displaying the User model.
# These override the definitions on the base UserAdmin
# that reference specific fields on auth.User.
- list_display = ('email', 'firstname', 'lastname', 'site', 'last_login')
+ list_display = ('backend_status_icon', 'email', 'firstname', 'lastname', 'site', 'last_login')
+ list_display_links = ("email",)
list_filter = ('site',)
inlines = [SlicePrivilegeInline,SitePrivilegeInline,UserDashboardViewInline]
admin_inlines = [ControllerUserInline]
@@ -1713,12 +1722,12 @@ admin.site.register(Controller, ControllerAdmin)
admin.site.register(Site, SiteAdmin)
admin.site.register(Slice, SliceAdmin)
admin.site.register(Service, ServiceAdmin)
-admin.site.register(Reservation, ReservationAdmin)
+#admin.site.register(Reservation, ReservationAdmin)
admin.site.register(Network, NetworkAdmin)
admin.site.register(Router, RouterAdmin)
admin.site.register(NetworkTemplate, NetworkTemplateAdmin)
-admin.site.register(Account, AccountAdmin)
-admin.site.register(Invoice, InvoiceAdmin)
+#admin.site.register(Account, AccountAdmin)
+#admin.site.register(Invoice, InvoiceAdmin)
if True:
admin.site.register(NetworkParameterType, NetworkParameterTypeAdmin)