Пример #1
0
    def update_service_status(
        self, service_name: str,
        service_status: ServiceExitStatus,
    ) -> None:
        """
        Update the service exit status for a given service
        """

        if service_name in self._flat_dict:
            current_service_status = self._flat_dict[service_name]
        else:
            current_service_status = ServiceExitStatus()

        if service_status.latest_service_result == \
                ServiceExitStatus.ServiceResult.Value("SUCCESS"):
            service_status.num_clean_exits = \
                current_service_status.num_clean_exits + 1
            service_status.num_fail_exits = \
                current_service_status.num_fail_exits
        else:
            service_status.num_fail_exits = \
                current_service_status.num_fail_exits + 1
            service_status.num_clean_exits = \
                current_service_status.num_clean_exits
        self._flat_dict[service_name] = service_status
Пример #2
0
def get_status() -> ServiceExitStatus:
    """
    Populates the Status protobuf with the status environment as populated by
    systemd
    @returns a populated service exit status object
    """
    service_result = os.environ.get("SERVICE_RESULT")
    exit_code = os.environ.get("EXIT_CODE")
    exit_status = os.environ.get("EXIT_STATUS")

    # Populate the service exit status string and exit code.
    status_obj = ServiceExitStatus()
    status_obj.latest_rc = 0
    status_obj.latest_service_result = \
        ServiceExitStatus.ServiceResult.Value(
            service_result.upper().replace('-', '_'))
    status_obj.latest_exit_code = \
        ServiceExitStatus.ExitCode.Value(exit_code.upper())

    if (status_obj.latest_service_result ==
            ServiceExitStatus.ServiceResult.Value("EXIT_CODE")):
        try:
            status_obj.latest_rc = int(exit_status)
        except ValueError:
            logging.error("Error parsing service exit status", exit_status)
            pass
    return status_obj
Пример #3
0
    def update_service_status(self, service_name: str,
                              service_status: ServiceExitStatus) -> None:
        """
        Update the service exit status for a given service
        """
        key = service_name + ":" + self.REDIS_VALUE_TYPE

        if key in self._flat_dict:
            current_service_status = self._flat_dict[key]
        else:
            current_service_status = ServiceExitStatus()

        if service_status.latest_service_result == \
                ServiceExitStatus.ServiceResult.Value("SUCCESS"):
            service_status.num_clean_exits = \
                current_service_status.num_clean_exits + 1
            service_status.num_fail_exits = \
                current_service_status.num_fail_exits
        else:
            service_status.num_fail_exits = \
                current_service_status.num_fail_exits + 1
            service_status.num_clean_exits = \
                current_service_status.num_clean_exits
        self._flat_dict[key] = service_status