Exemple #1
0
 def get_form(self):
     if not hasattr(self, 'form'):
         if any(key in ['start', 'end'] for key in self.request.GET):
             # bound form
             self.form = forms.DateForm(self.request.GET)
         else:
             # non-bound form
             init = self.init_form()
             self.form = forms.DateForm(initial={
                 'start': init[0],
                 'end': init[1]
             })
     return self.form
    def get_context_data(self, **kwargs):
        context = super(DAIRShowbackView, self).get_context_data(**kwargs)
        context['form'] = forms.DateForm()
        project_id = self.request.user.tenant_id

        start_date = self.request.GET.get('start')
        context['start_date'] = start_date
        end_date = self.request.GET.get('end')
        context['end_date'] = end_date

        if start_date and end_date:
            usage = {}
            usage['Bandwidth'] = api.jt.get_dair_bandwidth_showback_usage(
                project_id, start_date, end_date)
            usage['Swift'] = api.jt.get_dair_object_store_showback_usage(
                project_id, start_date, end_date)
            usage['Instances'] = api.jt.get_dair_nova_showback_usage(
                project_id, start_date, end_date)
            usage['Snapshots'] = api.jt.get_dair_glance_showback_usage(
                project_id, start_date, end_date)
            usage['Volumes'] = api.jt.get_dair_cinder_showback_usage(
                project_id, start_date, end_date)
            context['usage'] = usage

        return context
Exemple #3
0
 def get_form(self):
     if not hasattr(self, 'form'):
         self.form = forms.DateForm(self.request.GET,
                                    initial={
                                        'year': self.today.year,
                                        'month': self.today.month
                                    })
     return self.form
Exemple #4
0
 def get_form(self):
     if not hasattr(self, 'form'):
         req = self.request
         start = req.GET.get('start', req.session.get('usage_start'))
         end = req.GET.get('end', req.session.get('usage_end'))
         if start and end:
             # bound form
             self.form = forms.DateForm({'start': start, 'end': end})
         else:
             # non-bound form
             init = self.init_form()
             start = init[0].isoformat()
             end = init[1].isoformat()
             self.form = forms.DateForm(initial={'start': start,
                                                 'end': end})
         req.session['usage_start'] = start
         req.session['usage_end'] = end
     return self.form
Exemple #5
0
 def get_form(self):
     if not hasattr(self, 'form'):
         req = self.request
         start = req.GET.get('start', None)  #do not get from session
         end = req.GET.get('end', None)
         if start and end:
             # bound form
             self.form = forms.DateForm({'start': start, 'end': end})
         else:
             # non-bound form
             init = self.init_form()
             start = init[0].isoformat()
             end = init[1].isoformat()
             self.form = forms.DateForm(initial={
                 'start': start,
                 'end': end
             })
             if isinstance(self, GlobalUsage):
                 self.default_date = True
         req.session['usage_start'] = start
         req.session['usage_end'] = end
     return self.form
Exemple #6
0
 def get_context_data(self, **kwargs):
     context = super(IndexView, self).get_context_data(**kwargs)
     month = self._get_month()
     year = self._get_year()
     if year and month:
         data = self._get_billing_data(year, month)
         total = float(data[4]['meter_cpu'])\
                 + float(data[4]['meter_disk_io'])\
                 + float(data[4]['meter_net_io'])
         context['total_costs'] = '%0.2f' % total
     self.today = time.today()
     initial = {
         'month': month if month else self.today.month,
         'year': year if year else self.today.year
     }
     self.form = forms.DateForm(initial=initial)
     context['form'] = self.form
     return context
Exemple #7
0
def tenant_usage(request):
    tenant_id = request.user.tenant
    (date_start, date_end, datetime_start, datetime_end) = \
            _get_start_and_end_date(request)
    if date_start > _current_month():
        messages.error(request, _('No data for the selected period'))
        date_end = date_start
        datetime_end = datetime_start

    dateform = forms.DateForm()
    dateform['date'].field.initial = date_start

    usage = {}
    try:
        usage = api.usage_get(request, tenant_id, datetime_start, datetime_end)
    except api_exceptions.ApiException, e:
        LOG.exception('ApiException getting usage info for tenant "%s"'
                      ' on date range "%s to %s"' %
                      (tenant_id, datetime_start, datetime_end))
        messages.error(request, _('Unable to get usage info: %s') % e.message)
Exemple #8
0
def usage(request):
    (date_start, date_end, datetime_start, datetime_end) = \
            _get_start_and_end_date(request)

    global_summary = GlobalSummary(request)
    if date_start > _current_month():
        messages.error(request, _('No data for the selected period'))
        date_end = date_start
        datetime_end = datetime_start
    else:
        global_summary.service()
        global_summary.usage(datetime_start, datetime_end)

    dateform = forms.DateForm()
    dateform['date'].field.initial = date_start

    global_summary.avail()
    global_summary.human_readable('disk_size')
    global_summary.human_readable('ram_size')

    if request.GET.get('format', 'html') == 'csv':
        template_name = 'syspanel/instances/usage.csv'
        mimetype = "text/csv"
    else:
        template_name = 'syspanel/instances/usage.html'
        mimetype = "text/html"

    return render_to_response(
        template_name, {
            'dateform': dateform,
            'datetime_start': datetime_start,
            'datetime_end': datetime_end,
            'usage_list': global_summary.usage_list,
            'csv_link': _csv_usage_link(date_start),
            'global_summary': global_summary.summary,
            'external_links': getattr(settings, 'EXTERNAL_MONITORING', []),
        },
        context_instance=template.RequestContext(request),
        mimetype=mimetype)