def index(request): (date_start, date_end, datetime_start, datetime_end) = \ _get_start_and_end_date(request) global_summary = api.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') unit_cost = [] try: unit_cost = api.biller_get(request,1) except api_exceptions.ApiException, e: messages.error(request, 'Unable to list unit_cost: %s' % e.message)
def index(request): (date_start, date_end, datetime_start, datetime_end) = \ _get_start_and_end_date(request) global_summary = api.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 LOG.info( '--date field--(date_start: %s, date_end: %s, datetime_start: %s, datetime_end: %s) ' % (date_start, date_end, datetime_start, datetime_end)) unit_cost = [] (unit_flag, unit_cost) = get_unitCost(request, date_start) if unit_flag == 0: messages.info( request, 'Unable to list This month bill, Pleace set unit bill for this month' ) if request.GET.get('format', 'html') == 'csv': template_name = 'django_openstack/syspanel/bills/usage.csv' mimetype = "text/csv" else: template_name = 'django_openstack/syspanel/bills/index.html' mimetype = "text/html" global_summary.avail() # LOG.info(' ------^^^^global summary^^^^^-------- %s ' %(global_summary.summary)) # global_cost = global_cost_obj(0) (global_summary, global_cost) = calc_cost(request, global_summary, unit_cost, unit_flag) global_summary.human_readable('disk_size') global_summary.human_readable('ram_size') LOG.info('-------global summary---%s--+++-- %s ' % (global_summary, unit_cost)) return render_to_response( template_name, { 'dateform': dateform, 'datetime_start': datetime_start, 'datetime_end': datetime_end, 'usage_list': global_summary.usage_list, 'unit_cost': unit_cost, 'csv_link': _csv_usage_link(date_start), 'global_cost': global_cost, 'global_summary': global_summary.summary, 'external_links': settings.EXTERNAL_MONITORING, }, context_instance=template.RequestContext(request), mimetype=mimetype)
def create(request): form, handled = CreateFlavor.maybe_handle(request) if handled: return handled global_summary = api.GlobalSummary(request) global_summary.service() global_summary.avail() global_summary.human_readable('disk_size') global_summary.human_readable('ram_size') return render_to_response( 'django_openstack/syspanel/flavors/create.html', { 'global_summary': global_summary.summary, 'form': form, }, context_instance=template.RequestContext(request))
def tenant_usage(request, tenant_id, flag=None): (date_start, date_end, datetime_start, datetime_end, month_ended) = \ _get_start_and_end_date(request, 1) if date_start > _current_month(): messages.error(request, 'No data for the selected period') date_end = date_start datetime_end = datetime_start LOG.info(' ---$ tenant +++ usage $---') dateform = forms.DateForm() dateform['date'].field.initial = date_start usage_tmp = {} # global_summary1 = api.GlobalSummary(request) global_summary1.avail() LOG.info(' ---$$--tenant globale-$$$$---- %s -----$-------- ' % (global_summary1.usage_list)) unit_cost = [] try: (unit_flag, unit_cost) = get_unitCost(request, date_start) except api_exceptions.ApiException, e: messages.error(request, 'No data for the selected period')
def usage(request): (date_start, date_end, datetime_start, datetime_end) = \ _get_start_and_end_date(request) global_summary = api.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 = 'django_openstack/syspanel/instances/usage.csv' mimetype = "text/csv" else: template_name = 'django_openstack/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': settings.EXTERNAL_MONITORING, }, context_instance=template.RequestContext(request), mimetype=mimetype)
def usage(request): (date_start, date_end, datetime_start, datetime_end) = \ _get_start_and_end_date(request) global_summary = api.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() # unit_cost = [] (unit_flag, unit_cost) = get_unitCost(request, date_start) LOG.info(' ------System over view summary-------- %s ' % (global_summary.summary)) if unit_flag == 0: messages.info( request, 'This month unit cost is not set, Pleace set unit cost in Billing tab ' ) global_cost = global_cost_obj(0) if (('total_cpu_usage' in global_summary.summary) and (unit_flag == 1)): global_cost.vcpus = float( global_summary.summary['total_cpu_usage']) * float(unit_cost.vcpu) global_cost.ram = float( global_summary.summary['total_ram_usage']) * float(unit_cost.ram) global_cost.vdisk = float( global_summary.summary['total_disk_usage']) * float( unit_cost.vdisk) global_cost.total = global_cost.vcpus + global_cost.ram + global_cost.vdisk for usage in global_summary.usage_list: LOG.info(' ---$$--usage details-$$$$---- %s -----$-------- ' % (usage.__dict__)) usage.total_cpu_cost = (float(usage.total_cpu_usage) * float(unit_cost.vcpu)) usage.total_ram_cost = (float(usage.total_ram_usage) * float(unit_cost.ram)) usage.total_disk_cost = (float(usage.total_disk_usage) * float(unit_cost.vdisk)) usage.total_cost = usage.total_cpu_cost + usage.total_ram_cost + usage.total_disk_cost for instance in usage.instances: LOG.info(' ---$$--instance---- %s --- ' % (instance)) cost_vcpus = float(instance['vcpus']) * float(unit_cost.vcpu) cost_ram = float(instance['ram_size']) * float(unit_cost.ram) cost_vdisk = float(instance['disk_size']) * float( unit_cost.vdisk) instance['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) * float(instance['hours']) LOG.info(' ---$$--instance cost-$$$$---- %s -----$-------- ' % (instance)) else: global_cost.vcpus = 0.0 global_cost.ram = 0.0 global_cost.vdisk = 0.0 global_cost.total = 0.0 # global_summary.human_readable('disk_size') global_summary.human_readable('ram_size') if request.GET.get('format', 'html') == 'csv': template_name = 'django_openstack/syspanel/instances/usage.csv' mimetype = "text/csv" else: template_name = 'django_openstack/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), 'unit_cost': unit_cost, 'global_cost': global_cost, 'global_summary': global_summary.summary, 'external_links': settings.EXTERNAL_MONITORING, }, context_instance=template.RequestContext(request), mimetype=mimetype)
def usage(request): (date_start, date_end, datetime_start, datetime_end) = \ _get_start_and_end_date(request) global_summary = api.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 = 'django_openstack/syspanel/bills/usage.csv' mimetype = "text/csv" else: template_name = 'django_openstack/syspanel/bills/usage.html' mimetype = "text/html" LOG.info( ' ---$usage$---global summary usage_list-$$$$---- %s -----$-------- ' % (global_summary.usage_list)) unit_cost = [] (unit_flag, unit_cost) = get_unitCost(request, date_start) global_cost = global_cost_obj(0) cost_total = 0 if unit_flag == 1: for usage in global_summary.usage_list: for instance in usage.instances: cost_vcpus = float(instance['vcpus']) * float(unit_cost.vcpu) cost_ram = float(instance['ram_size']) * float(unit_cost.ram) cost_vdisk = float(instance['disk_size']) * float( unit_cost.vdisk) instance['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) * float(instance['hours']) cost_total += instance['cost'] LOG.info(' ---$$--instance cost-$$$$---- %s -----$-------- ' % (instance)) LOG.info( ' ---$$--Updating tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' % (tenant_id)) self.tenant_usage(request, tenant_id, 1) LOG.info( ' ---$$--Updated tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' % (tenant_id)) else: instance.cost = 'unavailable' LOG.info(' ---$$---global summary usage_list-$$$$---- %s -----$-------- ' % (unit_cost, unit_flag)) unit_cost = [] 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': settings.EXTERNAL_MONITORING, }, context_instance=template.RequestContext(request), mimetype=mimetype)