~devcamcar/horizon/trunk

« back to all changes in this revision

Viewing changes to django-nova-syspanel/src/django_nova_syspanel/views/volumes.py

  • Committer: Devin Carlen
  • Date: 2011-06-18 05:59:37 UTC
  • Revision ID: devin.carlen@gmail.com-20110618055937-aobwm0buvviijz3o
Moved codebase to GitHub

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from boto.exception import EC2ResponseError
2
 
from django import template
3
 
from django.conf import settings
4
 
from django.contrib import messages
5
 
from django.contrib.auth.decorators import login_required
6
 
from django.shortcuts import redirect, render_to_response
7
 
from django.utils.translation import ugettext as _
8
 
 
9
 
from django_nova_syspanel.models import *
10
 
 
11
 
 
12
 
@login_required
13
 
def index(request):
14
 
    nova = get_nova_admin_connection()
15
 
    conn = nova.connection_for(settings.NOVA_ADMIN_USER, settings.NOVA_PROJECT)
16
 
    volumes = conn.get_all_volumes()
17
 
 
18
 
    for volume in volumes:
19
 
        statusstr = str(volume.status)[:-1]
20
 
        instance = statusstr.split(', ')[-2]
21
 
        device = statusstr.split(', ')[-1]
22
 
        status = statusstr.split(' ')[0]
23
 
 
24
 
        volume.device = device
25
 
        volume.instance = instance
26
 
        volume.status_str = status
27
 
 
28
 
    return render_to_response('django_nova_syspanel/volumes/index.html',
29
 
                             {'volumes': volumes, },
30
 
                             context_instance=template.RequestContext(request))
31
 
 
32
 
 
33
 
@login_required
34
 
def detach(request, volume_id):
35
 
    nova = get_nova_admin_connection()
36
 
    conn = nova.connection_for(settings.NOVA_ADMIN_USER, settings.NOVA_PROJECT)
37
 
    try:
38
 
        conn.detach_volume(volume_id)
39
 
    except EC2ResponseError, e:
40
 
        messages.error(request, 'Unable to detach volume %s: %s' % \
41
 
                                (volume_id, e.error_message))
42
 
    else:
43
 
        messages.success(request,
44
 
                         _('Volume %s has been scheduled to be detached.') %
45
 
                         volume_id)
46
 
    return redirect('syspanel_volumes')
47
 
 
48
 
 
49
 
@login_required
50
 
def delete(request, volume_id):
51
 
    nova = get_nova_admin_connection()
52
 
    conn = nova.connection_for(settings.NOVA_ADMIN_USER, settings.NOVA_PROJECT)
53
 
    try:
54
 
        conn.delete_volume(volume_id)
55
 
    except EC2ResponseError, e:
56
 
        messages.error(request,
57
 
                       _('Unable to delete volume %(vol)s: %(msg)s') %
58
 
                        {'vol': volume_id, 'msg': e.error_message})
59
 
    else:
60
 
        messages.success(request,
61
 
                         _('Volume %s has been successfully deleted.') %
62
 
                         volume_id)
63
 
    return redirect('syspanel_volumes')