~ubuntu-branches/ubuntu/precise/horizon/precise-updates

« back to all changes in this revision

Viewing changes to horizon/dashboards/syspanel/flavors/views.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-03-02 12:11:59 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20120302121159-65b88lcl4slve26i
Tags: 2012.1~e4-0ubuntu1
* New upstream version.
* debian/rules: Update due to upstream build changes.
* debian/control: Update standards-version.
* debian/patches/openstack-config-settings.patch: Dropped
* debian/patches/fix-dashboard-django-wsgi.patch: Refreshed
* debian/patches/fix-dashboard-manage.patch: Refreshed
* debian/openstack-dashboard.install: Update due to upstream build changes.
* debian/dashboard: Update to upstream build changes.
* debian/pydist-overrides: Dont try to install python-django-nose-selenium.
* debian/openstack-dashboard.install: Add missing config files.
* debian/rules: Fix broken settings.py
* debian/patches/pkg-setup.patch: Copy missing templates, shameously
  taken from debian
* debian/patches/fix-broken-tarbll.patch: Add missing files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 
2
 
 
3
# Copyright 2012 United States Government as represented by the
 
4
# Administrator of the National Aeronautics and Space Administration.
 
5
# All Rights Reserved.
 
6
#
 
7
# Copyright 2012 Nebula, Inc.
 
8
#
 
9
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 
10
#    not use this file except in compliance with the License. You may obtain
 
11
#    a copy of the License at
 
12
#
 
13
#         http://www.apache.org/licenses/LICENSE-2.0
 
14
#
 
15
#    Unless required by applicable law or agreed to in writing, software
 
16
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 
17
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 
18
#    License for the specific language governing permissions and limitations
 
19
#    under the License.
 
20
 
 
21
import logging
 
22
 
 
23
from django.contrib import messages
 
24
from django.utils.translation import ugettext as _
 
25
from novaclient import exceptions as api_exceptions
 
26
 
 
27
from horizon import api
 
28
from horizon import forms
 
29
from horizon import tables
 
30
from .forms import CreateFlavor
 
31
from .tables import FlavorsTable
 
32
 
 
33
 
 
34
LOG = logging.getLogger(__name__)
 
35
 
 
36
 
 
37
class IndexView(tables.DataTableView):
 
38
    table_class = FlavorsTable
 
39
    template_name = 'syspanel/flavors/index.html'
 
40
 
 
41
    def get_data(self):
 
42
        request = self.request
 
43
        flavors = []
 
44
        try:
 
45
            flavors = api.flavor_list(request)
 
46
        except api_exceptions.Unauthorized, e:
 
47
            LOG.exception('Unauthorized attempt to access flavor list.')
 
48
            messages.error(request, _('Unauthorized.'))
 
49
        except Exception, e:
 
50
            LOG.exception('Exception while fetching usage info')
 
51
            if not hasattr(e, 'message'):
 
52
                e.message = str(e)
 
53
            messages.error(request, _('Unable to get flavor list: %s') %
 
54
                           e.message)
 
55
        flavors.sort(key=lambda x: x.id, reverse=True)
 
56
        return flavors
 
57
 
 
58
 
 
59
class CreateView(forms.ModalFormView):
 
60
    form_class = CreateFlavor
 
61
    template_name = 'syspanel/flavors/create.html'
 
62
 
 
63
    def get_initial(self):
 
64
        # TODO(tres): Get rid of this hacky bit of nonsense after flavors get
 
65
        # converted to nova client.
 
66
        flavors = api.flavor_list(self.request)
 
67
        flavors.sort(key=lambda f: f.id, reverse=True)
 
68
        return {'flavor_id': int(flavors[0].id) + 1}