X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f3e02106cfc33ffe333af9e303a9e68f3ecfb2e4..29665e2d9a543bffb237d148c3484c03b03e30aa:/services/nodemanager/arvnodeman/launcher.py diff --git a/services/nodemanager/arvnodeman/launcher.py b/services/nodemanager/arvnodeman/launcher.py index 4fe5f8aaed..11d38ecb76 100644 --- a/services/nodemanager/arvnodeman/launcher.py +++ b/services/nodemanager/arvnodeman/launcher.py @@ -13,6 +13,7 @@ import pykka import libcloud from . import config as nmconfig +from . import status from .baseactor import WatchdogActor from .daemon import NodeManagerDaemonActor from .jobqueue import JobQueueMonitorActor, ServerCalculator @@ -71,7 +72,8 @@ def build_server_calculator(config): abort("No valid node sizes configured") return ServerCalculator(cloud_size_list, config.getint('Daemon', 'max_nodes'), - config.getfloat('Daemon', 'max_total_price')) + config.getfloat('Daemon', 'max_total_price'), + config.getfloat('Daemon', 'node_mem_scaling')) def launch_pollers(config, server_calculator): poll_time = config.getint('Daemon', 'poll_time') @@ -79,7 +81,7 @@ def launch_pollers(config, server_calculator): timer = TimedCallBackActor.start(poll_time / 10.0).tell_proxy() cloud_node_poller = CloudNodeListMonitorActor.start( - config.new_cloud_client(), timer, poll_time, max_poll_time).tell_proxy() + config.new_cloud_client(), timer, server_calculator, poll_time, max_poll_time).tell_proxy() arvados_node_poller = ArvadosNodeListMonitorActor.start( config.new_arvados_client(), timer, poll_time, max_poll_time).tell_proxy() job_queue_poller = JobQueueMonitorActor.start( @@ -111,6 +113,8 @@ def main(args=None): for sigcode in [signal.SIGINT, signal.SIGQUIT, signal.SIGTERM]: signal.signal(sigcode, shutdown_signal) + status.Server(config).start() + try: root_logger = setup_logging(config.get('Logging', 'file'), **config.log_levels()) root_logger.info("%s %s, libcloud %s", sys.argv[0], __version__, libcloud.__version__)