Manual merge of ungleich/master into opennebula-integration
This commit is contained in:
		
					parent
					
						
							
								d10285e23d
							
						
					
				
			
			
				commit
				
					
						d537fcb118
					
				
			
		
					 227 changed files with 25686 additions and 482 deletions
				
			
		| 
						 | 
				
			
			@ -1,10 +1,50 @@
 | 
			
		|||
from django.db import models
 | 
			
		||||
 | 
			
		||||
# Create your models here.
 | 
			
		||||
 | 
			
		||||
class BetaAccessVMType(models.Model):
 | 
			
		||||
    ssd = models.IntegerField()
 | 
			
		||||
    ram = models.IntegerField()
 | 
			
		||||
    cpu = models.IntegerField()
 | 
			
		||||
    price = models.FloatField()
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "ID: %s - SSD %s - RAM %s - CPU %s - Price %s " % \
 | 
			
		||||
            (self.id, str(self.ssd), self.ram, self.cpu, self.price)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class BetaAccess(models.Model):
 | 
			
		||||
    email = models.CharField(max_length=250)
 | 
			
		||||
    name = models.CharField(max_length=250)
 | 
			
		||||
    # vm = models.ForeignKey(BetaAccessVM)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return self.email
 | 
			
		||||
        vms = self.betaaccessvm_set.all()
 | 
			
		||||
        rep = "Email: %s " % self.email
 | 
			
		||||
        for vm in vms:
 | 
			
		||||
            rep += "(vm:%s - amount:%s) - " % (vm.type.id, vm.amount)
 | 
			
		||||
        return rep
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class BetaAccessVM(models.Model):
 | 
			
		||||
    type = models.ForeignKey(BetaAccessVMType)
 | 
			
		||||
    access = models.ForeignKey(BetaAccess)
 | 
			
		||||
    amount = models.IntegerField()
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def create(cls, data):
 | 
			
		||||
        VM_KEY_ID = 0
 | 
			
		||||
        VM_AMOUNT = 1
 | 
			
		||||
        ZERO = 0
 | 
			
		||||
        email = data.get('email')
 | 
			
		||||
        beta_access = BetaAccess.objects.create(email=email)
 | 
			
		||||
        vm_data = [(key, value) for key, value in data.items() if 'vm' in key]
 | 
			
		||||
        created_vms = []
 | 
			
		||||
        for vm in vm_data:
 | 
			
		||||
            if int(vm[VM_AMOUNT]) == ZERO:
 | 
			
		||||
                continue
 | 
			
		||||
            vm_id = vm[VM_KEY_ID].split('-').pop()
 | 
			
		||||
            vm_type = BetaAccessVMType.objects.get(id=vm_id)
 | 
			
		||||
            created_vms.append(cls.objects.create(access=beta_access,
 | 
			
		||||
                                                  amount=vm[VM_AMOUNT], type=vm_type))
 | 
			
		||||
 | 
			
		||||
        return created_vms
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue