def bootstrap_target(self): if not self.target.exists(): self.target.mkdir() if not self.target.isdir(): raise InstallTargetError, "%s is not a directory" % self.target if self.defenv.getboolean('installer', 'bootstrap_target'): self.log.info('bootstrapping with debootstrap') self._bootstrap_with_debootstrap(self.base_suite) else: self.log.info('bootstrapping with premade tarball') self._bootstrap_with_tarball(self.base_suite) # here we add the apt keys that are needed aptkeys = AptKeyHandler(self.conn) keys = self.defenv.get_list('archive_keys', 'installer') for key in keys: row = aptkeys.get_row(key) filename = self.target / ('%s.key' % key) if filename.exists(): raise RuntimeError, "%s already exists" % filename keyfile = file(filename, 'w') keyfile.write(row.data) keyfile.close() #self.chroot('apt-key add %s.key' % key) self.chroot(['apt-key', 'add', '%s.key' % key]) os.remove(filename) if filename.exists(): raise RuntimeError, "%s wasn't deleted" % filename self.log.info('added key %s (%s) to apt' % (key, row.keyid))
def __init__(self, parent, name='AptKeyWindow'): BaseSplitWindow.__init__(self, parent, AptKeyView, name=name) self.initPaellaCommon() self.db = AptKeyHandler(self.conn) self.initActions() self.initMenus() self.initToolbar() self.setCaption('Apt Key Manager') #self.resize(500, 300) #self.splitter.setSizes([100, 400]) #self.refreshListView() #self.mainView.resetView() self.refreshListView()
def bootstrap_target(self): self.check_suite_set() if not self.target.exists(): self.target.mkdir() if not self.target.isdir(): raise InstallTargetError, "%s is not a directory" % self.target if self.defenv.getboolean('installer', 'bootstrap_target'): self.log.info('bootstrapping with debootstrap') self._bootstrap_with_debootstrap(self.base_suite) else: self.log.info('bootstrapping with premade tarball') self._bootstrap_with_tarball(self.base_suite) # here we add the apt keys that are needed # we should probably split this part off into # another process. This step needs to be done # before the ready_base_for_install process, or # at least at the beginning of that process. aptkeys = AptKeyHandler(self.conn) keys = self.defenv.get_list('archive_keys', 'installer') for key in keys: try: row = aptkeys.get_row(key) except NoAptKeyError: msg = "There's no apt key named %s in the database" % key self.log.error(msg) raise UnsatisfiedRequirementsError , msg filename = self.target / ('%s.key' % key) if filename.exists(): msg = "%s already exists" % filename self.log.error(msg) raise RuntimeError , msg keyfile = file(filename, 'w') keyfile.write(row.data) keyfile.close() self.chroot(['apt-key', 'add', '%s.key' % key]) os.remove(filename) if filename.exists(): msg = "%s wasn't deleted" % filename self.log.error(msg) raise RuntimeError , msg self.log.info('added key %s (%s) to apt' % (key, row.keyid))
class AptKeyWindow(BaseSplitWindow, BasePaellaWindow): def __init__(self, parent, name='AptKeyWindow'): BaseSplitWindow.__init__(self, parent, AptKeyView, name=name) self.initPaellaCommon() self.db = AptKeyHandler(self.conn) self.initActions() self.initMenus() self.initToolbar() self.setCaption('Apt Key Manager') #self.resize(500, 300) #self.splitter.setSizes([100, 400]) #self.refreshListView() #self.mainView.resetView() self.refreshListView() def initlistView(self): self.listView.addColumn('name') self.listView.addColumn('keyid') def refreshListView(self): self.listView.clear() for row in self.db.get_keys(): item = KListViewItem(self.listView, row.name, row.keyid) item.keyname = row.name item.keyid = row.keyid def initActions(self): collection = self.actionCollection() self.quitAction = KStdAction.quit(self.close, collection) self.newAction = KStdAction.openNew(self.slotNew, collection) def initMenus(self): pass def initToolbar(self): toolbar = self.toolBar() self.newAction.plug(toolbar) self.quitAction.plug(toolbar) def _destroy_dialog(self): self._dialog = None def slotNew(self): win = NewAptKeyDialog(self) win.connect(win, SIGNAL('okClicked()'), self.newKeySelected) win.show() self._dialog = win def newKeySelected(self): win = self._dialog if win is None: raise RuntimeError , "No dialog present" name = str(win.name_entry.text()) data = str(win.data_entry.text()) self.db.insert_key(name, data) self._destroy_dialog() self.refreshListView() def selectionChanged(self): item = self.listView.currentItem() keydata = self.db.get_key(item.keyname) self.mainView.set_key(keydata)
class AptKeyWindow(BaseSplitWindow, BasePaellaWindow): def __init__(self, parent, name='AptKeyWindow'): BaseSplitWindow.__init__(self, parent, AptKeyView, name=name) self.initPaellaCommon() self.db = AptKeyHandler(self.conn) self.initActions() self.initMenus() self.initToolbar() self.setCaption('Apt Key Manager') #self.resize(500, 300) #self.splitter.setSizes([100, 400]) #self.refreshListView() #self.mainView.resetView() self.refreshListView() def initlistView(self): self.listView.addColumn('name') self.listView.addColumn('keyid') def refreshListView(self): self.listView.clear() for row in self.db.get_keys(): item = KListViewItem(self.listView, row.name, row.keyid) item.keyname = row.name item.keyid = row.keyid def initActions(self): collection = self.actionCollection() self.quitAction = KStdAction.quit(self.close, collection) self.newAction = KStdAction.openNew(self.slotNew, collection) def initMenus(self): pass def initToolbar(self): toolbar = self.toolBar() self.newAction.plug(toolbar) self.quitAction.plug(toolbar) def _destroy_dialog(self): self._dialog = None def slotNew(self): win = NewAptKeyDialog(self) win.connect(win, SIGNAL('okClicked()'), self.newKeySelected) win.show() self._dialog = win def newKeySelected(self): win = self._dialog if win is None: raise RuntimeError, "No dialog present" name = str(win.name_entry.text()) data = str(win.data_entry.text()) self.db.insert_key(name, data) self._destroy_dialog() self.refreshListView() def selectionChanged(self): item = self.listView.currentItem() keydata = self.db.get_key(item.keyname) self.mainView.set_key(keydata)