disk.gce resource template

##############################################################################
#                                                                            #
# disk, type gce                                                             #
#                                                                            #
##############################################################################

[disk#0]
;type = gce

#
# keyword:       names
# ----------------------------------------------------------------------------
#  required:     True
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Set the gce disk names
#
;names = svc1-disk1

#
# keyword:       gce_zone
# ----------------------------------------------------------------------------
#  required:     True
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Set the gce zone
#
;gce_zone = europe-west1-b

#
# keyword:       size
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Indicates the size of the disks. The OpenSVC size converter is used
#         to produce gce compatible size, so k, K, kib, KiB, kb, KB, ki, Ki
#         and all their g, t, p, e variants are supported.
#
;size = True

#
# keyword:       description
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  An optional, textual description for the disks being created.
#
;description = True

#
# keyword:       image
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  An image to apply to the disks being created. When using this
#         option, the size of the disks must be at least as large as the image
#         size.
#
;image = True

#
# keyword:       image_project
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  The project against which all image references will be resolved.
#
;image_project = True

#
# keyword:       source_snapshot
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A source snapshot used to create the disks. It is safe to delete a
#         snapshot after a disk has been created from the snapshot. In such
#         cases, the disks will no longer reference the deleted snapshot. When
#         using this option, the size of the disks must be at least as large
#         as the snapshot size.
#
;source_snapshot = True

#
# keyword:       disk_type
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: True
#  default:      True
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Specifies the type of disk to create. To get a list of available
#         disk types, run 'gcloud compute disk-types list'. The default disk
#         type is pd-standard.
#
;disk_type = True

#
# keyword:       prkey
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Defines a specific persistent reservation key for the resource.
#         Takes priority over the service-level defined prkey and the
#         node.conf specified prkey.
#
;prkey = foo

#
# keyword:       restart
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      0
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  The agent will try to restart a resource n times before falling back
#         to the monitor action.
#
;restart = 0

#
# keyword:       tags
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A list of tags. Arbitrary tags can be used to limit action scope to
#         resources with a specific tag. Some tags can influence the driver
#         behaviour. For example the 'encap' tag assigns the resource to the
#         encapsulated service, 'noaction' avoids any state changing action
#         from the driver, 'nostatus' forces the status to n/a.
#
;tags = foo

#
# keyword:       subset
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  Assign the resource to a specific subset.
#
;subset = foo

#
# keyword:       monitor
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      False
#  candidates:   True | False
#  depends:      None
#  scopable:     True
#
#  desc:  A monitored resource will trigger a node suicide if the service has
#         a heartbeat resource in up state
#
;monitor = False

#
# keyword:       disable
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      False
#  candidates:   True | False
#  depends:      None
#  scopable:     True
#
#  desc:  A disabled resource will be ignored on service startup and shutdown.
#
;disable = False

#
# keyword:       disable_on
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      []
#  candidates:   None
#  depends:      None
#  scopable:     False
#
#  desc:  A whitelist-separated list of nodes to disable the resource on. A
#         disabled resource will be ignored on service startup and shutdown.
#
;disable_on = []

#
# keyword:       enable_on
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      []
#  candidates:   None
#  depends:      None
#  scopable:     False
#
#  desc:  A whitelist-separated list of nodes to enable the resource on. Takes
#         precedence over disable and disable_on.
#
;enable_on = []

#
# keyword:       optional
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      False
#  candidates:   True | False
#  depends:      None
#  scopable:     True
#
#  desc:  Possible values are 'true' or 'false'. Actions on resource will be
#         tried upon service startup and shutdown, but action failures will be
#         logged and passed over. Useful for resources like dump filesystems
#         for example.
#
;optional = False

#
# keyword:       always_on
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   nodes | drpnodes | nodes drpnodes
#  depends:      None
#  scopable:     False
#
#  desc:  Possible values are 'nodes', 'drpnodes' or 'nodes drpnodes', or a
#         list of nodes. Sets the nodes on which the resource is always kept
#         up. Primary usage is file synchronization receiving on non-shared
#         disks. Don't set this on shared disk !! danger !!
#
;always_on = nodes

#
# keyword:       pre_unprovision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource unprovision
#         action. Errors do not interrupt the action.
#
;pre_unprovision = foo

#
# keyword:       post_unprovision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource unprovision
#         action. Errors do not interrupt the action.
#
;post_unprovision = foo

#
# keyword:       pre_provision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource provision action.
#         Errors do not interrupt the action.
#
;pre_provision = foo

#
# keyword:       post_provision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource provision action.
#         Errors do not interrupt the action.
#
;post_provision = foo

#
# keyword:       pre_start
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource start action.
#         Errors do not interrupt the action.
#
;pre_start = foo

#
# keyword:       post_start
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource start action.
#         Errors do not interrupt the action.
#
;post_start = foo

#
# keyword:       pre_stop
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource stop action.
#         Errors do not interrupt the action.
#
;pre_stop = foo

#
# keyword:       post_stop
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource stop action.
#         Errors do not interrupt the action.
#
;post_stop = foo

#
# keyword:       pre_sync_nodes
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_nodes
#         action. Errors do not interrupt the action.
#
;pre_sync_nodes = foo

#
# keyword:       post_sync_nodes
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_nodes action.
#         Errors do not interrupt the action.
#
;post_sync_nodes = foo

#
# keyword:       pre_sync_drp
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_drp action.
#         Errors do not interrupt the action.
#
;pre_sync_drp = foo

#
# keyword:       post_sync_drp
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_drp action.
#         Errors do not interrupt the action.
#
;post_sync_drp = foo

#
# keyword:       pre_sync_resync
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_resync
#         action. Errors do not interrupt the action.
#
;pre_sync_resync = foo

#
# keyword:       post_sync_resync
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_resync
#         action. Errors do not interrupt the action.
#
;post_sync_resync = foo

#
# keyword:       pre_sync_update
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_update
#         action. Errors do not interrupt the action.
#
;pre_sync_update = foo

#
# keyword:       post_sync_update
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_update
#         action. Errors do not interrupt the action.
#
;post_sync_update = foo

#
# keyword:       pre_run
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource run action.
#         Errors do not interrupt the action.
#
;pre_run = foo

#
# keyword:       post_run
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource run action. Errors
#         do not interrupt the action.
#
;post_run = foo

#
# keyword:       blocking_pre_unprovision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource unprovision
#         action. Errors interrupt the action.
#
;blocking_pre_unprovision = foo

#
# keyword:       blocking_post_unprovision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource unprovision
#         action. Errors interrupt the action.
#
;blocking_post_unprovision = foo

#
# keyword:       blocking_pre_provision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource provision action.
#         Errors interrupt the action.
#
;blocking_pre_provision = foo

#
# keyword:       blocking_post_provision
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource provision action.
#         Errors interrupt the action.
#
;blocking_post_provision = foo

#
# keyword:       blocking_pre_start
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource start action.
#         Errors interrupt the action.
#
;blocking_pre_start = foo

#
# keyword:       blocking_post_start
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource start action.
#         Errors interrupt the action.
#
;blocking_post_start = foo

#
# keyword:       blocking_pre_stop
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource stop action.
#         Errors interrupt the action.
#
;blocking_pre_stop = foo

#
# keyword:       blocking_post_stop
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource stop action.
#         Errors interrupt the action.
#
;blocking_post_stop = foo

#
# keyword:       blocking_pre_sync_nodes
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_nodes
#         action. Errors interrupt the action.
#
;blocking_pre_sync_nodes = foo

#
# keyword:       blocking_post_sync_nodes
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_nodes action.
#         Errors interrupt the action.
#
;blocking_post_sync_nodes = foo

#
# keyword:       blocking_pre_sync_drp
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_drp action.
#         Errors interrupt the action.
#
;blocking_pre_sync_drp = foo

#
# keyword:       blocking_post_sync_drp
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_drp action.
#         Errors interrupt the action.
#
;blocking_post_sync_drp = foo

#
# keyword:       blocking_pre_sync_resync
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_resync
#         action. Errors interrupt the action.
#
;blocking_pre_sync_resync = foo

#
# keyword:       blocking_post_sync_resync
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_resync
#         action. Errors interrupt the action.
#
;blocking_post_sync_resync = foo

#
# keyword:       blocking_pre_sync_update
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource sync_update
#         action. Errors interrupt the action.
#
;blocking_pre_sync_update = foo

#
# keyword:       blocking_post_sync_update
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource sync_update
#         action. Errors interrupt the action.
#
;blocking_post_sync_update = foo

#
# keyword:       blocking_pre_run
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute before the resource run action.
#         Errors interrupt the action.
#
;blocking_pre_run = foo

#
# keyword:       blocking_post_run
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      None
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A command or script to execute after the resource run action. Errors
#         interrupt the action.
#
;blocking_post_run = foo

#
# keyword:       unprovision_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'unprovision' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;unprovision_requires =

#
# keyword:       provision_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'provision' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;provision_requires =

#
# keyword:       start_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'start' action. A condition is expressed as <rid>(<state>,...). If
#         states are omitted, 'up,stdby up' is used as the default expected
#         states.
#
;start_requires =

#
# keyword:       stop_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'stop' action. A condition is expressed as <rid>(<state>,...). If
#         states are omitted, 'up,stdby up' is used as the default expected
#         states.
#
;stop_requires =

#
# keyword:       sync_nodes_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'sync_nodes' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;sync_nodes_requires =

#
# keyword:       sync_drp_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'sync_drp' action. A condition is expressed as <rid>(<state>,...).
#         If states are omitted, 'up,stdby up' is used as the default expected
#         states.
#
;sync_drp_requires =

#
# keyword:       sync_update_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'sync_update' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;sync_update_requires =

#
# keyword:       sync_break_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'sync_break' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;sync_break_requires =

#
# keyword:       sync_resync_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'sync_resync' action. A condition is expressed as
#         <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as
#         the default expected states.
#
;sync_resync_requires =

#
# keyword:       run_requires
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:
#  candidates:   None
#  depends:      None
#  scopable:     True
#
#  desc:  A whitespace-separated list of conditions to meet to accept running
#         a 'run' action. A condition is expressed as <rid>(<state>,...). If
#         states are omitted, 'up,stdby up' is used as the default expected
#         states.
#
;run_requires =

#
# keyword:       scsireserv
# ----------------------------------------------------------------------------
#  required:     False
#  provisioning: False
#  default:      False
#  candidates:   True | False
#  depends:      None
#  scopable:     False
#
#  desc:  If set to 'true', OpenSVC will try to acquire a type-5 (write
#         exclusive, registrant only) scsi3 persistent reservation on every
#         path to disks of every disk group attached to this service. Existing
#         reservations are preempted to not block service start-up. If the
#         start-up was not legitimate the data are still protected from being
#         written over from both nodes. If set to 'false' or not set,
#         'scsireserv' can be activated on a per-resource basis.
#
;scsireserv = False