Re: [OpenStack-Infra] I get a HTTP Error 405 after nodepool build a new node and try to register the node as jenkins slaves.
The bug[1] is reporting this issue. And there is a bufix patch[2] for jenkins 2.46.2 version [1] https://storyboard.openstack.org/#!/story/2001074 [2] https://gerrit.wikimedia.org/r/#/c/351606/ Best, xinliang On 26 June 2017 at 17:26, Xinliang Liu wrote: > Hi, > > On 26 June 2017 at 16:42, 沈敏江 wrote: > >> Hi, >> I am trying to set up a CI environment, and get some troubles. I follow >> the guild 'https://docs.openstack.org/infra/openstackci/third_party_ci >> .html', and in the end of step 'start nodepool' I get a HTTP Error 405, >> following is the error log in /var/log/nodepool/nodepool.log: >> ``` >> 2017-06-22 10:53:08,712 INFO nodepool.NodeLauncher: Node id: 469 is ready >> 2017-06-22 10:53:08,889 ERROR nodepool.NodeLauncher: HTTPError launching >> node id: 469 in provider: local_01 error: >> Traceback (most recent call last): >> File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", >> line 426, in _run >> dt = self.launchNode(session) >> File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", >> line 581, in launchNode >> self.createJenkinsNode() >> File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", >> line 606, in createJenkinsNode >> jenkins.createNode(**args) >> File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", >> line 112, in createNode >> return self.submitTask(CreateNodeTask(**args)) >> File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", >> line 121, in submitTask >> return task.wait() >> File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", >> line 57, in run >> self.done(self.main(client)) >> File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", >> line 49, in main >> jenkins.create_node(**args) >> File "/usr/local/lib/python2.7/dist-packages/nodepool/myjenkins.py", >> line 139, in create_node >> self.server + CREATE_NODE % urlparse.urlencode(params))) >> File "/usr/local/lib/python2.7/dist-packages/jenkins/__init__.py", >> line 453, in jenkins_open >> response = urlopen(req, timeout=self.timeout).read() >> File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen >> return _opener.open(url, data, timeout) >> File "/usr/lib/python2.7/urllib2.py", line 410, in open >> response = meth(req, response) >> File "/usr/lib/python2.7/urllib2.py", line 523, in http_response >> 'http', request, response, code, msg, hdrs) >> File "/usr/lib/python2.7/urllib2.py", line 448, in error >> return self._call_chain(*args) >> File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain >> result = func(*args) >> File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default >> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) >> HTTPError: HTTP Error 405: Method Not Allowed >> 2017-06-22 10:53:09,976 INFO nodepool.NodePool: Deleted jenkins node id: >> 469 >> ``` >> I checked the code at the end of file '/usr/local/lib/python2.7/dist >> -packages/nodepool/myjenkins.py', and found that the default http method >> is 'GET', so I change the method to 'POST',and solved the problem. >> The changed code is following, where the commented code is the original >> code, and the rest are what I added.: >> ``` >> req = urlrequest.Request( >> self.server + CREATE_NODE % urlparse.urlencode(params)) >> method = "POST" >> req.get_method = lambda: method >> self.jenkins_open(req) >> #self.jenkins_open(urlrequest.Request( >> #self.server + CREATE_NODE % urlparse.urlencode(params))) >> ``` >> So, my question is: Are there any config file that I can set the HTTP >> method to 'POST', or is there a bug needed to be fixed? I need your help, >> thanks! >> > > I met the same issue recently. This cause might be new jenkins (>= > 2.46.1) change to POST method. > Add a empty body in the request will make it use POST method which should > fix this issue: > self.server + CREATE_NODE % urlparse.urlencode(params))) ==> self.server + > CREATE_NODE % urlparse.urlencode(params), b'')) > > > Best, > xinliang > > >> Best regards >> Minjiang Shen >> >> ___ >> OpenStack-Infra mailing list >> OpenStack-Infra@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra >> > > ___ OpenStack-Infra mailing list OpenStack-Infra@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
Re: [OpenStack-Infra] I get a HTTP Error 405 after nodepool build a new node and try to register the node as jenkins slaves.
Hi, On 26 June 2017 at 16:42, 沈敏江 wrote: > Hi, > I am trying to set up a CI environment, and get some troubles. I follow > the guild 'https://docs.openstack.org/infra/openstackci/third_party_ > ci.html', and in the end of step 'start nodepool' I get a HTTP Error 405, > following is the error log in /var/log/nodepool/nodepool.log: > ``` > 2017-06-22 10:53:08,712 INFO nodepool.NodeLauncher: Node id: 469 is ready > 2017-06-22 10:53:08,889 ERROR nodepool.NodeLauncher: HTTPError launching > node id: 469 in provider: local_01 error: > Traceback (most recent call last): > File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", > line 426, in _run > dt = self.launchNode(session) > File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", > line 581, in launchNode > self.createJenkinsNode() > File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", > line 606, in createJenkinsNode > jenkins.createNode(**args) > File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", > line 112, in createNode > return self.submitTask(CreateNodeTask(**args)) > File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", > line 121, in submitTask > return task.wait() > File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", > line 57, in run > self.done(self.main(client)) > File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", > line 49, in main > jenkins.create_node(**args) > File "/usr/local/lib/python2.7/dist-packages/nodepool/myjenkins.py", > line 139, in create_node > self.server + CREATE_NODE % urlparse.urlencode(params))) > File "/usr/local/lib/python2.7/dist-packages/jenkins/__init__.py", line > 453, in jenkins_open > response = urlopen(req, timeout=self.timeout).read() > File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen > return _opener.open(url, data, timeout) > File "/usr/lib/python2.7/urllib2.py", line 410, in open > response = meth(req, response) > File "/usr/lib/python2.7/urllib2.py", line 523, in http_response > 'http', request, response, code, msg, hdrs) > File "/usr/lib/python2.7/urllib2.py", line 448, in error > return self._call_chain(*args) > File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain > result = func(*args) > File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default > raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) > HTTPError: HTTP Error 405: Method Not Allowed > 2017-06-22 10:53:09,976 INFO nodepool.NodePool: Deleted jenkins node id: > 469 > ``` > I checked the code at the end of file '/usr/local/lib/python2.7/ > dist-packages/nodepool/myjenkins.py', and found that the default http > method is 'GET', so I change the method to 'POST',and solved the problem. > The changed code is following, where the commented code is the original > code, and the rest are what I added.: > ``` > req = urlrequest.Request( > self.server + CREATE_NODE % urlparse.urlencode(params)) > method = "POST" > req.get_method = lambda: method > self.jenkins_open(req) > #self.jenkins_open(urlrequest.Request( > #self.server + CREATE_NODE % urlparse.urlencode(params))) > ``` > So, my question is: Are there any config file that I can set the HTTP > method to 'POST', or is there a bug needed to be fixed? I need your help, > thanks! > I met the same issue recently. This cause might be new jenkins (>= 2.46.1) change to POST method. Add a empty body in the request will make it use POST method which should fix this issue: self.server + CREATE_NODE % urlparse.urlencode(params))) ==> self.server + CREATE_NODE % urlparse.urlencode(params), b'')) Best, xinliang > Best regards > Minjiang Shen > > ___ > OpenStack-Infra mailing list > OpenStack-Infra@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra > ___ OpenStack-Infra mailing list OpenStack-Infra@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
[OpenStack-Infra] I get a HTTP Error 405 after nodepool build a new node and try to register the node as jenkins slaves.
Hi, I am trying to set up a CI environment, and get some troubles. I follow the guild 'https://docs.openstack.org/infra/openstackci/third_party_ci.html', and in the end of step 'start nodepool' I get a HTTP Error 405, following is the error log in /var/log/nodepool/nodepool.log: ``` 2017-06-22 10:53:08,712 INFO nodepool.NodeLauncher: Node id: 469 is ready 2017-06-22 10:53:08,889 ERROR nodepool.NodeLauncher: HTTPError launching node id: 469 in provider: local_01 error: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", line 426, in _run dt = self.launchNode(session) File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", line 581, in launchNode self.createJenkinsNode() File "/usr/local/lib/python2.7/dist-packages/nodepool/nodepool.py", line 606, in createJenkinsNode jenkins.createNode(**args) File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", line 112, in createNode return self.submitTask(CreateNodeTask(**args)) File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", line 121, in submitTask return task.wait() File "/usr/local/lib/python2.7/dist-packages/nodepool/task_manager.py", line 57, in run self.done(self.main(client)) File "/usr/local/lib/python2.7/dist-packages/nodepool/jenkins_manager.py", line 49, in main jenkins.create_node(**args) File "/usr/local/lib/python2.7/dist-packages/nodepool/myjenkins.py", line 139, in create_node self.server + CREATE_NODE % urlparse.urlencode(params))) File "/usr/local/lib/python2.7/dist-packages/jenkins/__init__.py", line 453, in jenkins_open response = urlopen(req, timeout=self.timeout).read() File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.7/urllib2.py", line 410, in open response = meth(req, response) File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.7/urllib2.py", line 448, in error return self._call_chain(*args) File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 405: Method Not Allowed 2017-06-22 10:53:09,976 INFO nodepool.NodePool: Deleted jenkins node id: 469 ``` I checked the code at the end of file '/usr/local/lib/python2.7/dist-packages/nodepool/myjenkins.py', and found that the default http method is 'GET', so I change the method to 'POST',and solved the problem. The changed code is following, where the commented code is the original code, and the rest are what I added.: ``` req = urlrequest.Request( self.server + CREATE_NODE % urlparse.urlencode(params)) method = "POST" req.get_method = lambda: method self.jenkins_open(req) #self.jenkins_open(urlrequest.Request( #self.server + CREATE_NODE % urlparse.urlencode(params))) ``` So, my question is: Are there any config file that I can set the HTTP method to 'POST', or is there a bug needed to be fixed? I need your help, thanks! Best regards Minjiang Shen___ OpenStack-Infra mailing list OpenStack-Infra@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra