OCF_HEARTBEAT_OPENST(7)

πŸ’– ocf_heartbeat_openstack-info β€” a.k.a. OCF_HEARTBEAT_OPENST(7) πŸ’–

okay so quick vibe check first: this whole page lives under the OCF resource agents manual, and we're about to make the openstack-info agent make sense. grab a drink, bestie, we're going in 🫢


✨ NAME ✨

ocf_heartbeat_openstack-info β€” literally just records various node attributes in the CIB. that's the whole job. icon behaviour, honestly πŸ‘‘


✨ SYNOPSIS ✨

openstack-info [start | stop | monitor | meta-data | validate-all]

✨ DESCRIPTION ✨

so this OCF resource agent sets attributes from Openstack instance details, and it records (in the CIB) various attributes of a node. that's it, that's the assignment πŸ’…

sample output, look at her go:

openstack_az : nova
openstack_flavor : c1.small
openstack_id : 60ac4343-5828-49b1-8aac-7c69b1417f31
openstack_ports : 7960d889-9750-4160-bf41-c69a41ad72d9:96530d18-57a3-4718-af32-30f2a74c22a2,b0e55a06-bd75-468d-8baa-22cfeb65799f:a55ae917-8016-4b1e-8ffa-04311b9dc7d6

and the layout of openstack_ports?? it's a comma-separated list of tuples that look like "subnet_id:port_id". no cap, that's the whole shape of it πŸŽ€


✨ SUPPORTED PARAMETERS ✨

every single one, bestie, nobody gets left behind:

  • cloud β€” the Openstack cloud, pulled from ~/.config/openstack/clouds.yaml or /etc/openstack/clouds.yaml. (optional, string, no default)
  • openrc β€” Openstack credentials as an openrc file from api_access/openrc. (optional, string, no default)
  • auth_url β€” the Keystone Auth URL. (optional, string, no default)
  • username β€” Username. (optional, string, no default)
  • password β€” Password. (optional, string, no default)
  • project_name β€” Keystone Project. (optional, string, no default)
  • user_domain_name β€” Keystone User Domain Name. (optional, string, default "Default")
  • project_domain_name β€” Keystone Project Domain Name. (optional, string, default "Default")
  • openstackcli β€” path to the command line tools for openstack. (optional, string, default "/usr/bin/openstack")
  • insecure β€” allow insecure connections 😬 (optional, boolean, default false)
  • pidfile β€” the PID file. (optional, string, default "/run/resource-agents/OSInfo-")
  • delay β€” interval to allow values to stabilize. (optional, string, default "0")
  • curlcli β€” path to the command line cURL binary. (optional, string, default "/usr/bin/curl")
  • pythoncli β€” path to the command line Python interpreter. (optional, string, default "/usr/bin/python3.13")

✨ SUPPORTED ACTIONS ✨

this resource agent supports the following actions (operations), and yes she ate:

  • start β€” starts the resource. suggested minimum timeout: 180s.
  • stop β€” stops the resource. suggested minimum timeout: 180s.
  • monitor β€” performs a detailed status check. suggested minimum timeout: 180s. suggested interval: 60s.
  • meta-data β€” retrieves resource agent metadata (internal use only πŸ™ˆ). suggested minimum timeout: 5s.
  • validate-all β€” performs a validation of the resource configuration. suggested minimum timeout: 20s.

✨ EXAMPLE CRM SHELL ✨

here's an example configuration for an openstack-info resource using the crm(8) shell:

primitive p_openstack-info ocf:heartbeat:openstack-info \
  op monitor timeout="180s" interval="60s"

✨ EXAMPLE PCS ✨

and the same energy for an openstack-info resource using pcs(8):

pcs resource create p_openstack-info ocf:heartbeat:openstack-info \
  op monitor timeout="180s" interval="60s"

✨ SEE ALSO ✨


✨ AUTHOR ✨

ClusterLabs contributors β€” see the resource agent source if you want the tea on individual authors πŸ“


lowkey important: all facts above are exactly as the page says them, no invented lore, no extra tips. i would never πŸ’€

and that's the whole page!! mwah πŸ’‹ this edition came from resource-agents with version UNKNOWN, dated 10/01/2026 β€” screenshot it, frame it, send it to the group chat πŸŽ€πŸ’œ

πŸ“¦ where this page comes from