コード例 #1
0
def package_search(name):
    utils.readConf()
    pkgs = plugin.Plugin(name[0])
    pkgs.getAvailablePackages()
    pluginName = []
    releaseMode = []
    version = []
    compatible = []

    for iRpkg in sorted(pkgs.packagesInfo):
        data = iRpkg.toTabulate()
        pluginName.append(data[0])
        releaseMode.append(data[1])
        version.append(data[2])
        compatible.append(data[3])

    table = [
        {
            "title": "Plugin Name",
            "value": pluginName
        },
        {
            "title": "Release Mode",
            "value": releaseMode
        },
        {
            "title": "Version",
            "value": version
        },
        {
            "title": "Compatible",
            "value": compatible
        },
    ]
    print(utils.dictToAsciiTable(table))
コード例 #2
0
def update_licenses(quiet=False):
    utils.readConf()
    url = utils.URL.rstrip("/") + "/licenses"
    r = requests.get(url, auth=(utils.USERNAME, utils.PASSWORD))
    htmlElements = html.document_fromstring(r.text)
    htmlElements.make_links_absolute(url + "/", resolve_base_href=True)

    folderPattern = re.compile(url + '/[a-z0-9\-]+/')
    downloadPattern = re.compile('\S+\.(license|key)')

    # Filter to only keep folders
    licenseFolders = list(
        filter(lambda x: folderPattern.match(x),
               [elem[2] for elem in htmlElements.iterlinks()]))

    if len(licenseFolders) == 0:
        logger.info("No license files found!")
    else:
        # Find the .licence and .key files under each folder
        for folderUrl in set(licenseFolders):
            r = requests.get(folderUrl, auth=(utils.USERNAME, utils.PASSWORD))
            htmlElements = html.document_fromstring(r.text)
            htmlElements.make_links_absolute(folderUrl + "/",
                                             resolve_base_href=True)
            for link in set([elem[2] for elem in htmlElements.iterlinks()]):
                match = downloadPattern.search(link)
                if match is not None:
                    logger.info("downloading %s" % (link))
                    utils.download(
                        link,
                        utils.LICENCES_PATH + "/" + os.path.basename(link),
                        quiet)
コード例 #3
0
def package_list_name():
    utils.readConf()
    pluginDict = utils.list_plugin_name()
    pluginName = []
    shortName = []
    latestRelease = []
    description = []
    for p in pluginDict.keys():
        if utils.check_download(utils.URL + "/" + utils.RUDDER_VERSION + "/" + str(pluginDict[p][0])):
            pluginName.append(str(p))
            shortName.append(str(pluginDict[p][0]))
            description.append(str(pluginDict[p][1]))

            pkgs = plugin.Plugin(p)
            pkgs.getAvailablePackages()
            try:
                latestVersion = pkgs.getLatestCompatibleRelease().version.pluginLongVersion
            except:
                latestVersion = ""
            latestRelease.append(latestVersion)
    table = [
                { "title": "Plugin Name"      , "value": pluginName    },
                { "title": "Plugin Short Name", "value": shortName     },
                { "title": "Description"      , "value": description   },
                { "title": "Latest release"   , "value": latestRelease }
            ]
    print(utils.dictToAsciiTable(table))
コード例 #4
0
def package_install_specific_version(name, longVersion, mode="release"):
    utils.readConf()
    pkgs = plugin.Plugin(name[0])
    pkgs.getAvailablePackages()
    rpkg = pkgs.getRpkgByLongVersion(longVersion, mode)
    if rpkg is not None:
        rpkgPath = utils.downloadByRpkg(rpkg)
        install_file([rpkgPath])
    else:
        utils.fail("Could not find any package for %s in version %s"%(name, longVersion))
コード例 #5
0
def package_install_latest(name, mode="release"):
    utils.readConf()
    pkgs = plugin.Plugin(name[0])
    pkgs.getAvailablePackages()
    if mode == "release":
        rpkg = pkgs.getLatestCompatibleRelease()
    else:
        rpkg = pkgs.getLatestCompatibleNightly()
    if rpkg is not None:
        rpkgPath = utils.downloadByRpkg(rpkg)
        install_file([rpkgPath])
    utils.fail("Could not find any compatible %s for %s"%(mode, name))
コード例 #6
0
def package_show(name, version, mode):
    utils.readConf()
    pkgs = plugin.Plugin(name[0])
    pkgs.getAvailablePackages()
    if version != "":
        rpkg = pkgs.getRpkgByLongVersion(version, mode)
    else:
        if mode == "release":
            rpkg = pkgs.getLatestCompatibleRelease()
        else:
            rpkg = pkgs.getLatestCompatibleNightly()
    if rpkg is not None:
        rpkg.show_metadata()
    else:
        utils.fail("Could not find any package in %s for %s" % (mode, name))
コード例 #7
0
def update():
    utils.readConf()
    logging.debug('Updating the index')
    utils.getRudderKey()
    # backup the current indexFile if it exists
    logging.debug("backuping %s in %s"%(utils.INDEX_PATH, utils.INDEX_PATH + ".bkp"))
    if os.path.isfile(utils.INDEX_PATH):
        os.rename(utils.INDEX_PATH, utils.INDEX_PATH + ".bkp")
    try:
        utils.download(utils.URL + "/" + "rpkg.index")
    except Exception as e:
        traceback.print_exc(file=sys.stdout)
        if os.path.isfile(utils.INDEX_PATH + ".bkp"):
            logging.debug("restoring %s from %s"%(utils.INDEX_PATH, utils.INDEX_PATH + ".bkp"))
            os.rename(utils.INDEX_PATH + ".bkp", utils.INDEX_PATH)
        utils.fail(e)