def __init__(self, request, hostname, data): super(NodeVersionView, self).__init__(request) self.hostname = hostname self.data = data if hostname: self.node = get_node(request, hostname) else: self.node = get_nodes(request)
def __init__(self, request, hostname, data): super(NodeVersionView, self).__init__(request) self.hostname = hostname self.data = data if hostname: self.node = get_node(request, hostname) if self.data and get_boolean_value(self.data.get('fresh', None)): del self.node.system_version # Remove cached version information else: self.node = get_nodes(request)
def get(self, hostname, many=False): request = self.request sr = ('owner', ) if self.extended: ser_class = ExtendedNodeSerializer pr = ('dc', ) extra = {'select': ExtendedNodeSerializer.extra_select} else: ser_class = NodeSerializer pr = () extra = None if many: if self.full or self.extended: nodes = get_nodes(request, sr=sr, pr=pr, extra=extra, order_by=self.order_by) if nodes: # noinspection PyUnresolvedReferences res = ser_class(nodes, many=True).data else: res = [] else: res = list( get_nodes(request, order_by=self.order_by).values_list('hostname', flat=True)) else: node = get_node(request, hostname, sr=sr, pr=pr, extra=extra) # noinspection PyUnresolvedReferences res = ser_class(node).data return SuccessTaskResponse(request, res, dc_bound=False)
def node_define_list(request, data=None): """ List (:http:get:`GET </node/define>`) all node definitions. .. http:get:: /node/define :DC-bound?: * |dc-no| :Permissions: * |SuperAdmin| :Asynchronous?: * |async-no| :arg data.full: Return list of objects with node network and storage definition details (default: false) :type data.full: boolean :arg data.order_by: :ref:`Available fields for sorting <order_by>`: ``hostname`` (default: ``hostname``) :type data.order_by: string :status 200: SUCCESS :status 403: Forbidden """ nodes = get_nodes(request, sr=('owner', ), order_by=NodeDefineView.get_order_by(data)) return NodeDefineView(request, nodes, data=data).get(many=True)