def service_create(image, name, start, target_num_instances, instance_size, run_command, env, ports, exposes, volumes, links, namespace, scaling_info, custom_domain_name, region_name): image_name, image_tag = util.parse_image_name_tag(image) instance_ports, port_list = util.parse_instance_ports(ports) expose_list = util.merge_internal_external_ports(port_list, exposes) instance_ports.extend(expose_list) instance_envvars = util.parse_envvars(env) links = util.parse_links(links) volumes = util.parse_volumes(volumes) scaling_mode, scaling_cfg = util.parse_autoscale_info(scaling_info) if scaling_mode is None: scaling_mode = 'MANUAL' service = Service(name=name, image_name=image_name, image_tag=image_tag, target_num_instances=target_num_instances, instance_size=instance_size, run_command=run_command, instance_ports=instance_ports, instance_envvars=instance_envvars, volumes=volumes, links=links, namespace=namespace, scaling_mode=scaling_mode, autoscaling_config=scaling_cfg, custom_domain_name=custom_domain_name, region_name=region_name) if start: service.run() else: service.create()
def merge_environment(local_service_data, original_environment): if local_service_data.get('environment') is None: local_service_data['environment'] = original_environment else: local_envs = util.parse_envvars(local_service_data['environment']) for env in original_environment: key, _ = util.parse_envvar(env) if key not in local_envs.keys(): local_service_data['environment'].append(env)
def load_envvars(service_data): return util.parse_envvars(service_data.get('environment'))