X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plstackapi%2Fcore%2Fadmin.py;h=82cf6138667c9e9a95d307adbcfa9c2eb44c674c;hb=e59a7c83b68ef7d388d94bce8256d791dac2db9d;hp=dae2256d3c88d562cddba326f4f80bdf8b0bd8ff;hpb=31c2b8f8f7d25d3cd6f74b625a949f17d9fd62a2;p=plstackapi.git diff --git a/plstackapi/core/admin.py b/plstackapi/core/admin.py index dae2256..82cf613 100644 --- a/plstackapi/core/admin.py +++ b/plstackapi/core/admin.py @@ -1,8 +1,10 @@ from plstackapi.core.models import Site from plstackapi.core.models import * +from plstackapi.openstack.driver import OpenStackDriver +from plstackapi.openstack.client import OpenStackClient + from django.contrib import admin from django.contrib.auth.models import Group - from django import forms from django.utils.safestring import mark_safe from django.contrib.auth.admin import UserAdmin @@ -62,7 +64,6 @@ class DeploymentNetworkAdminForm(forms.ModelForm): def save(self, commit=True): deploymentNetwork = super(DeploymentNetworkAdminForm, self).save(commit=False) - if commit: deploymentNetwork.save() @@ -93,6 +94,17 @@ class KeyAdmin(admin.ModelAdmin): ] list_display = ['name', 'key', 'type', 'blacklisted', 'user'] + def save_model(self, request, obj, form, change): + # attach the caller's openstack clien connection to the object + client = OpenStackClient(tenant=request.user.site.login_base, **request.session.get('auth', {})) + obj.driver = OpenStackDriver(client=client) + obj.save() + + def delete_model(self, request, obj): + client = OpenStackClient(tenant=request.user.site.login_base, **request.session.get('auth', {})) + obj.driver = OpenStackDriver(client=client) + obj.delete() + class SliceAdmin(PlanetStackBaseAdmin): fields = ['name', 'site', 'instantiation', 'description', 'slice_url'] list_display = ('name', 'site','slice_url', 'instantiation')