36 if (standard == NULL) {
73 if (!standard && !provider && !
type) {
78 (standard? standard :
""),
79 (provider?
":" :
""), (provider? provider :
""),
103 CRM_CHECK(spec && standard && provider &&
type,
return -EINVAL);
108 colon = strchr(spec,
':');
109 if ((colon == NULL) || (colon == spec)) {
113 *standard =
strndup(spec, colon - spec);
117 colon = strchr(spec,
':');
118 if ((colon == NULL) || (colon == spec)) {
122 *provider =
strndup(spec, colon - spec);
132 *
type = strdup(spec);
int crm_parse_agent_spec(const char *spec, char **standard, char **provider, char **type)
Parse a "standard[:provider]:type" agent specification.
uint32_t pcmk_get_ra_caps(const char *standard)
Get capabilities of a resource agent standard.
char * crm_generate_ra_key(const char *standard, const char *provider, const char *type)
bool crm_provider_required(const char *standard)
Check whether a resource standard requires a provider to be specified.
enum crm_ais_msg_types type
char * crm_strdup_printf(char const *format,...) __attribute__((__format__(__printf__
#define CRM_CHECK(expr, failure_action)
char * strndup(const char *str, size_t len)
#define PCMK_RESOURCE_CLASS_NAGIOS
#define PCMK_RESOURCE_CLASS_SYSTEMD
#define PCMK_RESOURCE_CLASS_SERVICE
#define PCMK_RESOURCE_CLASS_STONITH
#define PCMK_RESOURCE_CLASS_OCF
#define PCMK_RESOURCE_CLASS_UPSTART
#define PCMK_RESOURCE_CLASS_LSB