def _deploy_app(self, scale_types, release, existing): build_type = app_build_type(release) for scale_type in scale_types: image = release.image version = "v{}".format(release.version) kwargs = { "memory": release.config.memory, "cpu": release.config.cpu, "tags": release.config.tags, "envs": release.config.values, "num": 0, # Scaling up happens in a separate operation "version": version, "app_type": scale_type, "build_type": build_type, "healthcheck": release.config.healthcheck(), } job_id = self._get_job_id(scale_type) command = self._get_command(scale_type) try: self._scheduler.deploy(namespace=self.id, name=job_id, image=image, command=command, **kwargs) except Exception as e: err = "{} (deploy): {}".format(job_id, e) log_event(self, err, logging.ERROR) raise [c.delete() for c in existing]
def _scale_containers(self, scale_types, to_remove): release = self.release_set.latest() build_type = app_build_type(release) for scale_type in scale_types: image = release.image version = "v{}".format(release.version) kwargs = { "memory": release.config.memory, "cpu": release.config.cpu, "tags": release.config.tags, "envs": release.config.values, "version": version, "num": scale_types[scale_type], "app_type": scale_type, "build_type": build_type, "healthcheck": release.config.healthcheck(), } job_id = self._get_job_id(scale_type) command = self._get_command(scale_type) try: self._scheduler.scale(namespace=self.id, name=job_id, image=image, command=command, **kwargs) except Exception as e: err = "{} (scale): {}".format(job_id, e) log_event(self, err, logging.ERROR) raise [c.delete() for c in to_remove]