Exemple #1
0
def validate_box_name(name, validate_web=False, version=0):

    unversioned_pattern = "^[a-zA-Z0-9]+/[A-z0-9][A-z0-9-.]+[A-z0-9]$"

    match = re.match(unversioned_pattern, name)

    if validate_web is False:
        return match is not None
    else:
        if match:
            c = Client()
            response, result = c.get_box(name, version)

            if response == 404:
                return False
            else:
                if result:
                    return True
                else:
                    raise TransportError("Unexpected response from server")
        else:
            return False
Exemple #2
0
def info_service(name, version=0):

    term = get_term()
    valid = False

    valid = validate_box_name(name)

    if valid is False:
        puts(
            "{t.red}Error: {t.normal} {name} is not a valid service name"
            .format(
                t=term,
                name=name
            )
        )
        return

    client = Client()

    puts("Retrieving service: {t.bold_white}{name}\n".format(
        # owner=owner,
        name=name,
        t=term)
    )
    response, results = client.get_box(name, version=version)

    if response == 404:
        puts(term.yellow("Warning: ") + "service not found.")
    elif results.get("type") != "service":
        puts(term.yellow("Warning: ") + "found box was not a service.")
    elif results:
        response, release_info = client.get_box_releases(name)
        if results:
            putInfo("Fullname", results.get("fullname"))
            putInfo("Owner", results.get("owner"))
            putInfo("Name", results.get("name"))
            puts("")
            putInfo(
                "All versions",
                '\n'.join(release_info.get("versionNumbers")),
                multiple_lines=True
            )
            putInfo("showing version", results.get("version"))
            puts("")

            license = results.get("license")
            if license is None:
                license = "none specified"
            putInfo("License", license)

            keywords = ", ".join(results.get("keywords"))
            if keywords is None:
                keywords = ""

            putInfo("Keywords", keywords)
            putInfo(
                "\nDescription",
                results.get("description"),
                multiple_lines=True
            )

            packages = ""

            for package in results.get("packages"):
                if len(packages):
                    packages += ", "

                packages += "{name}: {version}".format(
                    name=package.get("name"), version=package.get("version")
                )
            else:
                packages = "None specified"

            putInfo("\nPackages", packages, multiple_lines=True)
            putInfo("\nRead me", results.get("readMe"), multiple_lines=True)
    else:
        puts("{t.red}Error: {t.normal}An error occurred while retrieving \
service information")