Bug #8761
closed[Nodemanager] unexpected keyword argument ex_fetch_nic
0%
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.
Updated by Brett Smith almost 9 years ago
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.
Updated by Peter Amstutz almost 9 years ago
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
Updated by Peter Amstutz almost 9 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Applied in changeset arvados|commit:3fbb8f2d87742f5075c1829c64cf223725cb4fd2.
Updated by Ward Vandewege almost 9 years ago
Thank you Peter (and Brett)! The fix works, indeed - c97qk is happy again.
Updated by Ward Vandewege almost 9 years ago
- Target version set to 2016-03-30 sprint
Updated by Brett Smith almost 9 years ago
- 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__
.
Updated by Peter Amstutz almost 9 years ago
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.
Updated by Brett Smith over 8 years ago
- Status changed from New to Resolved
- Target version set to 2016-03-30 sprint