Skip to content

Commit

Permalink
allow same service to be hosted in both ways
Browse files Browse the repository at this point in the history
  • Loading branch information
swaroopar committed Nov 8, 2023
1 parent 358cf52 commit d0b7b8f
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.eclipse.xpanse.modules.models.service.common.enums.Category;
import org.eclipse.xpanse.modules.models.service.common.enums.Csp;
import org.eclipse.xpanse.modules.models.servicetemplate.FlavorBasic;
import org.eclipse.xpanse.modules.models.servicetemplate.enums.ServiceHostingType;
import org.eclipse.xpanse.modules.models.servicetemplate.query.ServiceTemplateQueryModel;
import org.eclipse.xpanse.modules.models.servicetemplate.view.UserOrderableServiceVo;
import org.eclipse.xpanse.modules.servicetemplate.ServiceTemplateManage;
Expand Down Expand Up @@ -78,9 +79,12 @@ public List<UserOrderableServiceVo> listOrderableServices(
@Parameter(name = "serviceName", description = "name of the service")
@RequestParam(name = "serviceName", required = false) String serviceName,
@Parameter(name = "serviceVersion", description = "version of the service")
@RequestParam(name = "serviceVersion", required = false) String serviceVersion) {
@RequestParam(name = "serviceVersion", required = false) String serviceVersion,
@Parameter(name = "serviceHostingType", description = "who hosts ths cloud resources")
@RequestParam(name = "serviceHostingType", required = false)
ServiceHostingType serviceHostingType) {
ServiceTemplateQueryModel query = getServiceTemplatesQueryModel(
categoryName, cspName, serviceName, serviceVersion);
categoryName, cspName, serviceName, serviceVersion, serviceHostingType);
List<ServiceTemplateEntity> serviceEntities =
serviceTemplateManage.listServiceTemplates(query);
String successMsg = String.format("Listing orderable services with query model %s "
Expand Down Expand Up @@ -139,9 +143,12 @@ public Link openApi(@PathVariable("id") String id) {
return Link.of(apiUrl, "OpenApi");
}

private ServiceTemplateQueryModel getServiceTemplatesQueryModel(Category category, Csp csp,
String serviceName,
String serviceVersion) {
private ServiceTemplateQueryModel getServiceTemplatesQueryModel(
Category category,
Csp csp,
String serviceName,
String serviceVersion,
ServiceHostingType serviceHostingType) {
ServiceTemplateQueryModel query = new ServiceTemplateQueryModel();
if (Objects.nonNull(category)) {
query.setCategory(category);
Expand All @@ -155,6 +162,9 @@ private ServiceTemplateQueryModel getServiceTemplatesQueryModel(Category categor
if (StringUtils.isNotBlank(serviceVersion)) {
query.setServiceVersion(serviceVersion);
}
if (Objects.nonNull(serviceHostingType)) {
query.setServiceHostingType(serviceHostingType);
}
return query;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.eclipse.xpanse.modules.models.service.common.enums.Category;
import org.eclipse.xpanse.modules.models.service.common.enums.Csp;
import org.eclipse.xpanse.modules.models.servicetemplate.Ocl;
import org.eclipse.xpanse.modules.models.servicetemplate.enums.ServiceHostingType;
import org.eclipse.xpanse.modules.models.servicetemplate.query.ServiceTemplateQueryModel;
import org.eclipse.xpanse.modules.models.servicetemplate.view.ServiceTemplateDetailVo;
import org.eclipse.xpanse.modules.security.IdentityProviderManager;
Expand Down Expand Up @@ -213,9 +214,12 @@ public List<ServiceTemplateDetailVo> listServiceTemplates(
@Parameter(name = "serviceName", description = "name of the service")
@RequestParam(name = "serviceName", required = false) String serviceName,
@Parameter(name = "serviceVersion", description = "version of the service")
@RequestParam(name = "serviceVersion", required = false) String serviceVersion) {
ServiceTemplateQueryModel query =
getServiceTemplateQueryModel(categoryName, cspName, serviceName, serviceVersion);
@RequestParam(name = "serviceVersion", required = false) String serviceVersion,
@Parameter(name = "serviceHostingType", description = "who hosts ths cloud resources")
@RequestParam(name = "serviceHostingType", required = false)
ServiceHostingType serviceHostingType) {
ServiceTemplateQueryModel query = getServiceTemplateQueryModel(
categoryName, cspName, serviceName, serviceVersion, serviceHostingType);
List<ServiceTemplateEntity> serviceEntities =
serviceTemplateManage.listServiceTemplates(query);
String successMsg = String.format("Listing service templates with query model %s "
Expand Down Expand Up @@ -254,9 +258,12 @@ public ServiceTemplateDetailVo details(
return serviceTemplateDetailVo;
}

private ServiceTemplateQueryModel getServiceTemplateQueryModel(Category category, Csp csp,
String serviceName,
String serviceVersion) {
private ServiceTemplateQueryModel getServiceTemplateQueryModel(
Category category,
Csp csp,
String serviceName,
String serviceVersion,
ServiceHostingType serviceHostingType) {
ServiceTemplateQueryModel query = new ServiceTemplateQueryModel();
if (Objects.nonNull(category)) {
query.setCategory(category);
Expand All @@ -270,6 +277,9 @@ private ServiceTemplateQueryModel getServiceTemplateQueryModel(Category category
if (StringUtils.isNotBlank(serviceVersion)) {
query.setServiceVersion(serviceVersion);
}
if (Objects.nonNull(serviceHostingType)) {
query.setServiceHostingType(serviceHostingType);
}
CurrentUserInfo currentUserInfo = identityProviderManager.getCurrentUserInfo();
if (Objects.nonNull(currentUserInfo)
&& StringUtils.isNotEmpty(currentUserInfo.getNamespace())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@ public List<ServiceTemplateEntity> listServiceTemplates(
predicateList.add(criteriaBuilder.equal(root.get("namespace"),
serviceQuery.getNamespace()));
}
if (Objects.nonNull(serviceQuery.getServiceHostingType())) {
predicateList.add(criteriaBuilder.equal(root.get("serviceHostingType"),
serviceQuery.getServiceHostingType()));
}

return query.where(criteriaBuilder.and(predicateList.toArray(new Predicate[0])))
.getRestriction();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.Data;
import org.eclipse.xpanse.modules.models.service.common.enums.Category;
import org.eclipse.xpanse.modules.models.service.common.enums.Csp;
import org.eclipse.xpanse.modules.models.servicetemplate.enums.ServiceHostingType;

/**
* The query model for search register services.
Expand All @@ -25,4 +26,6 @@ public class ServiceTemplateQueryModel {
private String serviceVersion;

private String namespace;

private ServiceHostingType serviceHostingType;
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ void testGetterAndSetter() {

@Test
void testEqualsAndHashCode() {
assertEquals(serviceTemplateQueryModel, serviceTemplateQueryModel);
assertEquals(serviceTemplateQueryModel.hashCode(), serviceTemplateQueryModel.hashCode());

Object obj = new Object();
Expand Down Expand Up @@ -110,10 +109,11 @@ void testEqualsAndHashCode() {
void testToString() {
String expectedString = "ServiceTemplateQueryModel(" +
"csp=" + csp +
", category=" + category + "" +
", serviceName=" + serviceName + "" +
", serviceVersion=" + serviceVersion + "" +
", namespace=" + namespace + "" +
", category=" + category +
", serviceName=" + serviceName +
", serviceVersion=" + serviceVersion +
", namespace=" + namespace +
", serviceHostingType=" + null +
")";
assertEquals(expectedString, serviceTemplateQueryModel.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void testRegisterNewService() throws Exception {
serviceTemplateApi.register(getOclFromFile());
Assertions.assertTrue(Objects.nonNull(serviceTemplateDetailVo));
Assertions.assertEquals(1, serviceTemplateApi.listServiceTemplates(
null, null, null, null
null, null, null, null, null
).stream().filter(registeredServiceVo1 -> registeredServiceVo1.getName()
.equals(serviceTemplateDetailVo.getName())).toList().size());
Assertions.assertEquals("v3.3.2",
Expand Down Expand Up @@ -76,7 +76,7 @@ void testServiceRegistrationUpdate() throws Exception {
ServiceTemplateDetailVo updatedServiceTemplateDetailVo =
serviceTemplateApi.update(serviceTemplateDetailVo.getId().toString(), ocl);
Assertions.assertEquals(1, serviceTemplateApi.listServiceTemplates(
null, null, null, null
null, null, null, null, null
).stream().filter(registeredServiceVo1 -> registeredServiceVo1.getName()
.equals(serviceTemplateDetailVo.getName())).toList().size());
Assertions.assertEquals("Hello",
Expand Down

0 comments on commit d0b7b8f

Please sign in to comment.