def SetTraffic(self, service_ref, config_changes, tracker, asyn, is_managed): """Set traffic splits for service.""" if tracker is None: tracker = progress_tracker.NoOpStagedProgressTracker( stages.ServiceStages(False), interruptable=True, abortde_message='aborted') serv = self.GetService(service_ref) if not serv: raise serverless_exceptions.ServiceNotFoundError( 'Service [{}] could not be found.'.format( service_ref.servicesId)) if not serv.spec.template: if is_managed: raise serverless_exceptions.UnsupportedOperationError( 'Your provider does not support setting traffic for this service.' ) else: raise serverless_exceptions.UnsupportedOperationError( 'You must upgrade your cluster to version 0.61 or greater ' 'to set traffic.') self._UpdateOrCreateService(service_ref, config_changes, False, serv) if not asyn: getter = functools.partial(self.GetService, service_ref) self.WaitForCondition(ServiceConditionPoller(getter, tracker))
def UpdateTraffic(self, service_ref, config_changes, tracker, asyn): """Update traffic splits for service.""" if tracker is None: tracker = progress_tracker.NoOpStagedProgressTracker( stages.UpdateTrafficStages(), interruptable=True, aborted_message='aborted') serv = self.GetService(service_ref) if not serv: raise serverless_exceptions.ServiceNotFoundError( 'Service [{}] could not be found.'.format( service_ref.servicesId)) if serv.configuration: raise serverless_exceptions.UnsupportedOperationError( 'This service is using an old version of Cloud Run for Anthos ' 'that does not support traffic features. Please upgrade to 0.8 ' 'or later.') self._UpdateOrCreateService(service_ref, config_changes, False, serv) if not asyn: getter = functools.partial(self.GetService, service_ref) self.WaitForCondition( ServiceConditionPoller(getter, tracker, serv=serv))
def Adjust(self, resource): """Removes LATEST from the services traffic assignments.""" if resource.configuration: raise exceptions.UnsupportedOperationError( 'This service is using an old version of Cloud Run for Anthos ' 'that does not support traffic features. Please upgrade to 0.8 ' 'or later.') if not resource.generation: raise exceptions.ConfigurationError( '--no-traffic not supported when creating a new service.') resource.traffic.ZeroLatestTraffic(resource.status.latestReadyRevisionName) return resource