public async Task GetTailLogOnDeployedOnlyAlgo() { MetaDataResponseDTO metadataForUploadedBinary = await UploadBinaryAlgoAndGetResponceDTO(); string AlgoID = metadataForUploadedBinary.Id; DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); url = ApiPaths.ALGO_STORE_ALGO_TAIL_LOG; Dictionary <string, string> algoIDTailLog = new Dictionary <string, string>() { { "AlgoId", AlgoID }, { "Tail", "60" } }; var algoIDTailLogResponse = await this.Consumer.ExecuteRequest(url, algoIDTailLog, null, Method.GET); Assert.That(algoIDTailLogResponse.Status, Is.EqualTo(HttpStatusCode.OK)); LogResponseDTO LogObject = JsonUtils.DeserializeJson <LogResponseDTO>(algoIDTailLogResponse.ResponseJson); Assert.NotNull(LogObject); }
public async Task StartBinary() { MetaDataResponseDTO metadataForUploadedBinary = await UploadBinaryAlgoAndGetResponceDTO(); string AlgoID = metadataForUploadedBinary.Id; DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryDTO startAlgo = new StartBinaryDTO { AlgoId = algo.AlgoId }; url = ApiPaths.ALGO_STORE_ALGO_START; var startBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(startAlgo), Method.POST); Assert.That(startBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryResponseDTO startResponse = JsonUtils.DeserializeJson <StartBinaryResponseDTO>(startBinaryresponce.ResponseJson); Assert.That(startResponse.Status, Is.EqualTo("STARTED")); }
public async Task DoubleStartBinary() { MetaDataResponseDTO temporaryResponseDTO = DataManager.getMetaDataForBinaryUpload(); string url = ApiPaths.ALGO_STORE_UPLOAD_BINARY; string AlgoId = temporaryResponseDTO.Id; Dictionary <string, string> quaryParam = new Dictionary <string, string>() { { "AlgoId", AlgoId } }; var responceAllClientMetadata = await this.Consumer.ExecuteRequestFileUpload(url, quaryParam, null, Method.POST, pathFile); Assert.That(responceAllClientMetadata.Status, Is.EqualTo(HttpStatusCode.NoContent)); bool blobExists = await this.BlobRepository.CheckIfBlobExists(AlgoId, BinaryAlgoFileType.JAR); Assert.That(blobExists, Is.EqualTo(true)); DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoId }; url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); RuntimeDataEntity runtimeDataEntity = await RuntimeDataRepository.TryGetAsync(t => t.Id == AlgoId) as RuntimeDataEntity; Assert.NotNull(runtimeDataEntity); StartBinaryDTO startAlgo = new StartBinaryDTO { AlgoId = algo.AlgoId }; url = ApiPaths.ALGO_STORE_ALGO_START; var startBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(startAlgo), Method.POST); Assert.That(startBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryResponseDTO startResponse = JsonUtils.DeserializeJson <StartBinaryResponseDTO>(startBinaryresponce.ResponseJson); Assert.That(startResponse.Status, Is.EqualTo("STARTED")); var startBinaryresponceSecondTime = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(startAlgo), Method.POST); Assert.That(startBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryResponseDTO startResponseSecondTime = JsonUtils.DeserializeJson <StartBinaryResponseDTO>(startBinaryresponce.ResponseJson); Assert.That(startResponse.Status, Is.EqualTo("STARTED")); }
public async Task DeployBinaryAlgoBadRequest(string badID) { DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = badID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.BadRequest)); }
public async Task DeployInstance(InstanceDataDTO instanceData) { DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = instanceData.AlgoId, InstanceId = instanceData.InstanceId, }; var deployBynaryResponse = await Consumer.ExecuteRequest(ApiPaths.ALGO_STORE_DEPLOY_BINARY, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); message = $"POST {ApiPaths.ALGO_STORE_DEPLOY_BINARY} returned status: {deployBynaryResponse.Status} and response: {deployBynaryResponse.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(deployBynaryResponse.Status, Is.EqualTo(HttpStatusCode.OK)); }
public async Task DeleteMetadataWithDeployedAlgo() { MetaDataResponseDTO temporaryResponseDTO = DataManager.getMetadataForDelete(); CascadeDeleteDTO editMetaData = new CascadeDeleteDTO() { Id = temporaryResponseDTO.Id, Name = temporaryResponseDTO.Name }; string url = ApiPaths.ALGO_STORE_UPLOAD_BINARY; string AlgoId = editMetaData.Id; Dictionary <string, string> quaryParam = new Dictionary <string, string>() { { "AlgoId", AlgoId } }; var responceAllClientMetadata = await this.Consumer.ExecuteRequestFileUpload(url, quaryParam, null, Method.POST, pathFile); Assert.That(responceAllClientMetadata.Status, Is.EqualTo(HttpStatusCode.NoContent)); bool blobExists = await this.BlobRepository.CheckIfBlobExists(AlgoId, BinaryAlgoFileType.JAR); Assert.That(blobExists, Is.EqualTo(true)); DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoId }; url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); RuntimeDataEntity runtimeDataEntity = await RuntimeDataRepository.TryGetAsync(t => t.Id == AlgoId) as RuntimeDataEntity; Assert.NotNull(runtimeDataEntity); url = ApiPaths.ALGO_STORE_CASCADE_DELETE; var responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(editMetaData), Method.POST); Assert.That(responceCascadeDelete.Status, Is.EqualTo(HttpStatusCode.NoContent)); MetaDataEntity metaDataEntityDeleted = await MetaDataRepository.TryGetAsync(t => t.Id == editMetaData.Id) as MetaDataEntity; Assert.Null(metaDataEntityDeleted); }
public async Task DeployBianryAlgoWithWrongId() { string AlgoID = "non-existing-id-234-555-666"; DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.NotFound)); RuntimeDataEntity runtimeDataEntity = await RuntimeDataRepository.TryGetAsync(t => t.Id == AlgoID) as RuntimeDataEntity; Assert.Null(runtimeDataEntity); }
public async Task DeployBinaryAlgo() { MetaDataResponseDTO metadataForUploadedBinary = await UploadBinaryAlgoAndGetResponceDTO(); string AlgoID = metadataForUploadedBinary.Id; DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); RuntimeDataEntity runtimeDataEntity = await RuntimeDataRepository.TryGetAsync(t => t.Id == metadataForUploadedBinary.Id) as RuntimeDataEntity; Assert.NotNull(runtimeDataEntity); }
public async Task <List <BuilInitialDataObjectDTO> > UploadSomeBaseMetaData(int nuberDto) { string url = ApiPaths.ALGO_STORE_METADATA; string message; List <MetaDataDTO> metadataList = new List <MetaDataDTO>(); List <MetaDataResponseDTO> responceMetadataList = new List <MetaDataResponseDTO>(); for (int i = 0; i < nuberDto; i++) { MetaDataDTO metadata = new MetaDataDTO() { Name = Helpers.RandomString(13), Description = Helpers.RandomString(13) }; metadataList.Add(metadata); } foreach (var metadata in metadataList) { var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(metadata), Method.POST); message = $"{url} returned status: {response.Status} and response: {response.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(response.Status, Is.EqualTo(HttpStatusCode.OK), message); MetaDataResponseDTO responceMetaData = JsonUtils.DeserializeJson <MetaDataResponseDTO>(response.ResponseJson); responceMetadataList.Add(responceMetaData); } for (int i = 0; i < nuberDto; i++) { url = ApiPaths.ALGO_STORE_UPLOAD_STRING; UploadStringDTO stringDTO = new UploadStringDTO() { AlgoId = responceMetadataList[i].Id, Data = this.CSharpAlgoString }; var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stringDTO), Method.POST); Assert.That(response.Status, Is.EqualTo(HttpStatusCode.NoContent)); instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTO(stringDTO.AlgoId); url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); message = $"{url} returned status: {postInstanceDataResponse.Status} and response: {postInstanceDataResponse.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK), message); postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, }; var deployBynaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); message = $"{url} returned status: {deployBynaryResponse.Status} and response: {deployBynaryResponse.ResponseJson}. Expected: {HttpStatusCode.OK}"; Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); BuilInitialDataObjectDTO tempDataDTO = new BuilInitialDataObjectDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, Name = responceMetadataList[i].Name, Description = responceMetadataList[i].Description }; initialDTOObjectsList.Add(tempDataDTO); } return(initialDTOObjectsList); }
public async Task GetLogOnStoppedAlgo() { MetaDataResponseDTO metadataForUploadedBinary = await UploadBinaryAlgoAndGetResponceDTO(); string AlgoID = metadataForUploadedBinary.Id; DeployBinaryDTO algo = new DeployBinaryDTO() { AlgoId = AlgoID }; string url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; var uploadBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(algo), Method.POST); Assert.That(uploadBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryDTO startAlgo = new StartBinaryDTO { AlgoId = algo.AlgoId }; url = ApiPaths.ALGO_STORE_ALGO_START; var startBinaryresponce = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(startAlgo), Method.POST); Assert.That(startBinaryresponce.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryResponseDTO startResponse = JsonUtils.DeserializeJson <StartBinaryResponseDTO>(startBinaryresponce.ResponseJson); Assert.That(startResponse.Status, Is.EqualTo("STARTED")); url = ApiPaths.ALGO_STORE_ALGO_STOP; StopBinaryDTO stopAlgo = new StopBinaryDTO { AlgoId = algo.AlgoId }; var stopBinaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stopAlgo), Method.POST); Assert.That(stopBinaryResponse.Status, Is.EqualTo(HttpStatusCode.OK)); StartBinaryResponseDTO stopResponse = JsonUtils.DeserializeJson <StartBinaryResponseDTO>(stopBinaryResponse.ResponseJson); Assert.That(stopResponse.Status, Is.EqualTo("STOPPED")); url = ApiPaths.ALGO_STORE_ALGO_LOG; Dictionary <string, string> algoIDLog = new Dictionary <string, string>() { { "AlgoId", AlgoID } }; var algoIDLogResponse = await this.Consumer.ExecuteRequest(url, algoIDLog, null, Method.GET); Assert.That(algoIDLogResponse.Status, Is.EqualTo(HttpStatusCode.OK)); LogResponseDTO LogObject = JsonUtils.DeserializeJson <LogResponseDTO>(algoIDLogResponse.ResponseJson); Assert.NotNull(LogObject); }
public async Task DeployStringAlgo() { string url = ApiPaths.ALGO_STORE_METADATA; MetaDataDTO metadata = new MetaDataDTO() { Name = Helpers.RandomString(13), Description = Helpers.RandomString(13) }; var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(metadata), Method.POST); MetaDataResponseDTO responceMetaData = JsonUtils.DeserializeJson <MetaDataResponseDTO>(response.ResponseJson); url = ApiPaths.ALGO_STORE_UPLOAD_STRING; UploadStringDTO stringDTO = new UploadStringDTO() { AlgoId = responceMetaData.Id, Data = this.CSharpAlgoString }; var responsetemp = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stringDTO), Method.POST); Assert.True(responsetemp.Status == System.Net.HttpStatusCode.NoContent); GetPopulatedInstanceDataDTO getinstanceAlgo = new GetPopulatedInstanceDataDTO(); InstanceDataDTO instanceForAlgo = getinstanceAlgo.returnInstanceDataDTO(stringDTO.AlgoId); url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status == System.Net.HttpStatusCode.OK); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, }; var deployBynaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); Assert.That(postInstanceDataResponse.Status == System.Net.HttpStatusCode.OK); url = ApiPaths.ALGO_STORE_CASCADE_DELETE; int retryCounter = 0; CascadeDeleteDTO editMetaData = new CascadeDeleteDTO() { AlgoId = postInstanceData.AlgoId, InstanceId = postInstanceData.InstanceId }; var responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(editMetaData), Method.POST); // Currently we can not send cascade delete to kubernatees if he has not build the algo before that thorus not found and we leave data while (responceCascadeDelete.Status.Equals(System.Net.HttpStatusCode.NotFound) && retryCounter <= 30) { System.Threading.Thread.Sleep(10000); responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(editMetaData), Method.POST); retryCounter++; } Assert.That(responceCascadeDelete.Status == System.Net.HttpStatusCode.NoContent); }
public async Task StopAlgo() { string url = ApiPaths.ALGO_STORE_METADATA; MetaDataDTO metadata = new MetaDataDTO() { Name = Helpers.RandomString(13), Description = Helpers.RandomString(13) }; var response = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(metadata), Method.POST); MetaDataResponseDTO responceMetaData = JsonUtils.DeserializeJson <MetaDataResponseDTO>(response.ResponseJson); url = ApiPaths.ALGO_STORE_UPLOAD_STRING; UploadStringDTO stringDTO = new UploadStringDTO() { AlgoId = responceMetaData.Id, Data = this.CSharpAlgoString }; var responsetemp = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stringDTO), Method.POST); Assert.That(responsetemp.Status, Is.EqualTo(HttpStatusCode.NoContent)); //InstanceDataDTO instanceForAlgo = GetPopulatedInstanceDataDTO.returnInstanceDataDTO(stringDTO.AlgoId); url = ApiPaths.ALGO_STORE_ALGO_INSTANCE_DATA; var postInstanceDataResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(instanceForAlgo), Method.POST); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); InstanceDataDTO postInstanceData = JsonUtils.DeserializeJson <InstanceDataDTO>(postInstanceDataResponse.ResponseJson); url = ApiPaths.ALGO_STORE_DEPLOY_BINARY; DeployBinaryDTO deploy = new DeployBinaryDTO() { AlgoId = stringDTO.AlgoId, InstanceId = postInstanceData.InstanceId, }; var deployBynaryResponse = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(deploy), Method.POST); Assert.That(postInstanceDataResponse.Status, Is.EqualTo(HttpStatusCode.OK)); url = ApiPaths.ALGO_STORE_ALGO_STOP; int retryCounter = 0; StopBinaryDTO stopAlgo = new StopBinaryDTO() { AlgoId = postInstanceData.AlgoId, InstanceId = postInstanceData.InstanceId }; var responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stopAlgo), Method.POST); StopBinaryResponseDTO stopAlgoResponce = JsonUtils.DeserializeJson <StopBinaryResponseDTO>(responceCascadeDelete.ResponseJson);; while ((stopAlgoResponce.Status.Equals("Deploying") || stopAlgoResponce.Status.Equals("Started")) && retryCounter <= 30) { System.Threading.Thread.Sleep(10000); responceCascadeDelete = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, JsonUtils.SerializeObject(stopAlgo), Method.POST); stopAlgoResponce = JsonUtils.DeserializeJson <StopBinaryResponseDTO>(responceCascadeDelete.ResponseJson); retryCounter++; } Assert.That(responceCascadeDelete.Status, Is.EqualTo(HttpStatusCode.OK)); Assert.That(stopAlgoResponce.Status, Is.EqualTo("Stopped")); ClientInstanceEntity algoInstanceEntitiy = await ClientInstanceRepository.TryGetAsync(t => t.PartitionKey == "algo_" + stringDTO.AlgoId) as ClientInstanceEntity; Assert.That(algoInstanceEntitiy.AlgoInstanceStatusValue, Is.EqualTo("Stopped")); }