def test_instance_usage_exception(self): now = self.override_times() exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'usage_get') api.usage_get(IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_usage', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/instances/usage.html') self.assertEqual(res.context['usage'], {}) self.mox.VerifyAll() self.reset_times()
def test_instance_usage_default_tenant(self): TEST_RETURN = 'testReturn' now = self.override_times() self.mox.StubOutWithMock(api, 'usage_get') api.usage_get(IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndReturn(TEST_RETURN) self.mox.ReplayAll() res = self.client.get(reverse('dash_overview')) self.assertTemplateUsed(res, 'dash_usage.html') self.assertEqual(res.context['usage'], TEST_RETURN) self.mox.VerifyAll() self.reset_times()
def test_usage_get(self): extras_api = self.stub_extras_api() extras_api.usage = self.mox.CreateMockAnything() extras_api.usage.get(TEST_TENANT_ID, "start", "end").AndReturn(TEST_RETURN) self.mox.ReplayAll() ret_val = api.usage_get(self.request, TEST_TENANT_ID, "start", "end") self.assertIsInstance(ret_val, api.Usage) self.assertEqual(ret_val._apiresource, TEST_RETURN) self.mox.VerifyAll()
def test_instance_usage_default_tenant(self): TEST_RETURN = 'testReturn' now = self.override_times() self.mox.StubOutWithMock(api, 'usage_get') api.usage_get(IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndReturn(TEST_RETURN) self.mox.ReplayAll() res = self.client.get(reverse('dash_overview')) self.assertTemplateUsed(res, 'django_openstack/dash/instances/usage.html') self.assertEqual(res.context['usage'], TEST_RETURN) self.mox.VerifyAll() self.reset_times()
def usage(request, tenant_id=None): today = datetime.date.today() date_start = datetime.date(today.year, today.month, 1) datetime_start = datetime.datetime.combine(date_start, datetime.time()) datetime_end = datetime.datetime.utcnow() usage = {} if not tenant_id: tenant_id = request.user.tenant try: 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)
def test_instance_csv_usage(self): TEST_RETURN = 'testReturn' now = self.override_times() self.mox.StubOutWithMock(api, 'usage_get') api.usage_get(IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndReturn(TEST_RETURN) self.mox.ReplayAll() res = self.client.get(reverse('dash_usage', args=[self.TEST_TENANT]) + "?format=csv") self.assertTemplateUsed(res, 'django_openstack/dash/instances/usage.csv') self.assertEqual(res.context['usage'], TEST_RETURN) self.mox.VerifyAll() self.reset_times()
def tenant_usage(request, tenant_id): (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: messages.error(request, 'Unable to get usage info: %s' % e.message)
def usage(request, tenant_id=None): today = utils.today() date_start = datetime.date(today.year, today.month, 1) datetime_start = datetime.datetime.combine(date_start, utils.time()) datetime_end = utils.utcnow() show_terminated = request.GET.get('show_terminated', False) usage = {} if not tenant_id: tenant_id = request.user.tenant try: usage = api.usage_get(request, tenant_id, datetime_start, datetime_end) except api_exceptions.ApiException, e: LOG.error('ApiException in instance usage', exc_info=True) messages.error(request, 'Unable to get usage info: %s' % e.message)
def usage(request, tenant_id=None): today = utils.today() date_start = datetime.date(today.year, today.month, 1) datetime_start = datetime.datetime.combine(date_start, utils.time()) datetime_end = utils.utcnow() show_terminated = request.GET.get('show_terminated', False) usage = {} if not tenant_id: tenant_id = request.user.tenant_id try: usage = api.usage_get(request, tenant_id, datetime_start, datetime_end) except api_exceptions.ApiException, e: LOG.exception(_('ApiException in instance usage')) messages.error(request, _('Unable to get usage info: %s') % e.message)
def tenant_usage(request, tenant_id): (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)
messages.info(request, 'Bill unavailable, please set the unit cost') (global_summary, global_cost) = calc_cost(request, global_summary1, unit_cost, unit_flag) for usage in global_summary.usage_list : if usage.tenant_id == tenant_id: usage_tmp = props(usage) LOG.info(' ---$$--tenant usage-$$$$---- %s -----$-------- ' %(usage_temp)) break # """ bill_enabled = True if month_ended == 1: bill_enabled = False usage = {} today = datetime.datetime.today() try: # if(usage_temp == 0): usage = api.usage_get(request, tenant_id, datetime_start, datetime_end) # else: # usage = usage_tmp #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) total_cost = 0 total_vcpu = 0 total_vram = 0 total_vdisk = 0 running_instances = [] terminated_instances = [] if hasattr(usage, 'instances') and unit_flag == 1: now = datetime.datetime.now()
messages.info(request, 'Bill unavailable, please set the unit cost') (global_summary, global_cost) = calc_cost(request, global_summary1, unit_cost, unit_flag) for usage in global_summary.usage_list : if usage.tenant_id == tenant_id: usage_tmp = props(usage) LOG.info(' ---$$--tenant usage-$$$$---- %s -----$-------- ' %(usage_temp)) break # """ bill_enabled= True if month_ended == 1: bill_enabled= False usage = {} today = datetime.datetime.today() try: # if(usage_temp == 0): usage = api.usage_get(request, tenant_id, datetime_start, datetime_end) # else: # usage = usage_tmp #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) total_cost=0 total_vcpu=0 total_vram=0 total_vdisk=0 running_instances = [] terminated_instances = [] if hasattr(usage, 'instances')and unit_flag == 1: