Project

General

Profile

Actions

Bug #8761

closed

[Nodemanager] unexpected keyword argument ex_fetch_nic

Added by Ward Vandewege about 8 years ago. Updated about 8 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
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.

Actions #1

Updated by Ward Vandewege about 8 years ago

  • Description updated (diff)
Actions #2

Updated by Ward Vandewege about 8 years ago

  • Description updated (diff)
Actions #3

Updated by Brett Smith about 8 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.

Actions #4

Updated by Peter Amstutz about 8 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

Actions #5

Updated by Peter Amstutz about 8 years ago

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

Applied in changeset arvados|commit:3fbb8f2d87742f5075c1829c64cf223725cb4fd2.

Actions #6

Updated by Ward Vandewege about 8 years ago

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

Actions #7

Updated by Ward Vandewege about 8 years ago

  • Target version set to 2016-03-30 sprint
Actions #8

Updated by Brett Smith about 8 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__.

Actions #9

Updated by Peter Amstutz about 8 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.

Actions #10

Updated by Brett Smith about 8 years ago

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

Also available in: Atom PDF