X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c4ae463b42ee22180982d78289e6898224e508e4..6f9bc5a295042fdcc0e51b193d3f31633d58c5d1:/services/nodemanager/arvnodeman/config.py diff --git a/services/nodemanager/arvnodeman/config.py b/services/nodemanager/arvnodeman/config.py index af9c8c0ced..15891a92bc 100644 --- a/services/nodemanager/arvnodeman/config.py +++ b/services/nodemanager/arvnodeman/config.py @@ -5,7 +5,6 @@ from __future__ import absolute_import, print_function import ConfigParser import importlib import logging -import ssl import sys import arvados @@ -13,13 +12,15 @@ import httplib2 import pykka from apiclient import errors as apierror -# IOError is the base class for socket.error and friends. +from .baseactor import BaseNodeManagerActor + +# IOError is the base class for socket.error, ssl.SSLError, and friends. # It seems like it hits the sweet spot for operations we want to retry: # it's low-level, but unlikely to catch code bugs. -NETWORK_ERRORS = (IOError, ssl.SSLError) +NETWORK_ERRORS = (IOError,) ARVADOS_ERRORS = NETWORK_ERRORS + (apierror.Error,) -actor_class = pykka.ThreadingActor +actor_class = BaseNodeManagerActor class NodeManagerConfig(ConfigParser.SafeConfigParser): """Node Manager Configuration class. @@ -117,7 +118,10 @@ class NodeManagerConfig(ConfigParser.SafeConfigParser): sec_words = sec_name.split(None, 2) if sec_words[0] != 'Size': continue - size_kwargs[sec_words[1]] = self.get_section(sec_name, int) + size_spec = self.get_section(sec_name, int) + if 'price' in size_spec: + size_spec['price'] = float(size_spec['price']) + size_kwargs[sec_words[1]] = size_spec # EC2 node sizes are identified by id. GCE sizes are identified by name. matching_sizes = [] for size in all_sizes: