def load_stack_file(name, stackfile, stack=None): if not stack: stack = dockercloud.Stack.create() else: name = stack.name stackfile = get_stackfile_name(stackfile) with open(stackfile, 'r') as f: content = yaml.load(f.read()) try: interpolated_content = interpolate_environment_variables(content, 'service') except: raise BadParameter("Bad format of the stack file: %s" % stackfile) services = [] if interpolated_content: for k, v in interpolated_content.items(): v.update({"name": k}) services.append(v) if not name: name = os.path.basename(os.getcwd()) services = inject_env_var(services) data = {'name': name, 'services': services} for k, v in list(data.items()): setattr(stack, k, v) else: raise BadParameter("Bad format of the stack file: %s" % stackfile) return stack
def get_services_from_stackfiles(name, stackfiles): services_dict = {} for stackfile in stackfiles: with open(stackfile, "r") as f: content = yaml.load(f.read()) try: interpolated_content = interpolate_environment_variables(content, "service") except Exception as e: raise BadParameter("Bad format of the stack file(%s): %s" % (stackfile, e)) if interpolated_content: for k, v in interpolated_content.items(): v.update({"name": k}) services_dict[k] = v else: raise BadParameter("Bad format of the stack file: %s" % stackfile) services = inject_env_var(services_dict.values()) data = {"name": name, "services": services} return data
def load_stack_file(name, stackfile, stack=None): if not stack: stack = dockercloud.Stack.create() else: name = stack.name if not stackfile: filematch = 0 if os.path.exists("tutum.yml"): stackfile = "tutum.yml" filematch += 1 if os.path.exists("docker-compose.yml"): stackfile = "docker-compose.yml" filematch += 1 if filematch == 0: raise BadParameter("Cannot find stack file. Are you in the right directory?") elif filematch > 1: raise BadParameter("More than one stack file was found in the path. " "Please specify which one you'd like to use with -f <filename>") with open(stackfile, 'r') as f: content = yaml.load(f.read()) interpolated_content = interpolate_environment_variables(content, 'service') services = [] if interpolated_content: for k, v in interpolated_content.items(): print () v.update({"name": k}) services.append(v) if not name: name = os.path.basename(os.getcwd()) services = inject_env_var(services) data = {'name': name, 'services': services} for k, v in list(data.items()): setattr(stack, k, v) else: raise BadParameter("Bad format of the stack file: %s" % stackfile) return stack
def get_services_from_stackfiles(name, stackfiles): services_dict = {} for stackfile in stackfiles: with open(stackfile, 'r') as f: content = yaml.load(f.read()) try: interpolated_content = interpolate_environment_variables( content, 'service') except Exception as e: raise BadParameter("Bad format of the stack file(%s): %s" % (stackfile, e)) if interpolated_content: for k, v in interpolated_content.items(): v.update({"name": k}) services_dict[k] = v else: raise BadParameter("Bad format of the stack file: %s" % stackfile) services = inject_env_var(services_dict.values()) data = {'name': name, 'services': services} return data