projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
12085: Idle node times tracking, with tests.
[arvados.git]
/
services
/
nodemanager
/
arvnodeman
/
computenode
/
dispatch
/
__init__.py
diff --git
a/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
b/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
index 37d7088b7a7c65bc8632e21269f465d6850d50b9..9106ea67ccc8ffac7813d64baa5ebc537548fa21 100644
(file)
--- a/
services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
+++ b/
services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
@@
-20,6
+20,7
@@
from .. import \
arvados_node_missing, RetryMixin
from ...clientactor import _notify_subscribers
from ... import config
arvados_node_missing, RetryMixin
from ...clientactor import _notify_subscribers
from ... import config
+from ... import status
from .transitions import transitions
QuotaExceeded = "QuotaExceeded"
from .transitions import transitions
QuotaExceeded = "QuotaExceeded"
@@
-272,6
+273,9
@@
class ComputeNodeShutdownActor(ComputeNodeStateChangeBase):
self.cancel_shutdown("No longer eligible for shut down because %s" % reason,
try_resume=True)
return
self.cancel_shutdown("No longer eligible for shut down because %s" % reason,
try_resume=True)
return
+ # If boot failed, count the event
+ if self._monitor.get_state().get() == 'unpaired':
+ status.tracker.counter_add('boot_failures')
self._destroy_node()
def _destroy_node(self):
self._destroy_node()
def _destroy_node(self):
@@
-409,6
+413,12
@@
class ComputeNodeMonitorActor(config.actor_class):
#if state == 'idle' and self.arvados_node['job_uuid']:
# state = 'busy'
#if state == 'idle' and self.arvados_node['job_uuid']:
# state = 'busy'
+ # Update idle node times tracker
+ if state == 'idle':
+ status.tracker.idle_in(self.arvados_node['hostname'])
+ else:
+ status.tracker.idle_out(self.arvados_node['hostname'])
+
return state
def in_state(self, *states):
return state
def in_state(self, *states):