def _startModelRunnerSubprocess(inputOpt, modelOpt, aggOpt):
    """Start the unicorn model_runner subprocess

    :param dict inputOpt: input options per input_opt_schema.json
    :param dict modelOpt: input options per model_opt_schema.json
    :param dict aggOpt: aggregation options per agg_opt_schema.json; None if no
      aggregation
    :returns: the started subprocess.Popen object wrapped in
      ManagedSubprocessTerminator
    :rtype: nta.utils.test_utils.ManagedSubprocessTerminator
    """
    args = [
      sys.executable,
      "-m", "unicorn_backend.model_runner_2",
      "--input={}".format(json.dumps(inputOpt)),
      "--model={}".format(json.dumps(modelOpt)),
    ]

    if aggOpt is not None:
      args.append("--agg={}".format(json.dumps(aggOpt)))

    process = subprocess.Popen(
      args=args,
      stdin=subprocess.PIPE,
      stdout=subprocess.PIPE,
      stderr=subprocess.PIPE,
      close_fds=True)

    _LOGGER.info("Started unicorn model_runner subprocess=%s", process)
    return test_utils.ManagedSubprocessTerminator(process)
    def _startModelRunnerSubprocess(inputSpec, aggSpec, modelSpec):
        """Start the unicorn model_runner subprocess

    :param str inputSpec: JSON object describing the input petric data
      per input_opt_schema.json
    :param str aggSpec: JSON object describing agregation of the input
      metric per agg_opt_schema.json
    :param str modelSpec: JSON object describing the model per
      model_opt_schema.json
    :returns: the started subprocess.Popen object wrapped in
      ManagedSubprocessTerminator
    :rtype: nta.utils.test_utils.ManagedSubprocessTerminator
    """
        argumentPattern = [
            sys.executable, "-m", "unicorn_backend.model_runner_2",
            "--input=%s" % inputSpec,
            "--model=%s" % modelSpec
        ]
        if aggSpec is not None:
            argumentPattern += ["--agg=%s" % aggSpec]

        process = subprocess.Popen(args=argumentPattern,
                                   stdin=subprocess.PIPE,
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE,
                                   close_fds=True)

        _LOGGER.info("Started unicorn model_runner subprocess=%s", process)
        return test_utils.ManagedSubprocessTerminator(process)
    def _startParamFinderRunnerSubprocess(inputSpec):
        """Start the unicorn param_finder subprocess

    :param str inputSpec: JSON object describing the input petric data
      per input_opt_schema.json
    :returns: the started subprocess.Popen object wrapped in
      ManagedSubprocessTerminator
    :rtype: nta.utils.test_utils.ManagedSubprocessTerminator
    """
        process = subprocess.Popen(args=[
            sys.executable, "-m", "unicorn_backend.param_finder_runner",
            "--input=%s" % inputSpec
        ],
                                   stdin=subprocess.PIPE,
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE,
                                   close_fds=True)

        _LOGGER.info("Started unicorn model_runner subprocess=%s", process)
        return test_utils.ManagedSubprocessTerminator(process)
Exemplo n.º 4
0
    def _startModelRunnerSubprocess(modelId, stats):
        """Start the unicorn model_runner subprocess

    :param str modelId: model identifier
    :param dict stats: Metric data stats per stats_schema.json in the
      unicorn_backend package
    :returns: the started subprocess.Popen object wrapped in
      ManagedSubprocessTerminator
    :rtype: nta.utils.test_utils.ManagedSubprocessTerminator
    """
        process = subprocess.Popen(args=[
            sys.executable, "-m", "unicorn_backend.model_runner",
            "--model=%s" % modelId,
            "--stats=%s" % (json.dumps(stats), )
        ],
                                   stdin=subprocess.PIPE,
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE,
                                   close_fds=True)

        _LOGGER.info("Started unicorn model_runner subprocess=%s", process)
        return test_utils.ManagedSubprocessTerminator(process)