X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f6071ef7bc7f6b7308c202e330cabd4ca111aadd..060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3:/services/nodemanager/arvnodeman/nodelist.py diff --git a/services/nodemanager/arvnodeman/nodelist.py b/services/nodemanager/arvnodeman/nodelist.py index 6bf1a8b4de..e06ec83b62 100644 --- a/services/nodemanager/arvnodeman/nodelist.py +++ b/services/nodemanager/arvnodeman/nodelist.py @@ -1,4 +1,7 @@ #!/usr/bin/env python +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 from __future__ import absolute_import, print_function @@ -29,16 +32,19 @@ class ArvadosNodeListMonitorActor(clientactor.RemotePollLoopActor): sinfo_out = subprocess.check_output(["sinfo", "--noheader", "--format=%n %t"]) nodestates = {} for out in sinfo_out.splitlines(): - nodename, state = out.split(" ", 2) - if state in ('alloc', 'alloc*', - 'comp', 'comp*', - 'mix', 'mix*', - 'drng', 'drng*'): - nodestates[nodename] = 'busy' - elif state == 'idle': - nodestates[nodename] = 'idle' - else: - nodestates[nodename] = 'down' + try: + nodename, state = out.split(" ", 2) + if state in ('alloc', 'alloc*', + 'comp', 'comp*', + 'mix', 'mix*', + 'drng', 'drng*'): + nodestates[nodename] = 'busy' + elif state == 'idle': + nodestates[nodename] = 'idle' + else: + nodestates[nodename] = 'down' + except ValueError: + pass for n in nodelist: if n["slot_number"] and n["hostname"] and n["hostname"] in nodestates: @@ -61,7 +67,7 @@ class CloudNodeListMonitorActor(clientactor.RemotePollLoopActor): self._calculator = server_calc def is_common_error(self, exception): - return self._client.is_cloud_exception(exception) + return isinstance(exception, config.CLOUD_ERRORS) def _item_key(self, node): return node.id