def _perform_delete_action(self, context, ident): if context == 'package': debug(context, ident) #package, action = ident.split('|') package = ident # right now we delete all actions with the package action = None debug('delete package', package, action) self.doc.trait.delete_package(package, action) self.resetView() elif context == 'template': debug(context, ident) ans = KMessageBox.questionYesNo(self, "%s: really delete this template?" % ident) if ans == KMessageBox.Yes: template = self._convert_template_id(ident) self.doc.trait.delete_template(template) self.resetView() elif context == 'script': debug(context, ident) ans = KMessageBox.questionYesNo(self, "Really delete the %s script?" % ident) if ans == KMessageBox.Yes: self.doc.trait.delete_script(ident) self.resetView() else: raise RuntimeError , '%s context not implemented' % context
def _perform_delete_action(self, context, ident): if context == 'package': debug(context, ident) #package, action = ident.split('|') package = ident # right now we delete all actions with the package action = None debug('delete package', package, action) self.doc.trait.delete_package(package, action) self.resetView() elif context == 'template': debug(context, ident) ans = KMessageBox.questionYesNo(self, "%s: really delete this template?" % ident) if ans == KMessageBox.Yes: template = ident self.doc.trait.delete_template(template) self.resetView() elif context == 'script': debug(context, ident) ans = KMessageBox.questionYesNo(self, "Really delete the %s script?" % ident) if ans == KMessageBox.Yes: self.doc.trait.delete_script(ident) self.resetView() else: raise RuntimeError , '%s context not implemented' % context
def setSource(self, url): action, context, ident = split_url(url) if action == 'edit': if context == 'variables': config = self.family.getVariablesConfig(self.family.current) newconfig = config.edit() config.update(newconfig) self.set_family(ident) elif context == 'parents': dialog = FamilyParentAssigner(self, ident) dialog.connect(dialog, SIGNAL('okClicked()'), self.resetView) dialog.show() else: KMessageBox.error(self, 'unable to edit %s for family' % context) elif action == 'delete': if context == 'family': #KMessageBox.information(self, 'delete family %s is unimplemented' % ident) msg = "Really delete family %s" % ident answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: self.family.delete_family(ident) msg = "family %s deleted" % ident KMessageBox.information(self, msg) self.parent().parent().refreshListView() self.setText('') else: KMessageBox.error(self, 'unable to delete %s for family' % context) else: KMessageBox.error(self, 'action %s unimpletmented' % url)
def slotSave(self): profile = self.current_profile msg = 'Save profile %s?' % profile ans = KMessageBox.questionYesNo(self, msg, 'Save Profile') if ans == KMessageBox.Yes: self.mainView.save_profile(profile) elif ans == KMessageBox.No: print KMessageBox.information(self, 'Declined to save profile %s' % profile) else: print ans
def _perform_edit_action(self, context, ident): if context == 'templates': if self._current_tarball is None: self.selectSystemTarballDialog() else: msg = 'use %s as the current tarball?' % self._current_tarball yesno = KMessageBox.questionYesNo(self, msg) if yesno == KMessageBox.Yes: self.selectWithinSystemTarballDialog(self._current_tarball) else: self._current_tarball = None self.selectSystemTarballDialog() elif context == 'packages': raise RuntimeError, 'packages not implemented yet' elif context == 'script': self.doc.trait.edit_script(ident) elif context == 'parents': win = ParentAssigner(self, ident, self.doc.suite) win.connect(win, SIGNAL('okClicked()'), self.resetView) win.show() elif context == 'variables': #KMessageBox.information(self, 'edit variables') debug('edit variables', ident) win = TraitVariablesWindow(self, self.doc.suite, ident) win.show() elif context == 'template': template = ident self.doc.trait.edit_template(template) elif context == 'templatedata': template = ident row = self.doc.trait.get_template_row(template) data = {} fields = ['template', 'owner', 'grp_owner', 'mode'] for f in fields: data[f] = row[f] win = BaseRecordDialog(self, fields, record=data) win.template = template win.connect(win, SIGNAL('okClicked()'), self.slotUpdateTemplateData) win.show() self._dialog = win elif context == 'description': #KMessageBox.information(self, 'edit description for %s' % ident) win = TraitDescriptionWindow(self, ident, self.doc.suite) win.show() else: raise MethodNotImplementedError(self, 'TraitView._perform_edit_action')
def _perform_edit_action(self, context, ident): if context == 'templates': if self._current_tarball is None: self.selectSystemTarballDialog() else: msg = 'use %s as the current tarball?' % self._current_tarball yesno = KMessageBox.questionYesNo(self, msg) if yesno == KMessageBox.Yes: self.selectWithinSystemTarballDialog(self._current_tarball) else: self._current_tarball = None self.selectSystemTarballDialog() elif context == 'packages': raise RuntimeError , 'packages not implemented yet' elif context == 'script': self.doc.trait.edit_script(ident) elif context == 'parents': win = ParentAssigner(self, ident, self.doc.suite) win.connect(win, SIGNAL('okClicked()'), self.resetView) win.show() elif context == 'variables': #KMessageBox.information(self, 'edit variables') debug('edit variables', ident) win = TraitVariablesWindow(self, self.doc.suite, ident) win.show() elif context == 'template': template = ident self.doc.trait.edit_template(template) elif context == 'templatedata': template = ident row = self.doc.trait.get_template_row(template) data = {} fields = ['template', 'owner', 'grp_owner', 'mode'] for f in fields: data[f] = row[f] win = BaseRecordDialog(self, fields, record=data) win.template = template win.connect(win, SIGNAL('okClicked()'), self.slotUpdateTemplateData) win.show() self._dialog = win elif context == 'description': #KMessageBox.information(self, 'edit description for %s' % ident) win = TraitDescriptionWindow(self, ident, self.doc.suite) win.show() else: raise MethodNotImplementedError(self, 'TraitView._perform_edit_action')
def _script_context(self, action, ident): print "context is script", action, ident if action == 'new': dialog = self.makeGenericDialog(NewMachineScriptDialog, ()) dialog.connect(dialog, SIGNAL('okClicked()'), self.insertNewScript) elif action == 'edit': handler = self.doc.machine handler.relation.edit_script(ident) elif action == 'delete': handler = self.doc.machine msg = "Really delete the %s script?" % ident answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler.relation.scripts.delete_script(ident) self.resetView() else: self._unhandled_action(action, 'scripts')
def slotDbConnected(self, dsn): #print dsn #print 'slotDbConnected' for action in self.suiteActions.values(): action.unplug(self.suitemenu) self.suite_actions = {} self.cursor = self.app.conn.cursor(statement=True) if 'suites' in self.cursor.tables(): self._suites = [row.suite for row in self.cursor.select(table='suites')] self._initTraitsActions(self._suites) for action in self.manageTraitsActions.values(): action.plug(self.suitemenu) self.statusbar.message('Connected to %s on host %s' % (dsn['dbname'], dsn['dbhost'])) if not self.cursor.tables(): yesno = KMessageBox.questionYesNo(self, 'create primary tables?') if yesno == KMessageBox.Yes: dbm = DatabaseManager(self.app.conn) dbm.importer.start_schema()
def _machine_context(self, action, ident): handler = self.doc.machine if action == 'new': dialog = self.makeGenericDialog(NewMachineDialog, (handler,)) dialog.connect(dialog, SIGNAL('okClicked()'), self.reset_manager) elif action == 'edit': dialog = self.makeGenericDialog(EditMachineDIalog, (handler, ident)) elif action == 'delete': msg = "Really delete this machine: %s?" % ident answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: #KMessageBox.information(self, "I'm supposed to be deleting %s" % ident) handler.delete_machine(ident) self.reset_manager() else: self._unhandled_action(action, 'machines') print "context is machine", action, ident
def _parent_context(self, action, ident): handler = self.doc.machine if action == "select": dialog = self.makeGenericDialog(MachineParentDialog, (handler,)) dialog.connect(dialog, SIGNAL("okClicked()"), self.slotParentSelected) elif action == "delete": if handler.relation.parents.has_children(ident): msg = "This machine has children.\n" msg += "Removing this parent may affect the children.\n" msg += "Do you wish to remove it anyway?" answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler.delete_parent() else: handler.delete_parent() self.resetView() else: self._unhandled_action(action, "parent")
def _variable_context(self, action, ident): print "context is variable", action, ident if action == "new": message = "Add a new variable." context = "variable" self.makeNewRecordDialog(context, ["trait", "name", "value"], message) elif action == "delete": print "delete variable", ident trait, name = split_ident(ident) msg = "Really delete this variable: \n" msg += "Trait: %s\nName: %s\n" % (trait, name) answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler = self.doc.machine handler.relation.environment.delete_variable(trait, name) self.resetView() else: self._unhandled_action(action, "variables")
def setSource(self, url): action, context, ident = split_url(url) if action == 'show': print 'unimpletmented' elif action == 'edit': if context == 'traits': win = TraitAssigner(self.parent(), ident) self.connect(win, SIGNAL('okClicked()'), self.resetView) win.show() elif context == 'variables': self.doc.profile.edit_variables() self.resetView() elif context == 'families': win = FamilyAssigner(self.parent(), ident) self.connect(win, SIGNAL('okClicked()'), self.resetView) win.show() else: KMessageBox.error(self, 'bad edit action %s' % url) elif action == 'change': if context == 'suite': self.emit(PYSIGNAL('changeSuite'), (ident, )) print 'changeSuite emitted' else: KMessageBox.error(self, 'bad change action %s' % url) elif action == 'delete': if context == 'profile': msg = "Really delete profile %s" % ident answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: #msg = "we're supposed to delete this profile, but can't yet" self.doc.profile.delete_profile(ident) msg = "profile %s deleted" % ident KMessageBox.information(self, msg) mainwin = self.parent().parent() mainwin.refreshListView() mainwin.resetProfileObject() self.setText('') else: KMessageBox.error(self, "Don't know how to delete %s" % context) else: KMessageBox.information(self, 'called %s' % url)
def _perform_delete_action(self, context, ident): if context == 'Families': self.doc.mtype.delete_family(ident) self.resetView() elif context == 'Variables': self.doc.mtype.edit_variables() elif context == 'Scripts': ans = KMessageBox.questionYesNo(self, "really delete this script?") if ans == KMessageBox.Yes: self.doc.mtype.delete_script(ident) elif context == 'Modules': msg = 'Deleting modules is not supported.' KMessageBox.information(self, msg) elif context == 'machine_type': msg = "Can't delete machine types yet." KMessageBox.information(self, msg) else: msg = 'Problem with delete - context %s id %s' % (context, ident) KMessageBox.error(self, msg)
def setSource(self, url): action, context, ident = split_url(url) if action == "show": print "unimpletmented" elif action == "edit": if context == "traits": win = TraitAssigner(self.parent(), ident) self.connect(win, SIGNAL("okClicked()"), self.resetView) win.show() elif context == "variables": self.doc.profile.edit_variables() self.resetView() elif context == "families": win = FamilyAssigner(self.parent(), ident) self.connect(win, SIGNAL("okClicked()"), self.resetView) win.show() else: KMessageBox.error(self, "bad edit action %s" % url) elif action == "change": if context == "suite": self.emit(PYSIGNAL("changeSuite"), (ident,)) print "changeSuite emitted" else: KMessageBox.error(self, "bad change action %s" % url) elif action == "delete": if context == "profile": msg = "Really delete profile %s" % ident answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: # msg = "we're supposed to delete this profile, but can't yet" self.doc.profile.delete_profile(ident) msg = "profile %s deleted" % ident KMessageBox.information(self, msg) mainwin = self.parent().parent() mainwin.refreshListView() mainwin.resetProfileObject() self.setText("") else: KMessageBox.error(self, "Don't know how to delete %s" % context) else: KMessageBox.information(self, "called %s" % url)
def _perform_delete_action(self, context, ident): if context == "Families": self.doc.mtype.delete_family(ident) self.resetView() elif context == "Variables": self.doc.mtype.edit_variables() elif context == "Scripts": ans = KMessageBox.questionYesNo(self, "really delete this script?") if ans == KMessageBox.Yes: self.doc.mtype.delete_script(ident) elif context == "Modules": msg = "Deleting modules is not supported." KMessageBox.information(self, msg) elif context == "machine_type": msg = "Can't delete machine types yet." KMessageBox.information(self, msg) else: msg = "Problem with delete - context %s id %s" % (context, ident) KMessageBox.error(self, msg)
def _parent_context(self, action, ident): handler = self.doc.machine if action == 'select': dialog = self.makeGenericDialog(MachineParentDialog, (handler, )) dialog.connect(dialog, SIGNAL('okClicked()'), self.slotParentSelected) elif action == 'delete': if handler.relation.parents.has_children(ident): msg = "This machine has children.\n" msg += "Removing this parent may affect the children.\n" msg += "Do you wish to remove it anyway?" answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler.delete_parent() else: handler.delete_parent() self.resetView() else: self._unhandled_action(action, 'parent')
def _variable_context(self, action, ident): print "context is variable", action, ident if action == 'new': message = "Add a new variable." context = 'variable' self.makeNewRecordDialog(context, ['trait', 'name', 'value'], message) elif action == 'delete': print "delete variable", ident trait, name = split_ident(ident) msg = "Really delete this variable: \n" msg += "Trait: %s\nName: %s\n" % (trait, name) answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler = self.doc.machine handler.relation.environment.delete_variable(trait, name) self.resetView() else: self._unhandled_action(action, 'variables')
def slotDbConnected(self, dsn): #print dsn #print 'slotDbConnected' for action in self.suiteActions.values(): action.unplug(self.suitemenu) self.suite_actions = {} self.cursor = self.app.conn.cursor(statement=True) if 'suites' in self.cursor.tables(): self._suites = [ row.suite for row in self.cursor.select(table='suites') ] self._initTraitsActions(self._suites) for action in self.manageTraitsActions.values(): action.plug(self.suitemenu) self.statusbar.message('Connected to %s on host %s' % (dsn['dbname'], dsn['dbhost'])) if not self.cursor.tables(): yesno = KMessageBox.questionYesNo(self, 'create primary tables?') if yesno == KMessageBox.Yes: dbm = DatabaseManager(self.app.conn) dbm.importer.start_schema()
def _variable_context(self, action, ident): print "context is variable", action, ident if action == 'new': message = "Add a new variable." context = 'variable' self.makeNewRecordDialog(context, ['trait', 'name', 'value'], message) elif action == 'delete': print "delete variable", ident trait, name = split_ident(ident) msg = "Really delete this variable: \n" msg += "Trait: %s\nName: %s\n" % (trait, name) answer = KMessageBox.questionYesNo(self, msg) if answer == KMessageBox.Yes: handler = self.doc.machine handler.relation.environment.delete_variable(trait, name) self.resetView() elif action == 'edit': handler = self.doc.machine handler.edit_variables() self.resetView() else: self._unhandled_action(action, 'variables')