diff --git a/yuyu/cases/flavor_price_use_case.py b/yuyu/cases/flavor_price_use_case.py index f0755ad..618dbc8 100644 --- a/yuyu/cases/flavor_price_use_case.py +++ b/yuyu/cases/flavor_price_use_case.py @@ -20,7 +20,7 @@ class FlavorPriceUseCase(PricingUseCase): def get(self, request, id): data = super().get(request, id) try: - flavor = api.nova.flavor_get(request, d['flavor_id']) + flavor = api.nova.flavor_get(request, data['flavor_id']) data["name"] = flavor.name except Exception: data["name"] = 'Invalid Flavor' diff --git a/yuyu/cases/invoice_use_case.py b/yuyu/cases/invoice_use_case.py index 6847485..5177b84 100644 --- a/yuyu/cases/invoice_use_case.py +++ b/yuyu/cases/invoice_use_case.py @@ -13,7 +13,6 @@ class InvoiceUseCase: response = yuyu_client.get(request, f"invoice/simple_list/?tenant_id={tenant_id}") data = response.json() - print(data) for d in data: zero_money = Money(amount=0, currency=d['subtotal_currency']) d['start_date'] = dateutil.parser.isoparse(d['start_date']) diff --git a/yuyu/cases/volume_price_use_case.py b/yuyu/cases/volume_price_use_case.py index 5322ee0..4f2113c 100644 --- a/yuyu/cases/volume_price_use_case.py +++ b/yuyu/cases/volume_price_use_case.py @@ -9,13 +9,19 @@ class VolumePriceUseCase(PricingUseCase): data = list(super().list(request)) for d in data: - d["name"] = api.cinder.volume_type_get(request, d['volume_type_id']).name + try: + d["name"] = api.cinder.volume_type_get(request, d['volume_type_id']).name + except Exception: + d["name"] = 'Invalid Volume' return data def get(self, request, id): data = super().get(request, id) - data["name"] = api.cinder.volume_type_get(request, data['volume_type_id']).name + try: + data["name"] = api.cinder.volume_type_get(request, data['volume_type_id']).name + except Exception: + data["name"] = 'Invalid Volume' return data def has_missing_price(self, request): diff --git a/yuyu/core/pricing_admin/tables.py b/yuyu/core/pricing_admin/tables.py index 15ed7ae..9998f44 100644 --- a/yuyu/core/pricing_admin/tables.py +++ b/yuyu/core/pricing_admin/tables.py @@ -12,6 +12,8 @@ class BaseCreatePrice(tables.LinkAction): def allowed(self, request, datum): if self.single_data and len(self.table.data) >= 1: self.classes = [c for c in self.classes] + ['hidden'] + else: + self.classes = [c for c in self.classes if c != 'hidden'] return True diff --git a/yuyu/project/usage_cost/views.py b/yuyu/project/usage_cost/views.py index 6df96de..d9bda72 100644 --- a/yuyu/project/usage_cost/views.py +++ b/yuyu/project/usage_cost/views.py @@ -50,12 +50,18 @@ class IndexView(tables.MultiTableView): context['invoice'] = self.request.invoice return context + def _get_flavor_name(self, flavor_id): + try: + return api.nova.flavor_get(self.request, flavor_id).name + except Exception: + return 'Invalid Flavor' + def get_instance_cost_data(self): try: datas = map(lambda x: { "id": x['id'], "name": x['name'], - "flavor": api.nova.flavor_get(self.request, x['flavor_id']).name, + "flavor": self._get_flavor_name(x['flavor_id']), "usage": timesince( dateutil.parser.isoparse(x['start_date']), dateutil.parser.isoparse(x['adjusted_end_date']) @@ -70,6 +76,12 @@ class IndexView(tables.MultiTableView): return [] + def _get_volume_name(self, volume_type_id): + try: + return api.cinder.volume_type_get(self.request, volume_type_id).name + except Exception: + return 'Invalid Volume' + def get_volume_cost_data(self): try: datas = map(lambda x: { @@ -79,7 +91,7 @@ class IndexView(tables.MultiTableView): dateutil.parser.isoparse(x['start_date']), dateutil.parser.isoparse(x['adjusted_end_date']) ), - 'type': api.cinder.volume_type_get(self.request, x['volume_type_id']).name, + 'type': self._get_volume_name(x['volume_type_id']), 'size': x['space_allocation_gb'], "cost": Money(amount=x['price_charged'], currency=x['price_charged_currency']) }, self.request.invoice.get('volumes', []))