示例#1
0
 def get_and_confirm_status(self,
                            url,
                            params=None,
                            headers=None,
                            valid=None):
     valid = valid or self.VALID_STATUS_CODES
     response = self.get_url(url, params, headers)
     if not response.status_code in valid:
         raise JenkinsAPIException(
             'Operation failed. url={0}, headers={1}, status={2}, text={3}'.
             format(response.url, headers, response.status_code,
                    response.text.encode('UTF-8')))
     return response
示例#2
0
    def create_job(self, jobname, config):
        """
        Create a job
        :param jobname: name of new job, str
        :param config: configuration of new job, xml
        :return: new Job obj
        """
        if self.has_job(jobname):
            return self[jobname]

        params = {'name': jobname}
        if isinstance(config, unicode):
            config = str(config)
        self.requester.post_xml_and_confirm_status(self.get_create_url(), data=config, params=params)
        self.poll()
        if not self.has_job(jobname):
            raise JenkinsAPIException('Cannot create job %s' % jobname)
        return self[jobname]
示例#3
0
    def post_and_confirm_status(self,
                                url,
                                params=None,
                                data=None,
                                headers=None,
                                valid=None):
        valid = valid or self.VALID_STATUS_CODES
        assert isinstance(data, (
            str, dict)), \
            "Unexpected type of parameter 'data': %s. Expected (str, dict)" % type(data)

        if not headers:
            headers = {'Content-Type': 'application/x-www-form-urlencoded'}

        response = self.post_url(url, params, data, headers)
        if not response.status_code in valid:
            raise JenkinsAPIException(
                'Operation failed. url={0}, data={1}, headers={2}, status={3}, text={4}'
                .format(response.url, data, headers, response.status_code,
                        response.text.encode('UTF-8')))
        return response