Ejemplo n.º 1
0
    def _get_launchpad_ppa_key_id(cls, ppa: str) -> str:
        owner, name = cls._get_ppa_parts(ppa)
        launchpad = Launchpad.login_anonymously("snapcraft", "production")
        launchpad_url = f"~{owner}/+archive/{name}"

        logger.debug(f"Loading launchpad url: {launchpad_url}")
        try:
            key_id = launchpad.load(launchpad_url).signing_key_fingerprint
        except lazr.restfulclient.errors.NotFound as error:
            raise errors.AptPPAInstallError(
                ppa=ppa, reason="not found on launchpad") from error

        logger.debug(f"Retrieved launchpad PPA key ID: {key_id}")
        return key_id
Ejemplo n.º 2
0
def split_ppa_parts(*, ppa: str) -> Tuple[str, str]:
    """Obtain user and repository components from a PPA line."""
    ppa_split = ppa.split("/")
    if len(ppa_split) != 2:
        raise errors.AptPPAInstallError(ppa, "invalid PPA format")
    return ppa_split[0], ppa_split[1]
Ejemplo n.º 3
0
 def _get_ppa_parts(cls, ppa: str) -> Tuple[str, str]:
     ppa_split = ppa.split("/")
     if len(ppa_split) != 2:
         raise errors.AptPPAInstallError(ppa=ppa,
                                         reason="invalid PPA format")
     return ppa_split[0], ppa_split[1]