11 #  define PE_VARIANT__H    15 typedef struct clone_variant_data_s {
    20     int promoted_node_max;
    26     bool added_promotion_scores;
    27     bool added_promoted_constraints;
    34     xmlNode *xml_obj_child;
    35 } clone_variant_data_t;
    37 #    define get_clone_variant_data(data, rsc)               \    38     CRM_ASSERT(rsc != NULL);                    \    39     CRM_ASSERT(rsc->variant == pe_clone); \    40     data = (clone_variant_data_t *)rsc->variant_opaque;    42 #  elif PE__VARIANT_BUNDLE    52 } pe__bundle_replica_t;
    54 enum pe__bundle_mount_flags {
    55     pe__bundle_mount_none       = 0x00,
    58     pe__bundle_mount_subdir     = 0x01
    73 enum pe__container_agent {
    74     PE__CONTAINER_AGENT_UNKNOWN,
    75     PE__CONTAINER_AGENT_DOCKER,
    76     PE__CONTAINER_AGENT_RKT,
    77     PE__CONTAINER_AGENT_PODMAN,
    80 #define PE__CONTAINER_AGENT_UNKNOWN_S "unknown"    81 #define PE__CONTAINER_AGENT_DOCKER_S  "docker"    82 #define PE__CONTAINER_AGENT_RKT_S     "rkt"    83 #define PE__CONTAINER_AGENT_PODMAN_S  "podman"    85 typedef struct pe__bundle_variant_data_s {
    88         int nreplicas_per_host;
    95         char *container_network;
    98         char *container_host_options;
    99         char *container_command;
   100         char *launcher_options;
   101         const char *attribute_target;
   109         enum pe__container_agent agent_type;
   110 } pe__bundle_variant_data_t;
   112 #    define get_bundle_variant_data(data, rsc)                       \   113     CRM_ASSERT(rsc != NULL);                    \   114     CRM_ASSERT(rsc->variant == pe_container);                       \   115     CRM_ASSERT(rsc->variant_opaque != NULL);            \   116     data = (pe__bundle_variant_data_t *)rsc->variant_opaque;        \   120 typedef struct group_variant_data_s {
   128     gboolean child_starting;
   129     gboolean child_stopping;
   131 } group_variant_data_t;
   133 #    define get_group_variant_data(data, rsc)               \   134     CRM_ASSERT(rsc != NULL);                    \   135     CRM_ASSERT(rsc->variant == pe_group);               \   136     CRM_ASSERT(rsc->variant_opaque != NULL);            \   137     data = (group_variant_data_t *)rsc->variant_opaque;     \   139 #  elif VARIANT_NATIVE   141 typedef struct native_variant_data_s {
   143 } native_variant_data_t;
   145 #    define get_native_variant_data(data, rsc)              \   146     CRM_ASSERT(rsc != NULL);                    \   147     CRM_ASSERT(rsc->variant == pe_native);              \   148     CRM_ASSERT(rsc->variant_opaque != NULL);            \   149     data = (native_variant_data_t *)rsc->variant_opaque;