LGTM Thanks, Guido
On Fri, Feb 22, 2013 at 7:24 AM, Michael Hanselmann <[email protected]> wrote: > Many resources, but not all, list their supported methods. With a new > reST directive, this list is now automatically generated and also lists > the required permissions. > --- > doc/rapi.rst | 146 > +++++++++++++++++++++++++++++++---------------------------- > 1 file changed, 76 insertions(+), 70 deletions(-) > > diff --git a/doc/rapi.rst b/doc/rapi.rst > index e537fad..ec5fa5c 100644 > --- a/doc/rapi.rst > +++ b/doc/rapi.rst > @@ -357,7 +357,8 @@ Has no function, but for legacy reasons the ``GET`` > method is supported. > > Cluster information resource. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/info > + > > .. _rapi-res-info+get: > > @@ -406,7 +407,7 @@ Example:: > > Redistribute configuration to all nodes. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/redistribute-config > > > .. _rapi-res-redistribute-config+put: > @@ -426,6 +427,8 @@ Job result: > ``/2/features`` > +++++++++++++++ > > +.. rapi_resource_details:: /2/features > + > > .. _rapi-res-features+get: > > @@ -461,7 +464,7 @@ features: > > Modifies cluster parameters. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/modify > > > .. _rapi-res-modify+put: > @@ -487,7 +490,8 @@ Job result: > > The groups resource. > > -It supports the following commands: ``GET``, ``POST``. > +.. rapi_resource_details:: /2/groups > + > > .. _rapi-res-groups+get: > > @@ -572,7 +576,8 @@ Job result: > > Returns information about a node group. > > -It supports the following commands: ``GET``, ``DELETE``. > +.. rapi_resource_details:: /2/groups/[group_name] > + > > .. _rapi-res-groups-group_name+get: > > @@ -605,7 +610,8 @@ Job result: > > Modifies the parameters of a node group. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/groups/[group_name]/modify > + > > .. _rapi-res-groups-group_name-modify+put: > > @@ -631,7 +637,8 @@ Job result: > > Renames a node group. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/groups/[group_name]/rename > + > > .. _rapi-res-groups-group_name-rename+put: > > @@ -657,7 +664,7 @@ Job result: > > Assigns nodes to a group. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/groups/[group_name]/assign-nodes > > .. _rapi-res-groups-group_name-assign-nodes+put: > > @@ -682,7 +689,8 @@ Job result: > > Manages per-nodegroup tags. > > -Supports the following commands: ``GET``, ``PUT``, ``DELETE``. > +.. rapi_resource_details:: /2/groups/[group_name]/tags > + > > .. _rapi-res-groups-group_name-tags+get: > > @@ -730,7 +738,7 @@ It supports the ``dry-run`` argument. > > The networks resource. > > -It supports the following commands: ``GET``, ``POST``. > +.. rapi_resource_details:: /2/networks > > > .. _rapi-res-networks+get: > @@ -810,7 +818,7 @@ Job result: > > Returns information about a network. > > -It supports the following commands: ``GET``, ``DELETE``. > +.. rapi_resource_details:: /2/networks/[network_name] > > > .. _rapi-res-networks-network_name+get: > @@ -845,7 +853,7 @@ Job result: > > Modifies the parameters of a network. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/networks/[network_name]/modify > > > .. _rapi-res-networks-network_name-modify+put: > @@ -871,7 +879,7 @@ Job result: > > Connects a network to a nodegroup. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/networks/[network_name]/connect > > > .. _rapi-res-networks-network_name-connect+put: > @@ -897,7 +905,7 @@ Job result: > > Disonnects a network from a nodegroup. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/networks/[network_name]/disconnect > > > .. _rapi-res-networks-network_name-disconnect+put: > @@ -923,7 +931,7 @@ Job result: > > Manages per-network tags. > > -Supports the following commands: ``GET``, ``PUT``, ``DELETE``. > +.. rapi_resource_details:: /2/networks/[network_name]/tags > > > .. _rapi-res-networks-network_name-tags+get: > @@ -973,7 +981,7 @@ It supports the ``dry-run`` argument. > > Tries to allocate multiple instances. > > -It supports the following commands: ``POST`` > +.. rapi_resource_details:: /2/instances-multi-alloc > > > .. _rapi-res-instances-multi-alloc+post: > @@ -997,7 +1005,7 @@ Job result: > > The instances resource. > > -It supports the following commands: ``GET``, ``POST``. > +.. rapi_resource_details:: /2/instances > > > .. _rapi-res-instances+get: > @@ -1096,7 +1104,7 @@ Job result: > > Instance-specific resource. > > -It supports the following commands: ``GET``, ``DELETE``. > +.. rapi_resource_details:: /2/instances/[instance_name] > > > .. _rapi-res-instances-instance_name+get: > @@ -1129,7 +1137,7 @@ Job result: > ``/2/instances/[instance_name]/info`` > +++++++++++++++++++++++++++++++++++++++ > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/instances/[instance_name]/info > > > .. _rapi-res-instances-instance_name-info+get: > @@ -1154,7 +1162,7 @@ Job result: > > Reboots URI for an instance. > > -It supports the following commands: ``POST``. > +.. rapi_resource_details:: /2/instances/[instance_name]/reboot > > > .. _rapi-res-instances-instance_name-reboot+post: > @@ -1191,7 +1199,7 @@ Job result: > > Instance shutdown URI. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/shutdown > > > .. _rapi-res-instances-instance_name-shutdown+put: > @@ -1218,7 +1226,7 @@ Job result: > > Instance startup URI. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/startup > > > .. _rapi-res-instances-instance_name-startup+put: > @@ -1245,7 +1253,7 @@ Job result: > > Installs the operating system again. > > -It supports the following commands: ``POST``. > +.. rapi_resource_details:: /2/instances/[instance_name]/reinstall > > > .. _rapi-res-instances-instance_name-reinstall+post: > @@ -1276,7 +1284,7 @@ clients should use the body parameters. > > Replaces disks on an instance. > > -It supports the following commands: ``POST``. > +.. rapi_resource_details:: /2/instances/[instance_name]/replace-disks > > > .. _rapi-res-instances-instance_name-replace-disks+post: > @@ -1306,7 +1314,7 @@ Job result: > > Activate disks on an instance. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/activate-disks > > > .. _rapi-res-instances-instance_name-activate-disks+put: > @@ -1329,7 +1337,7 @@ Job result: > > Deactivate disks on an instance. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/deactivate-disks > > > .. _rapi-res-instances-instance_name-deactivate-disks+put: > @@ -1349,8 +1357,9 @@ Job result: > ``/2/instances/[instance_name]/recreate-disks`` > +++++++++++++++++++++++++++++++++++++++++++++++++ > > -Recreate disks of an instance. Supports the following commands: > -``POST``. > +Recreate disks of an instance. > + > +.. rapi_resource_details:: /2/instances/[instance_name]/recreate-disks > > > .. _rapi-res-instances-instance_name-recreate-disks+post: > @@ -1377,7 +1386,7 @@ Job result: > > Grows one disk of an instance. > > -Supports the following commands: ``POST``. > +.. rapi_resource_details:: > /2/instances/[instance_name]/disk/[disk_index]/grow > > > .. _rapi-res-instances-instance_name-disk-disk_index-grow+post: > @@ -1404,7 +1413,7 @@ Job result: > > Prepares an export of an instance. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/prepare-export > > > .. _rapi-res-instances-instance_name-prepare-export+put: > @@ -1426,7 +1435,7 @@ Job result: > > Exports an instance. > > -It supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/export > > > .. _rapi-res-instances-instance_name-export+put: > @@ -1454,7 +1463,7 @@ Job result: > > Migrates an instance. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/migrate > > > .. _rapi-res-instances-instance_name-migrate+put: > @@ -1481,7 +1490,7 @@ Job result: > > Does a failover of an instance. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/failover > > > .. _rapi-res-instances-instance_name-failover+put: > @@ -1508,7 +1517,7 @@ Job result: > > Renames an instance. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/rename > > > .. _rapi-res-instances-instance_name-rename+put: > @@ -1535,7 +1544,7 @@ Job result: > > Modifies an instance. > > -Supports the following commands: ``PUT``. > +.. rapi_resource_details:: /2/instances/[instance_name]/modify > > > .. _rapi-res-instances-instance_name-modify+put: > @@ -1562,15 +1571,7 @@ Job result: > > Request information for connecting to instance's console. > > -.. pyassert:: > - > - not (hasattr(rlib2.R_2_instances_name_console, "PUT") or > - hasattr(rlib2.R_2_instances_name_console, "POST") or > - hasattr(rlib2.R_2_instances_name_console, "DELETE")) > - > -Supports the following commands: ``GET``. Requires authentication with > -one of the following options: > -:pyeval:`utils.CommaJoin(rlib2.R_2_instances_name_console.GET_ACCESS)`. > +.. rapi_resource_details:: /2/instances/[instance_name]/console > > > .. _rapi-res-instances-instance_name-console+get: > @@ -1633,7 +1634,7 @@ console. Contained keys: > > Manages per-instance tags. > > -It supports the following commands: ``GET``, ``PUT``, ``DELETE``. > +.. rapi_resource_details:: /2/instances/[instance_name]/tags > > > .. _rapi-res-instances-instance_name-tags+get: > @@ -1683,7 +1684,7 @@ It supports the ``dry-run`` argument. > > The ``/2/jobs`` resource. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/jobs > > > .. _rapi-res-jobs+get: > @@ -1709,10 +1710,9 @@ fields are not the same as for per-job requests): > ``/2/jobs/[job_id]`` > ++++++++++++++++++++ > > - > Individual job URI. > > -It supports the following commands: ``GET``, ``DELETE``. > +.. rapi_resource_details:: /2/jobs/[job_id] > > > .. _rapi-res-jobs-job_id+get: > @@ -1816,6 +1816,8 @@ Cancel a not-yet-started job. > ``/2/jobs/[job_id]/wait`` > +++++++++++++++++++++++++ > > +.. rapi_resource_details:: /2/jobs/[job_id]/wait > + > > .. _rapi-res-jobs-job_id-wait+get: > > @@ -1846,7 +1848,7 @@ Returns None if no changes have been detected and a > dict with two keys, > > Nodes resource. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/nodes > > > .. _rapi-res-nodes+get: > @@ -1902,7 +1904,7 @@ Example:: > > Returns information about a node. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/nodes/[node_name] > > > .. _rapi-res-nodes-node_name+get: > @@ -1919,7 +1921,9 @@ Returned fields: > :pyeval:`utils.CommaJoin(sorted(rlib2.N_FIELDS))`. > ``/2/nodes/[node_name]/powercycle`` > +++++++++++++++++++++++++++++++++++ > > -Powercycles a node. Supports the following commands: ``POST``. > +Powercycles a node. > + > +.. rapi_resource_details:: /2/nodes/[node_name]/powercycle > > > .. _rapi-res-nodes-node_name-powercycle+post: > @@ -1941,7 +1945,7 @@ Job result: > > Evacuates instances off a node. > > -It supports the following commands: ``POST``. > +.. rapi_resource_details:: /2/nodes/[node_name]/evacuate > > > .. _rapi-res-nodes-node_name-evacuate+post: > @@ -1973,7 +1977,8 @@ Job result: > > Migrates all primary instances from a node. > > -It supports the following commands: ``POST``. > +.. rapi_resource_details:: /2/nodes/[node_name]/migrate > + > > .. _rapi-res-nodes-node_name-migrate+post: > > @@ -2002,7 +2007,7 @@ Job result: > > Manages node role. > > -It supports the following commands: ``GET``, ``PUT``. > +.. rapi_resource_details:: /2/nodes/[node_name]/role > > The role is always one of the following: > > @@ -2050,8 +2055,9 @@ Job result: > ``/2/nodes/[node_name]/modify`` > +++++++++++++++++++++++++++++++ > > -Modifies the parameters of a node. Supports the following commands: > -``POST``. > +Modifies the parameters of a node. > + > +.. rapi_resource_details:: /2/nodes/[node_name]/modify > > > .. _rapi-res-nodes-node_name-modify+post: > @@ -2078,6 +2084,9 @@ Job result: > > Manages storage units on the node. > > +.. rapi_resource_details:: /2/nodes/[node_name]/storage > + > + > .. _rapi-res-nodes-node_name-storage+get: > > ``GET`` > @@ -2103,6 +2112,8 @@ can be retrieved. > > Modifies storage units on the node. > > +.. rapi_resource_details:: /2/nodes/[node_name]/storage/modify > + > > .. _rapi-res-nodes-node_name-storage-modify+put: > > @@ -2128,6 +2139,8 @@ Job result: > > Repairs a storage unit on the node. > > +.. rapi_resource_details:: /2/nodes/[node_name]/storage/repair > + > > .. _rapi-res-nodes-node_name-storage-repair+put: > > @@ -2157,7 +2170,7 @@ Job result: > > Manages per-node tags. > > -It supports the following commands: ``GET``, ``PUT``, ``DELETE``. > +.. rapi_resource_details:: /2/nodes/[node_name]/tags > > > .. _rapi-res-nodes-node_name-tags+get: > @@ -2210,15 +2223,7 @@ pages and using ``/2/query/[resource]/fields``. The > resource is one of > :pyeval:`utils.CommaJoin(constants.QR_VIA_RAPI)`. See the :doc:`query2 > design document <design-query2>` for more details. > > -.. pyassert:: > - > - (rlib2.R_2_query.GET_ACCESS == rlib2.R_2_query.PUT_ACCESS and > - not (hasattr(rlib2.R_2_query, "POST") or > - hasattr(rlib2.R_2_query, "DELETE"))) > - > -Supports the following commands: ``GET``, ``PUT``. Requires > -authentication with one of the following options: > -:pyeval:`utils.CommaJoin(rlib2.R_2_query.GET_ACCESS)`. > +.. rapi_resource_details:: /2/query/[resource] > > > .. _rapi-res-query-resource+get: > @@ -2252,7 +2257,7 @@ Request list of available fields for a resource. The > resource is one of > :pyeval:`utils.CommaJoin(constants.QR_VIA_RAPI)`. See the > :doc:`query2 design document <design-query2>` for more details. > > -Supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/query/[resource]/fields > > > .. _rapi-res-query-resource-fields+get: > @@ -2272,7 +2277,7 @@ list of field names. > > OS resource. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /2/os > > > .. _rapi-res-os+get: > @@ -2297,7 +2302,7 @@ Example:: > > Manages cluster tags. > > -It supports the following commands: ``GET``, ``PUT``, ``DELETE``. > +.. rapi_resource_details:: /2/tags > > > .. _rapi-res-tags+get: > @@ -2350,7 +2355,8 @@ The version resource. > This resource should be used to determine the remote API version and to > adapt clients accordingly. > > -It supports the following commands: ``GET``. > +.. rapi_resource_details:: /version > + > > .. _rapi-res-version+get: > > -- > 1.8.1.3 > -- Guido Trotter Ganeti engineering Google Germany
