Esempio n. 1
0
def action_to_operation_dto(
    action: ResourceAgentAction, ) -> CibResourceOperationDto:
    """
    Transform agent action data to CIB operation data
    """
    instance_attributes = []
    if action.depth not in (None, "0"):
        instance_attributes = [
            CibNvsetDto(
                id="",
                options={},
                rule=None,
                nvpairs=[
                    CibNvpairDto(id="",
                                 name="OCF_CHECK_LEVEL",
                                 value=str(action.depth))
                ],
            )
        ]
    return CibResourceOperationDto(
        id="",
        name=action.name,
        interval=(action.interval if action.interval else
                  get_default_operation_interval(action.name)),
        description=None,
        start_delay=action.start_delay,
        interval_origin=None,
        timeout=action.timeout,
        enabled=None,
        record_pending=None,
        role=PcmkRoleType(action.role) if action.role else None,
        on_fail=None,
        meta_attributes=[],
        instance_attributes=instance_attributes,
    )
Esempio n. 2
0
def _primitive_fixture(primitive_id, agent_name=DUMMY_AGENT_NAME):
    return CibResourcePrimitiveDto(
        id=primitive_id,
        agent_name=agent_name,
        description=None,
        operations=[
            CibResourceOperationDto(
                id=f"{primitive_id}-monitor-interval-10s",
                name="monitor",
                interval="10s",
                description=None,
                start_delay=None,
                interval_origin=None,
                timeout="20s",
                enabled=None,
                record_pending=None,
                role=None,
                on_fail=None,
                meta_attributes=[],
                instance_attributes=[],
            )
        ],
        meta_attributes=[],
        instance_attributes=[],
        utilization=[],
    )
Esempio n. 3
0
def op_element_to_dto(
    op_element: _Element,
    rule_eval: Optional[rule.RuleInEffectEval] = None
) -> CibResourceOperationDto:
    if rule_eval is None:
        rule_eval = rule.RuleInEffectEvalDummy()
    return CibResourceOperationDto(
        id=str(op_element.attrib["id"]),
        name=str(op_element.attrib["name"]),
        interval=str(op_element.attrib["interval"]),
        description=op_element.get("description"),
        start_delay=op_element.get("start-delay"),
        interval_origin=op_element.get("interval-origin"),
        timeout=op_element.get("timeout"),
        enabled=get_optional_value(is_true, op_element.get("enabled")),
        record_pending=get_optional_value(is_true,
                                          op_element.get("record-pending")),
        role=get_optional_value(
            lambda _role: role.get_value_primary(const.PcmkRoleType(_role)),
            op_element.get("role"),
        ),
        on_fail=get_optional_value(const.PcmkOnFailAction,
                                   op_element.get("on-fail")),
        meta_attributes=[
            nvpair_multi.nvset_element_to_dto(nvset, rule_eval) for nvset in
            nvpair_multi.find_nvsets(op_element, nvpair_multi.NVSET_META)
        ],
        instance_attributes=[
            nvpair_multi.nvset_element_to_dto(nvset, rule_eval) for nvset in
            nvpair_multi.find_nvsets(op_element, nvpair_multi.NVSET_INSTANCE)
        ],
    )
Esempio n. 4
0
 def op_fixture(name, interval, timeout):
     return CibResourceOperationDto(
         id="",
         name=name,
         interval=interval,
         description=None,
         start_delay=None,
         interval_origin=None,
         timeout=timeout,
         enabled=None,
         record_pending=None,
         role=None,
         on_fail=None,
         meta_attributes=[],
         instance_attributes=[],
     )
Esempio n. 5
0
PRIMITIVE_R3 = _primitive_fixture("R3")
PRIMITIVE_R4 = _primitive_fixture("R4")
PRIMITIVE_R5 = _primitive_fixture("R5")
PRIMITIVE_R6 = CibResourcePrimitiveDto(
    id="R6",
    agent_name=DUMMY_AGENT_NAME,
    description=None,
    operations=[
        CibResourceOperationDto(
            id="R6-migrate_from-interval-0s",
            name="migrate_from",
            interval="0s",
            description=None,
            start_delay=None,
            interval_origin=None,
            timeout="20s",
            enabled=None,
            record_pending=None,
            role=None,
            on_fail=None,
            meta_attributes=[],
            instance_attributes=[],
        ),
        CibResourceOperationDto(
            id="R6-migrate_to-interval-0s",
            name="migrate_to",
            interval="0s",
            description=None,
            start_delay=None,
            interval_origin=None,
            timeout="20s",