def collect_packages(self): gp = ghostPackage.ghostPackage(self.cmt) gp.allInterfacesCreate() self.packages = gp.allInterfacesCollectVersions() gp.allInterfacesRemove()
def create(self): gp = ghostPackage.ghostPackage(cmt.CMT()) gp.allInterfacesCreate() pkgdict = gp.allInterfacesCollectVersions(self.cmtconfig) gp.allInterfacesRemove() doc = Document() pkgs = doc.createElement("packages") doc.appendChild(pkgs) for p in pkgdict: # Create the main <card> element pkg = doc.createElement("pkg") pkg.setAttribute("name", p) pkg.setAttribute('path', pkgdict[p][2]) pkgs.appendChild(pkg) # Print our newly created XML ff = os.path.join(self.location, self.filename) f = open(ff, 'w') f.write(doc.toprettyxml(indent=" " * self.indent)) f.close() self.msg.info('Wrote file ' + ff)
def create(self): gp = ghostPackage.ghostPackage(cmt.CMT()) gp.allInterfacesCreate() pkgdict = gp.allInterfacesCollectVersions(self.cmtconfig) gp.allInterfacesRemove() doc = Document() pkgs = doc.createElement("packages") doc.appendChild(pkgs) for p in pkgdict : # Create the main <card> element pkg = doc.createElement("pkg") pkg.setAttribute("name", p) pkg.setAttribute('path', pkgdict[p][2]) pkgs.appendChild(pkg) # Print our newly created XML ff = os.path.join(self.location,self.filename) f = open(ff,'w') f.write(doc.toprettyxml(indent=" "*self.indent)) f.close() self.msg.info('Wrote file '+ff)
def collectAllPkgVersions(self): gp = ghostPackage.ghostPackage(self.cmt) gp.allInterfacesCreate() cmtconfig_save = os.getenv('CMTCONFIG') for conf in self.cfg.release_platform_tags: self.pkg_vers_dict[conf] = gp.allInterfacesCollectVersions(conf) os.putenv('CMTCONFIG',cmtconfig_save) gp.allInterfacesRemove()
def run(self): self.msg.debug('Creating ghost package for all interfaces') gp = ghostPackage.ghostPackage(self.cmt) gp.allInterfacesCreate() self.msg.debug('Collecting all version numbers for the interfaces, using tag name ', self.fr) packages = gp.allInterfacesCollectVersions(self.fr) self.msg.debug('Versions for interfaces collected: ', packages) gp.allInterfacesRemove() self.msg.debug('Removing ghost package for all interfaces') pkgKeys = [] if self.pkg : pkgKeys = [self.pkg] else: pkgKeys = packages.keys() pkgKeys = filter(lambda x: not self.cfg.isProject(x), pkgKeys) self.msg.debug('List of all packages: %s' % pkgKeys) for pkg in pkgKeys : self.msg.setPreAmble('[%s] ' % pkg) pkgdir = packages[pkg][2].replace('\\', os.sep) inafs = False if pkgdir.find('/cern.ch/') != -1 : pkgdir = pkgdir.replace('/cern.ch/','/.cern.ch/') inafs = True elif pkgdir.find('/.cern.ch/') != -1 : inafs = True if os.path.split(pkgdir)[-1] == self.fr : pkgdir = os.sep.join(os.path.split(pkgdir)[:-1]) else: self.msg.error('directory %s does not contain "from" tagname as last entry, skipping' % pkgdir) self.msg.debug('Using external root directory' + pkgdir) if os.path.isdir(pkgdir): os.chdir(pkgdir) if not os.path.islink(self.to) : if not os.path.isdir(self.to) : cmd = 'ln -s %s %s' % (self.fr, self.to) if not self.dry : os.system(cmd) if os.path.islink(self.to) : if inafs : self.afs_actions(pkgdir) self.msg.info('Symlink %s->%s created' % (self.fr, self.to)) else : self.msg.error('creation of symlink %s->%s failed' % (self.fr, self.to)) else : self.msg.info('Dry run: in %s executing %s' % (pkgdir, cmd)) else : self.msg.warning('%s is a directory' % self.to) else : self.msg.warning('%s symlink in %s exists' % (self.to, pkgdir)) else : self.msg.warning('directory %s does not exist, skipping package' % pkgdir)