X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fcontroller%2FAppManagerController.java;fp=webapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fcontroller%2FXappManagerController.java;h=e8ad8a922f7213f41df711d9defbafbc0b1b034c;hb=refs%2Fchanges%2F97%2F397%2F4;hp=057d8c48bcd5215e88dd3300930b59532eec30cc;hpb=1fde0c3b93c9cf75b9e48382f298f644b03fa249;p=portal%2Fric-dashboard.git diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/XappManagerController.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java similarity index 80% rename from webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/XappManagerController.java rename to webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java index 057d8c48..e8ad8a92 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/XappManagerController.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java @@ -23,17 +23,20 @@ import java.lang.invoke.MethodHandles; import javax.servlet.http.HttpServletResponse; +import org.oransc.ric.plt.appmgr.client.api.HealthApi; +import org.oransc.ric.plt.appmgr.client.api.XappApi; +import org.oransc.ric.plt.appmgr.client.model.AllDeployableXapps; +import org.oransc.ric.plt.appmgr.client.model.AllDeployedXapps; +import org.oransc.ric.plt.appmgr.client.model.AllXappConfig; +import org.oransc.ric.plt.appmgr.client.model.ConfigMetadata; +import org.oransc.ric.plt.appmgr.client.model.XAppConfig; +import org.oransc.ric.plt.appmgr.client.model.XAppInfo; +import org.oransc.ric.plt.appmgr.client.model.Xapp; import org.oransc.ric.portal.dashboard.DashboardApplication; import org.oransc.ric.portal.dashboard.DashboardConstants; +import org.oransc.ric.portal.dashboard.model.AppTransport; +import org.oransc.ric.portal.dashboard.model.DashboardDeployableXapps; import org.oransc.ric.portal.dashboard.model.SuccessTransport; -import org.oransc.ric.xappmgr.client.api.HealthApi; -import org.oransc.ric.xappmgr.client.api.XappApi; -import org.oransc.ric.xappmgr.client.model.AllXappConfig; -import org.oransc.ric.xappmgr.client.model.AllXapps; -import org.oransc.ric.xappmgr.client.model.ConfigMetadata; -import org.oransc.ric.xappmgr.client.model.XAppConfig; -import org.oransc.ric.xappmgr.client.model.XAppInfo; -import org.oransc.ric.xappmgr.client.model.Xapp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -51,14 +54,14 @@ import org.springframework.web.client.HttpStatusCodeException; import io.swagger.annotations.ApiOperation; /** - * Proxies calls from the front end to the xApp Manager API. All methods answer + * Proxies calls from the front end to the App Manager API. All methods answer * 502 on failure:
HTTP server received an invalid response from a * server it consulted when acting as a proxy or gateway.
*/ @Configuration @RestController -@RequestMapping(value = DashboardConstants.ENDPOINT_PREFIX + "/xappmgr", produces = MediaType.APPLICATION_JSON_VALUE) -public class XappManagerController { +@RequestMapping(value = DashboardConstants.ENDPOINT_PREFIX + "/appmgr", produces = MediaType.APPLICATION_JSON_VALUE) +public class AppManagerController { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @@ -67,7 +70,7 @@ public class XappManagerController { private final XappApi xappApi; @Autowired - public XappManagerController(final HealthApi healthApi, final XappApi xappApi) { + public AppManagerController(final HealthApi healthApi, final XappApi xappApi) { Assert.notNull(healthApi, "health API must not be null"); Assert.notNull(xappApi, "xapp API must not be null"); this.healthApi = healthApi; @@ -161,14 +164,31 @@ public class XappManagerController { } } - @ApiOperation(value = "Returns the status of all xapps.", response = AllXapps.class) + @ApiOperation(value = "Returns a list of deployable xapps.", response = DashboardDeployableXapps.class) + @RequestMapping(value = "/xapps/list", method = RequestMethod.GET) + public Object getAvailableXapps() { + logger.debug("getAvailableXapps"); + try { + AllDeployableXapps appNames = xappApi.listAllXapps(); + // Answer a collection of structure instead of string + DashboardDeployableXapps apps = new DashboardDeployableXapps(); + for (String n : appNames) + apps.add(new AppTransport(n)); + return apps; + } catch (HttpStatusCodeException ex) { + logger.error("getAvailableXapps failed: {}", ex.toString()); + return ResponseEntity.status(HttpServletResponse.SC_BAD_GATEWAY).body(ex.getResponseBodyAsString()); + } + } + + @ApiOperation(value = "Returns the status of all deployed xapps.", response = AllDeployedXapps.class) @RequestMapping(value = "/xapps", method = RequestMethod.GET) - public Object getAllXapps() { - logger.debug("getAllXapps"); + public Object getDeployedXapps() { + logger.debug("getDeployedXapps"); try { return xappApi.getAllXapps(); } catch (HttpStatusCodeException ex) { - logger.error("getAllXapps failed: {}", ex.toString()); + logger.error("getDeployedXapps failed: {}", ex.toString()); return ResponseEntity.status(HttpServletResponse.SC_BAD_GATEWAY).body(ex.getResponseBodyAsString()); } }