factor out api calls
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
import logging
|
||||
@@ -50,15 +53,138 @@ def auth_api():
|
||||
settings.OPENSTACK_KEYSTONE_URL)
|
||||
|
||||
|
||||
def get_tenant(request, tenant_id):
|
||||
def console_create(request, instance_id, kind=None):
|
||||
return extras_api(request).consoles.create(instance_id, kind)
|
||||
|
||||
|
||||
def flavor_create(request, name, memory, vcpu, disk, flavor_id):
|
||||
return admin_api(request).flavors.create(
|
||||
name, int(memory), int(vcpu), int(disk), flavor_id)
|
||||
|
||||
|
||||
def flavor_delete(request, flavor_id, purge=False):
|
||||
return admin_api(request).flavors.delete(flavor_id, purge)
|
||||
|
||||
|
||||
def flavor_get(request, flavor_id):
|
||||
return compute_api(request).flavors.get(flavor_id)
|
||||
|
||||
|
||||
def flavor_list(request):
|
||||
return extras_api(request).flavors.list()
|
||||
|
||||
|
||||
def flavor_list_admin(request):
|
||||
return extras_api(request).flavors.list()
|
||||
|
||||
|
||||
def image_all_metadata(request):
|
||||
images = glance_api(request).get_images_detailed()
|
||||
image_dict = {}
|
||||
for image in images:
|
||||
image_dict[image['id']] = image
|
||||
return image_dict
|
||||
|
||||
|
||||
def image_create(request, image_meta, image_file):
|
||||
return glance_api(request).add_image(image_meta, image_file)
|
||||
|
||||
|
||||
def image_delete(request, image_id):
|
||||
return glance_api(request).delete_image(image_id)
|
||||
|
||||
|
||||
def image_get(request, image_id):
|
||||
return glance_api(request).get_image(image_id)[0]
|
||||
|
||||
|
||||
def image_list_detailed(request):
|
||||
return glance_api(request).get_images_detailed()
|
||||
|
||||
|
||||
def image_update(request, image_id, image_meta=None):
|
||||
image_meta = image_meta and image_meta or {}
|
||||
return glance_api(request).update_image(image_id, image_meta=image_meta)
|
||||
|
||||
|
||||
def keypair_create(request, name):
|
||||
return extras_api(request).keypairs.create(name)
|
||||
|
||||
|
||||
def keypair_delete(request, keypair_id):
|
||||
return extras_api(request).keypairs.delete(keypair_id)
|
||||
|
||||
|
||||
def keypair_list(request):
|
||||
return extras_api(request).keypairs.list()
|
||||
|
||||
|
||||
def server_create(request, name, image, flavor, user_data, key_name):
|
||||
return extras_api(request).servers.create(
|
||||
name, image, flavor, user_data, key_name)
|
||||
|
||||
|
||||
def server_delete(request, instance):
|
||||
return compute_api(request).servers.delete(instance)
|
||||
|
||||
|
||||
def server_get(request, instance_id):
|
||||
return compute_api(request).servers.get(instance_id)
|
||||
|
||||
|
||||
def server_list(request):
|
||||
return extras_api(request).servers.list()
|
||||
|
||||
|
||||
def server_reboot(request, instance_id, hardness=openstack.compute.servers.REBOOT_HARD):
|
||||
server = server_get(request, instance_id)
|
||||
return server.reboot(hardness)
|
||||
|
||||
|
||||
def service_get(request, name):
|
||||
return admin_api(request).services.get(name)
|
||||
|
||||
|
||||
def service_list(request):
|
||||
return admin_api(request).services.list()
|
||||
|
||||
|
||||
def service_update(request, name, enabled):
|
||||
return admin_api(request).services.update(name, enabled)
|
||||
|
||||
|
||||
def token_get_tenant(request, tenant_id):
|
||||
tenants = auth_api().tenants.for_token(request.session['token'])
|
||||
for t in tenants:
|
||||
if str(t.id) == str(tenant_id):
|
||||
return t
|
||||
|
||||
|
||||
def token_list_tenants(request, token):
|
||||
return auth_api().tenants.for_token(token)
|
||||
|
||||
def token_info(token):
|
||||
|
||||
def tenant_create(request, tenant_id, description, enabled):
|
||||
return account_api(request).tenants.create(tenant_id, description, enabled)
|
||||
|
||||
|
||||
def tenant_get(request, tenant_id):
|
||||
return account_api(request).tenants.get(tenant_id)
|
||||
|
||||
|
||||
def tenant_list(request):
|
||||
return account_api(request).tenants.list()
|
||||
|
||||
|
||||
def tenant_update(request, tenant_id, description, enabled):
|
||||
return account_api(request).tenants.update(tenant_id, description, enabled)
|
||||
|
||||
|
||||
def token_create(request, tenant, username, password):
|
||||
return auth_api().tokens.create(tenant, username, password)
|
||||
|
||||
|
||||
def token_info(request, token):
|
||||
hdrs = {"Content-type": "application/json",
|
||||
"X_AUTH_TOKEN": settings.OPENSTACK_ADMIN_TOKEN,
|
||||
"Accept": "text/json"}
|
||||
@@ -79,9 +205,38 @@ def token_info(token):
|
||||
'admin': admin}
|
||||
|
||||
|
||||
def get_image_cache(request):
|
||||
images = glance_api(request).get_images_detailed()
|
||||
image_dict = {}
|
||||
for image in images:
|
||||
image_dict[image['id']] = image
|
||||
return image_dict
|
||||
def usage_get(request, tenant_id, start, end):
|
||||
return extras_api(request).usage.get(tenant_id, start, end)
|
||||
|
||||
|
||||
def usage_list(request, start, end):
|
||||
return extras_api(request).usage.list(start, end)
|
||||
|
||||
|
||||
def user_create(request, user_id, email, password, tenant_id):
|
||||
return account_api(request).users.create(
|
||||
user_id, email, password, tenant_id)
|
||||
|
||||
|
||||
def user_delete(request, user_id):
|
||||
return account_api(request).users.delete(user_id)
|
||||
|
||||
|
||||
def user_get(request, user_id):
|
||||
return account_api(request).users.get(user_id)
|
||||
|
||||
|
||||
def user_list(request):
|
||||
return account_api(request).users.list()
|
||||
|
||||
|
||||
def user_update_email(request, user_id, email):
|
||||
return account_api(request).users.update_email(user_id, email)
|
||||
|
||||
|
||||
def user_update_password(request, user_id, password):
|
||||
return account_api(request).users.update_password(user_id, password)
|
||||
|
||||
|
||||
def user_update_tenant(request, user_id, tenant_id):
|
||||
return account_api(request).users.update_tenant(user_id, tenant_id)
|
||||
|
||||
@@ -18,10 +18,11 @@ class Login(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
token = api.auth_api().tokens.create("",
|
||||
token = api.token_create(request,
|
||||
"",
|
||||
data['username'],
|
||||
data['password'])
|
||||
info = api.token_info(token)
|
||||
info = api.token_info(request, token)
|
||||
request.session['token'] = token.id
|
||||
request.session['user'] = info['user']
|
||||
request.session['tenant'] = info['tenant']
|
||||
@@ -37,6 +38,7 @@ class Login(forms.SelfHandlingForm):
|
||||
except api_exceptions.Unauthorized as e:
|
||||
messages.error(request, 'Error authenticating: %s' % e.message)
|
||||
|
||||
|
||||
def login(request):
|
||||
if request.user and request.user.is_authenticated():
|
||||
if request.user.is_admin():
|
||||
|
||||
@@ -5,4 +5,4 @@ from django_openstack import api
|
||||
def tenants(request):
|
||||
if not request.user or not request.user.is_authenticated():
|
||||
return {}
|
||||
return {'tenants': api.auth_api().tenants.for_token(request.user.token)}
|
||||
return {'tenants': api.token_list_tenants(request, request.user.token)}
|
||||
|
||||
@@ -67,9 +67,10 @@ class LaunchForm(forms.SelfHandlingForm):
|
||||
def handle(self, request, data):
|
||||
image_id = data['image_id']
|
||||
try:
|
||||
image = api.compute_api(request).images.get(image_id)
|
||||
flavor = api.compute_api(request).flavors.get(data['flavor'])
|
||||
api.extras_api(request).servers.create(data['name'],
|
||||
image = api.image_get(request, image_id)
|
||||
flavor = api.flavor_get(request, data['flavor'])
|
||||
api.server_create(request,
|
||||
data['name'],
|
||||
image,
|
||||
flavor,
|
||||
user_data=data['user_data'],
|
||||
@@ -86,10 +87,10 @@ class LaunchForm(forms.SelfHandlingForm):
|
||||
|
||||
@login_required
|
||||
def index(request, tenant_id):
|
||||
tenant = api.get_tenant(request, request.user.tenant)
|
||||
tenant = api.token_get_tenant(request, request.user.tenant)
|
||||
all_images = []
|
||||
try:
|
||||
all_images = api.glance_api(request).get_images_detailed()
|
||||
all_images = api.image_list_detailed(request)
|
||||
if not all_images:
|
||||
messages.info(request, "There are currently no images.")
|
||||
except GlanceClientConnectionError, e:
|
||||
@@ -121,7 +122,7 @@ def index(request, tenant_id):
|
||||
def launch(request, tenant_id, image_id):
|
||||
def flavorlist():
|
||||
try:
|
||||
fl = api.extras_api(request).flavors.list()
|
||||
fl = api.flavor_list(request)
|
||||
|
||||
# TODO add vcpu count to flavors
|
||||
sel = [(f.id, '%s (%svcpu / %sGB Disk / %sMB Ram )' %
|
||||
@@ -132,14 +133,14 @@ def launch(request, tenant_id, image_id):
|
||||
|
||||
def keynamelist():
|
||||
try:
|
||||
fl = api.extras_api(request).keypairs.list()
|
||||
fl = api.keypair_list(request)
|
||||
sel = [(f.key_name, f.key_name) for f in fl]
|
||||
return sel
|
||||
except:
|
||||
return []
|
||||
|
||||
image = api.compute_api(request).images.get(image_id)
|
||||
tenant = api.get_tenant(request, request.user.tenant)
|
||||
image = api.image_get(request, image_id)
|
||||
tenant = api.token_get_tenant(request, request.user.tenant)
|
||||
|
||||
form, handled = LaunchForm.maybe_handle(
|
||||
request, initial={'flavorlist': flavorlist(),
|
||||
|
||||
@@ -44,10 +44,10 @@ class TerminateInstance(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
instance_id = data['instance']
|
||||
instance = api.compute_api(request).servers.get(instance_id)
|
||||
instance = api.server_get(request, instance_id)
|
||||
|
||||
try:
|
||||
api.compute_api(request).servers.delete(instance)
|
||||
api.server_delete(request, instance)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request,
|
||||
'Unable to terminate %s: %s' %
|
||||
@@ -65,8 +65,7 @@ class RebootInstance(forms.SelfHandlingForm):
|
||||
def handle(self, request, data):
|
||||
instance_id = data['instance']
|
||||
try:
|
||||
server = api.compute_api(request).servers.get(instance_id)
|
||||
server.reboot(openstack.compute.servers.REBOOT_HARD)
|
||||
server = api.server_reboot(request, instance_id)
|
||||
messages.success(request, "Instance rebooting")
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request,
|
||||
@@ -84,8 +83,8 @@ def index(request, tenant_id):
|
||||
|
||||
instances = []
|
||||
try:
|
||||
image_dict = api.get_image_cache(request)
|
||||
instances = api.extras_api(request).servers.list()
|
||||
image_dict = api.image_all_metadata(request)
|
||||
instances = api.server_list(request)
|
||||
for instance in instances:
|
||||
# FIXME - ported this over, but it is hacky
|
||||
instance._info['attrs']['image_name'] =\
|
||||
@@ -117,11 +116,9 @@ def usage(request, tenant_id=None):
|
||||
tenant_id = request.user.tenant
|
||||
|
||||
try:
|
||||
usage = api.extras_api(request).usage.get(tenant_id,
|
||||
datetime_start, datetime_end)
|
||||
usage = api.usage_get(request, tenant_id, datetime_start, datetime_end)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get usage info: %s' % e.message)
|
||||
|
||||
return render_to_response('dash_usage.html', {
|
||||
'usage': usage,
|
||||
}, context_instance=template.RequestContext(request))
|
||||
@@ -130,7 +127,7 @@ def usage(request, tenant_id=None):
|
||||
@login_required
|
||||
def console(request, tenant_id, instance_id):
|
||||
try:
|
||||
console = api.extras_api(request).consoles.create(instance_id)
|
||||
console = api.console_create(request, instance_id)
|
||||
response = http.HttpResponse(mimetype='text/plain')
|
||||
response.write(console.output)
|
||||
response.flush()
|
||||
@@ -145,7 +142,7 @@ def console(request, tenant_id, instance_id):
|
||||
@login_required
|
||||
def vnc(request, tenant_id, instance_id):
|
||||
try:
|
||||
console = api.extras_api(request).consoles.create(instance_id, 'vnc')
|
||||
console = api.console_create(request, instance_id, 'vnc')
|
||||
return redirect(console.output)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request,
|
||||
|
||||
@@ -45,8 +45,7 @@ class DeleteKeypair(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
keypair = api.extras_api(request).keypairs.delete(
|
||||
data['keypair_id'])
|
||||
keypair = api.keypair_delete(request, data['keypair_id'])
|
||||
messages.info(request, 'Successfully deleted keypair: %s' \
|
||||
% data['keypair_id'])
|
||||
except api_exceptions.ApiException, e:
|
||||
@@ -58,7 +57,7 @@ class CreateKeypair(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
keypair = api.extras_api(request).keypairs.create(data['name'])
|
||||
keypair = api.keypair_create(request, data['name'])
|
||||
response = http.HttpResponse(mimetype='application/binary')
|
||||
response['Content-Disposition'] = \
|
||||
'attachment; filename=%s.pem' % \
|
||||
@@ -76,7 +75,7 @@ def index(request, tenant_id):
|
||||
return handled
|
||||
|
||||
try:
|
||||
keypairs = api.extras_api(request).keypairs.list()
|
||||
keypairs = api.keypair_list(request)
|
||||
except api_exceptions.ApiException, e:
|
||||
keypairs = []
|
||||
messages.error(request, 'Error featching keypairs: %s' % e.message)
|
||||
|
||||
@@ -24,7 +24,8 @@ class CreateFlavor(forms.SelfHandlingForm):
|
||||
disk_gb = forms.CharField(max_length="5", label="Disk GB")
|
||||
|
||||
def handle(self, request, data):
|
||||
api.admin_api(request).flavors.create(data['name'],
|
||||
api.flavor_create(request,
|
||||
data['name'],
|
||||
int(data['memory_mb']),
|
||||
int(data['vcpus']),
|
||||
int(data['disk_gb']),
|
||||
@@ -39,7 +40,7 @@ class DeleteFlavor(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
flavor_id = data['flavorid']
|
||||
api.admin_api(request).flavors.delete(flavor_id, True)
|
||||
api.flavor_delete(flavor_id, True)
|
||||
return redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
@@ -56,7 +57,7 @@ def index(request):
|
||||
|
||||
flavors = []
|
||||
try:
|
||||
flavors = api.admin_api(request).flavors.list()
|
||||
flavors = api.flavor_list_admin(request)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get usage info: %s' % e.message)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class DeleteImage(forms.SelfHandlingForm):
|
||||
def handle(self, request, data):
|
||||
image_id = data['image_id']
|
||||
try:
|
||||
api.glance_api(request).delete_image(image_id)
|
||||
api.image_delete(request, image_id)
|
||||
except GlanceClientConnectionError, e:
|
||||
messages.error(request, "Error connecting to glance: %s" % e.message)
|
||||
except glance_exception.Error, e:
|
||||
@@ -32,8 +32,9 @@ class ToggleImage(forms.SelfHandlingForm):
|
||||
image_id = forms.CharField(required=True)
|
||||
|
||||
def handle(self, request, data):
|
||||
image_id = data['image_id']
|
||||
try:
|
||||
api.glance_api(request).update_image(image_id, image_meta={'is_public': False})
|
||||
api.image_update(request, image_id, image_meta={'is_public': False})
|
||||
except GlanceClientConnectionError, e:
|
||||
messages.error(request, "Error connecting to glance: %s" % e.message)
|
||||
except glance_exception.Error, e:
|
||||
@@ -56,7 +57,7 @@ def index(request):
|
||||
|
||||
images = []
|
||||
try:
|
||||
images = api.glance_api(request).get_images_detailed()
|
||||
images = api.image_list_detailed(request)
|
||||
if not images:
|
||||
messages.info(request, "There are currently no images.")
|
||||
except GlanceClientConnectionError, e:
|
||||
@@ -74,7 +75,7 @@ def index(request):
|
||||
@login_required
|
||||
def update(request, image_id):
|
||||
try:
|
||||
image = glance_api(request).get_image(image_id)[0]
|
||||
image = api.image_get(request, image_id)
|
||||
except GlanceClientConnectionError, e:
|
||||
messages.error(request, "Error connecting to glance: %s" % e.message)
|
||||
except glance_exception.Error, e:
|
||||
@@ -100,8 +101,7 @@ def update(request, image_id):
|
||||
'architecture': image_form['architecture'],
|
||||
'project_id': image_form['project_id'],
|
||||
}
|
||||
|
||||
glance_api(request).update_image(image_id, metadata)
|
||||
api.image_update(request, image_id, metadata)
|
||||
messages.success(request, "Image was successfully updated.")
|
||||
except GlanceClientConnectionError, e:
|
||||
messages.error(request, "Error connecting to glance: %s" % e.message)
|
||||
@@ -156,7 +156,7 @@ def upload(request):
|
||||
messages.error(request, "Image could not be uploaded, please try again.")
|
||||
|
||||
try:
|
||||
glance_api(request).add_image(metadata, image['image_file'])
|
||||
api.image_create(request, metadata, image['image_file'])
|
||||
except GlanceClientConnectionError, e:
|
||||
messages.error(request, "Error connecting to glance: %s" % e.message)
|
||||
except glance_exception.Error, e:
|
||||
|
||||
@@ -61,7 +61,7 @@ def usage(request):
|
||||
datetime_end = datetime_start
|
||||
else:
|
||||
try:
|
||||
service_list = api.admin_api(request).services.list()
|
||||
service_list = api.service_list(request)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get service info: %s' % e.message)
|
||||
|
||||
@@ -71,7 +71,7 @@ def usage(request):
|
||||
max_gigabytes += service.stats['max_gigabytes']
|
||||
|
||||
try:
|
||||
usage_list = api.extras_api(request).usage.list(datetime_start, datetime_end)
|
||||
usage_list = api.usage_list(request, datetime_start, datetime_end)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get usage info: %s' % e.message)
|
||||
|
||||
@@ -142,7 +142,7 @@ def tenant_usage(request, tenant_id):
|
||||
|
||||
usage = {}
|
||||
try:
|
||||
usage = extras_api(request).usage.get(tenant_id, datetime_start, datetime_end)
|
||||
usage = api.usage_get(request, tenant_id, datetime_start, datetime_end)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get usage info: %s' % e.message)
|
||||
|
||||
@@ -162,8 +162,8 @@ def index(request):
|
||||
|
||||
instances = []
|
||||
try:
|
||||
image_dict = api.get_image_cache(request)
|
||||
instances = api.extras_api(request).servers.list()
|
||||
image_dict = api.image_all_metadata(request)
|
||||
instances = api.server_list(request)
|
||||
for instance in instances:
|
||||
# FIXME - ported this over, but it is hacky
|
||||
instance._info['attrs']['image_name'] =\
|
||||
|
||||
@@ -28,8 +28,9 @@ class ToggleService(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
service = api.admin_api(request).services.get(data['service'])
|
||||
api.admin_api(request).services.update(data['service'],
|
||||
service = api.service_get(request, data['service'])
|
||||
api.service_update(request,
|
||||
data['service'],
|
||||
not service.disabled)
|
||||
if service.disabled:
|
||||
messages.info(request, "Service '%s' has been enabled"
|
||||
@@ -53,7 +54,7 @@ def index(request):
|
||||
|
||||
services = []
|
||||
try:
|
||||
services = api.admin_api(request).services.list()
|
||||
services = api.service_list(request)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get service info: %s' % e.message)
|
||||
|
||||
|
||||
@@ -27,8 +27,10 @@ class CreateTenant(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
api.account_api(request).tenants.create(data['id'],
|
||||
data['description'], data['enabled'])
|
||||
api.tenant_create(request,
|
||||
data['id'],
|
||||
data['description'],
|
||||
data['enabled'])
|
||||
messages.success(request,
|
||||
'%s was successfully created.'
|
||||
% data['id'])
|
||||
@@ -45,8 +47,10 @@ class UpdateTenant(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
api.account_api(request).tenants.update(data['id'],
|
||||
data['description'], data['enabled'])
|
||||
api.tenant_update(request,
|
||||
data['id'],
|
||||
data['description'],
|
||||
data['enabled'])
|
||||
messages.success(request,
|
||||
'%s was successfully updated.'
|
||||
% data['id'])
|
||||
@@ -59,7 +63,7 @@ class UpdateTenant(forms.SelfHandlingForm):
|
||||
def index(request):
|
||||
tenants = []
|
||||
try:
|
||||
tenants = api.account_api(request).tenants.list()
|
||||
tenants = api.tenant_list(request)
|
||||
except api_exceptions.ApiException, e:
|
||||
messages.error(request, 'Unable to get tenant info: %s' % e.message)
|
||||
tenants.sort(key=lambda x: x.id, reverse=True)
|
||||
@@ -88,7 +92,7 @@ def update(request, tenant_id):
|
||||
|
||||
if request.method == 'GET':
|
||||
try:
|
||||
tenant = api.account_api(request).tenants.get(tenant_id)
|
||||
tenant = api.tenant_get(request, tenant_id)
|
||||
form = UpdateTenant(initial={'id': tenant.id,
|
||||
'description': tenant.description,
|
||||
'enabled': tenant.enabled})
|
||||
|
||||
@@ -38,7 +38,7 @@ class UserDeleteForm(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
user_id = data['user']
|
||||
api.account_api(request).users.delete(user_id)
|
||||
api.user_delete(request, user_id)
|
||||
messages.success(request,
|
||||
'%s was successfully deleted.'
|
||||
% user_id)
|
||||
@@ -52,7 +52,7 @@ def index(request):
|
||||
if handled:
|
||||
return handled
|
||||
|
||||
users = api.account_api(request).users.list()
|
||||
users = api.user_list(request)
|
||||
|
||||
user_delete_form = UserDeleteForm()
|
||||
return render_to_response('syspanel_users.html',{
|
||||
@@ -64,23 +64,20 @@ def index(request):
|
||||
@login_required
|
||||
def update(request, user_id):
|
||||
if request.method == "POST":
|
||||
tenants = api.account_api(request).tenants.list()
|
||||
tenants = api.tenant_list(request)
|
||||
form = UserForm(request.POST, tenant_list=tenants)
|
||||
if form.is_valid():
|
||||
user = form.clean()
|
||||
updated = []
|
||||
if user['email']:
|
||||
updated.append('email')
|
||||
api.account_api(request).users.update_email(user['id'],
|
||||
user['email'])
|
||||
api.user_update_email(request, user['id'], user['email'])
|
||||
if user['password']:
|
||||
updated.append('password')
|
||||
api.account_api(request).users.update_password(user['id'],
|
||||
user['password'])
|
||||
api.user_update_password(request, user['id'], user['password'])
|
||||
if user['tenant_id']:
|
||||
updated.append('tenant')
|
||||
api.account_api(request).users.update_tenant(user['id'],
|
||||
user['tenant_id'])
|
||||
api.user_update_tenant(request, user['id'], user['tenant_id'])
|
||||
messages.success(request,
|
||||
'Updated %s for %s.'
|
||||
% (', '.join(updated), user_id))
|
||||
@@ -97,8 +94,8 @@ def update(request, user_id):
|
||||
}, context_instance = template.RequestContext(request))
|
||||
|
||||
else:
|
||||
u = api.account_api(request).users.get(user_id)
|
||||
tenants = api.account_api(request).tenants.list()
|
||||
u = api.user_get(request, user_id)
|
||||
tenants = api.tenant_list(request)
|
||||
try:
|
||||
# FIXME
|
||||
email = u.email
|
||||
@@ -122,7 +119,7 @@ def update(request, user_id):
|
||||
|
||||
@login_required
|
||||
def create(request):
|
||||
tenants = api.account_api(request).tenants.list()
|
||||
tenants = api.tenant_list(request)
|
||||
|
||||
if request.method == "POST":
|
||||
form = UserForm(request.POST, tenant_list=tenants)
|
||||
@@ -130,7 +127,8 @@ def create(request):
|
||||
user = form.clean()
|
||||
# TODO Make this a real request
|
||||
try:
|
||||
api.account_api(request).users.create(user['id'],
|
||||
api.user_create(request,
|
||||
user['id'],
|
||||
user['email'],
|
||||
user['password'],
|
||||
user['tenant_id'],
|
||||
|
||||
Reference in New Issue
Block a user