Пример #1
0
def test_memoized_load_json_cache_hit(mock_gen_content_key):
  expected_env = AuroraConfigLoader.load(BytesIO(MESOS_CONFIG))
  expected_job_json = json.dumps(expected_env['jobs'][0].get())
  mock_gen_content_key.return_value = MESOS_CONFIG_MD5
  AuroraConfigLoader.CACHED_JSON = {MESOS_CONFIG_MD5: expected_job_json}
  loaded_job_json = AuroraConfigLoader.load_json('a/path', is_memoized=True)
  assert loaded_job_json == expected_job_json, "Test cache hit load_json"
Пример #2
0
def test_memoized_load_json_cache_hit(mock_gen_content_key):
    expected_env = AuroraConfigLoader.load(BytesIO(MESOS_CONFIG))
    expected_job_json = json.dumps(expected_env['jobs'][0].get())
    mock_gen_content_key.return_value = MESOS_CONFIG_MD5
    AuroraConfigLoader.CACHED_JSON = {MESOS_CONFIG_MD5: expected_job_json}
    loaded_job_json = AuroraConfigLoader.load_json('a/path', is_memoized=True)
    assert loaded_job_json == expected_job_json, "Test cache hit load_json"
Пример #3
0
    def execute(self, context):
        def maybe_bind(j):
            return j.bind(*bindings) if bindings else j

        def get_jobkey(job):
            return "/".join([
                job.cluster().get(),
                job.role().get(),
                job.environment().get(),
                job.name().get()
            ])

        try:
            if context.options.read_json:
                env = AuroraConfigLoader.load_json(context.options.config_file)
            else:
                env = AuroraConfigLoader.load(context.options.config_file)
        except (AuroraConfig.Error, AuroraConfigLoader.Error, ValueError) as e:
            context.print_err("Error loading configuration file: %s" % e)
            return EXIT_COMMAND_FAILURE
        bindings = context.options.bindings
        job_list = env.get("jobs", [])
        if not job_list:
            context.print_out("jobs=[]")
        else:
            bound_jobs = map(maybe_bind, job_list)
            job_names = map(get_jobkey, bound_jobs)
            context.print_out("jobs=[%s]" % (", ".join(job_names)))
        return EXIT_OK
Пример #4
0
def test_load_json_memoized():
  AuroraConfigLoader.CACHED_JSON = {}
  env = AuroraConfigLoader.load(BytesIO(MESOS_CONFIG_MULTI))
  jobs = env['jobs']
  content = json.dumps(jobs[0].get())
  expected_md5 = hashlib.md5(content).hexdigest()
  with temporary_dir() as d:
    filename = os.path.join(d, 'config.json')
    with open(filename, 'w+') as fp:
      fp.write(json.dumps(jobs[0].get()))
      fp.close()
      loaded_job = AuroraConfigLoader.load_json(fp.name, is_memoized=False)['jobs'][0]
      assert loaded_job == jobs[0]
      assert expected_md5 not in AuroraConfigLoader.CACHED_JSON, (
        "No key is cached when is_memoized=False")

      loaded_job = AuroraConfigLoader.load_json(fp.name, is_memoized=True)['jobs'][0]
      assert loaded_job == jobs[0]
      assert expected_md5 in AuroraConfigLoader.CACHED_JSON, (
        "Key is cached when is_memoized=True")
Пример #5
0
def test_load_json():
  with temporary_file() as fp:
    fp.write(MESOS_CONFIG)
    fp.flush()
    env = AuroraConfigLoader.load(fp.name)
    job = env['jobs'][0]
  with temporary_file() as fp:
    fp.write(json.dumps(job.get()))
    fp.flush()
    new_job = AuroraConfigLoader.load_json(fp.name)
    assert new_job == job
Пример #6
0
def test_load_json():
    with temporary_file() as fp:
        fp.write(MESOS_CONFIG)
        fp.flush()
        env = AuroraConfigLoader.load(fp.name)
        job = env['jobs'][0]
    with temporary_file() as fp:
        fp.write(json.dumps(job.get()))
        fp.flush()
        new_job = AuroraConfigLoader.load_json(fp.name)
        assert new_job == job
Пример #7
0
def test_load_json_memoized():
    AuroraConfigLoader.CACHED_JSON = {}
    env = AuroraConfigLoader.load(BytesIO(MESOS_CONFIG_MULTI))
    jobs = env['jobs']
    content = json.dumps(jobs[0].get())
    expected_md5 = hashlib.md5(content).hexdigest()
    with temporary_dir() as d:
        filename = os.path.join(d, 'config.json')
        with open(filename, 'w+') as fp:
            fp.write(json.dumps(jobs[0].get()))
            fp.close()
            loaded_job = AuroraConfigLoader.load_json(
                fp.name, is_memoized=False)['jobs'][0]
            assert loaded_job == jobs[0]
            assert expected_md5 not in AuroraConfigLoader.CACHED_JSON, (
                "No key is cached when is_memoized=False")

            loaded_job = AuroraConfigLoader.load_json(
                fp.name, is_memoized=True)['jobs'][0]
            assert loaded_job == jobs[0]
            assert expected_md5 in AuroraConfigLoader.CACHED_JSON, (
                "Key is cached when is_memoized=True")
Пример #8
0
    def execute(self, context):
        def maybe_bind(j):
            return j.bind(*bindings) if bindings else j

        def get_jobkey(job):
            return "/".join([job.cluster().get(), job.role().get(), job.environment().get(), job.name().get()])

        try:
            if context.options.read_json:
                env = AuroraConfigLoader.load_json(context.options.config_file)
            else:
                env = AuroraConfigLoader.load(context.options.config_file)
        except (AuroraConfig.Error, AuroraConfigLoader.Error, ValueError) as e:
            context.print_err("Error loading configuration file: %s" % e)
            return EXIT_COMMAND_FAILURE
        bindings = context.options.bindings
        job_list = env.get("jobs", [])
        if not job_list:
            context.print_out("jobs=[]")
        else:
            bound_jobs = map(maybe_bind, job_list)
            job_names = map(get_jobkey, bound_jobs)
            context.print_out("jobs=[%s]" % (", ".join(job_names)))
        return EXIT_OK