-# $Id$
-# $URL$
from PLC.Faults import *
from PLC.Method import Method
from PLC.Parameter import Parameter, Mixed
from PLC.Auth import Auth
from PLC.NodeGroups import NodeGroup, NodeGroups
-class v43GetNodeGroups(Method):
+class GetNodeGroups(Method):
"""
Returns an array of structs containing details about node groups.
If nodegroup_filter is specified and is an array of node group
]
returns = [NodeGroup.fields]
-
- def call(self, auth, nodegroup_filter = None, return_fields = None):
- return NodeGroups(self.api, nodegroup_filter, return_fields)
-
-
-nodegroup_fields = NodeGroup.fields.copy()
-nodegroup_fields['name'] = Parameter(str, "Legacy version of groupname", max = 50),
-
-class v42GetNodeGroups(v43GetNodeGroups):
- """
- Legacy wrapper for v42GetNodeGroups.
- """
-
- accepts = [
- Auth(),
- Mixed([Mixed(NodeGroup.fields['nodegroup_id'],
- NodeGroup.fields['groupname'])],
- Filter(nodegroup_fields)),
- Parameter([str], "List of fields to return", nullok = True)
- ]
- returns = [nodegroup_fields]
-
def call(self, auth, nodegroup_filter = None, return_fields = None):
- # convert name -> groupname in both filters
- if isinstance(nodegroup_filter, dict):
- if nodegroup_filter.has_key('name'):
- groupname = nodegroup_filter.pop('name')
- if not nodegroup_filter.has_key('groupname'):
- nodegroup_filter['groupname']=groupname
-
- if isinstance(return_fields, list):
- if 'name' in return_fields:
- return_fields.remove('name')
- if 'groupname' not in return_fields:
- return_fields.append('groupname')
-
- nodegroups = NodeGroups(self.api, nodegroup_filter, return_fields)
- # if groupname is present, then create a name mapping
- for nodegroup in nodegroups:
- if nodegroup.has_key('groupname'):
- nodegroup['name']=nodegroup['groupname']
- return nodegroups
-
-class GetNodeGroups(v42GetNodeGroups):
- """
- Returns an array of structs containing details about node groups.
- If nodegroup_filter is specified and is an array of node group
- identifiers or names, or a struct of node group attributes, only
- node groups matching the filter will be returned. If return_fields
- is specified, only the specified details will be returned.
- """
-
- pass
+ return NodeGroups(self.api, nodegroup_filter, return_fields)