示例#1
0
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))
示例#2
0
 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'])
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
 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
示例#7
0
 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)
示例#8
0
 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
示例#9
0
    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')
示例#10
0
 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)
示例#11
0
        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')
示例#12
0
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