def build_package(version): """ Build package out of a puppet module. """ args, extra_args = parse_version_extra_args(version.extra_args) install_dir = tempfile.mkdtemp() pwd = getcwd() try: # install the module cmd = [ 'puppet', 'module', 'install', args.modulename, '--target-dir=%s' % install_dir, '--version=%s' % version ] subprocess.check_call(cmd) # build the package modulename = version.userdata['name'] moduledir = join(install_dir, modulename) chdir(moduledir) create_package("puppet-%s" % modulename, modulename, str(version), extra_args) for deb in glob.glob("*.deb"): shutil.move(join(moduledir, deb), "%s/" % pwd) finally: chdir(pwd) shutil.rmtree(install_dir)
def build_package(version): """ Build package out of a puppet module. """ args, extra_args = parse_version_extra_args(version.extra_args) install_dir = tempfile.mkdtemp() pwd = getcwd() try: # install the module cmd = ['puppet', 'module', 'install', args.modulename, '--target-dir=%s' % install_dir, '--version=%s' % version] subprocess.check_call(cmd) # build the package modulename = version.userdata['name'] moduledir = join(install_dir, modulename) chdir(moduledir) create_package("puppet-%s" % modulename, modulename, str(version), extra_args) for deb in glob.glob("*.deb"): shutil.move(join(moduledir, deb), "%s/" % pwd) finally: chdir(pwd) shutil.rmtree(install_dir)
def get_version(version_args): args, _ = parse_version_extra_args(version_args) cmd = ['puppet', 'module', 'search', args.modulename, '--render-as=yaml'] log.debug("Running command: %s" % " ".join(cmd)) output = subprocess.check_output(cmd).split('\n') if 'otice: Searching' in output[0]: output = "\n".join(output[1:]) else: output = "\n".join(output) version = None rubyyaml = RubyYaml(yaml) results = rubyyaml.load(output) log.debug(output) if results.get('result') != 'success': raise VersionError("No puppet module found with name %s, reason: %s" % (args.modulename, output.get('result'))) try: result = (item for item in results.get('answers') if item.get('full_name') == args.modulename).next() if args.version is not None: versions = map(operator.itemgetter('version'), result['releases']) log.debug("Available version: %s" % versions) if args.version not in versions: raise VersionNotFound("Version %s not found in %s. Available versions: %s" % (args.version, result['full_name'], versions)) else: version = Version(args.version, extra_args=version_args, userdata=result) else: version = Version(result['version'], extra_args=version_args, userdata=result) log.debug("Version is: %(version)s" % result) except StopIteration: raise VersionError("No puppet module found with name %s" % args.modulename) assert(version) return version