コード例 #1
0
    def GET(self):
        """Return a list of all OSes.

    Can return error 500 in case of a problem.

    Example: ["debian-etch"]

    """
        cl = self.GetClient()
        op = opcodes.OpOsDiagnose(output_fields=["name", "variants"], names=[])
        cancel_fn = (lambda: _CheckIfConnectionDropped(self._req.request_sock))
        job_id = self.SubmitJob([op], cl=cl)
        # we use custom feedback function, instead of print we log the status
        result = cli.PollJob(job_id,
                             cl,
                             feedback_fn=baserlib.FeedbackFn,
                             cancel_fn=cancel_fn)
        diagnose_data = result[0]

        if not isinstance(diagnose_data, list):
            raise http.HttpBadGateway(message="Can't get OS list")

        os_names = []
        for (name, variants) in diagnose_data:
            os_names.extend(cli.CalculateOSNames(name, variants))

        return os_names
コード例 #2
0
ファイル: burnin.py プロジェクト: badp/ganeti
            err_code, msg = cli.FormatError(err)
            Err(msg, exit_code=err_code)
        finally:
            qcl.Close()
        self.nodes = [data[0] for data in result if not (data[1] or data[2])]

        op_diagnose = opcodes.OpOsDiagnose(
            output_fields=["name", "variants", "hidden"], names=[])
        result = self.ExecOp(True, op_diagnose)

        if not result:
            Err("Can't get the OS list")

        found = False
        for (name, variants, _) in result:
            if self.opts.os in cli.CalculateOSNames(name, variants):
                found = True
                break

        if not found:
            Err("OS '%s' not found" % self.opts.os)

        cluster_info = self.cl.QueryClusterInfo()
        self.cluster_info = cluster_info
        if not self.cluster_info:
            Err("Can't get cluster info")

        default_nic_params = self.cluster_info["nicparams"][
            constants.PP_DEFAULT]
        self.cluster_default_nicparams = default_nic_params
        if self.hypervisor is None: