Make VM order-able again

This commit is contained in:
fnux 2020-04-18 13:51:31 +02:00
commit a15952862a
3 changed files with 132 additions and 100 deletions

View file

@ -72,6 +72,7 @@ class VMProduct(Product):
primary_disk = models.ForeignKey('VMDiskProduct', on_delete=models.CASCADE, null=True)
# Default recurring price is PER_MONTH, see uncloud_pay.models.Product.
@property
def recurring_price(self):
return self.cores * 3 + self.ram_in_gb * 4
@ -153,17 +154,9 @@ class VMDiskProduct(Product):
def description(self):
return "Disk for VM '{}': {}GB".format(self.vm.name, self.size_in_gb)
# TODO: move magic numbers in variables
def recurring_price(self, recurring_period=RecurringPeriod.PER_MONTH):
# TODO: move magic numbers in variables
if recurring_period == RecurringPeriod.PER_MONTH:
return (self.size_in_gb / 10) * 3.5
if recurring_period == RecurringPeriod.PER_YEAR:
return recurring_price(self, recurring_period.PER_MONTH) * 12
if recurring_period == RecurringPeriod.PER_HOUR:
return recurring_price(self, recurring_period.PER_MONTH) / 25
else:
raise Exception('Invalid recurring period for VM Disk Product pricing.')
@property
def recurring_price(self):
return (self.size_in_gb / 10) * 3.5
# Sample code for clean method