def stop_version_async(module=None, version=None): """Returns a UserRPC to stop all instances for the given module version. Args: module: The module to affect, if None the current module is used. version: The version of the given module to affect, if None the current version is used. Returns: A UserRPC to stop all instances for the given module version. """ def _ResultHook(rpc): mapped_errors = [ modules_service_pb2.ModulesServiceError.INVALID_VERSION, modules_service_pb2.ModulesServiceError.TRANSIENT_ERROR ] expected_errors = { modules_service_pb2.ModulesServiceError.UNEXPECTED_STATE: 'The specified module: %s, version: %s is already stopped.' % (module, version) } _CheckAsyncResult(rpc, mapped_errors, expected_errors) request = modules_service_pb2.StopModuleRequest() if module: request.module = module if version: request.version = version response = modules_service_pb2.StopModuleResponse() return _MakeAsyncCall('StopModule', request, response, _ResultHook)
def testStopVersion_NoVersion(self): """Test we pass through the expected args.""" expected_request = modules_service_pb2.StopModuleRequest() expected_request.module = 'module1' service_response = modules_service_pb2.StopModuleResponse() self.SetSuccessExpectations('StopModule', expected_request, service_response) modules.stop_version('module1')
def testStopVersion_AlreadyStopped(self): """Test we don't raise an error if the version is already stopped.""" expected_request = modules_service_pb2.StopModuleRequest() expected_request.module = 'module1' expected_request.version = 'v1' self.mox.StubOutWithMock(logging, 'info') logging.info('The specified module: module1, version: v1 is already ' 'stopped.') self.SetExceptionExpectations( 'StopModule', expected_request, modules_service_pb2.ModulesServiceError.UNEXPECTED_STATE) modules.stop_version('module1', 'v1')
def testStopVersion_InvalidVersionError(self): """Test we raise an error when we receive one from the API.""" expected_request = modules_service_pb2.StopModuleRequest() expected_request.module = 'module1' expected_request.version = 'v1' self.SetExceptionExpectations( 'StopModule', expected_request, modules_service_pb2.ModulesServiceError.INVALID_VERSION) self.assertRaises(modules.InvalidVersionError, modules.stop_version, 'module1', 'v1')
def testStopVersion_TransientError(self): """Test we raise an error when we receive one from the API.""" self.SetExceptionExpectations( 'StopModule', modules_service_pb2.StopModuleRequest(), modules_service_pb2.ModulesServiceError.TRANSIENT_ERROR) self.assertRaises(modules.TransientError, modules.stop_version)