bug fixing

This commit is contained in:
Setyo Nugroho 2022-06-10 14:10:14 +07:00
parent 9019084cca
commit a07a67419f
4 changed files with 23 additions and 10 deletions

View file

@ -11,7 +11,7 @@ from openstack_dashboard.dashboards.yuyu.core.pricing_admin.forms import BasePri
class FlavorPriceForm(BasePriceForm): class FlavorPriceForm(BasePriceForm):
flavor = forms.ThemableChoiceField(label=_("Flavor")) flavor = forms.ThemableChoiceField(label=_("Flavor"), required=True)
USE_CASE = FlavorPriceUseCase() USE_CASE = FlavorPriceUseCase()
NAME = "Flavor Price" NAME = "Flavor Price"
@ -29,7 +29,7 @@ class FlavorPriceForm(BasePriceForm):
class VolumePriceForm(BasePriceForm): class VolumePriceForm(BasePriceForm):
volume_type = forms.ThemableChoiceField(label=_("Volume Type")) volume_type = forms.ThemableChoiceField(label=_("Volume Type"), required=True)
USE_CASE = VolumePriceUseCase() USE_CASE = VolumePriceUseCase()
NAME = "Volume Price" NAME = "Volume Price"
@ -60,6 +60,7 @@ class SnapshotPriceForm(BasePriceForm):
USE_CASE = SnapshotPriceUseCase() USE_CASE = SnapshotPriceUseCase()
NAME = "Snapshot Price" NAME = "Snapshot Price"
class ImagePriceForm(BasePriceForm): class ImagePriceForm(BasePriceForm):
USE_CASE = ImagePriceUseCase() USE_CASE = ImagePriceUseCase()
NAME = "Image Price" NAME = "Image Price"

View file

@ -59,7 +59,7 @@ class FlavorPriceAddFormView(forms.ModalFormView):
added_ids = [] added_ids = []
flavors = [] flavors = []
try: try:
added_ids = map(lambda x: x['flavor_id'], self.flavor_price_uc.list(self.request)) added_ids = list(map(lambda x: x['flavor_id'], self.flavor_price_uc.list(self.request)))
flavors = api.nova.flavor_list(self.request) flavors = api.nova.flavor_list(self.request)
except neutron_exc.ConnectionFailed: except neutron_exc.ConnectionFailed:
exceptions.handle(self.request) exceptions.handle(self.request)
@ -73,7 +73,7 @@ class FlavorPriceAddFormView(forms.ModalFormView):
flavor_list.append((flavor.id, flavor.name)) flavor_list.append((flavor.id, flavor.name))
if not flavor_list: if not flavor_list:
flavor_list = [(None, _("No flavors available"))] flavor_list = [('', _("No flavors available"))]
return {'flavor_list': flavor_list} return {'flavor_list': flavor_list}
@ -131,7 +131,7 @@ class VolumePriceAddFormView(forms.ModalFormView):
added_ids = [] added_ids = []
volumes = [] volumes = []
try: try:
added_ids = map(lambda x: x['volume_type_id'], self.volume_price_uc.list(self.request)) added_ids = list(map(lambda x: x['volume_type_id'], self.volume_price_uc.list(self.request)))
volumes = api.cinder.volume_type_list(self.request) volumes = api.cinder.volume_type_list(self.request)
except neutron_exc.ConnectionFailed: except neutron_exc.ConnectionFailed:
exceptions.handle(self.request) exceptions.handle(self.request)
@ -145,7 +145,7 @@ class VolumePriceAddFormView(forms.ModalFormView):
volume_list.append((d.id, d.name)) volume_list.append((d.id, d.name))
if not volume_list: if not volume_list:
volume_list = [(None, _("No volume type available"))] volume_list = [('', _("No volume type available"))]
return {'volume_type_list': volume_list} return {'volume_type_list': volume_list}

View file

@ -115,12 +115,24 @@ class UsageCostView(tables.MultiTableView):
context['invoice'] = self.request.invoice context['invoice'] = self.request.invoice
return context 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_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_instance_cost_data(self): def get_instance_cost_data(self):
try: try:
datas = map(lambda x: { datas = map(lambda x: {
"id": x['id'], "id": x['id'],
"name": x['name'], "name": x['name'],
"flavor": api.nova.flavor_get(self.request, x['flavor_id']).name, "flavor": self._get_flavor_name(x['flavor_id']),
"usage": timesince( "usage": timesince(
dateutil.parser.isoparse(x['start_date']), dateutil.parser.isoparse(x['start_date']),
dateutil.parser.isoparse(x['adjusted_end_date']) dateutil.parser.isoparse(x['adjusted_end_date'])
@ -144,7 +156,7 @@ class UsageCostView(tables.MultiTableView):
dateutil.parser.isoparse(x['start_date']), dateutil.parser.isoparse(x['start_date']),
dateutil.parser.isoparse(x['adjusted_end_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'], 'size': x['space_allocation_gb'],
"cost": Money(amount=x['price_charged'], currency=x['price_charged_currency']) "cost": Money(amount=x['price_charged'], currency=x['price_charged_currency'])
}, self.request.invoice.get('volumes', [])) }, self.request.invoice.get('volumes', []))

View file

@ -8,8 +8,8 @@ from horizon import messages
class BasePriceForm(forms.SelfHandlingForm): class BasePriceForm(forms.SelfHandlingForm):
hourly_price = MoneyField(label=_("Hourly Price")) hourly_price = MoneyField(label=_("Hourly Price"), min_value=0, max_digits=10)
monthly_price = MoneyField(label=_("Monthly Price"), required=False) monthly_price = MoneyField(label=_("Monthly Price"), min_value=0, max_digits=10, required=False)
USE_CASE: PricingUseCase = None USE_CASE: PricingUseCase = None
NAME = "" NAME = ""