jubilant.statustypes¶
Dataclasses that contain parsed output from juju status --format=json.
- class jubilant.statustypes.AppStatus(
- charm: str,
- charm_origin: str,
- charm_name: str,
- charm_rev: int,
- exposed: bool,
- base: ~jubilant.statustypes.FormattedBase | None = None,
- charm_channel: str = '',
- charm_version: str = '',
- charm_profile: str = '',
- can_upgrade_to: str = '',
- scale: int = 0,
- provider_id: str = '',
- address: str = '',
- life: str = '',
- app_status: ~jubilant.statustypes.StatusInfo = <factory>,
- relations: dict[str,
- list[~jubilant.statustypes.AppStatusRelation]] = <factory>,
- subordinate_to: list[str] = <factory>,
- units: dict[str,
- ~jubilant.statustypes.UnitStatus] = <factory>,
- version: str = '',
- endpoint_bindings: dict[str,
- str] = <factory>,
Bases:
objectStatus of a single application.
- address: str = ''¶
- app_status: StatusInfo¶
- base: FormattedBase | None = None¶
- can_upgrade_to: str = ''¶
- charm: str¶
- charm_channel: str = ''¶
- charm_name: str¶
- charm_origin: str¶
- charm_profile: str = ''¶
- charm_rev: int¶
- charm_version: str = ''¶
- endpoint_bindings: dict[str, str]¶
- exposed: bool¶
- property is_active: bool¶
Report whether the application status for this app is “active”.
- property is_blocked: bool¶
Report whether the application status for this app is “blocked”.
- property is_error: bool¶
Report whether the application status for this app is “error”.
- property is_maintenance: bool¶
Report whether the application status for this app is “maintenance”.
- property is_waiting: bool¶
Report whether the application status for this app is “waiting”.
- life: str = ''¶
- provider_id: str = ''¶
- relations: dict[str, list[AppStatusRelation]]¶
- scale: int = 0¶
- subordinate_to: list[str]¶
- units: dict[str, UnitStatus]¶
- version: str = ''¶
- class jubilant.statustypes.AppStatusRelation(
- related_app: 'str' = '',
- interface: 'str' = '',
- scope: 'str' = '',
Bases:
object- interface: str = ''¶
- scope: str = ''¶
- class jubilant.statustypes.CombinedStorage(
- storage: dict[str,
- ~jubilant.statustypes.StorageInfo] = <factory>,
- filesystems: dict[str,
- ~jubilant.statustypes.FilesystemInfo] = <factory>,
- volumes: dict[str,
- ~jubilant.statustypes.VolumeInfo] = <factory>,
Bases:
objectStorage information.
- filesystems: dict[str, FilesystemInfo]¶
- storage: dict[str, StorageInfo]¶
- volumes: dict[str, VolumeInfo]¶
- class jubilant.statustypes.ControllerStatus(timestamp: str = '')¶
Bases:
objectBasic controller information.
- timestamp: str = ''¶
- class jubilant.statustypes.EntityStatus(current: str = '', message: str = '', since: str = '')¶
Bases:
objectStatus class used for storage status. See
StatusInfofor the main status class.- current: str = ''¶
- message: str = ''¶
- since: str = ''¶
- class jubilant.statustypes.FilesystemAttachment(mount_point: 'str', read_only: 'bool', life: 'str' = '')¶
Bases:
object- life: str = ''¶
- mount_point: str¶
- read_only: bool¶
- class jubilant.statustypes.FilesystemAttachments(
- machines: 'dict[str,
- FilesystemAttachment]' = <factory>,
- containers: 'dict[str,
- FilesystemAttachment]' = <factory>,
- units: 'dict[str,
- UnitStorageAttachment]' = <factory>,
Bases:
object- containers: dict[str, FilesystemAttachment]¶
- machines: dict[str, FilesystemAttachment]¶
- units: dict[str, UnitStorageAttachment]¶
- class jubilant.statustypes.FilesystemInfo(
- size: 'int',
- provider_id: 'str' = '',
- volume: 'str' = '',
- storage: 'str' = '',
- attachments: 'FilesystemAttachments' = <factory>,
- pool: 'str' = '',
- life: 'str' = '',
- status: 'EntityStatus' = <factory>,
Bases:
object- attachments: FilesystemAttachments¶
- life: str = ''¶
- pool: str = ''¶
- provider_id: str = ''¶
- size: int¶
- status: EntityStatus¶
- storage: str = ''¶
- volume: str = ''¶
- class jubilant.statustypes.FormattedBase(name: 'str', channel: 'str')¶
Bases:
object- channel: str¶
- name: str¶
- class jubilant.statustypes.LxdProfileContents(
- config: 'dict[str, str]',
- description: 'str',
- devices: 'dict[str, dict[str, str]]',
Bases:
object- config: dict[str, str]¶
- description: str¶
- devices: dict[str, dict[str, str]]¶
- class jubilant.statustypes.MachineStatus(
- juju_status: ~jubilant.statustypes.StatusInfo = <factory>,
- hostname: str = '',
- dns_name: str = '',
- ip_addresses: list[str] = <factory>,
- instance_id: str = '',
- display_name: str = '',
- machine_status: ~jubilant.statustypes.StatusInfo = <factory>,
- modification_status: ~jubilant.statustypes.StatusInfo = <factory>,
- base: ~jubilant.statustypes.FormattedBase | None = None,
- network_interfaces: dict[str,
- ~jubilant.statustypes.NetworkInterface] = <factory>,
- containers: dict[str,
- ~jubilant.statustypes.MachineStatus] = <factory>,
- constraints: str = '',
- hardware: str = '',
- controller_member_status: str = '',
- ha_primary: bool = False,
- lxd_profiles: dict[str,
- ~jubilant.statustypes.LxdProfileContents] = <factory>,
Bases:
objectStatus of a single machine.
- base: FormattedBase | None = None¶
- constraints: str = ''¶
- containers: dict[str, MachineStatus]¶
- controller_member_status: str = ''¶
- display_name: str = ''¶
- dns_name: str = ''¶
- ha_primary: bool = False¶
- hardware: str = ''¶
- hostname: str = ''¶
- instance_id: str = ''¶
- ip_addresses: list[str]¶
- juju_status: StatusInfo¶
- lxd_profiles: dict[str, LxdProfileContents]¶
- machine_status: StatusInfo¶
- modification_status: StatusInfo¶
- network_interfaces: dict[str, NetworkInterface]¶
- class jubilant.statustypes.ModelStatus(
- name: str,
- type: str,
- controller: str,
- cloud: str,
- version: str,
- region: str = '',
- upgrade_available: str = '',
- model_status: ~jubilant.statustypes.StatusInfo = <factory>,
Bases:
objectStatus and basic information about the model.
- cloud: str¶
Name of cloud, for example
awsormicrok8s.
- controller: str¶
Name of controller.
- model_status: StatusInfo¶
Status of the model. Normally the current field is
available.
- name: str¶
Name of model.
- region: str = ''¶
Cloud region.
- type: str¶
Type of model, for example,
caasfor a Kubernetes model.
- upgrade_available: str = ''¶
Version number if a new Juju agent is available.
- version: str¶
Juju agent version.
- class jubilant.statustypes.NetworkInterface(
- ip_addresses: 'list[str]',
- mac_address: 'str',
- is_up: 'bool',
- gateway: 'str' = '',
- dns_nameservers: 'list[str]' = <factory>,
- space: 'str' = '',
Bases:
object- dns_nameservers: list[str]¶
- gateway: str = ''¶
- ip_addresses: list[str]¶
- is_up: bool¶
- mac_address: str¶
- space: str = ''¶
- class jubilant.statustypes.OfferStatus(
- app: 'str',
- endpoints: 'dict[str, RemoteEndpoint]',
- charm: 'str' = '',
- total_connected_count: 'int' = 0,
- active_connected_count: 'int' = 0,
Bases:
object- active_connected_count: int = 0¶
- app: str¶
- charm: str = ''¶
- endpoints: dict[str, RemoteEndpoint]¶
- total_connected_count: int = 0¶
- class jubilant.statustypes.RemoteAppStatus(
- url: 'str',
- endpoints: 'dict[str,
- RemoteEndpoint]' = <factory>,
- life: 'str' = '',
- app_status: 'StatusInfo' = <factory>,
- relations: 'dict[str,
- list[str]]' = <factory>,
Bases:
object- app_status: StatusInfo¶
- endpoints: dict[str, RemoteEndpoint]¶
- life: str = ''¶
- relations: dict[str, list[str]]¶
- url: str¶
- class jubilant.statustypes.RemoteEndpoint(interface: 'str', role: 'str')¶
Bases:
object- interface: str¶
- role: str¶
- class jubilant.statustypes.Status(model: ~jubilant.statustypes.ModelStatus, machines: dict[str, ~jubilant.statustypes.MachineStatus], apps: dict[str, ~jubilant.statustypes.AppStatus], app_endpoints: dict[str, ~jubilant.statustypes.RemoteAppStatus] = <factory>, offers: dict[str, ~jubilant.statustypes.OfferStatus] = <factory>, storage: ~jubilant.statustypes.CombinedStorage = <factory>, controller: ~jubilant.statustypes.ControllerStatus = <factory>)¶
Bases:
objectParsed version of the status object returned by
juju status --format=json.- app_endpoints: dict[str, RemoteAppStatus]¶
Mapping of offer name to remote application information.
- controller: ControllerStatus¶
Controller information.
- get_units(app: str) dict[str, UnitStatus]¶
Get all units of the given app, including units of subordinate apps.
For subordinate apps, this finds and returns the subordinate units using the app’s
subordinate_tolist. For principal (non-subordinate) apps, this is equivalent tostatus.apps[app].units.- Returns:
Dict of units where the key is the unit name and the value is the
UnitStatus. If app is not found, return an empty dict.
- machines: dict[str, MachineStatus]¶
Mapping of machine ID string (for example,
"0") to machine information.
- model: ModelStatus¶
Model information.
- offers: dict[str, OfferStatus]¶
Mapping of offer name to offer information.
- storage: CombinedStorage¶
Storage information.
- class jubilant.statustypes.StatusInfo(
- current: str = '',
- message: str = '',
- reason: str = '',
- since: str = '',
- version: str = '',
- life: str = '',
Bases:
objectThe main status class used for application, unit, and machine status.
- current: str = ''¶
- life: str = ''¶
- message: str = ''¶
- reason: str = ''¶
- since: str = ''¶
- version: str = ''¶
- class jubilant.statustypes.StorageAttachments(units: 'dict[str, UnitStorageAttachment]')¶
Bases:
object- units: dict[str, UnitStorageAttachment]¶
- class jubilant.statustypes.StorageInfo(
- kind: 'str',
- status: 'EntityStatus',
- persistent: 'bool',
- life: 'str' = '',
- attachments: 'StorageAttachments | None' = None,
Bases:
object- attachments: StorageAttachments | None = None¶
- kind: str¶
- life: str = ''¶
- persistent: bool¶
- status: EntityStatus¶
- class jubilant.statustypes.UnitStatus(
- workload_status: ~jubilant.statustypes.StatusInfo = <factory>,
- juju_status: ~jubilant.statustypes.StatusInfo = <factory>,
- leader: bool = False,
- upgrading_from: str = '',
- machine: str = '',
- open_ports: list[str] = <factory>,
- public_address: str = '',
- address: str = '',
- provider_id: str = '',
- subordinates: dict[str,
- ~jubilant.statustypes.UnitStatus] = <factory>,
Bases:
objectStatus of a single unit.
- address: str = ''¶
- property is_active: bool¶
Report whether the workload status for this unit status is “active”.
- property is_blocked: bool¶
Report whether the workload status for this unit status is “blocked”.
- property is_error: bool¶
Report whether the workload status for this unit status is “error”.
- property is_maintenance: bool¶
Report whether the workload status for this unit status is “maintenance”.
- property is_waiting: bool¶
Report whether the workload status for this unit status is “waiting”.
- juju_status: StatusInfo¶
- leader: bool = False¶
- machine: str = ''¶
- open_ports: list[str]¶
- provider_id: str = ''¶
- public_address: str = ''¶
- subordinates: dict[str, UnitStatus]¶
- upgrading_from: str = ''¶
- workload_status: StatusInfo¶
- class jubilant.statustypes.UnitStorageAttachment(
- machine: 'str' = '',
- location: 'str' = '',
- life: 'str' = '',
Bases:
object- life: str = ''¶
- location: str = ''¶
- machine: str = ''¶
- class jubilant.statustypes.VolumeAttachment(
- read_only: 'bool',
- device: 'str' = '',
- device_link: 'str' = '',
- bus_address: 'str' = '',
- life: 'str' = '',
Bases:
object- bus_address: str = ''¶
- device: str = ''¶
- device_link: str = ''¶
- life: str = ''¶
- read_only: bool¶
- class jubilant.statustypes.VolumeAttachments(
- machines: 'dict[str,
- VolumeAttachment]' = <factory>,
- containers: 'dict[str,
- VolumeAttachment]' = <factory>,
- units: 'dict[str,
- UnitStorageAttachment]' = <factory>,
Bases:
object- containers: dict[str, VolumeAttachment]¶
- machines: dict[str, VolumeAttachment]¶
- units: dict[str, UnitStorageAttachment]¶
- class jubilant.statustypes.VolumeInfo(
- size: 'int',
- persistent: 'bool',
- provider_id: 'str' = '',
- storage: 'str' = '',
- attachments: 'VolumeAttachments' = <factory>,
- pool: 'str' = '',
- hardware_id: 'str' = '',
- wwn: 'str' = '',
- life: 'str' = '',
- status: 'EntityStatus' = <factory>,
Bases:
object- attachments: VolumeAttachments¶
- hardware_id: str = ''¶
- life: str = ''¶
- persistent: bool¶
- pool: str = ''¶
- provider_id: str = ''¶
- size: int¶
- status: EntityStatus¶
- storage: str = ''¶
- wwn: str = ''¶