def _PUT(self, *param, **params): (host_id, guest_id) = self.chk_guestby1(param) if guest_id is None: return web.notfound() snapshot_id = param[2] if not validates_param_id(self, snapshot_id): return web.notfound(self.view.alert) if not validates_snapshot(self): return web.badrequest(self.view.alert) guest = m_findbyguest1(self.orm, guest_id) if not guest: return web.notfound() snapshot = s_findbyname_guestby1(self.orm, snapshot_id, guest_id) if not snapshot: notebook = new_notebook(self.input.title, self.input.value) snapshot = new_snapshot(guest, int(snapshot_id), self.me, self.me, notebook) save_snapshot(self.orm, snapshot) else: snapshot.notebook.title = self.input.title snapshot.notebook.value = self.input.value return web.seeother(web.ctx.path)
def _GET(self, *param, **params): (host_id, guest_id) = self.chk_guestby1(param) if guest_id is None: return web.notfound() snapshot_id = param[2] if not validates_param_id(self, snapshot_id): return web.notfound(self.view.alert) guest = m_findbyguest1(self.orm, guest_id) if not guest: return web.notfound() kvs = KaresansuiVirtSnapshot(readonly=False) snapshot_list = [] try: domname = kvs.kvc.uuid_to_domname(guest.uniq_key) if not domname: return web.notfound() self.view.is_creatable = kvs.isSupportedDomain(domname) try: snapshot_list = kvs.listNames(domname)[domname] except: pass parent_name = kvs.getParentName(snapshot_id,domain=domname) if parent_name is None: parent_name = _('None') children_names = kvs.getChildrenNames(snapshot_id,domain=domname) if len(children_names) == 0: children_name = _('None') else: children_name = ",".join(children_names) model = s_findbyname_guestby1(self.orm, snapshot_id, guest_id) if model is None: name = snapshot_id notebook_title = "" notebook_value = "" created_user = _("N/A") created = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(snapshot_id))) modified_user = _("N/A") modified = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(snapshot_id))) else: name = model.name notebook_title = model.notebook.title notebook_value = model.notebook.value created_user = model.created_user.nickname created = model.created modified_user = model.modified_user.nickname modified = model.modified current_snapshot = kvs.getCurrentSnapshotName(domname) current = False if snapshot_id == current_snapshot: current = True finally: kvs.finish() if not snapshot_id in snapshot_list: self.logger.error(_("The specified snapshot does not exist. - %s") % snapshot_id) return web.notfound() if self.__template__["media"] == 'json': self.view.snapshot = json_dumps(( snapshot_id, notebook_title, notebook_value, domname, created_user, created, modified_user, modified, current, parent_name, children_name, )) else: self.view.snapshot = (snapshot_id, notebook_title, notebook_value, domname, created_user, created, modified_user, modified, current, parent_name, children_name, ) return True
def _DELETE(self, *param, **params): (host_id, guest_id) = self.chk_guestby1(param) if guest_id is None: return web.notfound() snapshot_id = param[2] if not validates_param_id(self, snapshot_id): return web.notfound(self.view.alert) guest = m_findbyguest1(self.orm, guest_id) if not guest: return web.notfound() kvs = KaresansuiVirtSnapshot(readonly=False) snapshot_list = [] try: domname = kvs.kvc.uuid_to_domname(guest.uniq_key) if not domname: return web.notfound() self.view.is_creatable = kvs.isSupportedDomain(domname) try: snapshot_list = kvs.listNames(domname)[domname] except: pass current_snapshot = kvs.getCurrentSnapshotName(domname) finally: kvs.finish() if not snapshot_id in snapshot_list: self.logger.error(_("The specified snapshot does not exist. - %s") % snapshot_id) return web.notfound() # delete action_cmd = dict2command( "%s/%s" % (karesansui.config['application.bin.dir'], VIRT_COMMAND_DELETE_SNAPSHOT), {"name" : domname, "id" : snapshot_id}) cmdname = 'Delete Snapshot' _jobgroup = JobGroup(cmdname, karesansui.sheconf['env.uniqkey']) _job = Job('%s command' % cmdname, 0, action_cmd) _jobgroup.jobs.append(_job) _machine2jobgroup = m2j_new(machine=guest, jobgroup_id=-1, uniq_key=karesansui.sheconf['env.uniqkey'], created_user=self.me, modified_user=self.me, ) save_job_collaboration(self.orm, self.pysilhouette.orm, _machine2jobgroup, _jobgroup, ) snapshot = s_findbyname_guestby1(self.orm, snapshot_id, guest_id) if snapshot: logical_delete(self.orm, snapshot) return web.accepted()
def _DELETE(self, *param, **params): (host_id, guest_id) = self.chk_guestby1(param) if guest_id is None: return web.notfound() snapshot_id = param[2] if not validates_param_id(self, snapshot_id): return web.notfound(self.view.alert) guest = m_findbyguest1(self.orm, guest_id) if not guest: return web.notfound() kvs = KaresansuiVirtSnapshot(readonly=False) snapshot_list = [] try: domname = kvs.kvc.uuid_to_domname(guest.uniq_key) if not domname: return web.notfound() self.view.is_creatable = kvs.isSupportedDomain(domname) try: snapshot_list = kvs.listNames(domname)[domname] except: pass current_snapshot = kvs.getCurrentSnapshotName(domname) finally: kvs.finish() if not snapshot_id in snapshot_list: self.logger.error( _("The specified snapshot does not exist. - %s") % snapshot_id) return web.notfound() # delete action_cmd = dict2command( "%s/%s" % (karesansui.config['application.bin.dir'], VIRT_COMMAND_DELETE_SNAPSHOT), { "name": domname, "id": snapshot_id }) cmdname = "Delete Snapshot" _jobgroup = JobGroup(cmdname, karesansui.sheconf['env.uniqkey']) _job = Job('%s command' % cmdname, 0, action_cmd) _jobgroup.jobs.append(_job) _machine2jobgroup = m2j_new( machine=guest, jobgroup_id=-1, uniq_key=karesansui.sheconf['env.uniqkey'], created_user=self.me, modified_user=self.me, ) save_job_collaboration( self.orm, self.pysilhouette.orm, _machine2jobgroup, _jobgroup, ) snapshot = s_findbyname_guestby1(self.orm, snapshot_id, guest_id) if snapshot: logical_delete(self.orm, snapshot) return web.accepted()
def _GET(self, *param, **params): (host_id, guest_id) = self.chk_guestby1(param) if guest_id is None: return web.notfound() snapshot_id = param[2] if not validates_param_id(self, snapshot_id): return web.notfound(self.view.alert) guest = m_findbyguest1(self.orm, guest_id) if not guest: return web.notfound() kvs = KaresansuiVirtSnapshot(readonly=False) snapshot_list = [] try: domname = kvs.kvc.uuid_to_domname(guest.uniq_key) if not domname: return web.notfound() self.view.is_creatable = kvs.isSupportedDomain(domname) try: snapshot_list = kvs.listNames(domname)[domname] except: pass parent_name = kvs.getParentName(snapshot_id, domain=domname) if parent_name is None: parent_name = _('None') children_names = kvs.getChildrenNames(snapshot_id, domain=domname) if len(children_names) == 0: children_name = _('None') else: children_name = ",".join(children_names) model = s_findbyname_guestby1(self.orm, snapshot_id, guest_id) if model is None: name = snapshot_id notebook_title = "" notebook_value = "" created_user = _("N/A") created = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(snapshot_id))) modified_user = _("N/A") modified = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(snapshot_id))) else: name = model.name notebook_title = model.notebook.title notebook_value = model.notebook.value created_user = model.created_user.nickname created = model.created modified_user = model.modified_user.nickname modified = model.modified current_snapshot = kvs.getCurrentSnapshotName(domname) current = False if snapshot_id == current_snapshot: current = True finally: kvs.finish() if not snapshot_id in snapshot_list: self.logger.error( _("The specified snapshot does not exist. - %s") % snapshot_id) return web.notfound() if self.__template__["media"] == 'json': self.view.snapshot = json_dumps(( snapshot_id, notebook_title, notebook_value, domname, created_user, created, modified_user, modified, current, parent_name, children_name, )) else: self.view.snapshot = ( snapshot_id, notebook_title, notebook_value, domname, created_user, created, modified_user, modified, current, parent_name, children_name, ) return True