Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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))
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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))
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)