cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
src.cm.models.vm.VM Class Reference

vm Model Virtual machine class More...

Classes

class  Meta

Public Member Functions

def __unicode__
def attach_vnc
def cpu_load
def delete
 Method releases resources taken by deleted ex VM.
def detach_vnc
def dict
def is_farm
def is_head
def iso_images
def libvirt_template
def long_dict
def lv_destroy
 Method destroyes VM by libvirt.
def lv_domain
 Connects to Libvirt and returns its domain.
def network_template
def path
def release_resources
 Method releases node's resources.
def remove
def save_image
 Method saves VM to image with VM's name, description and parameters.
def set_state
def storage_images

Static Public Member Functions

def admin_get
def create
def destroy
def erase
 Remove all after-effects of the failed vm and free the resources.
def get
def get_by_ip
def reset
def save_and_shutdown

Public Attributes

 iso_image
 save_vm
 state
 stop_time
 vnc_enabled

Static Public Attributes

tuple ctx_api_version = models.CharField(max_length=10, null=True, blank=True)
tuple ctx_key = models.CharField(max_length=128, null=True, blank=True)
tuple description = models.TextField(null=True, blank=True)
tuple farm = models.ForeignKey(Farm, related_name='vms', null=True)
tuple hostname = models.CharField(max_length=256, null=True, blank=True)
tuple iso_image = models.ForeignKey(IsoImage, null=True, blank=True)
tuple libvirt_id = models.IntegerField()
tuple name = models.CharField(max_length=128)
tuple node = models.ForeignKey(Node)
tuple novnc_port = models.IntegerField(default=0)
tuple reservation_id = models.IntegerField(default=0)
tuple save_vm = models.IntegerField()
tuple ssh_key = models.TextField(null=True, blank=True)
tuple ssh_username = models.CharField(max_length=45, null=True, blank=True)
tuple start_time = models.DateTimeField()
tuple state = models.IntegerField()
tuple stop_time = models.DateTimeField(null=True, blank=True)
tuple system_image = models.ForeignKey(SystemImage)
tuple template = models.ForeignKey(Template)
tuple user = models.ForeignKey(User)
tuple user_data = models.CharField(max_length=32768, null=True, blank=True)
tuple vnc_enabled = models.IntegerField(default=0)
tuple vnc_passwd = models.CharField(max_length=45)
tuple vnc_port = models.IntegerField()

Detailed Description

vm Model Virtual machine class

Virtual Machines creation and management are the main features of the CC1 system. They make use of the node's CPU (Node) to emulate physical hardware. They should be considered as remote workstations with operating system (VMImage) running on them.

VM may be created and further saved to VMImage or destroyed irrevocably.

VM may have plugged resources of several types, so that it's functionality and access to it are extended.

Definition at line 69 of file vm.py.

Member Function Documentation

def src.cm.models.vm.VM.__unicode__ (   self)

Definition at line 100 of file vm.py.

def src.cm.models.vm.VM.admin_get (   vm_id)
static
Parameters
vm_id(int) id of the requested VM
Returns
(VM) requested VM instance
Exceptions
CMException('vm_get')no such VM

Definition at line 463 of file vm.py.

def src.cm.models.vm.VM.attach_vnc (   self,
  reattach = False 
)

Definition at line 904 of file vm.py.

def src.cm.models.vm.VM.cpu_load (   self)

Definition at line 809 of file vm.py.

def src.cm.models.vm.VM.create (   user,
  name,
  description,
  image_id,
  template_id,
  public_ip_id,
  iso_list,
  disk_list,
  vnc,
  groups,
  ssh_key = None,
  ssh_username = None,
  count = 1,
  farm = None,
  head_template_id = None,
  node_id = False,
  lease_id = None,
  user_data = None 
)
static

Definition at line 217 of file vm.py.

def src.cm.models.vm.VM.delete (   self)

Method releases resources taken by deleted ex VM.

Definition at line 611 of file vm.py.

def src.cm.models.vm.VM.destroy (   vms)
static
     @param vms
     @returns HttpResponse with JSON content: 
  • response: response status,
  • data: result

Definition at line 823 of file vm.py.

def src.cm.models.vm.VM.detach_vnc (   self)

Definition at line 928 of file vm.py.

def src.cm.models.vm.VM.dict (   self)
Returns
(dict) this VM's data
fields:
  • id (int)
  • user_id (int)
  • name (string)
  • state (int) see also: src.common.states.vm_states
  • leases (list(dict))
  • image_name (string)
  • template_name (string)
  • platform (string)
  • description (string)
  • vnc_endpoint (int)
  • vnc_enabled (bool)
  • vnc_passwd (string)
  • iso_images (list(dict))
  • storage_images (list(dict))
  • cpu_load (int)

Definition at line 124 of file vm.py.

def src.cm.models.vm.VM.erase (   vm)
static

Remove all after-effects of the failed vm and free the resources.

Definition at line 758 of file vm.py.

def src.cm.models.vm.VM.get (   user_id,
  vm_id 
)
static
Parameters
user_id(int) declared owner of the VM
vm_id(int) id of the requested VM
Returns
(VM) requested VM instance, if it belongs to declared owner
Exceptions
CMException('vm_get')no such VM
CMException('user_permission')requested VM doesn't belong to declared User.

Definition at line 443 of file vm.py.

def src.cm.models.vm.VM.get_by_ip (   ip)
static

Definition at line 880 of file vm.py.

def src.cm.models.vm.VM.is_farm (   self)

Definition at line 384 of file vm.py.

def src.cm.models.vm.VM.is_head (   self)

Definition at line 381 of file vm.py.

def src.cm.models.vm.VM.iso_images (   self)
     @returns <i>(\c CDImage)</i> vm's iso images

     @exception CMException('iso_image_attach')@verbatim 

letter = ord('a') for img in images: img.disk_dev = 'srs' % chr(letter) letter += 1

Definition at line 678 of file vm.py.

def src.cm.models.vm.VM.libvirt_template (   self)
Returns
(string) Libvirt XML template

Definition at line 392 of file vm.py.

def src.cm.models.vm.VM.long_dict (   self)
Returns
(dict) this VM's extended data
fields:
  • id (int)
  • user_id (int)
  • name (string)
  • state (int) see also: src.common.states.command_states
  • leases (list(dict))
  • image_name (string)
  • template_name (string)
  • platform (string)
  • description (string)
  • vnc_endpoint (int)
  • vnc_enabled (bool)
  • vnc_passwd (string)
  • start_time (datetime.datetime)
  • node (string) node's address
  • libvirt_id (int)
  • ssh_username (string)
  • ssh_key (string)
  • iso_images (list(dict))
  • storage_images (list(dict))
  • cpu_load (int)
  • reservation_id (int)
  • user_data (string)

Definition at line 178 of file vm.py.

def src.cm.models.vm.VM.lv_destroy (   self)

Method destroyes VM by libvirt.

Definition at line 602 of file vm.py.

def src.cm.models.vm.VM.lv_domain (   self)

Connects to Libvirt and returns its domain.

Returns
Libvirt domain
Exceptions
CMException('vm_get_lv_domain')

Definition at line 645 of file vm.py.

def src.cm.models.vm.VM.network_template (   self)
Returns
(string) Libvirt network XML template

Definition at line 412 of file vm.py.

def src.cm.models.vm.VM.path (   self)
Returns
(string) path to this VM on the Storage

Definition at line 373 of file vm.py.

def src.cm.models.vm.VM.release_resources (   self)

Method releases node's resources.

Definition at line 566 of file vm.py.

def src.cm.models.vm.VM.remove (   self)

Definition at line 528 of file vm.py.

def src.cm.models.vm.VM.reset (   vms)
static

Definition at line 890 of file vm.py.

def src.cm.models.vm.VM.save_and_shutdown (   user_id,
  vm,
  name,
  description 
)
static

Definition at line 948 of file vm.py.

def src.cm.models.vm.VM.save_image (   self)

Method saves VM to image with VM's name, description and parameters.

Definition at line 477 of file vm.py.

def src.cm.models.vm.VM.set_state (   self,
  state 
)
Parameters
state(string) new state for entity, value in 'turned off', 'restart', 'running', 'running ctx', 'turned off', 'saving', 'closing', 'init', 'closed', 'saving failed', 'failed', 'suspend', 'ereased'
Exceptions
CMException('vm_wrong_state')

Definition at line 704 of file vm.py.

def src.cm.models.vm.VM.storage_images (   self)
Returns
(StorageImage) vm's storage images
Exceptions
CMException('storage_image_attach')

Definition at line 668 of file vm.py.

Member Data Documentation

tuple src.cm.models.vm.VM.ctx_api_version = models.CharField(max_length=10, null=True, blank=True)
static

Definition at line 81 of file vm.py.

tuple src.cm.models.vm.VM.ctx_key = models.CharField(max_length=128, null=True, blank=True)
static

Definition at line 80 of file vm.py.

tuple src.cm.models.vm.VM.description = models.TextField(null=True, blank=True)
static

Definition at line 86 of file vm.py.

tuple src.cm.models.vm.VM.farm = models.ForeignKey(Farm, related_name='vms', null=True)
static

Definition at line 88 of file vm.py.

tuple src.cm.models.vm.VM.hostname = models.CharField(max_length=256, null=True, blank=True)
static

Definition at line 89 of file vm.py.

tuple src.cm.models.vm.VM.iso_image = models.ForeignKey(IsoImage, null=True, blank=True)
static

Definition at line 75 of file vm.py.

src.cm.models.vm.VM.iso_image

Definition at line 589 of file vm.py.

tuple src.cm.models.vm.VM.libvirt_id = models.IntegerField()
static

Definition at line 76 of file vm.py.

tuple src.cm.models.vm.VM.name = models.CharField(max_length=128)
static

Definition at line 70 of file vm.py.

tuple src.cm.models.vm.VM.node = models.ForeignKey(Node)
static

Definition at line 71 of file vm.py.

tuple src.cm.models.vm.VM.novnc_port = models.IntegerField(default=0)
static

Definition at line 91 of file vm.py.

tuple src.cm.models.vm.VM.reservation_id = models.IntegerField(default=0)
static

Definition at line 93 of file vm.py.

tuple src.cm.models.vm.VM.save_vm = models.IntegerField()
static

Definition at line 87 of file vm.py.

src.cm.models.vm.VM.save_vm

Definition at line 490 of file vm.py.

tuple src.cm.models.vm.VM.ssh_key = models.TextField(null=True, blank=True)
static

Definition at line 84 of file vm.py.

tuple src.cm.models.vm.VM.ssh_username = models.CharField(max_length=45, null=True, blank=True)
static

Definition at line 85 of file vm.py.

tuple src.cm.models.vm.VM.start_time = models.DateTimeField()
static

Definition at line 78 of file vm.py.

tuple src.cm.models.vm.VM.state = models.IntegerField()
static

Definition at line 77 of file vm.py.

src.cm.models.vm.VM.state

Definition at line 729 of file vm.py.

tuple src.cm.models.vm.VM.stop_time = models.DateTimeField(null=True, blank=True)
static

Definition at line 79 of file vm.py.

src.cm.models.vm.VM.stop_time

Definition at line 631 of file vm.py.

tuple src.cm.models.vm.VM.system_image = models.ForeignKey(SystemImage)
static

Definition at line 74 of file vm.py.

tuple src.cm.models.vm.VM.template = models.ForeignKey(Template)
static

Definition at line 73 of file vm.py.

tuple src.cm.models.vm.VM.user = models.ForeignKey(User)
static

Definition at line 72 of file vm.py.

tuple src.cm.models.vm.VM.user_data = models.CharField(max_length=32768, null=True, blank=True)
static

Definition at line 94 of file vm.py.

tuple src.cm.models.vm.VM.vnc_enabled = models.IntegerField(default=0)
static

Definition at line 92 of file vm.py.

src.cm.models.vm.VM.vnc_enabled

Definition at line 568 of file vm.py.

tuple src.cm.models.vm.VM.vnc_passwd = models.CharField(max_length=45)
static

Definition at line 82 of file vm.py.

tuple src.cm.models.vm.VM.vnc_port = models.IntegerField()
static

Definition at line 90 of file vm.py.


The documentation for this class was generated from the following file: