
From: Royce Lv <lvroyce@linux.vnet.ibm.com> Update controller and API.json for cdrom. Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> --- src/kimchi/API.json | 16 ++++++++++++++++ src/kimchi/control/vms.py | 22 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/kimchi/API.json b/src/kimchi/API.json index 3a3c48f..feb0c82 100644 --- a/src/kimchi/API.json +++ b/src/kimchi/API.json @@ -103,6 +103,22 @@ } } }, + "cdroms_create": { + "type": "object", + "properties": { + "name": { + "description": "The name of the new VM", + "type": "string", + "pattern": "^hd[b-z]$", + "required": true + }, + "path": { + "description": "Path of image file inserted to the CDROM", + "type": "string", + "pattern": "^((/)|(http)[s]?:|[t]?(ftp)[s]?:)+.*([.]iso)$" + } + } + }, "networks_create": { "type": "object", "properties": { diff --git a/src/kimchi/control/vms.py b/src/kimchi/control/vms.py index d722920..51a18c1 100644 --- a/src/kimchi/control/vms.py +++ b/src/kimchi/control/vms.py @@ -37,6 +37,7 @@ class VM(Resource): super(VM, self).__init__(model, ident) self.update_params = ["name"] self.screenshot = VMScreenShot(model, ident) + self.cdroms = CDROMs(model, ident) self.uri_fmt = '/vms/%s' self.start = self.generate_action_handler('start') self.stop = self.generate_action_handler('stop') @@ -63,3 +64,24 @@ class VMScreenShot(Resource): def get(self): self.lookup() raise internal_redirect(self.info) + + +class CDROMs(Collection): + def __init__(self, model, vm): + super(CDROMs, self).__init__(model) + self.resource = CDROM + self.vm = vm + self.resource_args = [self.vm, ] + self.model_args = [self.vm, ] + + +class CDROM(Resource): + def __init__(self, model, vm, ident): + super(CDROM, self).__init__(model, ident) + self.vm = vm + self.model_args = [self.vm, self.ident] + self.uri_fmt = '/vms/%s/cdroms/%s' + + @property + def data(self): + return self.info -- 1.8.1.2