def get_desired_job_config(self): """ Return the Aurora job configuration defined in Thrift API so that we can create a job via Aurora API. """ # Add docker container container = Container( mesos=None, docker=DockerContainer( image=self.get_docker_image(), parameters=self.get_docker_params(), ), ) host_limit = Constraint( name=self.cluster.constraint, constraint=TaskConstraint(limit=LimitConstraint(limit=1)), ) task_config = TaskConfig( job=self.job_key, owner=Identity(user=AURORA_USER), isService=False, numCpus=self.cpu_limit, ramMb=self.mem_limit / MB, diskMb=self.disk_limit / MB, priority=0, maxTaskFailures=0, production=False, tier="preemptible", resources=set( [ Resource(numCpus=self.cpu_limit), Resource(ramMb=self.mem_limit / MB), Resource(diskMb=self.disk_limit / MB), ] ), contactEmail="*****@*****.**", executorConfig=self.get_executor_config(), container=container, constraints=set([host_limit]), requestedPorts=set(), mesosFetcherUris=set(), taskLinks={}, metadata=set(), ) job_config = JobConfiguration( key=self.job_key, owner=Identity(user=AURORA_USER), taskConfig=task_config, instanceCount=self.num_instances, cronSchedule=self.cron_schedule[1:], ) return job_config
def get_desired_job_config(self): """ Return the Aurora job configuration defined in Thrift API so that we can create a job via Aurora API. """ # Add docker container container = Container( mesos=None, docker=DockerContainer( image=self.get_docker_image(), parameters=self.get_docker_params(), ), ) host_limit = Constraint( name=self.cluster.constraint, constraint=TaskConstraint(limit=LimitConstraint(limit=1)), ) # Set task metadata if presents in config if hasattr(self, 'metadata'): taskMetaData = set( [Metadata(key=k, value=v) for k, v in self.metadata.items()]) else: taskMetaData = set() # Set task resources resources = set( [ Resource(numCpus=self.cpu_limit), Resource(ramMb=self.mem_limit / MB), Resource(diskMb=self.disk_limit / MB), ] ) if self.name == "apiserver": if self.http_port is None: resources.add(Resource(namedPort="http")) if self.grpc_port is None: resources.add(Resource(namedPort="grpc")) task_config = TaskConfig( job=self.job_key, owner=Identity(user=AURORA_USER), isService=True, numCpus=self.cpu_limit, ramMb=self.mem_limit / MB, diskMb=self.disk_limit / MB, priority=0, maxTaskFailures=0, production=False, tier="preemptible", resources=resources, contactEmail="*****@*****.**", executorConfig=self.get_executor_config(), container=container, constraints=set([host_limit]), requestedPorts=set(), mesosFetcherUris=set(), taskLinks={}, metadata=taskMetaData, ) job_config = JobConfiguration( key=self.job_key, owner=Identity(user=AURORA_USER), taskConfig=task_config, instanceCount=self.num_instances, ) return job_config