Exemple #1
0
    def GetPostOpInput(self):
        """Create an instance.

    @return: a job id

    """
        baserlib.CheckType(self.request_body, dict, "Body contents")

        # Default to request data version 0
        data_version = self.getBodyParameter(_REQ_DATA_VERSION, 0)

        if data_version == 0:
            raise http.HttpBadRequest(
                "Instance creation request version 0 is no"
                " longer supported")
        elif data_version != 1:
            raise http.HttpBadRequest("Unsupported request data version %s" %
                                      data_version)

        data = self.request_body.copy()
        # Remove "__version__"
        data.pop(_REQ_DATA_VERSION, None)

        _ConvertUsbDevices(data)

        return (data, {
            "dry_run": self.dryRun(),
        })
Exemple #2
0
    def GetPutOpInput(self):
        """Sets the node role.

    """
        baserlib.CheckType(self.request_body, basestring, "Body contents")

        role = self.request_body

        if role == _NR_REGULAR:
            candidate = False
            offline = False
            drained = False

        elif role == _NR_MASTER_CANDIDATE:
            candidate = True
            offline = drained = None

        elif role == _NR_DRAINED:
            drained = True
            candidate = offline = None

        elif role == _NR_OFFLINE:
            offline = True
            candidate = drained = None

        else:
            raise http.HttpBadRequest("Can't set '%s' role" % role)

        assert len(self.items) == 1

        return ({}, {
            "node_name":
            self.items[0],
            "master_candidate":
            candidate,
            "offline":
            offline,
            "drained":
            drained,
            "force":
            self.useForce(),
            "auto_promote":
            bool(self._checkIntVariable("auto-promote", default=0)),
        })
Exemple #3
0
    def PUT(self):
        """Submits job querying for resources.

    @return: Query result, see L{objects.QueryResponse}

    """
        body = self.request_body

        baserlib.CheckType(body, dict, "Body contents")

        try:
            fields = body["fields"]
        except KeyError:
            fields = _GetQueryFields(self.queryargs)

        qfilter = body.get("qfilter", None)
        # TODO: remove this after 2.7
        if qfilter is None:
            qfilter = body.get("filter", None)

        return self._Query(fields, qfilter)