예제 #1
0
 def test_usage(self):
     now = self.override_times()
     usage_obj = api.nova.Usage(self.usages.first())
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True) \
                 .AndReturn(self.tenants.list())
     api.usage_list(IsA(http.HttpRequest),
                   datetime.datetime(now.year, now.month, 1,
                                     now.hour, now.minute, now.second),
                   datetime.datetime(now.year, now.month, now.day, now.hour,
                                     now.minute, now.second)) \
                   .AndReturn([usage_obj])
     self.mox.ReplayAll()
     res = self.client.get(reverse('horizon:syspanel:overview:index'))
     self.assertTemplateUsed(res, 'syspanel/overview/usage.html')
     self.assertTrue(isinstance(res.context['usage'], usage.GlobalUsage))
     self.assertContains(res,
                         '<td class="sortable">test_tenant</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%.2f</td>'
                         '<td class="sortable">%.2f</td>' %
                         (usage_obj.vcpus,
                          usage_obj.disk_gb_hours,
                          mbformat(usage_obj.memory_mb),
                          usage_obj.vcpu_hours,
                          usage_obj.total_local_gb_usage))
예제 #2
0
파일: tests.py 프로젝트: MrRagga-/horizon
 def test_usage(self):
     now = timezone.now()
     usage_obj = api.nova.Usage(self.usages.first())
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True) \
                 .AndReturn(self.tenants.list())
     api.usage_list(IsA(http.HttpRequest),
                   datetime.datetime(now.year, now.month, 1, 0, 0, 0),
                   Func(usage.almost_now)) \
                   .AndReturn([usage_obj])
     self.mox.ReplayAll()
     res = self.client.get(reverse('horizon:syspanel:overview:index'))
     self.assertTemplateUsed(res, 'syspanel/overview/usage.html')
     self.assertTrue(isinstance(res.context['usage'], usage.GlobalUsage))
     self.assertContains(res,
                         '<td class="sortable">test_tenant</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%s</td>'
                         '<td class="sortable">%.2f</td>'
                         '<td class="sortable">%.2f</td>' %
                         (usage_obj.vcpus,
                          usage_obj.disk_gb_hours,
                          mbformat(usage_obj.memory_mb),
                          usage_obj.vcpu_hours,
                          usage_obj.total_local_gb_usage))
예제 #3
0
 def test_usage(self):
     now = timezone.now()
     usage_obj = api.nova.Usage(self.usages.first())
     quotas = self.quota_usages.first()
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True) \
                 .AndReturn(self.tenants.list())
     api.usage_list(IsA(http.HttpRequest),
                   datetime.datetime(now.year, now.month, 1, 0, 0, 0),
                   Func(usage.almost_now)) \
                   .AndReturn([usage_obj])
     api.nova.tenant_quota_usages(IsA(http.HttpRequest)).AndReturn(quotas)
     self.mox.ReplayAll()
     res = self.client.get(reverse('horizon:admin:overview:index'))
     self.assertTemplateUsed(res, 'admin/overview/usage.html')
     self.assertTrue(isinstance(res.context['usage'], usage.GlobalUsage))
     self.assertContains(
         res, '<td class="sortable normal_column">test_tenant'
         '</td>'
         '<td class="sortable normal_column">%s</td>'
         '<td class="sortable normal_column">%s</td>'
         '<td class="sortable normal_column">%s</td>'
         '<td class="sortable normal_column">%.2f</td>'
         '<td class="sortable normal_column">%.2f</td>' %
         (usage_obj.vcpus, usage_obj.disk_gb_hours,
          mbformat(usage_obj.memory_mb), usage_obj.vcpu_hours,
          usage_obj.total_local_gb_usage))
예제 #4
0
파일: tests.py 프로젝트: usc-isi/horizon
 def test_usage_csv(self):
     now = timezone.now()
     usage_obj = api.nova.Usage(self.usages.first())
     quotas = self.quota_usages.first()
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True).AndReturn(self.tenants.list())
     api.usage_list(
         IsA(http.HttpRequest), datetime.datetime(now.year, now.month, 1, 0, 0, 0), Func(usage.almost_now)
     ).AndReturn([usage_obj])
     api.nova.tenant_quota_usages(IsA(http.HttpRequest)).AndReturn(quotas)
     self.mox.ReplayAll()
     csv_url = reverse("horizon:syspanel:overview:index") + "?format=csv"
     res = self.client.get(csv_url)
     self.assertTemplateUsed(res, "syspanel/overview/usage.csv")
     self.assertTrue(isinstance(res.context["usage"], usage.GlobalUsage))
     self.assertContains(
         res,
         "Tenant,VCPUs,RamMB,DiskGB,Usage(Hours)\n"
         "%s,%s,%s,%s,%f"
         % (
             usage_obj.tenant_id,
             usage_obj.vcpus,
             usage_obj.memory_mb,
             usage_obj.disk_gb_hours,
             usage_obj.vcpu_hours,
         ),
     )
예제 #5
0
파일: tests.py 프로젝트: mshabdiz/horizon
 def test_usage_csv(self):
     now = timezone.now()
     usage_obj = api.nova.Usage(self.usages.first())
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True) \
                 .AndReturn(self.tenants.list())
     api.usage_list(IsA(http.HttpRequest),
                   datetime.datetime(now.year, now.month, 1, 0, 0, 0),
                   Func(usage.almost_now)) \
                   .AndReturn([usage_obj])
     self.mox.ReplayAll()
     csv_url = reverse('horizon:syspanel:overview:index') + "?format=csv"
     res = self.client.get(csv_url)
     self.assertTemplateUsed(res, 'syspanel/overview/usage.csv')
     self.assertTrue(isinstance(res.context['usage'], usage.GlobalUsage))
     self.assertContains(
         res, 'Tenant,VCPUs,RamMB,DiskGB,Usage(Hours)\n'
         '%s,%s,%s,%s,%f' %
         (usage_obj.tenant_id, usage_obj.vcpus, usage_obj.memory_mb,
          usage_obj.disk_gb_hours, usage_obj.vcpu_hours))
    def test_usage_list(self):
        usages = self.usages.list()

        novaclient = self.stub_novaclient()
        novaclient.usage = self.mox.CreateMockAnything()
        novaclient.usage.list('start', 'end', True).AndReturn(usages)
        self.mox.ReplayAll()

        ret_val = api.usage_list(self.request, 'start', 'end')
        for usage in ret_val:
            self.assertIsInstance(usage, api.Usage)
예제 #7
0
 def usage(self, datetime_start, datetime_end):
     try:
         self.usage_list = api.usage_list(self.request, datetime_start,
                 datetime_end)
     except api_exceptions.ApiException, e:
         self.usage_list = []
         LOG.exception('ApiException fetching usage list in instance usage'
                   ' on date range "%s to %s"' % (datetime_start,
                                                  datetime_end))
         messages.error(self.request,
                 _('Unable to get usage info: %s') % e.message)
         return
예제 #8
0
 def usage(self, datetime_start, datetime_end):
     try:
         self.usage_list = api.usage_list(self.request, datetime_start,
                                          datetime_end)
     except api_exceptions.ApiException, e:
         self.usage_list = []
         LOG.exception('ApiException fetching usage list in instance usage'
                       ' on date range "%s to %s"' %
                       (datetime_start, datetime_end))
         messages.error(self.request,
                        _('Unable to get usage info: %s') % e.message)
         return
예제 #9
0
 def test_usage_csv(self):
     now = datetime.datetime.utcnow()
     usage_obj = api.nova.Usage(self.usages.first())
     api.keystone.tenant_list(IsA(http.HttpRequest), admin=True) \
                 .AndReturn(self.tenants.list())
     api.usage_list(IsA(http.HttpRequest),
                   datetime.datetime(now.year, now.month, 1, 0, 0, 0),
                   datetime.datetime(now.year, now.month, now.day, now.hour,
                                     now.minute, now.second)) \
                   .AndReturn([usage_obj])
     self.mox.ReplayAll()
     csv_url = reverse('horizon:syspanel:overview:index') + "?format=csv"
     res = self.client.get(csv_url)
     self.assertTemplateUsed(res, 'syspanel/overview/usage.csv')
     self.assertTrue(isinstance(res.context['usage'], usage.GlobalUsage))
     self.assertContains(res, 'Tenant,VCPUs,RamMB,DiskGB,Usage(Hours)\n'
                         '%s,%s,%s,%s,%f' %
                         (usage_obj.tenant_id,
                          usage_obj.vcpus,
                          usage_obj.memory_mb,
                          usage_obj.disk_gb_hours,
                          usage_obj.vcpu_hours))
예제 #10
0
파일: views.py 프로젝트: pplu/horizon
 def usage(self, start, end):
     try:
         self.usage_list = api.usage_list(self.request, start, end)
     except:
         self.usage_list = []
         exceptions.handle(self.request,
                           _('Unable to retrieve usage information on date'
                             'range %(start)s to %(end)s' % {"start": start,
                                                             "end": end}))
     for usage in self.usage_list:
         for key in usage._attrs:
             val = getattr(usage, key)
             if isinstance(val, (float, int)):
                 self.summary.setdefault(key, 0)
                 self.summary[key] += val
예제 #11
0
파일: views.py 프로젝트: Willtech/horizon
    def usage(self, start, end):
        try:
            self.usage_list = api.usage_list(self.request, start, end)
        except:
            self.usage_list = []
            exceptions.handle(self.request,
                              _('Unable to retrieve usage information on date'
                                'range %(start)s to %(end)s' % {"start": start,
                                                                "end": end}))

        # List of attrs on the Usage object that we would like to summarize
        attrs = ['total_local_gb_usage', 'total_memory_mb_usage',
                 'total_active_memory_mb', 'total_vcpus_usage',
                 'total_active_instances']

        for attr in attrs:
            for usage in self.usage_list:
                self.summary.setdefault(attr, 0)
                self.summary[attr] += getattr(usage, attr)
 def get_usage_list(self, start, end):
     return api.usage_list(self.request, start, end)
예제 #13
0
 def get_usage_list(self, start, end):
     return api.usage_list(self.request, start, end)