def install_packages_uml(conn, suite, profile, target): traits = get_traits(conn, profile) tp = TraitParent(conn, suite) pp = TraitPackage(conn, suite) packages = ' '.join([p.package for p in pp.all_packages(traits, tp)]) os.system('chroot %s apt-get update' % target) os.system('chroot %s apt-get -y install %s' % (target, packages))
def __init__(self): object.__init__(self) self.cfg = PaellaConfig() self.conn = PaellaConnection() self.profile = os.environ['PAELLA_PROFILE'] self.target = os.environ['PAELLA_TARGET'] self.machine = None self.trait = None self.suite = get_suite(self.conn, self.profile) self.pr = Profile(self.conn) self.pr.set_profile(self.profile) self.traitlist = self.pr.make_traitlist() self.pe = ProfileEnvironment(self.conn, self.profile) self.tp = TraitParent(self.conn, self.suite) self.fm = Family(self.conn) self.tr = Trait(self.conn, self.suite) self.families = list( self.fm.get_related_families(self.pr.get_families())) self._envv = None self.default = DefaultEnvironment(self.conn) self.installer = TraitInstaller(self.conn, self.suite, self.cfg) if os.environ.has_key('PAELLA_MACHINE'): self.machine = os.environ['PAELLA_MACHINE'] if os.environ.has_key('PAELLA_TRAIT'): self.set_trait(os.environ['PAELLA_TRAIT'])
def make_traitlist(self): tp = TraitParent(self.conn, self.suite) listed = [x.trait for x in self.profiletrait.trait_rows()] all = list(self.traitparent.get_traitset(listed)) setfun = tp.set_trait parfun = tp.parents log = self.log return make_deplist(listed, all, setfun, parfun, log)
def __init__(self): object.__init__(self) self.cfg = PaellaConfig() self.conn = PaellaConnection() self.profile = os.environ['PAELLA_PROFILE'] self.target = os.environ['PAELLA_TARGET'] self.suite = get_suite(self.conn, self.profile) self.pe = ProfileEnvironment(self.conn, self.profile) self.tp = TraitParent(self.conn, self.suite)
def __init__(self, conn, suite, name='EnvironmentEditor'): self.menu = make_menu(['update', 'create'], self.env_command) _EnvironmentEditor.__init__(self, conn, name=name) self.suite = suite self.traitparent = TraitParent(self.conn, self.suite) self.current_trait = None self.reset_rows() w, h = map( int, config.get_list('env_editor_size', section='management_gui')) self.set_size_request(w, h)
def __init__(self, conn, suite): self.menu = make_menu(_MODTRAIT, self.modify_trait) ListNoteBook.__init__(self) self.conn = conn self.traits = Traits(self.conn, suite) self.trait_selection = '_all_traits_' self.reset_rows() self.cfg = PaellaConfig() self._parents = TraitParent(self.conn, suite) self.cursor = StatementCursor(self.conn) self.template_path = '/nowhere' self.tarball_path = self.cfg.get('management_gui', 'bkuptarball_path') self.suite = suite
def set_profile(self, profile): self.profile = profile os.environ['PAELLA_PROFILE'] = profile self.profiletrait.set_profile(profile) self.traits = self.profiletrait.trait_rows() self.env = ProfileEnvironment(self.conn, self.profile) self.profiledata = self.get_profile_data() self.suite = get_suite(self.conn, profile) self.installer = TraitInstaller(self.conn, self.suite, self.cfg) self.installer.log = self.log self.installer.profiledata = self.profiledata self.traitparent = TraitParent(self.conn, self.suite) self.log.info('profile set to %s' % profile)
def make_traitlist_orig(self): traitparent = TraitParent(self.conn, self.suite) profile_traits = [x.trait for x in self.profiletrait.trait_rows()] all_traits = list(self.traitparent.get_traitset(profile_traits)) traitlist = [] while len(profile_traits): profile_traits_prepended = False trait = profile_traits[0] traitparent.set_trait(trait) parents = [r.parent for r in traitparent.parents()] for p in parents: if not profile_traits_prepended and p not in traitlist: profile_traits = [p] + profile_traits profile_traits_prepended = True self.log.info('profile_traits prepended with %s' % p) if not profile_traits_prepended: traitlist.append(trait) del profile_traits[0] self.log.info('%s %s' % (str(traitlist), profile_traits)) return traitlist
def __rebuild_modules__(self): del self[:] for line in self.lines: if line and line[0] != '#': list.append(self, line) def append(self, module): if module not in self: self.lines.append(module) self.__rebuild_modules__() def write(self, path=None): if path is None: path = self.path mfile = file(path, 'w') mfile.write('\n'.join(self.lines) + '\n') mfile.close() if __name__ == '__main__': from useless.db.midlevel import StatementCursor from useless.db.midlevel import Environment, TableDict c = PaellaConnection() tp = TraitParent(c, 'woody') pp = TraitPackage(c, 'woody') ct = ConfigTemplate() path = '/tmp/spam.db' db = bsddb.btopen('path', 'c') p = Parser('var-table.csv')
def __set_suitecursors__(self): self.traitparent = TraitParent(self.conn, self.suite) self.traittemplate = TraitTemplate(self.conn, self.suite) self.traitpackage = TraitPackage(self.conn, self.suite)
self.parents = self.tr.parents() self._envv = self.env() self.installer.set_trait(trait) self.packages = self.installer.traitpackage.packages() self.templates = self.installer.traittemplate.templates() def get(self, key): if self._envv is None: raise Error, 'need to set trait first' return self._envv.dereference(key) def install_modules(self, name): modules = str2list(self.get(name)) print 'installing modules', modules, 'to %s/etc/modules' % self.target setup_modules(self.target, modules) def remove_packages(self, packages=None): if packages is None: packages = self.packages if len(packages): if hasattr(packages[0], 'package'): packages = [p.package for p in packages] package_list = ' '.join(packages) command = 'apt-get -y remove %s' % package_list self.installer.run('remove', command, proc=True) if __name__ == '__main__': conn = PaellaConnection() tp = TraitParent(conn, 'gunny')
def get_profile_packages(conn, suite, profile): traits = get_traits(conn, profile) tp = TraitParent(conn, suite) pp = TraitPackage(conn, suite) packages = [p.package for p in pp.all_packages(traits, tp)] return packages