[opennebula] add json, add helper functions
This commit is contained in:
		
					parent
					
						
							
								581865460b
							
						
					
				
			
			
				commit
				
					
						f588691f0d
					
				
			
		
					 2 changed files with 32 additions and 4 deletions
				
			
		| 
						 | 
					@ -32,7 +32,11 @@ class Command(BaseCommand):
 | 
				
			||||||
                    except get_user_model().DoesNotExist:
 | 
					                    except get_user_model().DoesNotExist:
 | 
				
			||||||
                        user = get_user_model().objects.create_user(username=vm_owner)
 | 
					                        user = get_user_model().objects.create_user(username=vm_owner)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    vm_object = VMModel.objects.create(vmid=vm_id, owner=user, data=vm)
 | 
					                    VMModel.objects.update_or_create(
 | 
				
			||||||
                    vm_object.save()
 | 
					                        defaults= { 'data': vm,
 | 
				
			||||||
 | 
					                                    'owner': user },
 | 
				
			||||||
 | 
					                        vmid=vm_id
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                print(response)
 | 
					                print(response)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,32 @@
 | 
				
			||||||
from django.db import models
 | 
					from django.db import models
 | 
				
			||||||
from django.contrib.auth import get_user_model
 | 
					from django.contrib.auth import get_user_model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.contrib.postgres.fields import JSONField
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class VM(models.Model):
 | 
					class VM(models.Model):
 | 
				
			||||||
    vmid = models.IntegerField()
 | 
					    vmid = models.IntegerField(primary_key=True)
 | 
				
			||||||
    owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
 | 
					    owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
 | 
				
			||||||
    data = models.CharField(max_length=65536, null=True)
 | 
					    data = JSONField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def cores(self):
 | 
				
			||||||
 | 
					        return self.data['TEMPLATE']['VCPU']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def ram_in_gb(self):
 | 
				
			||||||
 | 
					        return (int(self.data['TEMPLATE']['MEMORY'])/1024.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def disks(self):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        If there is no disk then the key DISK does not exist.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        If there is only one disk, we have a dictionary in the database.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        If there are multiple disks, we have a list of dictionaries in the database.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if not 'DISK' in self.data['TEMPLATE']['DISK']:
 | 
				
			||||||
 | 
					            return []
 | 
				
			||||||
 | 
					        elif type(self.data['TEMPLATE']['DISK']) is dict:
 | 
				
			||||||
 | 
					            return [ self.data['TEMPLATE']['DISK'] ]
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            return self.data['TEMPLATE']['DISK']
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue