Esempio n. 1
0
    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()
Esempio n. 4
0
    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)
Esempio n. 6
0
    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)
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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)
Esempio n. 12
0
        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()
Esempio n. 13
0
        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: