Bug #8761

[Nodemanager] unexpected keyword argument ex_fetch_nic

Added by Ward Vandewege over 3 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
-

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.

Associated revisions

Revision 3fbb8f2d (diff)
Added by Peter Amstutz over 3 years ago

Enable BaseComputeNodeDriver.list_nodes to pass through keyword arguments.
closes #8761

History

#1 Updated by Ward Vandewege over 3 years ago

  • Description updated (diff)

#2 Updated by Ward Vandewege over 3 years ago

  • Description updated (diff)

#3 Updated by Brett Smith over 3 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.

#4 Updated by Peter Amstutz over 3 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

#5 Updated by Peter Amstutz over 3 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset arvados|commit:3fbb8f2d87742f5075c1829c64cf223725cb4fd2.

#6 Updated by Ward Vandewege over 3 years ago

Thank you Peter (and Brett)! The fix works, indeed - c97qk is happy again.

#7 Updated by Ward Vandewege over 3 years ago

  • Target version set to 2016-03-30 sprint

#8 Updated by Brett Smith over 3 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__.

#9 Updated by Peter Amstutz over 3 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.

#10 Updated by Brett Smith over 3 years ago

  • Status changed from New to Resolved
  • Target version set to 2016-03-30 sprint

Also available in: Atom PDF