def _check_environment(c_config, instance_detail): def _parse_env(): for env_str in instance_env: var_name, sep, env_val = env_str.partition('=') if sep: yield var_name, env_val create_options = init_options(c_config.create_options) if not create_options: return True instance_env = instance_detail['Config']['Env'] or [] config_env = resolve_value(create_options.get('environment')) if not config_env: return True current_env = dict(_parse_env()) log.debug("Checking environment. Config / container instance:\n%s\n%s", config_env, current_env) for k, v in six.iteritems(config_env): if current_env.get(k) != resolve_value(v): return False return True
def _check_cmd(c_config, instance_detail): create_options = init_options(c_config.create_options) if not create_options: return True instance_config = instance_detail['Config'] config_cmd = resolve_value(create_options.get('command')) if create_options else None if config_cmd: instance_cmd = instance_config['Cmd'] or [] log.debug("Checking command. Config / container instance:\n%s\n%s", config_cmd, instance_cmd) if isinstance(config_cmd, six.string_types): if shlex.split(config_cmd) != instance_cmd: return False elif list(config_cmd) != instance_cmd: return False config_entrypoint = resolve_value(create_options.get('entrypoint')) if create_options else None if config_entrypoint: instance_entrypoint = instance_config['Entrypoint'] or [] log.debug("Checking entrypoint. Config / container instance:\n%s\n%s", config_entrypoint, instance_entrypoint) if isinstance(config_entrypoint, six.string_types): if [config_entrypoint] != instance_entrypoint: return False elif list(config_entrypoint) != instance_entrypoint: return False return True