You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2019/11/26 13:56:30 UTC
[incubator-dlab] branch develop updated: [DLAB-1293] Fixed bug with
status of custom image (#446)
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push:
new b69e91e [DLAB-1293] Fixed bug with status of custom image (#446)
b69e91e is described below
commit b69e91edb88b94739d3a7ea26bb0a9c7fbf2f0ce
Author: ofuks <54...@users.noreply.github.com>
AuthorDate: Tue Nov 26 15:56:24 2019 +0200
[DLAB-1293] Fixed bug with status of custom image (#446)
---
.../dlab/dto/exploratory/ImageCreateStatusDTO.java | 3 ++-
.../response/handlers/ImageCreateCallbackHandler.java | 17 ++++++++++++++---
.../epam/dlab/backendapi/dao/ImageExploratoryDao.java | 2 +-
.../dlab/backendapi/dao/ImageExploratoryDaoImpl.java | 10 +++++-----
.../backendapi/resources/ImageExploratoryResource.java | 6 ++++--
.../backendapi/resources/callback/ImageCallback.java | 7 ++-----
.../backendapi/service/ImageExploratoryService.java | 2 +-
.../service/impl/ImageExploratoryServiceImpl.java | 4 ++--
.../resources/ImageExploratoryResourceTest.java | 18 ++++++++++++------
.../service/impl/ImageExploratoryServiceImplTest.java | 11 ++++++-----
10 files changed, 49 insertions(+), 31 deletions(-)
diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ImageCreateStatusDTO.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ImageCreateStatusDTO.java
index 23da13a..44556a7 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ImageCreateStatusDTO.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ImageCreateStatusDTO.java
@@ -33,7 +33,8 @@ public class ImageCreateStatusDTO extends StatusBaseDTO<ImageCreateStatusDTO> {
private ImageCreateDTO imageCreateDTO;
private String name;
private String exploratoryName;
-
+ private String project;
+ private String endpoint;
public ImageCreateStatusDTO withImageCreateDto(ImageCreateDTO imageCreateDto) {
setImageCreateDTO(imageCreateDto);
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/ImageCreateCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/ImageCreateCallbackHandler.java
index 8f185a6..dbbc535 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/ImageCreateCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/ImageCreateCallbackHandler.java
@@ -40,13 +40,18 @@ public class ImageCreateCallbackHandler extends ResourceCallbackHandler<ImageCre
private final String imageName;
@JsonProperty
private final String exploratoryName;
+ @JsonProperty
+ private final String project;
+ @JsonProperty
+ private final String endpoint;
- public ImageCreateCallbackHandler(
- RESTService selfService, String uuid, DockerAction action,
+ public ImageCreateCallbackHandler(RESTService selfService, String uuid, DockerAction action,
ExploratoryImageDTO image) {
super(selfService, image.getCloudSettings().getIamUser(), uuid, action);
this.imageName = image.getImageName();
this.exploratoryName = image.getExploratoryName();
+ this.project = image.getProject();
+ this.endpoint = image.getEndpoint();
}
@JsonCreator
@@ -55,10 +60,14 @@ public class ImageCreateCallbackHandler extends ResourceCallbackHandler<ImageCre
@JsonProperty("action") DockerAction action,
@JsonProperty("user") String user,
@JsonProperty("imageName") String imageName,
- @JsonProperty("exploratoryName") String exploratoryName) {
+ @JsonProperty("exploratoryName") String exploratoryName,
+ @JsonProperty("project") String projectName,
+ @JsonProperty("endpoint") String endpoint) {
super(selfService, user, uuid, action);
this.imageName = imageName;
this.exploratoryName = exploratoryName;
+ this.project = projectName;
+ this.endpoint = endpoint;
}
@Override
@@ -79,6 +88,8 @@ public class ImageCreateCallbackHandler extends ResourceCallbackHandler<ImageCre
final ImageCreateStatusDTO statusDTO = super.getBaseStatusDTO(status);
statusDTO.setExploratoryName(exploratoryName);
statusDTO.setName(imageName);
+ statusDTO.setProject(project);
+ statusDTO.setEndpoint(endpoint);
statusDTO.withoutImageCreateDto();
return statusDTO;
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
index 0eb86c0..56a329f 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
@@ -41,7 +41,7 @@ public interface ImageExploratoryDao {
List<ImageInfoRecord> getImagesForProject(String project);
- Optional<ImageInfoRecord> getImage(String user, String name);
+ Optional<ImageInfoRecord> getImage(String user, String name, String project, String endpoint);
List<Library> getLibraries(String user, String imageFullName, ResourceType resourceType, LibStatus status);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
index c3e0ee1..36ef069 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
@@ -60,7 +60,7 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
@Override
public void updateImageFields(Image image) {
- final Bson condition = userImageCondition(image.getUser(), image.getName());
+ final Bson condition = userImageCondition(image.getUser(), image.getName(), image.getProject(), image.getEndpoint());
final Document updatedFields = getUpdatedFields(image);
updateOne(MongoCollections.IMAGES, condition, new Document(SET, updatedFields));
}
@@ -80,8 +80,8 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
}
@Override
- public Optional<ImageInfoRecord> getImage(String user, String name) {
- return findOne(MongoCollections.IMAGES, userImageCondition(user, name), ImageInfoRecord.class);
+ public Optional<ImageInfoRecord> getImage(String user, String name, String project, String endpoint) {
+ return findOne(MongoCollections.IMAGES, userImageCondition(user, name, project, endpoint), ImageInfoRecord.class);
}
@Override
@@ -130,8 +130,8 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
}
- private Bson userImageCondition(String user, String imageName) {
- return and(eq(USER, user), eq(IMAGE_NAME, imageName));
+ private Bson userImageCondition(String user, String imageName, String project, String endpoint) {
+ return and(eq(USER, user), eq(IMAGE_NAME, imageName), eq(PROJECT, project), eq(ENDPOINT, endpoint));
}
private Bson imageProjectCondition(String image, String project) {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
index fdc15fd..a39a468 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
@@ -90,8 +90,10 @@ public class ImageExploratoryResource {
@GET
@Path("{name}")
public Response getImage(@Auth UserInfo ui,
- @PathParam("name") String name) {
+ @PathParam("name") String name,
+ @QueryParam("project") String project,
+ @QueryParam("endpoint") String endpoint) {
log.debug("Getting image with name {} for user {}", name, ui.getName());
- return Response.ok(imageExploratoryService.getImage(ui.getName(), name)).build();
+ return Response.ok(imageExploratoryService.getImage(ui.getName(), name, project, endpoint)).build();
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ImageCallback.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ImageCallback.java
index a3357f6..66b54b6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ImageCallback.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ImageCallback.java
@@ -19,7 +19,6 @@
package com.epam.dlab.backendapi.resources.callback;
-import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.service.ImageExploratoryService;
import com.epam.dlab.dto.UserInstanceStatus;
@@ -27,7 +26,6 @@ import com.epam.dlab.dto.exploratory.ImageCreateStatusDTO;
import com.epam.dlab.dto.exploratory.ImageStatus;
import com.epam.dlab.model.exploratory.Image;
import com.google.inject.Inject;
-import io.dropwizard.auth.Auth;
import lombok.extern.slf4j.Slf4j;
import javax.ws.rs.Consumes;
@@ -45,11 +43,9 @@ public class ImageCallback {
@Inject
private ImageExploratoryService imageExploratoryService;
-
@Inject
private RequestId requestId;
-
@POST
@Path("/image_status")
public Response imageCreateStatus(ImageCreateStatusDTO dto) {
@@ -60,11 +56,12 @@ public class ImageCallback {
return Response.status(Response.Status.CREATED).build();
}
-
private Image getImage(ImageCreateStatusDTO dto) {
return Image.builder()
.name(dto.getName())
.user(dto.getUser())
+ .project(dto.getProject())
+ .endpoint(dto.getEndpoint())
.externalName(dto.getImageCreateDTO().getExternalName())
.fullName(dto.getImageCreateDTO().getFullName())
.status(UserInstanceStatus.FAILED == UserInstanceStatus.of(dto.getStatus()) ?
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
index 791cd05..5091c97 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
@@ -33,7 +33,7 @@ public interface ImageExploratoryService {
List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, String project, String endpoint);
- ImageInfoRecord getImage(String user, String name);
+ ImageInfoRecord getImage(String user, String name, String project, String endpoint);
List<ImageInfoRecord> getImagesForProject(String project);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index 905b504..467dcf4 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -127,8 +127,8 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
}
@Override
- public ImageInfoRecord getImage(String user, String name) {
- return imageExploratoryDao.getImage(user, name).orElseThrow(() ->
+ public ImageInfoRecord getImage(String user, String name, String project, String endpoint) {
+ return imageExploratoryDao.getImage(user, name, project, endpoint).orElseThrow(() ->
new ResourceNotFoundException(String.format(IMAGE_NOT_FOUND_MSG, name, user)));
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java
index be35816..2a7e4c0 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java
@@ -168,10 +168,12 @@ public class ImageExploratoryResourceTest extends TestBase {
@Test
public void getImage() {
- when(imageExploratoryService.getImage(anyString(), anyString()))
+ when(imageExploratoryService.getImage(anyString(), anyString(), anyString(), anyString()))
.thenReturn(getImageList().get(0));
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/image/someName")
+ .queryParam("project", "someProject")
+ .queryParam("endpoint", "someEndpoint")
.request()
.header("Authorization", "Bearer " + TOKEN)
.get();
@@ -180,17 +182,19 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(getImageList().get(0), response.readEntity(ImageInfoRecord.class));
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
- verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName");
+ verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName", "someProject", "someEndpoint");
verifyNoMoreInteractions(imageExploratoryService);
}
@Test
public void getImageWithFailedAuth() throws AuthenticationException {
authFailSetup();
- when(imageExploratoryService.getImage(anyString(), anyString()))
+ when(imageExploratoryService.getImage(anyString(), anyString(), anyString(), anyString()))
.thenReturn(getImageList().get(0));
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/image/someName")
+ .queryParam("project", "someProject")
+ .queryParam("endpoint", "someEndpoint")
.request()
.header("Authorization", "Bearer " + TOKEN)
.get();
@@ -199,7 +203,7 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(getImageList().get(0), response.readEntity(ImageInfoRecord.class));
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
- verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName");
+ verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName", "someProject", "someEndpoint");
verifyNoMoreInteractions(imageExploratoryService);
}
@@ -240,9 +244,11 @@ public class ImageExploratoryResourceTest extends TestBase {
@Test
public void getImageWithException() {
doThrow(new ResourceNotFoundException("Image with name was not found for user"))
- .when(imageExploratoryService).getImage(anyString(), anyString());
+ .when(imageExploratoryService).getImage(anyString(), anyString(), anyString(), anyString());
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/image/someName")
+ .queryParam("project", "someProject")
+ .queryParam("endpoint", "someEndpoint")
.request()
.header("Authorization", "Bearer " + TOKEN)
.get();
@@ -250,7 +256,7 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(HttpStatus.SC_NOT_FOUND, response.getStatus());
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
- verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName");
+ verify(imageExploratoryService).getImage(USER.toLowerCase(), "someName", "someProject", "someEndpoint");
verifyNoMoreInteractions(imageExploratoryService);
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
index 39ff670..51eeeee 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
@@ -259,23 +259,24 @@ public class ImageExploratoryServiceImplTest {
@Test
public void getImage() {
ImageInfoRecord expectedImageInfoRecord = getImageInfoRecord();
- when(imageExploratoryDao.getImage(anyString(), anyString())).thenReturn(Optional.of(expectedImageInfoRecord));
+ when(imageExploratoryDao.getImage(anyString(), anyString(), anyString(), anyString()))
+ .thenReturn(Optional.of(expectedImageInfoRecord));
- ImageInfoRecord actualImageInfoRecord = imageExploratoryService.getImage(USER, "someName");
+ ImageInfoRecord actualImageInfoRecord = imageExploratoryService.getImage(USER, "someName", "someProject", "someEndpoint");
assertNotNull(actualImageInfoRecord);
assertEquals(expectedImageInfoRecord, actualImageInfoRecord);
- verify(imageExploratoryDao).getImage(USER, "someName");
+ verify(imageExploratoryDao).getImage(USER, "someName", "someProject", "someEndpoint");
verifyNoMoreInteractions(imageExploratoryDao);
}
@Test
public void getImageWhenMethodGetImageReturnsOptionalEmpty() {
- when(imageExploratoryDao.getImage(anyString(), anyString())).thenReturn(Optional.empty());
+ when(imageExploratoryDao.getImage(anyString(), anyString(), anyString(), anyString())).thenReturn(Optional.empty());
expectedException.expect(ResourceNotFoundException.class);
expectedException.expectMessage(String.format("Image with name %s was not found for user %s",
"someImageName", USER));
- imageExploratoryService.getImage(USER, "someImageName");
+ imageExploratoryService.getImage(USER, "someImageName", "someProject", "someEndpoint");
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org