Bug #8761
closed
[Nodemanager] unexpected keyword argument ex_fetch_nic
Added by Ward Vandewege almost 9 years ago.
Updated over 8 years ago.
Description
Node manager (0.1.20160317153001-1) appears to be permanently wedged on c97qk:
2016-03-19_18:27:57.85566 2016-03-19 18:27:57 CloudNodeListMonitorActor.139630900081088[25639] DEBUG: sending request
2016-03-19_18:27:57.85569 2016-03-19 18:27:57 CloudNodeListMonitorActor.139630900081088[25639] ERROR: got error: list_nodes() got an unexpected keyword argument 'ex_fetch_nic' - will try again in 300 seconds
2016-03-19_18:27:57.85570 Traceback (most recent call last):
2016-03-19_18:27:57.85571 File "/usr/local/lib/python2.7/dist-packages/arvnodeman/clientactor.py", line 96, in poll
2016-03-19_18:27:57.85571 response = self._send_request()
2016-03-19_18:27:57.85573 File "/usr/local/lib/python2.7/dist-packages/arvnodeman/nodelist.py", line 39, in _send_request
2016-03-19_18:27:57.85574 n = self._client.list_nodes()
2016-03-19_18:27:57.85575 File "/usr/local/lib/python2.7/dist-packages/arvnodeman/computenode/driver/azure.py", line 80, in list_nodes
2016-03-19_18:27:57.85575 super(ComputeNodeDriver, self).list_nodes(ex_fetch_nic=False)
2016-03-19_18:27:57.85576 TypeError: list_nodes() got an unexpected keyword argument 'ex_fetch_nic'
2016-03-19_18:27:58.17465 2016-03-19 18:27:58 ArvadosNodeListMonitorActor.139627674665888[25639] INFO: got response with 258 items in 0.635140180588 seconds, next poll at 2016-03-19 18:28:57
Restarting doesn't help.
- Description updated (diff)
- Description updated (diff)
The Azure libcloud driver accepts this keyword argument, but ComputeNodeBaseDriver does not. We need to create some channel for it to be passed through from the Node Manager's Azure driver all the way to the libcloud driver.
Fixing it that way is worthwhile, because this will let us cut in half the number of Azure API calls we make to get the cloud node list.
Brett Smith wrote:
The Azure libcloud driver accepts this keyword argument, but ComputeNodeBaseDriver does not. We need to create some channel for it to be passed through from the Node Manager's Azure driver all the way to the libcloud driver.
Now accepts kwargs on ComputeNodeBaseDriver.list_nodes and merges it with self.list_kwargs before calling the real.list_nodes(). Confirmed correct with a new test in AzureComputeNodeDriverTestCase. Pushed to master on 3fbb8f2
- Status changed from New to Resolved
- % Done changed from 0 to 100
Applied in changeset arvados|commit:3fbb8f2d87742f5075c1829c64cf223725cb4fd2.
Thank you Peter (and Brett)! The fix works, indeed - c97qk is happy again.
- Target version set to 2016-03-30 sprint
- Status changed from Resolved to New
- Target version deleted (
2016-03-30 sprint)
- % Done changed from 100 to 0
Peter Amstutz wrote:
Brett Smith wrote:
The Azure libcloud driver accepts this keyword argument, but ComputeNodeBaseDriver does not. We need to create some channel for it to be passed through from the Node Manager's Azure driver all the way to the libcloud driver.
Now accepts kwargs on ComputeNodeBaseDriver.list_nodes and merges it with self.list_kwargs before calling the real.list_nodes(). Confirmed correct with a new test in AzureComputeNodeDriverTestCase. Pushed to master on 3fbb8f2
I forgot about list_kwargs. Wouldn't it be easier to just add the argument there? Less code, and other drivers are already doing similar things where they set default arguments in __init__
.
Brett Smith wrote:
Peter Amstutz wrote:
Brett Smith wrote:
The Azure libcloud driver accepts this keyword argument, but ComputeNodeBaseDriver does not. We need to create some channel for it to be passed through from the Node Manager's Azure driver all the way to the libcloud driver.
Now accepts kwargs on ComputeNodeBaseDriver.list_nodes and merges it with self.list_kwargs before calling the real.list_nodes(). Confirmed correct with a new test in AzureComputeNodeDriverTestCase. Pushed to master on 3fbb8f2
I forgot about list_kwargs. Wouldn't it be easier to just add the argument there? Less code, and other drivers are already doing similar things where they set default arguments in __init__
.
I have no objection if you want to revert 3fbb8f2, remove ex_fetch_nic from azure.py and handle ex_fetch_nic=false in configuration.
- Status changed from New to Resolved
- Target version set to 2016-03-30 sprint
Also available in: Atom
PDF