Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
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)