ahriman.core.status package

Submodules

ahriman.core.status.client module

class Client

Bases: object

base build status reporter client

static load(repository_id: RepositoryId, configuration: Configuration, *, report: bool) Client

load client from settings

Parameters:
  • repository_id (RepositoryId) – repository unique identifier

  • configuration (Configuration) – configuration instance

  • report (bool) – force enable or disable reporting

Returns:

client according to current settings

Return type:

Client

package_add(package: Package, status: BuildStatusEnum) None

add new package with status

Parameters:
package_changes_get(package_base: str) Changes

get package changes

Parameters:

package_base (str) – package base to retrieve

Returns:

package changes if available and empty object otherwise

Return type:

Changes

package_changes_set(package_base: str, changes: Changes) None

update package changes

Parameters:
  • package_base (str) – package base to update

  • changes (Changes) – changes descriptor

package_get(package_base: str | None) list[tuple[Package, BuildStatus]]

get package status

Parameters:

package_base (str | None) – package base to get

Returns:

list of current package description and status if it has been found

Return type:

list[tuple[Package, BuildStatus]]

package_logs(log_record_id: LogRecordId, record: LogRecord) None

post log record

Parameters:
  • log_record_id (LogRecordId) – log record id

  • record (logging.LogRecord) – log record to post to api

package_remove(package_base: str) None

remove packages from watcher

Parameters:

package_base (str) – package base to remove

package_update(package_base: str, status: BuildStatusEnum) None

update package build status. Unlike package_add() it does not update package properties

Parameters:
  • package_base (str) – package base to update

  • status (BuildStatusEnum) – current package build status

set_building(package_base: str) None

set package status to building

Parameters:

package_base (str) – package base to update

set_failed(package_base: str) None

set package status to failed

Parameters:

package_base (str) – package base to update

set_pending(package_base: str) None

set package status to pending

Parameters:

package_base (str) – package base to update

set_success(package: Package) None

set package status to success

Parameters:

package (Package) – current package properties

set_unknown(package: Package) None

set package status to unknown

Parameters:

package (Package) – current package properties

status_get() InternalStatus

get internal service status

Returns:

current internal (web) service status

Return type:

InternalStatus

status_update(status: BuildStatusEnum) None

update ahriman status itself

Parameters:

status (BuildStatusEnum) – current ahriman status

ahriman.core.status.watcher module

class Watcher(repository_id: RepositoryId, database: SQLite)

Bases: LazyLogging

package status watcher

database

database instance

Type:

SQLite

repository_id

repository unique identifier

Type:

RepositoryId

status

daemon status

Type:

BuildStatus

default constructor

Parameters:
  • repository_id (RepositoryId) – repository unique identifier

  • database (SQLite) – database instance

load() None

load packages from local database

logs_get(package_base: str, limit: int = -1, offset: int = 0) list[tuple[float, str]]

extract logs for the package base

Parameters:
  • package_base (str) – package base

  • limit (int, optional) – limit records to the specified count, -1 means unlimited (Default value = -1)

  • offset (int, optional) – records offset (Default value = 0)

Returns:

package logs

Return type:

list[tuple[float, str]]

logs_remove(package_base: str, version: str | None) None

remove package related logs

Parameters:
  • package_base (str) – package base

  • version (str) – package versio

logs_update(log_record_id: LogRecordId, created: float, record: str) None

make new log record into database

Parameters:
  • log_record_id (LogRecordId) – log record id

  • created (float) – log created timestamp

  • record (str) – log record

package_changes_get(package_base: str) Changes

retrieve package changes

Parameters:

package_base (str) – package base

Returns:

package changes if available

Return type:

Changes

package_get(package_base: str) tuple[Package, BuildStatus]

get current package base build status

Parameters:

package_base (str) – package base

Returns:

package and its status

Return type:

tuple[Package, BuildStatus]

Raises:

UnknownPackageError – if no package found

package_remove(package_base: str) None

remove package base from known list if any

Parameters:

package_base (str) – package base

package_update(package_base: str, status: BuildStatusEnum, package: Package | None) None

update package status and description

Parameters:
  • package_base (str) – package base to update

  • status (BuildStatusEnum) – new build status

  • package (Package | None) – optional package description. In case if not set current properties will be used

patches_get(package_base: str, variable: str | None) list[PkgbuildPatch]

get patches for the package

Parameters:
  • package_base (str) – package base

  • variable (str | None) – patch variable name if any

Returns:

list of patches which are stored for the package

Return type:

list[PkgbuildPatch]

patches_remove(package_base: str, variable: str) None

remove package patch

Parameters:
  • package_base (str) – package base

  • variable (str) – patch variable name

patches_update(package_base: str, patch: PkgbuildPatch) None

update package patch

Parameters:
  • package_base (str) – package base

  • patch (PkgbuildPatch) – package patch

status_update(status: BuildStatusEnum) None

update service status

Parameters:

status (BuildStatusEnum) – new service status

property packages: list[tuple[Package, BuildStatus]]

get current known packages list

Returns:

list of packages together with their statuses

Return type:

list[tuple[Package, BuildStatus]]

ahriman.core.status.web_client module

class WebClient(repository_id: RepositoryId, configuration: Configuration)

Bases: Client, SyncAhrimanClient

build status reporter web client

repository_id

repository unique identifier

Type:

RepositoryId

default constructor

Parameters:
package_add(package: Package, status: BuildStatusEnum) None

add new package with status

Parameters:
package_changes_get(package_base: str) Changes

get package changes

Parameters:

package_base (str) – package base to retrieve

Returns:

package changes if available and empty object otherwise

Return type:

Changes

package_changes_set(package_base: str, changes: Changes) None

update package changes

Parameters:
  • package_base (str) – package base to update

  • changes (Changes) – changes descriptor

package_get(package_base: str | None) list[tuple[Package, BuildStatus]]

get package status

Parameters:

package_base (str | None) – package base to get

Returns:

list of current package description and status if it has been found

Return type:

list[tuple[Package, BuildStatus]]

package_logs(log_record_id: LogRecordId, record: LogRecord) None

post log record

Parameters:
  • log_record_id (LogRecordId) – log record id

  • record (logging.LogRecord) – log record to post to api

package_remove(package_base: str) None

remove packages from watcher

Parameters:

package_base (str) – basename to remove

package_update(package_base: str, status: BuildStatusEnum) None

update package build status. Unlike package_add() it does not update package properties

Parameters:
  • package_base (str) – package base to update

  • status (BuildStatusEnum) – current package build status

static parse_address(configuration: Configuration) tuple[str, str]

parse address from legacy configuration

Parameters:

configuration (Configuration) – configuration instance

Returns:

tuple of section name and server address

Return type:

tuple[str, str]

status_get() InternalStatus

get internal service status

Returns:

current internal (web) service status

Return type:

InternalStatus

status_update(status: BuildStatusEnum) None

update ahriman status itself

Parameters:

status (BuildStatusEnum) – current ahriman status

Module contents