404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.191.160.52: ~ $
import logging
import os
from typing import Any, Dict, Optional, Tuple

from uaclient import apt, event_logger, exceptions, messages, system, util
from uaclient.entitlements.base import UAEntitlement
from uaclient.entitlements.entitlement_status import ApplicationStatus

LOG = logging.getLogger(util.replace_top_level_logger_name(__name__))
event = event_logger.get_event_logger()

LANDSCAPE_CLIENT_PACKAGE_NAME = "landscape-client"
LANDSCAPE_CLIENT_CONFIG_PATH = "/etc/landscape/client.conf"
LANDSCAPE_CLIENT_CONFIG_PATH_DISABLE_BACKUP = (
    "/etc/landscape/client.conf.pro-disable-backup"
)


class LandscapeEntitlement(UAEntitlement):
    name = "landscape"
    title = messages.LANDSCAPE_TITLE
    description = messages.LANDSCAPE_DESCRIPTION
    help_doc_url = messages.urls.LANDSCAPE_HOME_PAGE
    help_text = messages.LANDSCAPE_HELP_TEXT

    def _perform_enable(self, silent: bool = False) -> bool:
        cmd = ["landscape-config"] + self.extra_args
        if self.assume_yes and "--silent" not in cmd:
            cmd += ["--silent"]

        LOG.debug("Executing: %r", cmd)
        event.info(
            util.redact_sensitive_logs(
                messages.EXECUTING_COMMAND.format(command=" ".join(cmd))
            )
        )
        try:
            system.subp(cmd, pipe_stdouterr=self.assume_yes)
        except exceptions.ProcessExecutionError as e:
            if self.assume_yes:
                err_msg = messages.LANDSCAPE_CONFIG_FAILED
                event.error(
                    err_msg.msg,
                    err_msg.name,
                    service=self.name,
                    additional_info={
                        "stdout": e.stdout.strip(),
                        "stderr": e.stderr.strip(),
                    },
                )
                event.info(e.stderr.strip())
                event.info(messages.ENABLE_FAILED.format(title=self.title))
            return False

        if self.assume_yes:
            # when silencing landscape-config, include a success message
            # otherwise, let landscape-config say what happened
            event.info(messages.ENABLED_TMPL.format(title=self.title))
        return True

    def _perform_disable(self, silent: bool = False) -> bool:
        cmd = ["landscape-config", "--disable"]
        event.info(messages.EXECUTING_COMMAND.format(command=" ".join(cmd)))
        try:
            system.subp(cmd)
        except exceptions.ProcessExecutionError as e:
            LOG.error(e)
            event.info(str(e).strip())
            event.warning(str(e), self.name)

        LOG.debug(
            "Backing up %s as %s",
            LANDSCAPE_CLIENT_CONFIG_PATH,
            LANDSCAPE_CLIENT_CONFIG_PATH_DISABLE_BACKUP,
        )
        event.info(
            messages.BACKING_UP_FILE.format(
                original=LANDSCAPE_CLIENT_CONFIG_PATH,
                backup=LANDSCAPE_CLIENT_CONFIG_PATH_DISABLE_BACKUP,
            )
        )
        try:
            os.rename(
                LANDSCAPE_CLIENT_CONFIG_PATH,
                LANDSCAPE_CLIENT_CONFIG_PATH_DISABLE_BACKUP,
            )
        except FileNotFoundError as e:
            LOG.error(e)
            event.info(str(e))
            event.warning(str(e), self.name)

        return True

    def application_status(
        self,
    ) -> Tuple[ApplicationStatus, Optional[messages.NamedMessage]]:
        if apt.is_installed(LANDSCAPE_CLIENT_PACKAGE_NAME):
            return (ApplicationStatus.ENABLED, None)
        else:
            return (
                ApplicationStatus.DISABLED,
                messages.LANDSCAPE_CLIENT_NOT_INSTALLED,
            )

    def enabled_warning_status(
        self,
    ) -> Tuple[bool, Optional[messages.NamedMessage]]:
        if not os.path.exists(LANDSCAPE_CLIENT_CONFIG_PATH):
            return (
                True,
                messages.LANDSCAPE_NOT_CONFIGURED,
            )

        # This check wrongly gives warning when non-root
        if util.we_are_currently_root():
            try:
                system.subp(
                    ["landscape-config", "--is-registered", "--silent"]
                )
            except exceptions.ProcessExecutionError:
                return (
                    True,
                    messages.LANDSCAPE_NOT_REGISTERED,
                )

        if not system.is_systemd_unit_active("landscape-client"):
            return (
                True,
                messages.LANDSCAPE_SERVICE_NOT_ACTIVE,
            )

        return False, None

    def process_contract_deltas(
        self,
        orig_access: Dict[str, Any],
        deltas: Dict[str, Any],
        allow_enable: bool = False,
    ) -> bool:
        # overriding allow_enable to always be False for this entitlement
        # effectively prevents enableByDefault from ever happening
        return super().process_contract_deltas(
            orig_access, deltas, allow_enable=False
        )

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 6.76 KB 0644
anbox.py File 3.04 KB 0644
base.py File 44.05 KB 0644
cc.py File 1013 B 0644
cis.py File 1.14 KB 0644
entitlement_status.py File 3.12 KB 0644
esm.py File 3.85 KB 0644
fips.py File 19.99 KB 0644
landscape.py File 4.84 KB 0644
livepatch.py File 12.63 KB 0644
realtime.py File 5.46 KB 0644
repo.py File 21.85 KB 0644
ros.py File 1.47 KB 0644