Commit 6c2c542e authored by Jose A. Lopes's avatar Jose A. Lopes
Browse files

Add opcode documentation

Add Haskell module containing opcode documentation for all the
Signed-off-by: default avatarJose A. Lopes <>
Reviewed-by: default avatarGuido Trotter <>
parent 44c15fa3
{-| Implementation of the doc strings for the opcodes.
Copyright (C) 2009, 2010, 2011, 2012, 2013 Google Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
module Ganeti.Hs2Py.OpDoc where
opClusterPostInit :: String
opClusterPostInit =
"Post cluster initialization.\n\
\ This opcode does not touch the cluster at all. Its purpose is to run hooks\n\
\ after the cluster has been initialized."
opClusterDestroy :: String
opClusterDestroy =
"Destroy the cluster.\n\
\ This opcode has no other parameters. All the state is irreversibly\n\
\ lost after the execution of this opcode."
opClusterQuery :: String
opClusterQuery =
"Query cluster information."
opClusterVerify :: String
opClusterVerify =
"Submits all jobs necessary to verify the cluster."
opClusterVerifyConfig :: String
opClusterVerifyConfig =
"Verify the cluster config."
opClusterVerifyGroup :: String
opClusterVerifyGroup =
"Run verify on a node group from the cluster.\n\
\ @type skip_checks: C{list}\n\
\ @ivar skip_checks: steps to be skipped from the verify process; this\n\
\ needs to be a subset of\n\
\ L{constants.VERIFY_OPTIONAL_CHECKS}; currently\n\
\ only L{constants.VERIFY_NPLUSONE_MEM} can be passed"
opClusterVerifyDisks :: String
opClusterVerifyDisks =
"Verify the cluster disks."
opGroupVerifyDisks :: String
opGroupVerifyDisks =
"Verifies the status of all disks in a node group.\n\
\ Result: a tuple of three elements:\n\
\ - dict of node names with issues (values: error msg)\n\
\ - list of instances with degraded disks (that should be activated)\n\
\ - dict of instances with missing logical volumes (values: (node, vol)\n\
\ pairs with details about the missing volumes)\n\
\ In normal operation, all lists should be empty. A non-empty instance\n\
\ list (3rd element of the result) is still ok (errors were fixed) but\n\
\ non-empty node list means some node is down, and probably there are\n\
\ unfixable drbd errors.\n\
\ Note that only instances that are drbd-based are taken into\n\
\ consideration. This might need to be revisited in the future."
opClusterRepairDiskSizes :: String
opClusterRepairDiskSizes =
"Verify the disk sizes of the instances and fixes configuration\n\
\ mismatches.\n\
\ Parameters: optional instances list, in case we want to restrict the\n\
\ checks to only a subset of the instances.\n\
\ Result: a list of tuples, (instance, disk, parameter, new-size) for\n\
\ changed configurations.\n\
\ In normal operation, the list should be empty.\n\
\ @type instances: list\n\
\ @ivar instances: the list of instances to check, or empty for all instances"
opClusterConfigQuery :: String
opClusterConfigQuery =
"Query cluster configuration values."
opClusterRename :: String
opClusterRename =
"Rename the cluster.\n\
\ @type name: C{str}\n\
\ @ivar name: The new name of the cluster. The name and/or the master IP\n\
\ address will be changed to match the new name and its IP\n\
\ address."
opClusterSetParams :: String
opClusterSetParams =
"Change the parameters of the cluster.\n\
\ @type vg_name: C{str} or C{None}\n\
\ @ivar vg_name: The new volume group name or None to disable LVM usage."
opClusterRedistConf :: String
opClusterRedistConf =
"Force a full push of the cluster configuration."
opClusterActivateMasterIp :: String
opClusterActivateMasterIp =
"Activate the master IP on the master node."
opClusterDeactivateMasterIp :: String
opClusterDeactivateMasterIp =
"Deactivate the master IP on the master node."
opQuery :: String
opQuery =
"Query for resources/items.\n\
\ @ivar what: Resources to query for, must be one of L{constants.QR_VIA_OP}\n\
\ @ivar fields: List of fields to retrieve\n\
\ @ivar qfilter: Query filter"
opQueryFields :: String
opQueryFields =
"Query for available resource/item fields.\n\
\ @ivar what: Resources to query for, must be one of L{constants.QR_VIA_OP}\n\
\ @ivar fields: List of fields to retrieve"
opOobCommand :: String
opOobCommand =
"Interact with OOB."
opRestrictedCommand :: String
opRestrictedCommand =
"Runs a restricted command on node(s)."
opNodeRemove :: String
opNodeRemove =
"Remove a node.\n\
\ @type node_name: C{str}\n\
\ @ivar node_name: The name of the node to remove. If the node still has\n\
\ instances on it, the operation will fail."
opNodeAdd :: String
opNodeAdd =
"Add a node to the cluster.\n\
\ @type node_name: C{str}\n\
\ @ivar node_name: The name of the node to add. This can be a short name,\n\
\ but it will be expanded to the FQDN.\n\
\ @type primary_ip: IP address\n\
\ @ivar primary_ip: The primary IP of the node. This will be ignored when\n\
\ the opcode is submitted, but will be filled during the\n\
\ node add (so it will be visible in the job query).\n\
\ @type secondary_ip: IP address\n\
\ @ivar secondary_ip: The secondary IP of the node. This needs to be passed\n\
\ if the cluster has been initialized in 'dual-network'\n\
\ mode, otherwise it must not be given.\n\
\ @type readd: C{bool}\n\
\ @ivar readd: Whether to re-add an existing node to the cluster. If\n\
\ this is not passed, then the operation will abort if the node\n\
\ name is already in the cluster; use this parameter to\n\
\ 'repair' a node that had its configuration broken, or was\n\
\ reinstalled without removal from the cluster.\n\
\ @type group: C{str}\n\
\ @ivar group: The node group to which this node will belong.\n\
\ @type vm_capable: C{bool}\n\
\ @ivar vm_capable: The vm_capable node attribute\n\
\ @type master_capable: C{bool}\n\
\ @ivar master_capable: The master_capable node attribute"
opNodeQuery :: String
opNodeQuery =
"Compute the list of nodes."
opNodeQueryvols :: String
opNodeQueryvols =
"Get list of volumes on node."
opNodeQueryStorage :: String
opNodeQueryStorage =
"Get information on storage for node(s)."
opNodeModifyStorage :: String
opNodeModifyStorage =
"Modifies the properies of a storage unit"
opRepairNodeStorage :: String
opRepairNodeStorage =
"Repairs the volume group on a node."
opNodeSetParams :: String
opNodeSetParams =
"Change the parameters of a node."
opNodePowercycle :: String
opNodePowercycle =
"Tries to powercycle a node."
opNodeMigrate :: String
opNodeMigrate =
"Migrate all instances from a node."
opNodeEvacuate :: String
opNodeEvacuate =
"Evacuate instances off a number of nodes."
opInstanceCreate :: String
opInstanceCreate =
"Create an instance.\n\
\ @ivar instance_name: Instance name\n\
\ @ivar mode: Instance creation mode (one of\
\ L{constants.INSTANCE_CREATE_MODES})\n\
\ @ivar source_handshake: Signed handshake from source (remote import only)\n\
\ @ivar source_x509_ca: Source X509 CA in PEM format (remote import only)\n\
\ @ivar source_instance_name: Previous name of instance (remote import only)\n\
\ @ivar source_shutdown_timeout: Shutdown timeout used for source instance\n\
\ (remote import only)"
opInstanceMultiAlloc :: String
opInstanceMultiAlloc =
"Allocates multiple instances."
opInstanceReinstall :: String
opInstanceReinstall =
"Reinstall an instance's OS."
opInstanceRemove :: String
opInstanceRemove =
"Remove an instance."
opInstanceRename :: String
opInstanceRename =
"Rename an instance."
opInstanceStartup :: String
opInstanceStartup =
"Startup an instance."
opInstanceShutdown :: String
opInstanceShutdown =
"Shutdown an instance."
opInstanceReboot :: String
opInstanceReboot =
"Reboot an instance."
opInstanceReplaceDisks :: String
opInstanceReplaceDisks =
"Replace the disks of an instance."
opInstanceFailover :: String
opInstanceFailover =
"Failover an instance."
opInstanceMigrate :: String
opInstanceMigrate =
"Migrate an instance.\n\
\ This migrates (without shutting down an instance) to its secondary\n\
\ node.\n\
\ @ivar instance_name: the name of the instance\n\
\ @ivar mode: the migration mode (live, non-live or None for auto)"
opInstanceMove :: String
opInstanceMove =
"Move an instance.\n\
\ This move (with shutting down an instance and data copying) to an\n\
\ arbitrary node.\n\
\ @ivar instance_name: the name of the instance\n\
\ @ivar target_node: the destination node"
opInstanceConsole :: String
opInstanceConsole =
"Connect to an instance's console."
opInstanceActivateDisks :: String
opInstanceActivateDisks =
"Activate an instance's disks."
opInstanceDeactivateDisks :: String
opInstanceDeactivateDisks =
"Deactivate an instance's disks."
opInstanceRecreateDisks :: String
opInstanceRecreateDisks =
"Recreate an instance's disks."
opInstanceQuery :: String
opInstanceQuery =
"Compute the list of instances."
opInstanceQueryData :: String
opInstanceQueryData =
"Compute the run-time status of instances."
opInstanceSetParams :: String
opInstanceSetParams =
"Change the parameters of an instance."
opInstanceGrowDisk :: String
opInstanceGrowDisk =
"Grow a disk of an instance."
opInstanceChangeGroup :: String
opInstanceChangeGroup =
"Moves an instance to another node group."
opGroupAdd :: String
opGroupAdd =
"Add a node group to the cluster."
opGroupAssignNodes :: String
opGroupAssignNodes =
"Assign nodes to a node group."
opGroupQuery :: String
opGroupQuery =
"Compute the list of node groups."
opGroupSetParams :: String
opGroupSetParams =
"Change the parameters of a node group."
opGroupRemove :: String
opGroupRemove =
"Remove a node group from the cluster."
opGroupRename :: String
opGroupRename =
"Rename a node group in the cluster."
opGroupEvacuate :: String
opGroupEvacuate =
"Evacuate a node group in the cluster."
opOsDiagnose :: String
opOsDiagnose =
"Compute the list of guest operating systems."
opExtStorageDiagnose :: String
opExtStorageDiagnose =
"Compute the list of external storage providers."
opBackupQuery :: String
opBackupQuery =
"Compute the list of exported images."
opBackupPrepare :: String
opBackupPrepare =
"Prepares an instance export.\n\
\ @ivar instance_name: Instance name\n\
\ @ivar mode: Export mode (one of L{constants.EXPORT_MODES})"
opBackupExport :: String
opBackupExport =
"Export an instance.\n\
\ For local exports, the export destination is the node name. For\n\
\ remote exports, the export destination is a list of tuples, each\n\
\ consisting of hostname/IP address, port, magic, HMAC and HMAC\n\
\ salt. The HMAC is calculated using the cluster domain secret over\n\
\ the value \"${index}:${hostname}:${port}\". The destination X509 CA\n\
\ must be a signed certificate.\n\
\ @ivar mode: Export mode (one of L{constants.EXPORT_MODES})\n\
\ @ivar target_node: Export destination\n\
\ @ivar x509_key_name: X509 key to use (remote export only)\n\
\ @ivar destination_x509_ca: Destination X509 CA in PEM format (remote\n\
\ export only)"
opBackupRemove :: String
opBackupRemove =
"Remove an instance's export."
opTagsGet :: String
opTagsGet =
"Returns the tags of the given object."
opTagsSearch :: String
opTagsSearch =
"Searches the tags in the cluster for a given pattern."
opTagsSet :: String
opTagsSet =
"Add a list of tags on a given object."
opTagsDel :: String
opTagsDel =
"Remove a list of tags from a given object."
opTestDelay :: String
opTestDelay =
"Sleeps for a configured amount of time.\n\
\ This is used just for debugging and testing.\n\
\ Parameters:\n\
\ - duration: the time to sleep, in seconds\n\
\ - on_master: if true, sleep on the master\n\
\ - on_nodes: list of nodes in which to sleep\n\
\ If the on_master parameter is true, it will execute a sleep on the\n\
\ master (before any node sleep).\n\
\ If the on_nodes list is not empty, it will sleep on those nodes\n\
\ (after the sleep on the master, if that is enabled).\n\
\ As an additional feature, the case of duration < 0 will be reported\n\
\ as an execution error, so this opcode can be used as a failure\n\
\ generator. The case of duration == 0 will not be treated specially."
opTestAllocator :: String
opTestAllocator =
"Allocator framework testing.\n\
\ This opcode has two modes:\n\
\ - gather and return allocator input for a given mode (allocate new\n\
\ or replace secondary) and a given instance definition (direction\n\
\ 'in')\n\
\ - run a selected allocator for a given operation (as above) and\n\
\ return the allocator output (direction 'out')"
opTestJqueue :: String
opTestJqueue =
"Utility opcode to test some aspects of the job queue."
opTestDummy :: String
opTestDummy =
"Utility opcode used by unittests."
opNetworkAdd :: String
opNetworkAdd =
"Add an IP network to the cluster."
opNetworkRemove :: String
opNetworkRemove =
"Remove an existing network from the cluster.\n\
\ Must not be connected to any nodegroup."
opNetworkSetParams :: String
opNetworkSetParams =
"Modify Network's parameters except for IPv4 subnet"
opNetworkConnect :: String
opNetworkConnect =
"Connect a Network to a specific Nodegroup with the defined netparams\n\
\ (mode, link). Nics in this Network will inherit those params.\n\
\ Produce errors if a NIC (that its not already assigned to a network)\n\
\ has an IP that is contained in the Network this will produce error\
\ unless\n\
\ --no-conflicts-check is passed."
opNetworkDisconnect :: String
opNetworkDisconnect =
"Disconnect a Network from a Nodegroup. Produce errors if NICs are\n\
\ present in the Network unless --no-conficts-check option is passed."
opNetworkQuery :: String
opNetworkQuery =
"Compute the list of networks."
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment