aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKotagiri, Ramprasad (rp5662) <rp5662@att.com>2020-02-03 13:43:25 -0500
committerKotagiri, Ramprasad (rp5662) <rp5662@att.com>2020-02-06 13:18:40 -0500
commitc73866cf44cad2be9a91ea1e2a3a77fcc29d9c2a (patch)
tree69955f0a068c89c2ae05fb05e6d9afa6641f3688
parent2ac46fd53461288d5d99a9c0ebb8a3a5216db2a7 (diff)
DCAE dashboard security fixes
Portal SDK ver 2.6.0, non-root user for docker container Change label on Dashboard Home page, API changes, Container optimization Change-Id: Ie2c8efd76d34fddc2b182d5ed494761522695914 Issue-ID: DCAEGEN2-1638 Issue-ID: CCSDK-1485 Issue-ID: DCAEGEN2-1921 Issue-ID: DCAEGEN2-1915 Issue-ID: DCAEGEN2-1856 Issue-ID: DCAEGEN2-1556 Issue-ID: DCAEGEN2-1592 Signed-off-by: Kotagiri, Ramprasad (rp5662) <rp5662@att.com>
-rw-r--r--ccsdk-app-common/pom.xml13
-rw-r--r--ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java201
-rw-r--r--ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java2
-rw-r--r--ccsdk-app-os/Dockerfile45
-rw-r--r--ccsdk-app-os/create_table.sql113
-rw-r--r--ccsdk-app-os/docker-dashboard-installation.sh13
-rw-r--r--ccsdk-app-os/pom.xml48
-rw-r--r--ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java2
-rw-r--r--ccsdk-app-os/src/main/resources/swagger.json1221
-rw-r--r--ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties30
-rw-r--r--ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template5
-rw-r--r--ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties6
-rw-r--r--ccsdk-app-os/src/main/webapp/api-specs.html (renamed from ccsdk-app-os/src/main/webapp/oom-api.html)1105
-rw-r--r--ccsdk-app-overlay/pom.xml4
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js42
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html26
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js25
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js35
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html2
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js42
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html47
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html27
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html13
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html3
-rw-r--r--ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html2
-rw-r--r--pom.xml2
26 files changed, 2056 insertions, 1018 deletions
diff --git a/ccsdk-app-common/pom.xml b/ccsdk-app-common/pom.xml
index 112f3ac..48a6521 100644
--- a/ccsdk-app-common/pom.xml
+++ b/ccsdk-app-common/pom.xml
@@ -6,12 +6,12 @@
<parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
</parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-common</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ONAP Operations Manager Dashboard common</name>
<description>CCSDK Dashboard common Java code</description>
@@ -22,7 +22,7 @@
<springframework.version>4.3.22.RELEASE</springframework.version>
<hibernate.version>4.3.11.Final</hibernate.version>
<eelf.version>1.0.0</eelf.version>
- <epsdk.version>2.5.0</epsdk.version>
+ <epsdk.version>2.6.0</epsdk.version>
<nexusproxy>https://nexus.onap.org</nexusproxy>
<snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
<releaseNexusPath>content/repositories/releases/</releaseNexusPath>
@@ -285,13 +285,6 @@
</exclusion>
</exclusions>
</dependency>
- <!--
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${springframework.version}</version>
- </dependency>
- -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
diff --git a/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java b/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java
index 16949cd..93748f3 100644
--- a/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java
+++ b/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java
@@ -212,35 +212,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
}
/**
- * Serves one page of blueprints
- *
- * @param request HttpServletRequest
- * @return List of CloudifyBlueprint objects
- */
- /*
- * @RequestMapping(value = { BLUEPRINTS_PATH }, method = RequestMethod.GET,
- * produces = "application/json")
- *
- * @ResponseBody public String getBlueprintsByPage(HttpServletRequest request) {
- * preLogAudit(request); String json = getItemListForPageWrapper(request,
- * CloudifyDataItem.BLUEPRINT); postLogAudit(request); return json; }
- */
- /**
- * Serves one page of deployments
- *
- * @param request HttpServletRequest
- * @return List of CloudifyDeployment objects
- */
-
- /*
- * @RequestMapping(value = { DEPLOYMENTS_PATH }, method = RequestMethod.GET,
- * produces = "application/json")
- *
- * @ResponseBody public String getDeploymentsByPage(HttpServletRequest request)
- * { preLogAudit(request); String json = getItemListForPageWrapper(request,
- * CloudifyDataItem.DEPLOYMENT); postLogAudit(request); return json; }
- */
- /**
* gets the tenants list
*
* @param request HttpServletRequest
@@ -298,106 +269,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
}
/**
- * Gets the specified blueprint content for viewing.
- *
- * @param id Blueprint ID
- * @param request HttpServletRequest
- * @return Blueprint as YAML; or error.
- * @throws Exception on serialization error
- *
- */
- /*
- * @RequestMapping(value = { VIEW_BLUEPRINTS_PATH + "/{id}" }, method =
- * RequestMethod.GET, produces = "application/yaml")
- *
- * @ResponseBody public String viewBlueprintContentById(@PathVariable("id")
- * String id, HttpServletRequest request) throws Exception {
- * preLogAudit(request); ECTransportModel result = null; try { result =
- * cloudifyClient.viewBlueprint(id); } catch (HttpStatusCodeException e) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Viewing blueprint " + id + " failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "viewBlueprintContentById caught exception"); result = new
- * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Viewing blueprint " + id + " failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "viewBlueprintContentById caught exception"); result = new
- * RestResponseError("getBlueprintContentById failed", t); } finally {
- * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
- */
- /**
- * Processes request to upload a blueprint from a remote server.
- *
- * @param request HttpServletRequest
- * @param blueprint Cloudify blueprint
- * @return Blueprint as uploaded; or error.
- * @throws Exception on serialization error
- */
- /*
- * @RequestMapping(value = { BLUEPRINTS_PATH }, method = RequestMethod.POST,
- * produces = "application/json")
- *
- * @ResponseBody public String uploadBlueprint(HttpServletRequest
- * request, @RequestBody CloudifyBlueprintUpload blueprint) throws Exception {
- * preLogAudit(request); ECTransportModel result = null; try { result =
- * cloudifyClient.uploadBlueprint(blueprint); } catch (HttpStatusCodeException
- * e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Uploading blueprint failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "uploadBlueprint caught exception"); result = new
- * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Uploading blueprint failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "uploadBlueprint caught exception"); result = new
- * RestResponseError("uploadBlueprint failed", t); } finally {
- * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
- */
- /**
- * Deletes the specified blueprint.
- *
- * @param id Blueprint ID
- * @param request HttpServletRequest
- * @param response HttpServletResponse
- * @return No content on success; error on failure.
- * @throws Exception On serialization failure
- */
-
- /*
- * @RequestMapping(value = { BLUEPRINTS_PATH + "/{id}" }, method =
- * RequestMethod.DELETE, produces = "application/json")
- *
- * @ResponseBody public String deleteBlueprint(@PathVariable("id") String id,
- * HttpServletRequest request, HttpServletResponse response) throws Exception {
- * preLogAudit(request); ECTransportModel result = null; try { int code =
- * cloudifyClient.deleteBlueprint(id); response.setStatus(code); } catch
- * (HttpStatusCodeException e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR");
- * MDC.put("TargetEntity", "Cloudify Manager"); MDC.put("TargetServiceName",
- * "Cloudify Manager"); MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory",
- * "ERROR"); MDC.put("ErrorDescription", "Deleting blueprint " + id +
- * " failed!"); logger.error(EELFLoggerDelegate.errorLogger,
- * "deleteBlueprint caught exception"); result = new
- * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Deleting blueprint " + id + " failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "deleteBlueprint caught exception"); result = new
- * RestResponseError("deleteBlueprint failed on ID " + id, t); } finally {
- * postLogAudit(request); } if (result == null) return null; else return
- * objectMapper.writeValueAsString(result); }
- */
- /**
* Gets the specified deployment.
*
* @param id Deployment ID
@@ -554,78 +425,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
}
/**
- * Processes request to create a deployment based on a blueprint.
- *
- * @param request HttpServletRequest
- * @param deployment Deployment to upload
- * @return Body of deployment; error on failure
- * @throws Exception On serialization failure
- */
- /*
- * @RequestMapping(value = { DEPLOYMENTS_PATH }, method = RequestMethod.POST,
- * produces = "application/json")
- *
- * @ResponseBody public String createDeployment(HttpServletRequest
- * request, @RequestBody CloudifyDeploymentRequest deployment) throws Exception
- * { preLogAudit(request); ECTransportModel result = null; try { result =
- * cloudifyClient.createDeployment(deployment); } catch (HttpStatusCodeException
- * e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Creating deployment failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "createDeployment caught exception"); result = new
- * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
- * MDC.put("ErrorDescription", "Creating deployment failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "createDeployment caught exception"); result = new
- * RestResponseError("createDeployment failed", t); } finally {
- * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
- */
- /**
- * Deletes the specified deployment.
- *
- * @param id Deployment ID
- * @param ignoreLiveNodes Boolean indicator whether to force a delete in case of
- * live nodes
- * @param request HttpServletRequest
- * @param response HttpServletResponse
- * @return Passes thru HTTP status code from remote endpoint; no body on success
- * @throws Exception on serialization failure
- */
-
- /*
- * @RequestMapping(value = { DEPLOYMENTS_PATH + "/{id}" }, method =
- * RequestMethod.DELETE, produces = "application/json")
- *
- * @ResponseBody public String deleteDeployment(@PathVariable("id") String id,
- *
- * @RequestParam(value = "ignore_live_nodes", required = false) Boolean
- * ignoreLiveNodes, HttpServletRequest request, HttpServletResponse response)
- * throws Exception { preLogAudit(request); ECTransportModel result = null; try
- * { int code = cloudifyClient.deleteDeployment(id, ignoreLiveNodes == null ?
- * false : ignoreLiveNodes); response.setStatus(code); } catch
- * (HttpStatusCodeException e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR");
- * MDC.put("TargetEntity", "Cloudify Manager"); MDC.put("TargetServiceName",
- * "Cloudify Manager"); MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory",
- * "ERROR"); MDC.put("ErrorDescription", "Deleting deployment " + id +
- * " failed!"); logger.error(EELFLoggerDelegate.errorLogger,
- * "deleteDeployment caught exception"); result = new
- * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
- * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
- * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
- * MDC.put("ErrorCategory", "ERROR"); MDC.put("ErrorDescription",
- * "Deleting deployment " + id + " failed!");
- * logger.error(EELFLoggerDelegate.errorLogger,
- * "deleteDeployment caught exception"); result = new
- * RestResponseError("deleteDeployment failed on ID " + id, t); } finally {
- * postLogAudit(request); } if (result == null) return null; else return
- * objectMapper.writeValueAsString(result); }
- */
- /**
* Gets and serves one page of executions:
* <OL>
* <LI>Gets all deployments; OR uses the specified deployment ID if the query
diff --git a/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java b/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java
index c63f263..bd53145 100644
--- a/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java
+++ b/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java
@@ -96,7 +96,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
@RestController
-@RequestMapping("/api-if")
+@RequestMapping("/nb-api")
public class CommonApiController extends DashboardRestrictedBaseController {
private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CommonApiController.class);
diff --git a/ccsdk-app-os/Dockerfile b/ccsdk-app-os/Dockerfile
index 81f3cb3..1e66e38 100644
--- a/ccsdk-app-os/Dockerfile
+++ b/ccsdk-app-os/Dockerfile
@@ -1,38 +1,33 @@
-# Use an official Tomcat image
-FROM tomcat:8
+# Use an official Tomcat base image
+FROM tomcat:8.5-alpine
ENV APPDIR /usr/local/tomcat
-WORKDIR ${APPDIR}
-
-# Create deployments directory
-RUN mkdir /home/deployments
-
-# update apt-get
-RUN apt-get update
-
-# Install zip
-RUN apt-get -y --allow-unauthenticated install zip
+ENV APPUSER dash
-# Install vim
-RUN apt-get -y --allow-unauthenticated install vim
+RUN adduser -u 1000 -D ${APPUSER}
-# Install dos2unix
-RUN apt-get install dos2unix -f --allow-unauthenticated
-
-# Install postgresql
-RUN apt-get -y install postgresql --allow-unauthenticated
+WORKDIR ${APPDIR}
-# Download required scripts
COPY docker-dashboard-installation.sh /tmp/docker-dashboard-installation.sh
COPY create_table.sql /tmp/create_table.sql
+
+RUN mkdir /home/deployments \
+ && chown -R 1000:1000 ${APPDIR} \
+ && chown -R 1000:1000 /home/deployments \
+ && apk update \
+ && apk add zip \
+ && apk add vim \
+ && apk add dos2unix \
+ && apk add postgresql \
+ && dos2unix /tmp/create_table.sql \
+ && dos2unix /tmp/docker-dashboard-installation.sh \
+ && chmod +x /tmp/create_table.sql \
+ && chmod +x /tmp/docker-dashboard-installation.sh
+
ARG WAR_FILE
COPY target/${WAR_FILE} /home/deployments/ccsdk-app.war
-# Run docker-dashboard-installation.sh
-RUN dos2unix /tmp/create_table.sql
-RUN dos2unix /tmp/docker-dashboard-installation.sh
-RUN chmod +x /tmp/create_table.sql
-RUN chmod +x /tmp/docker-dashboard-installation.sh
+USER ${APPUSER}
CMD ["/tmp/docker-dashboard-installation.sh"]
diff --git a/ccsdk-app-os/create_table.sql b/ccsdk-app-os/create_table.sql
index 60b7414..e7a7f67 100644
--- a/ccsdk-app-os/create_table.sql
+++ b/ccsdk-app-os/create_table.sql
@@ -1,3 +1,19 @@
+-- ================================================================================
+-- Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
+-- ================================================================================
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- ============LICENSE_END=========================================================
+
CREATE SCHEMA IF NOT EXISTS dashboard_pg_db_common AUTHORIZATION dashboard_pg_admin;
CREATE TABLE IF NOT EXISTS dashboard_pg_db_common.service(
@@ -1001,8 +1017,6 @@ Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values
-- fn_user
-- This row defines a superuser which is accepted by login_extern.htm
--- The superuser entry is disabled in this checked-in version, ACTIVE = N,
--- because it is a security hole that should not exist in IST, ETE and PROD.
Insert into dashboard_pg_db_common.fn_user
(USER_ID,ORG_ID,MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS)
values
@@ -1010,28 +1024,15 @@ Insert into dashboard_pg_db_common.fn_user
;
-- fn_app
--- Use name "DMAAP-BC-APP" (originally "Default")
Insert into dashboard_pg_db_common.fn_app (APP_ID,APP_NAME,APP_IMAGE_URL,APP_DESCRIPTION,APP_NOTES,APP_URL,APP_ALTERNATE_URL,APP_REST_ENDPOINT,ML_APP_NAME,ML_APP_ADMIN_ID,MOTS_ID,APP_PASSWORD,OPEN,ENABLED,THUMBNAIL,APP_USERNAME,UEB_KEY,UEB_SECRET,UEB_TOPIC_NAME) VALUES (1,'EC-DASH-APP','assets/images/tmp/portal1.png','Some Default Description','Some Default Note','http://www.att.com','http://www.att.com',null,'ECPP','?','1','JuCerIRKt/faEcx8QdgncLEEv+IOZjpHe7Pi5DEPqKs=','N','Y',null,'Default',null,null,'ECOMP-PORTAL-INBOX');
-- fn_user_role
Insert into dashboard_pg_db_common.fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,1,null,1);
--- ---------------------------------------------------------------------------------------------------------------
--- This script populates tables for the ECOMP Controller Dashboard web app.
--- in the 1707 release with data for the internal AT&T version.
--- ---------------------------------------------------------------------------------------------------------------
-
---- SET SEARCH_PATH = ecd_att_1707;
-
--- fn_menu
-INSERT INTO dashboard_pg_db_common.fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC)
- VALUES (92, 'Import from WEBPHONE', 9, 30, 'ecd#/post_search', 'menu_profile_import', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', NULL);
-
-
ALTER ROLE dashboard_pg_admin SET search_path TO dashboard_pg_db_common;
-- ---------------------------------------------------------------------------------------------------------------
--- This script creates and populates component table for the ECOMP Controller Dashboard web app.
+-- This script creates and populates component table
-- ---------------------------------------------------------------------------------------------------------------
CREATE SEQUENCE IF NOT EXISTS dashboard_pg_db_common.seq_ecd_component;
@@ -1137,67 +1138,19 @@ update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*' wher
update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*' where function_cd = 'menu_logout';
update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*' where function_cd = 'login';
--- 1902 feature set changes
-
--- Insert rows into fn_function table
-
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_ops', 'OPS Tools', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_cnsl', 'Consul', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_cfy', 'Cloudify Manager', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_grf', 'Grafana', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_prometh', 'Prometheus', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_k8s', 'Kubernetes Dashboard', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_dbcl', 'DBCL Dashboard', '*', '*');
-
--- Insert rows into fn_menu table
-
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (6, 'OPS Tools', 1, 60, '#', 'menu_ops', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'icon-building-factory');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (7, 'DMaaP Bus Controller', 1, 70, '#', 'menu_dbcl', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'icon-building-factory');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (61, 'Cloudify Manager', 6, 10, 'ecd#/cfy', 'menu_cfy', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (62, 'Consul', 6, 20, 'ecd#/cnsl', 'menu_cnsl', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (63, 'Kubernetes Dashboard', 6, 30, 'ecd#/k8s', 'menu_k8s', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (64, 'Grafana', 6, 40, 'ecd#/grf', 'menu_grf', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
- menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
- VALUES (65, 'Prometheus', 6, 50, 'ecd#/prom', 'menu_prometh', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-
-
--- Insert rows into fn_role_function
-
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_ops');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_dbcl');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_cfy');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_cnsl');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1,'menu_k8s');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_grf');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
- role_id, function_cd)
- VALUES (1, 'menu_prometh');
-
--- Update action for DBCL menu
-
-update fn_menu set action='ecd#/dbcl' where function_cd='menu_dbcl'; \ No newline at end of file
+-- REST API docs
+Insert into ecompc_db_common.fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_api','API Menu','menu','*');
+
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC)
+ VALUES (20,'REST API', 1, 35,'#', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','icon-arrows-upload');
+
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC)
+ VALUES (21,'Documentation', 20, 35,'ecd#/api', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','');
+
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC)
+ VALUES (22,'Swagger Spec', 20, 40,'ecd#/api-spec', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','');
+
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (1,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (2,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (3,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (16,'menu_api'); \ No newline at end of file
diff --git a/ccsdk-app-os/docker-dashboard-installation.sh b/ccsdk-app-os/docker-dashboard-installation.sh
index d658490..030e75a 100644
--- a/ccsdk-app-os/docker-dashboard-installation.sh
+++ b/ccsdk-app-os/docker-dashboard-installation.sh
@@ -47,5 +47,18 @@ export PGPASSWORD=$postgres_password_dashboard
psql -h $postgres_ip -U $postgres_user_dashboard $postgres_db_name -f /tmp/create_table.sql
psql -h $postgres_ip -U $postgres_user_dashboard $postgres_db_name -c "update FN_APP set app_username='${aaf_app_user}' where app_id=1"
+# Update tomcat server.xml to enable HTTPS protocol
+if [[ -f /usr/local/share/ca-certificates/cert.jks && $CATALINA_HOME/conf/server.xml ]]
+then
+ echo "<Connector
+ protocol=\"org.apache.coyote.http11.Http11NioProtocol\"
+ port=\"8443\" maxThreads=\"200\"
+ scheme=\"https\" secure=\"true\" SSLEnabled=\"true\"
+ keystoreFile=\"/usr/local/share/ca-certificates/cert.jks\" keystorePass=\"`cat /usr/local/share/ca-certificates/jks.pass`\"
+ clientAuth=\"false\" sslProtocol=\"TLS\"/>" >> enablehttps.txt
+ sed '/Service name=\"Catalina\">/r enablehttps.txt' $CATALINA_HOME/conf/server.xml > $CATALINA_HOME/conf/server-https.xml
+ mv $CATALINA_HOME/conf/server-https.xml $CATALINA_HOME/conf/server.xml
+fi
+
# Start the tomcat server
catalina.sh run
diff --git a/ccsdk-app-os/pom.xml b/ccsdk-app-os/pom.xml
index f4c24fa..f0764d4 100644
--- a/ccsdk-app-os/pom.xml
+++ b/ccsdk-app-os/pom.xml
@@ -6,12 +6,12 @@
<parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
</parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-os</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ONAP Operations Manager Dashboard app</name>
<description>CCSDK Dashboard Web Application for external release</description>
@@ -20,7 +20,7 @@
<encoding>UTF-8</encoding>
<springframework.version>4.3.22.RELEASE</springframework.version>
<hibernate.version>4.3.11.Final</hibernate.version>
- <epsdk.version>2.5.0</epsdk.version>
+ <epsdk.version>2.6.0</epsdk.version>
<ccsdk.version>${project.version}</ccsdk.version>
<nexusproxy>https://nexus.onap.org</nexusproxy>
<snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
@@ -252,5 +252,47 @@
</exclusion>
</exclusions>
</dependency>
+ <!-- overrides for spring libs -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${springframework.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>${springframework.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java b/ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
index 2f328eb..807ae78 100644
--- a/ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
+++ b/ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
@@ -142,7 +142,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
public void addInterceptors(InterceptorRegistry registry) {
super.setExcludeUrlPathsForSessionTimeout("/login_external", "*/login_external.htm",
"login", "/login.htm", "/api*", "/single_signon.htm", "/single_signon", "/health*",
- "/ecomp-api/**");
+ "/nb-api/**");
super.addInterceptors(registry);
}
diff --git a/ccsdk-app-os/src/main/resources/swagger.json b/ccsdk-app-os/src/main/resources/swagger.json
new file mode 100644
index 0000000..de1bf0b
--- /dev/null
+++ b/ccsdk-app-os/src/main/resources/swagger.json
@@ -0,0 +1,1221 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "API to manage deployment of microservices using blueprints.",
+ "version": "1.0.0",
+ "title": "DCAE Dashboard API",
+ "contact": {
+ "email": "rp5662@att.com"
+ }
+ },
+ "host": "dcae-dashboard:8080",
+ "basePath": "/ccsdk-app-os/nb-api",
+ "tags": [
+ {
+ "name": "Blueprints",
+ "description": "Query blueprint information"
+ },
+ {
+ "name": "Deployments",
+ "description": "Manage deployments"
+ },
+ {
+ "name": "Tenants",
+ "description": "Query Cloudify Tenants"
+ },
+ {
+ "name": "Components",
+ "description": "Query on-boarded components"
+ }
+ ],
+ "schemes": [
+ "https",
+ "http"
+ ],
+ "paths": {
+ "/tenants": {
+ "get": {
+ "tags": [
+ "Tenants"
+ ],
+ "summary": "Lists all Cloudify Tenants",
+ "description": "Query all Tenant names from Cloudify",
+ "operationId": "List Tenants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tenant"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/components": {
+ "get": {
+ "tags": [
+ "Components"
+ ],
+ "summary": "Lists all application components",
+ "description": "Query all components from database",
+ "operationId": "List Components",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Component"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Components"
+ ],
+ "summary": "add an application component",
+ "description": "Insert a component into database",
+ "operationId": "Add Component",
+ "consumes": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "New component input",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComponentInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "object"
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/deployments": {
+ "get": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Lists all Deployments",
+ "description": "Query all deployments or Service objects from Inventory",
+ "operationId": "List Deployments",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "pageNum",
+ "in": "query",
+ "description": "pagination control - page number",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "viewPerPage",
+ "in": "query",
+ "description": "pagination control - page size",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DCAEService"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Initiate a deployment (install) operation for an application or service",
+ "description": "Controller sends the blueprint and required inputs to Deployment Handler microservice to initiate the deployment process",
+ "operationId": "Create Deployment",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Inputs to initiate a deployment: blueprint ID from inventory, Cloudify tenant name, blueprint inputs",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DeploymentInput"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "405": {
+ "description": "Invalid input"
+ }
+ }
+ }
+ },
+ "/deployments/{deploymentId}": {
+ "delete": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Initiate an uninstall operation for an application or service",
+ "description": "Controller sends the deployment reference to Deployment Handler microservice to initiate the uninstall process",
+ "operationId": "Delete Deployment",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to query",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tenant",
+ "in": "query",
+ "description": "Cloudify Tenant name",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Upgrade or Rollback an existing deployment using Cloudify Helm plugin",
+ "description": "Upgrade or Rollback an existing deployment using Cloudify Helm plugin",
+ "operationId": "Upgrade/Rollback Deployment",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment in context",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Cloudify Execution Request object that has parameters to start either an upgrade or a rollback execution workflow",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CloudifyDeploymentUpgradeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid ID supplied"
+ },
+ "404": {
+ "description": "Deployment not found"
+ },
+ "405": {
+ "description": "Validation exception"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Gets a Deployment",
+ "description": "Query a deployment or Service object from Inventory",
+ "operationId": "Get Deployment",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to query",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DCAEService"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/deployments/{deploymentId}/update": {
+ "put": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Update an existing deployment",
+ "description": "Dispatch a request to Deployment handler mS to use Cloudify deployment update operation ",
+ "operationId": "Update Deployment",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to update",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Inputs to initiate a deployment: blueprint ID from inventory, Cloudify tenant name, blueprint inputs",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DeploymentInput"
+ }
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid ID supplied"
+ },
+ "404": {
+ "description": "Deployment not found"
+ },
+ "405": {
+ "description": "Validation exception"
+ }
+ }
+ }
+ },
+ "/deployments/{deploymentId}/executions": {
+ "get": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Deployment execution status",
+ "description": "Query deployment workflow execution status",
+ "operationId": "Deployment Status",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to query execution status",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tenant",
+ "in": "query",
+ "description": "tenant name associated with the deployment",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/execution"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/deployments/{deploymentId}/health": {
+ "get": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Deployment health status",
+ "description": "Query consul for service health using deployment ID filter",
+ "operationId": "Deployment health",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to query service health",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/serviceHealth"
+ }
+ }
+ }
+ }
+ },
+ "/deployments/{deploymentId}/inputs": {
+ "get": {
+ "tags": [
+ "Deployments"
+ ],
+ "summary": "Deployment inputs",
+ "description": "Get blueprint inputs used to create deployment",
+ "operationId": "Deployment Inputs",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "deploymentId",
+ "in": "path",
+ "description": "ID of deployment to query execution status",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "tenant",
+ "in": "query",
+ "description": "tenant name associated with the deployment",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "object",
+ "items": {
+ "$ref": "#/definitions/deploymentInputs"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/blueprints": {
+ "get": {
+ "tags": [
+ "Blueprints"
+ ],
+ "summary": "Find all blueprint templates",
+ "description": "Fetch the blueprints data from inventory",
+ "operationId": "List Blueprints",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "pageNum",
+ "in": "query",
+ "description": "pagination control - page number",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "viewPerPage",
+ "in": "query",
+ "description": "pagination control - page size",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "_include",
+ "in": "query",
+ "description": "blueprint object properties need to be considered for filter",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "typeName",
+ "typeId",
+ "typeVersion"
+ ],
+ "default": "typeName"
+ },
+ "collectionFormat": "multi"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `DCAEServiceType` objects",
+ "schema": {
+ "$ref": "#/definitions/InlineResponse200"
+ }
+ },
+ "400": {
+ "description": "Invalid tag value"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Blueprints"
+ ],
+ "summary": "Create/Upload a new blueprint template",
+ "description": "Upload a new blueprint template into inventory",
+ "operationId": "Create Blueprint",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "upload blueprint request to inventory",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DCAEServiceTypeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A `DCAEServiceType` object",
+ "schema": {
+ "$ref": "#/definitions/InlineResponse200"
+ }
+ },
+ "400": {
+ "description": "Invalid tag value"
+ }
+ }
+ }
+ },
+ "/blueprints/{typeId}": {
+ "delete": {
+ "tags": [
+ "Blueprints"
+ ],
+ "summary": "Delete a blueprint template",
+ "description": "Delete a blueprint template from inventory",
+ "operationId": "Delete Blueprint",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "typeId",
+ "in": "path",
+ "description": "ID of blueprint to delete",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation"
+ }
+ }
+ }
+ },
+ "/blueprints/{typeId}/services": {
+ "get": {
+ "tags": [
+ "Blueprints"
+ ],
+ "summary": "Get Services mapped to a blueprint template",
+ "description": "Get Deployment References existing for a blueprint",
+ "operationId": "Get Deployments for a blueprint",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "typeId",
+ "in": "path",
+ "description": "ID of blueprint to query",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation"
+ }
+ }
+ }
+ },
+ "/blueprints/findByName": {
+ "get": {
+ "tags": [
+ "Blueprints"
+ ],
+ "summary": "Find a blueprint by a name pattern",
+ "description": "Fetch the blueprint objects from inventory whose names match a string pattern",
+ "operationId": "Get Blueprint",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "query",
+ "description": "name pattern to filter by",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "_include",
+ "in": "query",
+ "description": "blueprint object properties need to be considered for filter",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "typeName",
+ "typeId",
+ "typeVersion"
+ ],
+ "default": "typeName"
+ },
+ "collectionFormat": "multi"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `DCAEServiceType` objects",
+ "schema": {
+ "$ref": "#/definitions/InlineResponse200"
+ }
+ },
+ "400": {
+ "description": "Invalid tag value"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "UnauthorizedError": {
+ "description": "Authentication information is missing or invalid",
+ "headers": {
+ "WWW_Authenticate": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Tenant": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "cloudify tenant name"
+ }
+ }
+ },
+ "Component": {
+ "type": "object",
+ "properties": {
+ "compId": {
+ "type": "integer"
+ },
+ "cname": {
+ "type": "string",
+ "description": "component namespace name"
+ },
+ "dname": {
+ "type": "string",
+ "description": "component display name"
+ }
+ }
+ },
+ "ComponentInput": {
+ "type": "object",
+ "properties": {
+ "cname": {
+ "type": "string",
+ "description": "component namespace name"
+ },
+ "dname": {
+ "type": "string",
+ "description": "component display name"
+ }
+ }
+ },
+ "InlineResponse200": {
+ "type": "object",
+ "properties": {
+ "links": {
+ "$ref": "#/definitions/InlineResponse200Links"
+ },
+ "totalCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DCAEServiceType"
+ }
+ }
+ }
+ },
+ "InlineResponse200Links": {
+ "type": "object",
+ "properties": {
+ "previousLink": {
+ "$ref": "#/definitions/Link"
+ },
+ "nextLink": {
+ "$ref": "#/definitions/Link"
+ }
+ },
+ "description": "Pagination links"
+ },
+ "ApiResponseMessage": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "DCAEService": {
+ "type": "object",
+ "properties": {
+ "serviceId": {
+ "type": "string"
+ },
+ "selfLink": {
+ "description": "Link.title is serviceId",
+ "$ref": "#/definitions/Link"
+ },
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "typeLink": {
+ "description": "Link.title is typeId",
+ "$ref": "#/definitions/Link"
+ },
+ "vnfId": {
+ "type": "string"
+ },
+ "vnfLink": {
+ "description": "Link.title is vnfId",
+ "$ref": "#/definitions/Link"
+ },
+ "vnfType": {
+ "type": "string"
+ },
+ "vnfLocation": {
+ "type": "string",
+ "description": "Location information of the associated VNF"
+ },
+ "deploymentRef": {
+ "type": "string",
+ "description": "Reference to a Cloudify deployment"
+ },
+ "components": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DCAEServiceComponent"
+ }
+ },
+ "tenant": {
+ "type": "string",
+ "description": "cloudify tenant name"
+ }
+ }
+ },
+ "InlineResponse2001": {
+ "type": "object",
+ "properties": {
+ "links": {
+ "$ref": "#/definitions/InlineResponse200Links"
+ },
+ "totalCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DCAEService"
+ }
+ }
+ }
+ },
+ "UriBuilder": {
+ "type": "object"
+ },
+ "Link": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "rel": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "uriBuilder": {
+ "$ref": "#/definitions/UriBuilder"
+ },
+ "rels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "params": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ },
+ "DCAEServiceComponent": {
+ "type": "object",
+ "required": [
+ "componentId",
+ "componentLink",
+ "componentSource",
+ "componentType",
+ "created",
+ "modified",
+ "shareable"
+ ],
+ "properties": {
+ "componentId": {
+ "type": "string",
+ "description": "The id format is unique to the source"
+ },
+ "componentLink": {
+ "description": "Link to the underlying resource of this component",
+ "$ref": "#/definitions/Link"
+ },
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "componentType": {
+ "type": "string"
+ },
+ "componentSource": {
+ "type": "string",
+ "description": "Specifies the name of the underying source service that is responsible for this components",
+ "enum": [
+ "DCAEController",
+ "DMaaPController"
+ ]
+ },
+ "status": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "description": "Location information of the component"
+ },
+ "shareable": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Used to determine if this component can be shared amongst different DCAE services"
+ }
+ }
+ },
+ "DCAEServiceTypeRequest": {
+ "type": "object",
+ "required": [
+ "blueprintTemplate",
+ "owner",
+ "typeName",
+ "typeVersion",
+ "application",
+ "component"
+ ],
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "typeName": {
+ "type": "string",
+ "description": "Descriptive name for this DCAE service type"
+ },
+ "typeVersion": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Version number for this DCAE service type"
+ },
+ "blueprintTemplate": {
+ "type": "string",
+ "description": "String representation of a Cloudify blueprint with unbound variables"
+ },
+ "application": {
+ "type": "string",
+ "description": "controller application name"
+ },
+ "component": {
+ "type": "string",
+ "description": "onboarding component name"
+ }
+ }
+ },
+ "DCAEServiceType": {
+ "type": "object",
+ "required": [
+ "blueprintTemplate",
+ "created",
+ "owner",
+ "selfLink",
+ "typeId",
+ "typeName",
+ "typeVersion"
+ ],
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "typeName": {
+ "type": "string",
+ "description": "Descriptive name for this DCAE service type"
+ },
+ "typeVersion": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Version number for this DCAE service type"
+ },
+ "blueprintTemplate": {
+ "type": "string",
+ "description": "String representation of a Cloudify blueprint with unbound variables"
+ },
+ "serviceIds": {
+ "type": "array",
+ "description": "List of service ids that are used to associate with DCAE service type. DCAE service types with this propery as null or empty means them apply for every service id.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "vnfTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "serviceLocations": {
+ "type": "array",
+ "description": "List of service locations that are used to associate with DCAE service type. DCAE service types with this propery as null or empty means them apply for every service location.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "asdcServiceId": {
+ "type": "string",
+ "description": "Id of service this DCAE service type is associated with. Value source is from ASDC's notification event's field `serviceInvariantUUID`."
+ },
+ "asdcResourceId": {
+ "type": "string",
+ "description": "Id of vf/vnf instance this DCAE service type is associated with. Value source is from ASDC's notification event's field `resourceInvariantUUID`."
+ },
+ "asdcServiceURL": {
+ "type": "string",
+ "description": "URL to the ASDC service model"
+ },
+ "typeId": {
+ "type": "string",
+ "description": "Unique identifier for this DCAE service type"
+ },
+ "selfLink": {
+ "description": "Link to self where the Link.title is typeName",
+ "$ref": "#/definitions/Link"
+ },
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Created timestamp for this DCAE service type in epoch time"
+ },
+ "deactivated": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Deactivated timestamp for this DCAE service type in epoch time"
+ }
+ }
+ },
+ "CloudifyDeploymentUpgradeRequest": {
+ "type": "object",
+ "required": [
+ "chartVersion",
+ "chartRepo",
+ "config_url",
+ "config_format",
+ "tenant",
+ "workflow"
+ ],
+ "properties": {
+ "chartVersion": {
+ "type": "string",
+ "description": "Helm package version used for install"
+ },
+ "chartRepo": {
+ "type": "string",
+ "description": "Helm repository URL for the chart"
+ },
+ "config_url": {
+ "type": "string",
+ "description": "Helm repository URL for the chart values to update"
+ },
+ "config_format": {
+ "type": "string",
+ "description": "yaml format or json format"
+ },
+ "tenant": {
+ "type": "string",
+ "description": "cloudify tenant name for the deployment upgrade"
+ },
+ "workflow": {
+ "type": "string",
+ "description": "input values are upgrade or rollback - helm upgrade workflow or helm rollback workflow "
+ }
+ }
+ },
+ "DeploymentInput": {
+ "type": "object",
+ "required": [
+ "component",
+ "tag",
+ "blueprintName",
+ "tenant",
+ "inputs"
+ ],
+ "properties": {
+ "component": {
+ "type": "string",
+ "description": "component or namespace for the service"
+ },
+ "tag": {
+ "type": "string",
+ "description": "tag to identify the deployment"
+ },
+ "blueprintId": {
+ "type": "string",
+ "description": "typeId from inventory, a unique Id for the blueprint"
+ },
+ "blueprintName": {
+ "type": "string",
+ "description": "Descriptive name for this DCAE service type"
+ },
+ "blueprintVersion": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Version number for this DCAE service type, optional. Defaults to latest version."
+ },
+ "tenant": {
+ "type": "string",
+ "description": "cloudify tenant name"
+ },
+ "inputs": {
+ "type": "object",
+ "description": "JSON object containing the input parameter names and values"
+ }
+ }
+ },
+ "deploymentInputs": {
+ "type": "object"
+ },
+ "serviceHealth": {
+ "type": "object",
+ "properties": {
+ "node": {
+ "type": "string",
+ "description": "The node where service is deployed"
+ },
+ "checkID": {
+ "type": "string",
+ "description": "A unique identifier for the service health check"
+ },
+ "name": {
+ "type": "string",
+ "description": "A unique name for this service health check"
+ },
+ "status": {
+ "type": "string",
+ "description": "Health check status"
+ },
+ "serviceID": {
+ "type": "string",
+ "description": "An identifier containing combination of consul registration ID and consul service name"
+ },
+ "serviceName": {
+ "type": "string",
+ "description": "A unique consul service name"
+ }
+ }
+ },
+ "execution": {
+ "type": "object",
+ "properties": {
+ "created_at": {
+ "type": "string",
+ "description": "The time the execution was queued at"
+ },
+ "deployment_id": {
+ "type": "string",
+ "description": "The id of the deployment the execution is in the context of"
+ },
+ "id": {
+ "type": "string",
+ "description": "A unique identifier for the execution"
+ },
+ "status": {
+ "type": "string",
+ "description": "The executions status"
+ },
+ "workflow_id": {
+ "type": "string",
+ "description": "The id/name of the workflow the execution is of"
+ },
+ "tenant_name": {
+ "type": "string",
+ "description": "Cloudify tenant name where the deployment was done"
+ }
+ }
+ },
+ "DeploymentResourceLinks": {
+ "type": "object",
+ "properties": {
+ "self": {
+ "description": "Link to retrieve information about the service being deployed",
+ "type": "string"
+ },
+ "outcome": {
+ "description": "Link to retrieve information about deployment outcome",
+ "type": "string"
+ },
+ "status": {
+ "description": "Link to retrieve information about the status of the installation workflow",
+ "type": "string"
+ }
+ }
+ },
+ "DeploymentResource": {
+ "type": "object",
+ "properties": {
+ "deployment_id": {
+ "type": "string",
+ "description": "unique ID for the deployment resource"
+ },
+ "links": {
+ "$ref": "#/definitions/DeploymentResourceLinks",
+ "description": "Links that the API client can access"
+ }
+ }
+ }
+ },
+ "externalDocs": {
+ "description": "Find out more about Swagger",
+ "url": "http://swagger.io"
+ }
+} \ No newline at end of file
diff --git a/ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties b/ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties
index 2496647..9e221cd 100644
--- a/ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties
+++ b/ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties
@@ -1,4 +1,23 @@
-# ATT dashboard.properties
+###############################################################################
+# =============LICENSE_START=========================================================
+#
+# =================================================================================
+# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+###############################################################################
# Properties for the ONAP Controller Dashboard webapp
@@ -14,11 +33,12 @@ controller.env = dev
controller.key.list = dev
dev.name = Local
-dev.url = https://orcl.com/api/v3.1
-dev.inventory.url = https://inventory.com:30123/
-dev.dhandler.url = https://dplh.com:30125/
-dev.consul.url = http://consul.com:8500/
+dev.url = https://dashboard.onap.svc.cluster.local/api/v3.1
+dev.inventory.url = https://inventory.onap.svc.cluster.local:8443/
+dev.dhandler.url = https://dplh.onap.svc.cluster.local:8443/
+dev.consul.url = https://cnsl.onap.svc.cluster.local:9500/
dev.username = admin
dev.password = admin
dev.is_encrypted = false
+
diff --git a/ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template b/ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template
index 4d66dba..940bcf1 100644
--- a/ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template
+++ b/ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template
@@ -2,7 +2,7 @@
# =============LICENSE_START=========================================================
#
# =================================================================================
-# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,11 +17,10 @@
# limitations under the License.
# ============LICENSE_END=========================================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
###############################################################################
# OS system.properties
-app_display_name = ONAP Operations UI
+app_display_name = DCAE Dashboard
# Postgres
db.driver=org.postgresql.Driver
diff --git a/ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties b/ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties
index 01ba9f7..5374b1a 100644
--- a/ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties
+++ b/ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties
@@ -2,7 +2,7 @@
# =============LICENSE_START=========================================================
#
# =================================================================================
-# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,10 +17,7 @@
# limitations under the License.
# ============LICENSE_END=========================================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
###############################################################################
-# OS fusion.properties
-
# login settings
#login_method_csp = csp
#login_method_web_junction = web_junction
@@ -61,3 +58,4 @@ business_direct_menu_attribute_name = businessDirectMenuData
# Role settings
sys_admin_role_id = 1
+
diff --git a/ccsdk-app-os/src/main/webapp/oom-api.html b/ccsdk-app-os/src/main/webapp/api-specs.html
index 5ed224c..b43fbf4 100644
--- a/ccsdk-app-os/src/main/webapp/oom-api.html
+++ b/ccsdk-app-os/src/main/webapp/api-specs.html
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
- <title>Operations Manager API</title>
+ <title>DCAE Dashboard API</title>
<style>
</style>
@@ -369,6 +369,21 @@ td,
th {
padding: 0; }
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
.content h1, .content h2, .content h3, .content h4, .content h5, .content h6, html, body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 14px; }
@@ -413,7 +428,21 @@ th {
.toc-wrapper > .search:before {
content: "\e607"; }
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
html, body {
color: #333;
padding: 0;
@@ -1138,7 +1167,21 @@ td,
th {
padding: 0; }
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
.content h1, .content h2, .content h3, .content h4, body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 14px; }
@@ -1180,6 +1223,21 @@ th {
.content aside.success:before {
content: "\e606"; }
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
.tocify, .toc-footer, .lang-selector, .search, #nav-button {
display: none; }
@@ -1407,7 +1465,7 @@ Darkula color scheme from the JetBrains family of IDEs
var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduce(function(e,t){return e+t.boost},0);return n.some(function(e){return this.tokenStore.has(e)},this)?(n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*o,u=this,c=this.tokenStore.expand(t).reduce(function(n,i){var o=u.corpusTokens.indexOf(i),s=u.idf(i),c=1,l=new e.SortedSet;if(i!==t){var f=Math.max(3,i.length-t.length);c=1/Math.log(f)}return o>-1&&r.insert(o,a*s*c),Object.keys(u.tokenStore.get(i)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);i.push(c)},this),i.reduce(function(e,t){return e.intersect(t)}).map(function(e){return{ref:e,score:r.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})):[]},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),r=n.length,i=new e.Vector,o=0;o<r;o++){var s=n.elements[o],a=this.tokenStore.get(s)[t].tf,u=this.idf(s);i.insert(this.corpusTokens.indexOf(s),a*u)}return i},e.Index.prototype.toJSON=function(){return{version:e.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},e.Index.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},e.Store=function(){this.store={},this.length=0},e.Store.load=function(t){var n=new this;return n.length=t.length,n.store=Object.keys(t.store).reduce(function(n,r){return n[r]=e.SortedSet.load(t.store[r]),n},{}),n},e.Store.prototype.set=function(e,t){this.has(e)||this.length++,this.store[e]=t},e.Store.prototype.get=function(e){return this.store[e]},e.Store.prototype.has=function(e){return e in this.store},e.Store.prototype.remove=function(e){this.has(e)&&(delete this.store[e],this.length--)},e.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},e.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[aeiouy]",r="[^aeiou][^aeiouy]*",i=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),o=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),s=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),a=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),u=/^(.+?)(ss|i)es$/,c=/^(.+?)([^s])s$/,l=/^(.+?)eed$/,f=/^(.+?)(ed|ing)$/,d=/.$/,p=/(at|bl|iz)$/,h=new RegExp("([^aeiouylsz])\\1$"),g=new RegExp("^"+r+n+"[^aeiouwxy]$"),v=/^(.+?[^aeiou])y$/,m=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,y=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,x=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,b=/^(.+?)(s|t)(ion)$/,w=/^(.+?)e$/,T=/ll$/,S=new RegExp("^"+r+n+"[^aeiouwxy]$");return function(n){var r,E,C,k,N,j,A;if(n.length<3)return n;if(C=n.substr(0,1),"y"==C&&(n=C.toUpperCase()+n.substr(1)),k=u,N=c,k.test(n)?n=n.replace(k,"$1$2"):N.test(n)&&(n=n.replace(N,"$1$2")),k=l,N=f,k.test(n)){var L=k.exec(n);k=i,k.test(L[1])&&(k=d,n=n.replace(k,""))}else if(N.test(n)){var L=N.exec(n);r=L[1],N=a,N.test(r)&&(n=r,N=p,j=h,A=g,N.test(n)?n+="e":j.test(n)?(k=d,n=n.replace(k,"")):A.test(n)&&(n+="e"))}if(k=v,k.test(n)){var L=k.exec(n);r=L[1],n=r+"i"}if(k=m,k.test(n)){var L=k.exec(n);r=L[1],E=L[2],k=i,k.test(r)&&(n=r+e[E])}if(k=y,k.test(n)){var L=k.exec(n);r=L[1],E=L[2],k=i,k.test(r)&&(n=r+t[E])}if(k=x,N=b,k.test(n)){var L=k.exec(n);r=L[1],k=o,k.test(r)&&(n=r)}else if(N.test(n)){var L=N.exec(n);r=L[1]+L[2],N=o,N.test(r)&&(n=r)}if(k=w,k.test(n)){var L=k.exec(n);r=L[1],k=o,N=s,j=S,(k.test(r)||N.test(r)&&!j.test(r))&&(n=r)}return k=T,N=o,k.test(n)&&N.test(n)&&(k=d,n=n.replace(k,"")),"y"==C&&(n=C.toLowerCase()+n.substr(1)),n}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),e.stopWordFilter=function(t){if(-1===e.stopWordFilter.stopWords.indexOf(t))return t},e.stopWordFilter.stopWords=new e.SortedSet,e.stopWordFilter.stopWords.length=119,e.stopWordFilter.stopWords.elements=["","a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"],e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),e.trimmer=function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")},e.Pipeline.registerFunction(e.trimmer,"trimmer"),e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=function(e){var t=new this;return t.root=e.root,t.length=e.length,t},e.TokenStore.prototype.add=function(e,t,n){var n=n||this.root,r=e[0],i=e.slice(1);return r in n||(n[r]={docs:{}}),0===i.length?(n[r].docs[t.ref]=t,void(this.length+=1)):this.add(i,t,n[r])},e.TokenStore.prototype.has=function(e){if(!e)return!1;for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return!1;t=t[e[n]]}return!0},e.TokenStore.prototype.getNode=function(e){if(!e)return{};for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return{};t=t[e[n]]}return t},e.TokenStore.prototype.get=function(e,t){return this.getNode(e,t).docs||{}},e.TokenStore.prototype.count=function(e,t){return Object.keys(this.get(e,t)).length},e.TokenStore.prototype.remove=function(e,t){if(e){for(var n=this.root,r=0;r<e.length;r++){if(!(e[r]in n))return;n=n[e[r]]}delete n.docs[t]}},e.TokenStore.prototype.expand=function(e,t){var n=this.getNode(e),r=n.docs||{},t=t||[];return Object.keys(r).length&&t.push(e),Object.keys(n).forEach(function(n){"docs"!==n&&t.concat(this.expand(e+n,t))},this),t},e.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(),function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var r=e.prototype,i=this,o=i.EventEmitter;r.getListeners=function(e){var t,n,r=this._getEvents();if("object"==typeof e){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},r.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&-1!==(r=t(o[i],n))&&o[i].splice(r,1);return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):s.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if("object"===n)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o=this.getListenersAsObject(e);for(i in o)if(o.hasOwnProperty(i))for(r=o[i].length;r--;)n=o[i][r],!0===n.once&&this.removeListener(e,n.listener),n.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,r=function(){};n.addEventListener?r=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(r=function(e,n,r){e[n+r]=r.handleEvent?function(){var n=t(e);r.handleEvent.call(r,n)}:function(){var n=t(e);r.call(e,n)},e.attachEvent("on"+n,e[n+r])});var i=function(){};n.removeEventListener?i=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(i=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(r){e[t+n]=void 0}});var o={bind:r,unbind:i};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,r){return t(e,n,r)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(i(e))t=e;else if("number"==typeof e.length)for(var n=0,r=e.length;r>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=r({},this.options),"function"==typeof t?n=t:r(this.options,t),n&&this.on("always",n),this.getImages(),c&&(this.jqDeferred=new c.Deferred);var i=this;setTimeout(function(){i.check()})}function a(e){this.img=e}function u(e){this.src=e,p[e]=this}var c=e.jQuery,l=e.console,f=void 0!==l,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var r=n.nodeType;if(r&&(1===r||9===r||11===r))for(var i=n.querySelectorAll("img"),o=0,s=i.length;s>o;o++){var a=i[o];this.addImage(a)}}},s.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},s.prototype.check=function(){function e(e,i){return t.options.debug&&f&&l.log("confirm",e,i),t.progress(e),n++,n===r&&t.complete(),!0}var t=this,n=0,r=this.images.length;if(this.hasAnyBroken=!1,!r)return void this.complete();for(var i=0;r>i;i++){var o=this.images[i];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},c&&(c.fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(c(this))}),a.prototype=new t,a.prototype.check=function(){var e=p[this.img.src]||new u(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var p={};return u.prototype=new t,u.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},u.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},u.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},u.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},u.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}),function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),function(){"use strict";function e(e){if(e&&""!==e){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+e+"']").addClass("active");for(var t=0;t<a.length;t++)$(".highlight.tab-"+a[t]).hide(),$(".lang-specific."+a[t]).hide();$(".highlight.tab-"+e).show(),$(".lang-specific."+e).show(),window.recacheHeights(),$(window.location.hash).get(0)&&$(window.location.hash).get(0).scrollIntoView(!0)}}function t(e){return"string"!=typeof e?{}:(e=e.trim().replace(/^(\?|#|&)/,""),e?e.split("&").reduce(function(e,t){var n=t.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),e.hasOwnProperty(r)?Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]:e[r]=i,e},{}):{})}function n(e){return e?Object.keys(e).sort().map(function(t){var n=e[t];return Array.isArray(n)?n.sort().map(function(e){return encodeURIComponent(t)+"="+encodeURIComponent(e)}).join("&"):encodeURIComponent(t)+"="+encodeURIComponent(n)}).join("&"):""}function r(){if(location.search.length>=1){var e=t(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),a))return location.search.substr(1)}return!1}function i(e){var r=t(location.search);return r.language?(r.language=e,n(r)):e}function o(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+i(e)+"#"+t),localStorage.setItem("language",e)}}function s(t){var n=localStorage.getItem("language");a=t;var i=r();i?(e(i),localStorage.setItem("language",i)):e(null!==n&&-1!=jQuery.inArray(n,a)?n:a[0])}var a=[];window.setupLanguages=s,window.activateLanguage=e,window.getLanguageFromQueryString=r,$(function(){$(".lang-selector a").on("click",function(){var t=$(this).data("language-name");return o(t),e(t),!1})})}(),function(){"use strict";function e(){$("h1, h2").each(function(){var e=$(this),t=e.nextUntil("h1, h2");f.add({id:e.prop("id"),title:e.text(),body:t.text()})}),t()}function t(){f.tokenStore.length>5e3&&(c=300)}function n(){s=$(".content"),a=$(".search-results"),$("#input-search").on("keyup",function(e){!function(){return function(e,t){clearTimeout(l),l=setTimeout(e,t)}}()(function(){r(e)},c)})}function r(e){var t=$("#input-search")[0];if(o(),a.addClass("visible"),27===e.keyCode&&(t.value=""),t.value){var n=f.search(t.value).filter(function(e){return e.score>1e-4});n.length?(a.empty(),$.each(n,function(e,t){var n=document.getElementById(t.ref);a.append("<li><a href='#"+t.ref+"'>"+$(n).text()+"</a></li>")}),i.call(t)):(a.html("<li></li>"),$(".search-results li").text('No Results Found for "'+t.value+'"'))}else o(),a.removeClass("visible")}function i(){this.value&&s.highlight(this.value,u)}function o(){s.unhighlight(u)}var s,a,u={element:"span",className:"search-highlight"},c=0,l=0,f=new lunr.Index;f.ref("id"),f.field("title",{boost:10}),f.field("body"),f.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(n)}(),function(){"use strict";function e(e,i,o,s){var a={},u=0,c=0,l=document.title,f=function(){a={},u=$(document).height(),c=$(window).height(),e.find(i).each(function(){var e=$(this).attr("href");"#"===e[0]&&(a[e]=$(e).offset().top)})},d=function(){var n=$(document).scrollTop()+s;n+c>=u&&(n=u+1e3);var r=null;for(var f in a)(a[f]<n&&a[f]>a[r]||null===r)&&(r=f);n!=s||t||(r=window.location.hash,t=!0);var d=e.find("[href='"+r+"']").first();if(!d.hasClass("active")){e.find(".active").removeClass("active"),e.find(".active-parent").removeClass("active-parent"),d.addClass("active"),d.parents(o).addClass("active").siblings(i).addClass("active-parent"),d.siblings(o).addClass("active"),e.find(o).filter(":not(.active)").slideUp(150),e.find(o).filter(".active").slideDown(150),window.history.replaceState&&window.history.replaceState(null,"",r);var p=d.data("title");void 0!==p&&p.length>0?document.title=p+" – "+l:document.title=l}};!function(){f(),d(),$("#nav-button").click(function(){return $(".toc-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(r),$(".toc-link").click(r),e.find(i).click(function(){setTimeout(function(){d()},0)}),$(window).scroll(n(d,200)),$(window).resize(n(f,200))}(),window.recacheHeights=f,window.refreshToc=d}var t=!1,n=function(e,t){var n=!1;return function(){!1===n&&(setTimeout(function(){e(),n=!1},t),n=!0)}},r=function(){$(".toc-wrapper").removeClass("open"),$("#nav-button").removeClass("open")};window.loadToc=e}(),$(function(){loadToc($("#toc"),".toc-link",".toc-list-h2, .toc-list-h3, .toc-list-h4, .toc-list-h5, .toc-list-h6",10),setupLanguages($("body").data("languages")),$(".content").imagesLoaded(function(){window.recacheHeights(),window.refreshToc()})}),window.onpopstate=function(){activateLanguage(getLanguageFromQueryString())};</script>
<meta name="theme-color" content="#F3F7F9" />
-
+<!-- Renderer: Shins v2.4.0 -->
</head>
<body data-languages="[&quot;python&quot;,&quot;shell&quot;]">
@@ -1442,42 +1500,37 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
- <a href="#operations-manager-api" class="toc-h1 toc-link" data-title="Operations Manager API v1.0.0">Operations Manager API v1.0.0</a>
+ <a href="#dcae-dashboard-api" class="toc-h1 toc-link" data-title="DCAE Dashboard API v1.0.0">DCAE Dashboard API v1.0.0</a>
</li>
<li>
- <a href="#authentication" class="toc-h1 toc-link" data-title="Authentication">Authentication</a>
-
- </li>
-
- <li>
- <a href="#operations-manager-api-blueprints" class="toc-h1 toc-link" data-title="Blueprints">Blueprints</a>
+ <a href="#dcae-dashboard-api-blueprints" class="toc-h1 toc-link" data-title="Blueprints">Blueprints</a>
<ul class="toc-list-h2">
<li>
- <a href="#list-blueprints" class="toc-h2 toc-link" data-title="List Blueprints">List Blueprints</a>
+ <a href="#find-all-blueprint-templates" class="toc-h2 toc-link" data-title="">Find all blueprint templates</a>
</li>
<li>
- <a href="#create-blueprint" class="toc-h2 toc-link" data-title="Create Blueprint">Create Blueprint</a>
+ <a href="#create-upload-a-new-blueprint-template" class="toc-h2 toc-link" data-title="">Create/Upload a new blueprint template</a>
</li>
<li>
- <a href="#delete-blueprint" class="toc-h2 toc-link" data-title="Delete Blueprint">Delete Blueprint</a>
+ <a href="#delete-a-blueprint-template" class="toc-h2 toc-link" data-title="">Delete a blueprint template</a>
</li>
<li>
- <a href="#get-deployments-for-a-blueprint" class="toc-h2 toc-link" data-title="Get Deployments for a blueprint">Get Deployments for a blueprint</a>
+ <a href="#get-services-mapped-to-a-blueprint-template" class="toc-h2 toc-link" data-title="">Get Services mapped to a blueprint template</a>
</li>
<li>
- <a href="#get-blueprint" class="toc-h2 toc-link" data-title="Get Blueprint">Get Blueprint</a>
+ <a href="#find-a-blueprint-by-a-name-pattern" class="toc-h2 toc-link" data-title="">Find a blueprint by a name pattern</a>
</li>
@@ -1486,47 +1539,52 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#operations-manager-api-deployments" class="toc-h1 toc-link" data-title="Deployments">Deployments</a>
+ <a href="#dcae-dashboard-api-deployments" class="toc-h1 toc-link" data-title="Deployments">Deployments</a>
<ul class="toc-list-h2">
<li>
- <a href="#list-deployments" class="toc-h2 toc-link" data-title="List Deployments">List Deployments</a>
+ <a href="#lists-all-deployments" class="toc-h2 toc-link" data-title="">Lists all Deployments</a>
+
+ </li>
+
+ <li>
+ <a href="#initiate-a-deployment--install--operation-for-an-application-or-service" class="toc-h2 toc-link" data-title="">Initiate a deployment (install) operation for an application or service</a>
</li>
<li>
- <a href="#create-deployment" class="toc-h2 toc-link" data-title="Create Deployment">Create Deployment</a>
+ <a href="#initiate-an-uninstall-operation-for-an-application-or-service" class="toc-h2 toc-link" data-title="">Initiate an uninstall operation for an application or service</a>
</li>
<li>
- <a href="#delete-deployment" class="toc-h2 toc-link" data-title="Delete Deployment">Delete Deployment</a>
+ <a href="#upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin" class="toc-h2 toc-link" data-title="">Upgrade or Rollback an existing deployment using Cloudify Helm plugin</a>
</li>
<li>
- <a href="#upgrade_rollback-deployment" class="toc-h2 toc-link" data-title="Upgrade_Rollback Deployment">Upgrade_Rollback Deployment</a>
+ <a href="#gets-a-deployment" class="toc-h2 toc-link" data-title="">Gets a Deployment</a>
</li>
<li>
- <a href="#get-deployment" class="toc-h2 toc-link" data-title="Get Deployment">Get Deployment</a>
+ <a href="#update-an-existing-deployment" class="toc-h2 toc-link" data-title="">Update an existing deployment</a>
</li>
<li>
- <a href="#update-deployment" class="toc-h2 toc-link" data-title="Update Deployment">Update Deployment</a>
+ <a href="#deployment-execution-status" class="toc-h2 toc-link" data-title="">Deployment execution status</a>
</li>
<li>
- <a href="#deployment-status" class="toc-h2 toc-link" data-title="Deployment Status">Deployment Status</a>
+ <a href="#deployment-health-status" class="toc-h2 toc-link" data-title="">Deployment health status</a>
</li>
<li>
- <a href="#deployment-inputs" class="toc-h2 toc-link" data-title="Deployment Inputs">Deployment Inputs</a>
+ <a href="#deployment-inputs" class="toc-h2 toc-link" data-title="">Deployment inputs</a>
</li>
@@ -1535,12 +1593,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#operations-manager-api-tenants" class="toc-h1 toc-link" data-title="Tenants">Tenants</a>
+ <a href="#dcae-dashboard-api-tenants" class="toc-h1 toc-link" data-title="Tenants">Tenants</a>
<ul class="toc-list-h2">
<li>
- <a href="#list-tenants" class="toc-h2 toc-link" data-title="List Tenants">List Tenants</a>
+ <a href="#lists-all-cloudify-tenants" class="toc-h2 toc-link" data-title="">Lists all Cloudify Tenants</a>
</li>
@@ -1549,17 +1607,17 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#operations-manager-api-components" class="toc-h1 toc-link" data-title="Components">Components</a>
+ <a href="#dcae-dashboard-api-components" class="toc-h1 toc-link" data-title="Components">Components</a>
<ul class="toc-list-h2">
<li>
- <a href="#list-components" class="toc-h2 toc-link" data-title="List Components">List Components</a>
+ <a href="#lists-all-application-components" class="toc-h2 toc-link" data-title="">Lists all application components</a>
</li>
<li>
- <a href="#add-component" class="toc-h2 toc-link" data-title="Add Component">Add Component</a>
+ <a href="#add-an-application-component" class="toc-h2 toc-link" data-title="">add an application component</a>
</li>
@@ -1573,97 +1631,102 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h2">
<li>
- <a href="#tocStenant" class="toc-h2 toc-link" data-title="Tenant">Tenant</a>
+ <a href="#tocstenant" class="toc-h2 toc-link" data-title="">Tenant</a>
</li>
<li>
- <a href="#tocScomponent" class="toc-h2 toc-link" data-title="Component">Component</a>
+ <a href="#tocscomponent" class="toc-h2 toc-link" data-title="">Component</a>
</li>
<li>
- <a href="#tocScomponentinput" class="toc-h2 toc-link" data-title="ComponentInput">ComponentInput</a>
+ <a href="#tocscomponentinput" class="toc-h2 toc-link" data-title="">ComponentInput</a>
</li>
<li>
- <a href="#tocSinlineresponse200" class="toc-h2 toc-link" data-title="InlineResponse200">InlineResponse200</a>
+ <a href="#tocsinlineresponse200" class="toc-h2 toc-link" data-title="">InlineResponse200</a>
</li>
<li>
- <a href="#tocSinlineresponse200links" class="toc-h2 toc-link" data-title="InlineResponse200Links">InlineResponse200Links</a>
+ <a href="#tocsinlineresponse200links" class="toc-h2 toc-link" data-title="">InlineResponse200Links</a>
</li>
<li>
- <a href="#tocSapiresponsemessage" class="toc-h2 toc-link" data-title="ApiResponseMessage">ApiResponseMessage</a>
+ <a href="#tocsapiresponsemessage" class="toc-h2 toc-link" data-title="">ApiResponseMessage</a>
</li>
<li>
- <a href="#tocSdcaeservice" class="toc-h2 toc-link" data-title="DCAEService">DCAEService</a>
+ <a href="#tocsdcaeservice" class="toc-h2 toc-link" data-title="">DCAEService</a>
</li>
<li>
- <a href="#tocSinlineresponse2001" class="toc-h2 toc-link" data-title="InlineResponse2001">InlineResponse2001</a>
+ <a href="#tocsinlineresponse2001" class="toc-h2 toc-link" data-title="">InlineResponse2001</a>
</li>
<li>
- <a href="#tocSuribuilder" class="toc-h2 toc-link" data-title="UriBuilder">UriBuilder</a>
+ <a href="#tocsuribuilder" class="toc-h2 toc-link" data-title="">UriBuilder</a>
</li>
<li>
- <a href="#tocSlink" class="toc-h2 toc-link" data-title="Link">Link</a>
+ <a href="#tocslink" class="toc-h2 toc-link" data-title="">Link</a>
</li>
<li>
- <a href="#tocSdcaeservicecomponent" class="toc-h2 toc-link" data-title="DCAEServiceComponent">DCAEServiceComponent</a>
+ <a href="#tocsdcaeservicecomponent" class="toc-h2 toc-link" data-title="">DCAEServiceComponent</a>
</li>
<li>
- <a href="#tocSdcaeservicetyperequest" class="toc-h2 toc-link" data-title="DCAEServiceTypeRequest">DCAEServiceTypeRequest</a>
+ <a href="#tocsdcaeservicetyperequest" class="toc-h2 toc-link" data-title="">DCAEServiceTypeRequest</a>
</li>
<li>
- <a href="#tocSdcaeservicetype" class="toc-h2 toc-link" data-title="DCAEServiceType">DCAEServiceType</a>
+ <a href="#tocsdcaeservicetype" class="toc-h2 toc-link" data-title="">DCAEServiceType</a>
</li>
<li>
- <a href="#tocScloudifydeploymentupgraderequest" class="toc-h2 toc-link" data-title="CloudifyDeploymentUpgradeRequest">CloudifyDeploymentUpgradeRequest</a>
+ <a href="#tocscloudifydeploymentupgraderequest" class="toc-h2 toc-link" data-title="">CloudifyDeploymentUpgradeRequest</a>
</li>
<li>
- <a href="#tocSdeploymentinput" class="toc-h2 toc-link" data-title="DeploymentInput">DeploymentInput</a>
+ <a href="#tocsdeploymentinput" class="toc-h2 toc-link" data-title="">DeploymentInput</a>
</li>
<li>
- <a href="#tocSdeploymentinputs" class="toc-h2 toc-link" data-title="deploymentInputs">deploymentInputs</a>
+ <a href="#tocsdeploymentinputs" class="toc-h2 toc-link" data-title="">deploymentInputs</a>
</li>
<li>
- <a href="#tocSexecution" class="toc-h2 toc-link" data-title="execution">execution</a>
+ <a href="#tocsservicehealth" class="toc-h2 toc-link" data-title="">serviceHealth</a>
</li>
<li>
- <a href="#tocSdeploymentresourcelinks" class="toc-h2 toc-link" data-title="DeploymentResourceLinks">DeploymentResourceLinks</a>
+ <a href="#tocsexecution" class="toc-h2 toc-link" data-title="">execution</a>
</li>
<li>
- <a href="#tocSdeploymentresource" class="toc-h2 toc-link" data-title="DeploymentResource">DeploymentResource</a>
+ <a href="#tocsdeploymentresourcelinks" class="toc-h2 toc-link" data-title="">DeploymentResourceLinks</a>
+
+ </li>
+
+ <li>
+ <a href="#tocsdeploymentresource" class="toc-h2 toc-link" data-title="">DeploymentResource</a>
</li>
@@ -1684,28 +1747,24 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
- <h1 id="operations-manager-api">Operations Manager API v1.0.0</h1>
+ <h1 id="dcae-dashboard-api">DCAE Dashboard API v1.0.0</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
-<p>API interface to manage deployments of blueprints. HTTP Basic authorization schema is required to authenticate users for all the resource endpoints.</p>
+<p>API to manage deployment of microservices using blueprints.</p>
<p>Base URLs:</p>
<ul>
<li>
-<p><a href="https://oom-server:30129/ccsdk-app/api-if">https://oom-server:30129/ccsdk-app/api-if</a></p>
+<p><a href="https://dcae-dashboard:8080/ccsdk-app-os/nb-api">https://dcae-dashboard:8080/ccsdk-app-os/nb-api</a></p>
</li>
<li>
-<p><a href="http://oom-server:30129/ccsdk-app/api-if">http://oom-server:30129/ccsdk-app/api-if</a></p>
+<p><a href="http://dcae-dashboard:8080/ccsdk-app-os/nb-api">http://dcae-dashboard:8080/ccsdk-app-os/nb-api</a></p>
</li>
</ul>
<p>Email: <a href="mailto:rp5662@att.com">Support</a></p>
-<h1 id="authentication">Authentication</h1>
-<ul>
-<li>HTTP Authentication, scheme: basic</li>
-</ul>
-<h1 id="operations-manager-api-blueprints">Blueprints</h1>
+<h1 id="dcae-dashboard-api-blueprints">Blueprints</h1>
<p>Query blueprint information</p>
-<h2 id="list-blueprints">List Blueprints</h2>
+<h2 id="find-all-blueprint-templates">Find all blueprint templates</h2>
<p><a id="opIdList Blueprints"></a></p>
<blockquote>
<p>Code samples</p>
@@ -1715,26 +1774,25 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints'</span>, params={
-
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints'</span>, params={
+ <span class="hljs-string">'pageNum'</span>: <span class="hljs-string">'string'</span>, <span class="hljs-string">'viewPerPage'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
<span class="hljs-keyword">print</span> r.json()
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints?pageNum=string&amp;viewPerPage=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /blueprints</code></p>
-<p><em>Find all blueprint templates</em></p>
<p>Fetch the blueprints data from inventory</p>
-<h3 id="list-blueprints-parameters">Parameters</h3>
+<h3 id="find-all-blueprint-templates-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -1743,6 +1801,20 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
</thead>
<tbody>
<tr>
+<td>pageNum</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page number</td>
+</tr>
+<tr>
+<td>viewPerPage</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page size</td>
+</tr>
+<tr>
<td>_include</td>
<td>query</td>
<td>array[string]</td>
@@ -1845,13 +1917,13 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
}
]
}
</code></pre>
-<h3 id="list-blueprints-responses">Responses</h3>
+<h3 id="find-all-blueprint-templates-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -1874,40 +1946,12 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
<td>Invalid tag value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="create-blueprint">Create Blueprint</h2>
+<h2 id="create-upload-a-new-blueprint-template">Create/Upload a new blueprint template</h2>
<p><a id="opIdCreate Blueprint"></a></p>
<blockquote>
<p>Code samples</p>
@@ -1918,7 +1962,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints'</span>, params={
}, headers = headers)
@@ -1926,13 +1970,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints \
-H <span class="hljs-string">'Content-Type: application/json'</span> \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>POST /blueprints</code></p>
-<p><em>Create/Upload a new blueprint template</em></p>
<p>Upload a new blueprint template into inventory</p>
<blockquote>
<p>Body parameter</p>
@@ -1946,11 +1989,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
<span class="hljs-attr">"component"</span>: <span class="hljs-string">"string"</span>
}
</code></pre>
-<h3 id="create-blueprint-parameters">Parameters</h3>
+<h3 id="create-upload-a-new-blueprint-template-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -2038,13 +2081,13 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
}
]
}
</code></pre>
-<h3 id="create-blueprint-responses">Responses</h3>
+<h3 id="create-upload-a-new-blueprint-template-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2067,47 +2110,19 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
<td>Invalid tag value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="delete-blueprint">Delete Blueprint</h2>
+<h2 id="delete-a-blueprint-template">Delete a blueprint template</h2>
<p><a id="opIdDelete Blueprint"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
-r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}'</span>, params={
+r = requests.delete(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}'</span>, params={
)
@@ -2115,17 +2130,16 @@ r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-ap
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
+curl -X DELETE https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}
</code></pre>
<p><code>DELETE /blueprints/{typeId}</code></p>
-<p><em>Delete a blueprint template</em></p>
<p>Delete a blueprint template from inventory</p>
-<h3 id="delete-blueprint-parameters">Parameters</h3>
+<h3 id="delete-a-blueprint-template-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -2142,7 +2156,7 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
</tr>
</tbody>
</table>
-<h3 id="delete-blueprint-responses">Responses</h3>
+<h3 id="delete-a-blueprint-template-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2161,18 +2175,17 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
</tr>
</tbody>
</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="get-deployments-for-a-blueprint">Get Deployments for a blueprint</h2>
+<h2 id="get-services-mapped-to-a-blueprint-template">Get Services mapped to a blueprint template</h2>
<p><a id="opIdGet Deployments for a blueprint"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/services'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}/services'</span>, params={
)
@@ -2180,17 +2193,16 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/services
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}/services
</code></pre>
<p><code>GET /blueprints/{typeId}/services</code></p>
-<p><em>Get Services mapped to a blueprint template</em></p>
<p>Get Deployment References existing for a blueprint</p>
-<h3 id="get-deployments-for-a-blueprint-parameters">Parameters</h3>
+<h3 id="get-services-mapped-to-a-blueprint-template-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -2207,7 +2219,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/servic
</tr>
</tbody>
</table>
-<h3 id="get-deployments-for-a-blueprint-responses">Responses</h3>
+<h3 id="get-services-mapped-to-a-blueprint-template-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2226,11 +2238,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/servic
</tr>
</tbody>
</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="get-blueprint">Get Blueprint</h2>
+<h2 id="find-a-blueprint-by-a-name-pattern">Find a blueprint by a name pattern</h2>
<p><a id="opIdGet Blueprint"></a></p>
<blockquote>
<p>Code samples</p>
@@ -2240,7 +2251,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/findByName'</span>, params={
<span class="hljs-string">'name'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
@@ -2248,18 +2259,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/findByName?name=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /blueprints/findByName</code></p>
-<p><em>Find a blueprint by a name pattern</em></p>
<p>Fetch the blueprint objects from inventory whose names match a string pattern</p>
-<h3 id="get-blueprint-parameters">Parameters</h3>
+<h3 id="find-a-blueprint-by-a-name-pattern-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -2377,13 +2387,13 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
}
]
}
</code></pre>
-<h3 id="get-blueprint-responses">Responses</h3>
+<h3 id="find-a-blueprint-by-a-name-pattern-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2406,42 +2416,14 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name
<td>Invalid tag value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h1 id="operations-manager-api-deployments">Deployments</h1>
+<h1 id="dcae-dashboard-api-deployments">Deployments</h1>
<p>Manage deployments</p>
-<h2 id="list-deployments">List Deployments</h2>
+<h2 id="lists-all-deployments">Lists all Deployments</h2>
<p><a id="opIdList Deployments"></a></p>
<blockquote>
<p>Code samples</p>
@@ -2451,21 +2433,48 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments'</span>, params={
-
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments'</span>, params={
+ <span class="hljs-string">'pageNum'</span>: <span class="hljs-string">'string'</span>, <span class="hljs-string">'viewPerPage'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
<span class="hljs-keyword">print</span> r.json()
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments?pageNum=string&amp;viewPerPage=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /deployments</code></p>
-<p><em>Lists all Deployments</em></p>
<p>Query all deployments or Service objects from Inventory</p>
+<h3 id="lists-all-deployments-parameters">Parameters</h3>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>In</th>
+<th>Type</th>
+<th>Required</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>pageNum</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page number</td>
+</tr>
+<tr>
+<td>viewPerPage</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page size</td>
+</tr>
+</tbody>
+</table>
<blockquote>
<p>Example responses</p>
</blockquote>
@@ -2489,8 +2498,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"typeLink"</span>: {
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -2540,8 +2549,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
<span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -2553,7 +2562,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
}
]
</code></pre>
-<h3 id="list-deployments-responses">Responses</h3>
+<h3 id="lists-all-deployments-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2576,15 +2585,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="list-deployments-responseschema">Response Schema</h3>
+<h3 id="lists-all-deployments-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
@@ -2828,32 +2831,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="create-deployment">Create Deployment</h2>
+<h2 id="initiate-a-deployment--install--operation-for-an-application-or-service">Initiate a deployment (install) operation for an application or service</h2>
<p><a id="opIdCreate Deployment"></a></p>
<blockquote>
<p>Code samples</p>
@@ -2864,7 +2845,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments'</span>, params={
}, headers = headers)
@@ -2872,13 +2853,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments \
-H <span class="hljs-string">'Content-Type: application/json'</span> \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>POST /deployments</code></p>
-<p><em>Initiate a deployment (install) operation for an application or service</em></p>
<p>Controller sends the blueprint and required inputs to Deployment Handler microservice to initiate the deployment process</p>
<blockquote>
<p>Body parameter</p>
@@ -2893,11 +2873,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
<span class="hljs-attr">"inputs"</span>: {}
}
</code></pre>
-<h3 id="create-deployment-parameters">Parameters</h3>
+<h3 id="initiate-a-deployment--install--operation-for-an-application-or-service-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -2929,7 +2909,7 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
}
}
</code></pre>
-<h3 id="create-deployment-responses">Responses</h3>
+<h3 id="initiate-a-deployment--install--operation-for-an-application-or-service-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -2947,12 +2927,6 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
<td><a href="#schemadeploymentresource">DeploymentResource</a></td>
</tr>
<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
<td>405</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.5">Method Not Allowed</a></td>
<td>Invalid input</td>
@@ -2960,32 +2934,10 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="delete-deployment">Delete Deployment</h2>
+<h2 id="initiate-an-uninstall-operation-for-an-application-or-service">Initiate an uninstall operation for an application or service</h2>
<p><a id="opIdDelete Deployment"></a></p>
<blockquote>
<p>Code samples</p>
@@ -2995,7 +2947,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.delete(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
<span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
@@ -3003,18 +2955,17 @@ r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-ap
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}?tenant=string \
+curl -X DELETE https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}?tenant=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>DELETE /deployments/{deploymentId}</code></p>
-<p><em>Initiate an uninstall operation for an application or service</em></p>
<p>Controller sends the deployment reference to Deployment Handler microservice to initiate the uninstall process</p>
-<h3 id="delete-deployment-parameters">Parameters</h3>
+<h3 id="initiate-an-uninstall-operation-for-an-application-or-service-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -3046,7 +2997,7 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deployment
</blockquote>
<pre class="highlight tab tab-json"><code><span class="hljs-string">"string"</span>
</code></pre>
-<h3 id="delete-deployment-responses">Responses</h3>
+<h3 id="initiate-an-uninstall-operation-for-an-application-or-service-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -3069,40 +3020,12 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deployment
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="upgrade_rollback-deployment">Upgrade_Rollback Deployment</h2>
+<h2 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin">Upgrade or Rollback an existing deployment using Cloudify Helm plugin</h2>
<p><a id="opIdUpgrade/Rollback Deployment"></a></p>
<blockquote>
<p>Code samples</p>
@@ -3112,7 +3035,7 @@ headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.put(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
}, headers = headers)
@@ -3120,12 +3043,11 @@ r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId} \
+curl -X PUT https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId} \
-H <span class="hljs-string">'Content-Type: application/json'</span>
</code></pre>
<p><code>PUT /deployments/{deploymentId}</code></p>
-<p><em>Upgrade or Rollback an existing deployment using Cloudify Helm plugin</em></p>
<p>Upgrade or Rollback an existing deployment using Cloudify Helm plugin</p>
<blockquote>
<p>Body parameter</p>
@@ -3139,11 +3061,11 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<span class="hljs-attr">"workflow"</span>: <span class="hljs-string">"string"</span>
}
</code></pre>
-<h3 id="upgrade_rollback-deployment-parameters">Parameters</h3>
+<h3 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -3167,7 +3089,7 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="upgrade_rollback-deployment-responses">Responses</h3>
+<h3 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -3185,12 +3107,6 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<td>None</td>
</tr>
<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
<td>404</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.4">Not Found</a></td>
<td>Deployment not found</td>
@@ -3204,32 +3120,10 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="get-deployment">Get Deployment</h2>
+<h2 id="gets-a-deployment">Gets a Deployment</h2>
<p><a id="opIdGet Deployment"></a></p>
<blockquote>
<p>Code samples</p>
@@ -3239,7 +3133,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
}, headers = headers)
@@ -3247,18 +3141,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId} \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId} \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /deployments/{deploymentId}</code></p>
-<p><em>Gets a Deployment</em></p>
<p>Query a deployment or Service object from Inventory</p>
-<h3 id="get-deployment-parameters">Parameters</h3>
+<h3 id="gets-a-deployment-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -3298,8 +3191,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"typeLink"</span>: {
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -3349,8 +3242,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
<span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -3362,7 +3255,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
}
]
</code></pre>
-<h3 id="get-deployment-responses">Responses</h3>
+<h3 id="gets-a-deployment-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -3385,15 +3278,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="get-deployment-responseschema">Response Schema</h3>
+<h3 id="gets-a-deployment-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
@@ -3637,32 +3524,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="update-deployment">Update Deployment</h2>
+<h2 id="update-an-existing-deployment">Update an existing deployment</h2>
<p><a id="opIdUpdate Deployment"></a></p>
<blockquote>
<p>Code samples</p>
@@ -3672,7 +3537,7 @@ headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/update'</span>, params={
+r = requests.put(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/update'</span>, params={
}, headers = headers)
@@ -3680,12 +3545,11 @@ r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/update \
+curl -X PUT https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/update \
-H <span class="hljs-string">'Content-Type: application/json'</span>
</code></pre>
<p><code>PUT /deployments/{deploymentId}/update</code></p>
-<p><em>Update an existing deployment</em></p>
<p>Dispatch a request to Deployment handler mS to use Cloudify deployment update operation</p>
<blockquote>
<p>Body parameter</p>
@@ -3700,11 +3564,11 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<span class="hljs-attr">"inputs"</span>: {}
}
</code></pre>
-<h3 id="update-deployment-parameters">Parameters</h3>
+<h3 id="update-an-existing-deployment-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -3728,7 +3592,7 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="update-deployment-responses">Responses</h3>
+<h3 id="update-an-existing-deployment-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -3746,12 +3610,6 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<td>None</td>
</tr>
<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
<td>404</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.4">Not Found</a></td>
<td>Deployment not found</td>
@@ -3765,32 +3623,10 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="deployment-status">Deployment Status</h2>
+<h2 id="deployment-execution-status">Deployment execution status</h2>
<p><a id="opIdDeployment Status"></a></p>
<blockquote>
<p>Code samples</p>
@@ -3800,7 +3636,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/executions'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/executions'</span>, params={
<span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
@@ -3808,18 +3644,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/executions?tenant=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/executions?tenant=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /deployments/{deploymentId}/executions</code></p>
-<p><em>Deployment execution status</em></p>
<p>Query deployment workflow execution status</p>
-<h3 id="deployment-status-parameters">Parameters</h3>
+<h3 id="deployment-execution-status-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -3860,7 +3695,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
}
]
</code></pre>
-<h3 id="deployment-status-responses">Responses</h3>
+<h3 id="deployment-execution-status-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -3883,15 +3718,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="deployment-status-responseschema">Response Schema</h3>
+<h3 id="deployment-execution-status-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
@@ -3955,32 +3784,92 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
+<aside class="success">
+This operation does not require authentication
+</aside>
+<h2 id="deployment-health-status">Deployment health status</h2>
+<p><a id="opIdDeployment health"></a></p>
+<blockquote>
+<p>Code samples</p>
+</blockquote>
+<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
+headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
+}
+
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/health'</span>, params={
+
+}, headers = headers)
+
+<span class="hljs-keyword">print</span> r.json()
+
+</code></pre>
+<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/health \
+ -H <span class="hljs-string">'Accept: application/json'</span>
+
+</code></pre>
+<p><code>GET /deployments/{deploymentId}/health</code></p>
+<p>Query consul for service health using deployment ID filter</p>
+<h3 id="deployment-health-status-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Status</th>
-<th>Header</th>
+<th>Name</th>
+<th>In</th>
<th>Type</th>
-<th>Format</th>
+<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
+<td>deploymentId</td>
+<td>path</td>
<td>string</td>
-<td></td>
-<td>none</td>
+<td>true</td>
+<td>ID of deployment to query service health</td>
+</tr>
+</tbody>
+</table>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"node"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"checkID"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"serviceID"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"serviceName"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="deployment-health-status-responses">Responses</h3>
+<table>
+<thead>
+<tr>
+<th>Status</th>
+<th>Meaning</th>
+<th>Description</th>
+<th>Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>200</td>
+<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
+<td>successful operation</td>
+<td><a href="#schemaservicehealth">serviceHealth</a></td>
</tr>
</tbody>
</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="deployment-inputs">Deployment Inputs</h2>
+<h2 id="deployment-inputs">Deployment inputs</h2>
<p><a id="opIdDeployment Inputs"></a></p>
<blockquote>
<p>Code samples</p>
@@ -3990,7 +3879,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/inputs'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/inputs'</span>, params={
<span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
}, headers = headers)
@@ -3998,18 +3887,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/inputs?tenant=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/inputs?tenant=string \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /deployments/{deploymentId}/inputs</code></p>
-<p><em>Deployment inputs</em></p>
<p>Get blueprint inputs used to create deployment</p>
<h3 id="deployment-inputs-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -4064,43 +3952,15 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
<h3 id="deployment-inputs-responseschema">Response Schema</h3>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h1 id="operations-manager-api-tenants">Tenants</h1>
+<h1 id="dcae-dashboard-api-tenants">Tenants</h1>
<p>Query Cloudify Tenants</p>
-<h2 id="list-tenants">List Tenants</h2>
+<h2 id="lists-all-cloudify-tenants">Lists all Cloudify Tenants</h2>
<p><a id="opIdList Tenants"></a></p>
<blockquote>
<p>Code samples</p>
@@ -4110,7 +3970,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/tenants'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/tenants'</span>, params={
}, headers = headers)
@@ -4118,12 +3978,11 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/tenants \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /tenants</code></p>
-<p><em>Lists all Cloudify Tenants</em></p>
<p>Query all Tenant names from Cloudify</p>
<blockquote>
<p>Example responses</p>
@@ -4137,7 +3996,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
}
]
</code></pre>
-<h3 id="list-tenants-responses">Responses</h3>
+<h3 id="lists-all-cloudify-tenants-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4160,15 +4019,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="list-tenants-responseschema">Response Schema</h3>
+<h3 id="lists-all-cloudify-tenants-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
@@ -4197,34 +4050,12 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h1 id="operations-manager-api-components">Components</h1>
+<h1 id="dcae-dashboard-api-components">Components</h1>
<p>Query on-boarded components</p>
-<h2 id="list-components">List Components</h2>
+<h2 id="lists-all-application-components">Lists all application components</h2>
<p><a id="opIdList Components"></a></p>
<blockquote>
<p>Code samples</p>
@@ -4234,7 +4065,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
}
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/components'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components'</span>, params={
}, headers = headers)
@@ -4242,12 +4073,11 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components \
-H <span class="hljs-string">'Accept: application/json'</span>
</code></pre>
<p><code>GET /components</code></p>
-<p><em>Lists all application components</em></p>
<p>Query all components from database</p>
<blockquote>
<p>Example responses</p>
@@ -4263,7 +4093,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
}
]
</code></pre>
-<h3 id="list-components-responses">Responses</h3>
+<h3 id="lists-all-application-components-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4286,15 +4116,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
</tbody>
</table>
-<h3 id="list-components-responseschema">Response Schema</h3>
+<h3 id="lists-all-application-components-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
@@ -4337,32 +4161,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
</tr>
</tbody>
</table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
</aside>
-<h2 id="add-component">Add Component</h2>
+<h2 id="add-an-application-component">add an application component</h2>
<p><a id="opIdAdd Component"></a></p>
<blockquote>
<p>Code samples</p>
@@ -4373,7 +4175,7 @@ headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'*/*'</span>
}
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/components'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components'</span>, params={
}, headers = headers)
@@ -4381,13 +4183,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
</code></pre>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components \
-H <span class="hljs-string">'Content-Type: application/json'</span> \
-H <span class="hljs-string">'Accept: */*'</span>
</code></pre>
<p><code>POST /components</code></p>
-<p><em>add an application component</em></p>
<p>Insert a component into database</p>
<blockquote>
<p>Body parameter</p>
@@ -4397,11 +4198,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
<span class="hljs-attr">"dname"</span>: <span class="hljs-string">"string"</span>
}
</code></pre>
-<h3 id="add-component-parameters">Parameters</h3>
+<h3 id="add-an-application-component-parameters">Parameters</h3>
<table>
<thead>
<tr>
-<th>Parameter</th>
+<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
@@ -4424,7 +4225,7 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
<blockquote>
<p>200 Response</p>
</blockquote>
-<h3 id="add-component-responses">Responses</h3>
+<h3 id="add-an-application-component-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4447,42 +4248,14 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
<td>Invalid status value</td>
<td>None</td>
</tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-</tbody>
-</table>
-<h3 id="add-component-responseschema">Response Schema</h3>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
</tbody>
</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<h3 id="add-an-application-component-responseschema">Response Schema</h3>
+<aside class="success">
+This operation does not require authentication
</aside>
<h1 id="schemas">Schemas</h1>
-<h2 id="tocStenant">Tenant</h2>
+<h2 id="tocstenant">Tenant</h2>
<p><a id="schematenant"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>
@@ -4510,7 +4283,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocScomponent">Component</h2>
+<h2 id="tocscomponent">Component</h2>
<p><a id="schemacomponent"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"compId"</span>: <span class="hljs-number">0</span>,
@@ -4554,7 +4327,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocScomponentinput">ComponentInput</h2>
+<h2 id="tocscomponentinput">ComponentInput</h2>
<p><a id="schemacomponentinput"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"cname"</span>: <span class="hljs-string">"string"</span>,
@@ -4590,7 +4363,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSinlineresponse200">InlineResponse200</h2>
+<h2 id="tocsinlineresponse200">InlineResponse200</h2>
<p><a id="schemainlineresponse200"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"links"</span>: {
@@ -4657,8 +4430,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
}
]
}
@@ -4699,7 +4472,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSinlineresponse200links">InlineResponse200Links</h2>
+<h2 id="tocsinlineresponse200links">InlineResponse200Links</h2>
<p><a id="schemainlineresponse200links"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"previousLink"</span>: {
@@ -4762,7 +4535,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSapiresponsemessage">ApiResponseMessage</h2>
+<h2 id="tocsapiresponsemessage">ApiResponseMessage</h2>
<p><a id="schemaapiresponsemessage"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"code"</span>: <span class="hljs-number">0</span>,
@@ -4806,7 +4579,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdcaeservice">DCAEService</h2>
+<h2 id="tocsdcaeservice">DCAEService</h2>
<p><a id="schemadcaeservice"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"serviceId"</span>: <span class="hljs-string">"string"</span>,
@@ -4824,8 +4597,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"typeLink"</span>: {
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -4875,8 +4648,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
<span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -4986,7 +4759,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSinlineresponse2001">InlineResponse2001</h2>
+<h2 id="tocsinlineresponse2001">InlineResponse2001</h2>
<p><a id="schemainlineresponse2001"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"links"</span>: {
@@ -5037,8 +4810,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"typeLink"</span>: {
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -5088,8 +4861,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
<span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -5138,14 +4911,14 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSuribuilder">UriBuilder</h2>
+<h2 id="tocsuribuilder">UriBuilder</h2>
<p><a id="schemauribuilder"></a></p>
<pre class="highlight tab tab-json"><code>{}
</code></pre>
<h3 id="properties">Properties</h3>
<p><em>None</em></p>
-<h2 id="tocSlink">Link</h2>
+<h2 id="tocslink">Link</h2>
<p><a id="schemalink"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
@@ -5233,7 +5006,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdcaeservicecomponent">DCAEServiceComponent</h2>
+<h2 id="tocsdcaeservicecomponent">DCAEServiceComponent</h2>
<p><a id="schemadcaeservicecomponent"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"componentId"</span>: <span class="hljs-string">"string"</span>,
@@ -5251,8 +5024,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
<span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
<span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -5357,7 +5130,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdcaeservicetyperequest">DCAEServiceTypeRequest</h2>
+<h2 id="tocsdcaeservicetyperequest">DCAEServiceTypeRequest</h2>
<p><a id="schemadcaeservicetyperequest"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"owner"</span>: <span class="hljs-string">"string"</span>,
@@ -5425,7 +5198,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdcaeservicetype">DCAEServiceType</h2>
+<h2 id="tocsdcaeservicetype">DCAEServiceType</h2>
<p><a id="schemadcaeservicetype"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"owner"</span>: <span class="hljs-string">"string"</span>,
@@ -5459,8 +5232,8 @@ basicAuth
},
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
},
- <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
- <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+ <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+ <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
}
</code></pre>
@@ -5576,7 +5349,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocScloudifydeploymentupgraderequest">CloudifyDeploymentUpgradeRequest</h2>
+<h2 id="tocscloudifydeploymentupgraderequest">CloudifyDeploymentUpgradeRequest</h2>
<p><a id="schemacloudifydeploymentupgraderequest"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"chartVersion"</span>: <span class="hljs-string">"string"</span>,
@@ -5644,7 +5417,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdeploymentinput">DeploymentInput</h2>
+<h2 id="tocsdeploymentinput">DeploymentInput</h2>
<p><a id="schemadeploymentinput"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"component"</span>: <span class="hljs-string">"string"</span>,
@@ -5720,14 +5493,82 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdeploymentinputs">deploymentInputs</h2>
+<h2 id="tocsdeploymentinputs">deploymentInputs</h2>
<p><a id="schemadeploymentinputs"></a></p>
<pre class="highlight tab tab-json"><code>{}
</code></pre>
<h3 id="properties">Properties</h3>
<p><em>None</em></p>
-<h2 id="tocSexecution">execution</h2>
+<h2 id="tocsservicehealth">serviceHealth</h2>
+<p><a id="schemaservicehealth"></a></p>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"node"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"checkID"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"serviceID"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"serviceName"</span>: <span class="hljs-string">"string"</span>
+}
+
+</code></pre>
+<h3 id="properties">Properties</h3>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>node</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>The node where service is deployed</td>
+</tr>
+<tr>
+<td>checkID</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique identifier for the service health check</td>
+</tr>
+<tr>
+<td>name</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique name for this service health check</td>
+</tr>
+<tr>
+<td>status</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>Health check status</td>
+</tr>
+<tr>
+<td>serviceID</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>An identifier containing combination of consul registration ID and consul service name</td>
+</tr>
+<tr>
+<td>serviceName</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique consul service name</td>
+</tr>
+</tbody>
+</table>
+<h2 id="tocsexecution">execution</h2>
<p><a id="schemaexecution"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"created_at"</span>: <span class="hljs-string">"string"</span>,
@@ -5795,7 +5636,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdeploymentresourcelinks">DeploymentResourceLinks</h2>
+<h2 id="tocsdeploymentresourcelinks">DeploymentResourceLinks</h2>
<p><a id="schemadeploymentresourcelinks"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"self"</span>: <span class="hljs-string">"string"</span>,
@@ -5839,7 +5680,7 @@ basicAuth
</tr>
</tbody>
</table>
-<h2 id="tocSdeploymentresource">DeploymentResource</h2>
+<h2 id="tocsdeploymentresource">DeploymentResource</h2>
<p><a id="schemadeploymentresource"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">"deployment_id"</span>: <span class="hljs-string">"string"</span>,
@@ -5879,7 +5720,7 @@ basicAuth
</tr>
</tbody>
</table>
-
+<!-- Renderer: Shins v2.4.0 -->
</div>
<div class="dark-box">
diff --git a/ccsdk-app-overlay/pom.xml b/ccsdk-app-overlay/pom.xml
index 135ba23..b9b7809 100644
--- a/ccsdk-app-overlay/pom.xml
+++ b/ccsdk-app-overlay/pom.xml
@@ -6,12 +6,12 @@
<parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
</parent>
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-overlay</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ONAP Operations Manager Dashboard overlay</name>
<description>CCSDK Dashboard web resources</description>
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js
new file mode 100644
index 0000000..6ac9839
--- /dev/null
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+appDS2.controller('apiDocsController',function(
+ $scope, ControllerService){
+
+ 'use strict';
+
+ // this object holds all app data and functions
+ $scope.ecdapp = {};
+ $scope.ecdapp.apiSpec = '';
+
+ var getApiSpecs = function(){
+ ControllerService.getApiSwaggerSpec().then(function(jsonObj) {
+ $scope.ecdapp.apiSpec = JSON.stringify(jsonObj, undefined, 4);
+ }, function(error) {
+ alert('Failed to get REST API spec file');
+ });
+ }
+
+ // Populate the page on load
+ getApiSpecs();
+
+});
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html
new file mode 100644
index 0000000..342406c
--- /dev/null
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html
@@ -0,0 +1,26 @@
+<!--
+ ============LICENSE_START==========================================
+ ===================================================================
+ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+
+ Unless otherwise specified, all software contained herein is licensed
+ under the Apache License, Version 2.0 (the "License");
+ you may not use this software except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ ============LICENSE_END============================================
+ -->
+<div id="page-content">
+ <iframe scrolling="yes" frameborder="0" style="width:100%; height: 800px;"
+ ng-src="api-specs.html">
+ </iframe>
+</div> \ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js
index c8f7071..ebb35cd 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js
@@ -1,3 +1,24 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
/* Angular application for the EC Dashboard web UI */
var appDS2 = angular.module("abs",
[
@@ -6,6 +27,4 @@ var appDS2 = angular.module("abs",
'b2b.att',
'modalServices'
]
- ).config(function($sceDelegateProvider) {
- $sceDelegateProvider.resourceUrlWhitelist(['**']);
- });
+ );
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js
index 389a44c..65495f1 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js
@@ -1,3 +1,24 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
appDS2.factory('ControllerService', function ($http, $q, $log) {
return {
/**
@@ -18,6 +39,20 @@ appDS2.factory('ControllerService', function ($http, $q, $log) {
return $q.reject(error.statusText);
});
},
+ getApiSwaggerSpec: function() {
+ return $http({
+ method: 'GET',
+ url: 'nb-api/api-docs',
+ cache: true,
+ responseType: 'json'
+ }).then(function(response) {
+ return response.data;
+ },
+ function(error) {
+ $log.error('ControllerService.getApiSwaggerSpec failed: ' + JSON.stringify(error));
+ return $q.reject(error.statusText);
+ });
+ },
/**
* Gets the cloudify tenant names.
*
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html
index f8acb8b..5623b1c 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html
@@ -1,5 +1,5 @@
<div id="page-content">
- <h4 class="heading-page" id="controllers">ONAP Operations Manager {{ecdapp.appLabel}}</h4>
+ <h4 class="heading-page" id="controllers">DCAE Dashboard</h4>
</div>
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js
index 7ec5537..592ab15 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js
@@ -2,7 +2,7 @@
* =============LICENSE_START=========================================================
*
* =================================================================================
- * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,14 +17,16 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*******************************************************************************/
appDS2.config(function($routeProvider) {
$routeProvider
- .when('/orgchart', {
- /* horizontal layout */
- templateUrl: 'app/ccsdk/home/tree_view.html',
- controller : 'treeViewController'
+ .when('/api', {
+ templateUrl: 'app/ccsdk/home/api_doc.html',
+ controller : ''
+ })
+ .when('/api-spec', {
+ templateUrl: 'app/ccsdk/home/rest-api-spec.html',
+ controller : 'apiDocsController'
})
.when('/ibp', {
templateUrl: 'app/ccsdk/inventory/inventory_blueprint_table.html',
@@ -82,34 +84,6 @@ appDS2.config(function($routeProvider) {
templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-admin/usage.html',
controller: 'usageListControllerDS2'
})
- .when('/cfy', {
- templateUrl: 'app/ccsdk/ops/tabs_view.html',
- controller: 'tabsController',
- item: 'cfy'
- })
- .when('/cnsl', {
- templateUrl: 'app/ccsdk/ops/tabs_view.html',
- controller: 'tabsController',
- item: 'cnsl'
- })
- .when('/grf', {
- templateUrl: 'app/ccsdk/ops/tabs_view.html',
- controller: 'tabsController',
- item: 'grf'
- })
- .when('/k8s', {
- templateUrl: 'app/ccsdk/ops/tabs_view.html',
- controller: 'tabsController',
- item: 'k8s'
- })
- .when('/prom', {
- templateUrl: 'app/ecdapp/ops/tabs_view.html',
- controller: 'tabsController',
- item: 'prom'
- })
- .when('/dbcl', {
- templateUrl: 'app/ecdapp/ops/dbcl_view.html'
- })
.otherwise({
templateUrl: 'app/ccsdk/home/executions_view.html',
controller : 'executionsViewController'
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html
index 74651a9..fabb450 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html
@@ -1,20 +1,42 @@
+<!--
+ ============LICENSE_START==========================================
+ ===================================================================
+ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+
+ Unless otherwise specified, all software contained herein is licensed
+ under the Apache License, Version 2.0 (the "License");
+ you may not use this software except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ ============LICENSE_END============================================
+ -->
+
<!DOCTYPE html>
-<!-- ONAP Operations Manager Dashboard single-page application using B2B/DS2. -->
+<!-- DCAE Dashboard single-page application using B2B/DS2. -->
<html>
<head>
<meta charset="UTF-8">
- <title>OOM Dashboard</title>
+ <title>DCAE Dashboard</title>
<link rel="icon" type="image/ico" href="app/ccsdk/images/onap_32x32.ico" />
<!-- Third-party scripts from EPSDK overlay -->
- <script src="app/fusion/external/angular-1.4.8/angular.js"></script>
- <script src="app/fusion/external/angular-1.4.8/angular-cookies.js"></script>
- <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>
- <script src="app/fusion/external/angular-1.4.8/angular-route.js"></script>
- <script src="app/fusion/external/angular-1.4.8/angular-sanitize.js"></script>
- <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular-cookies.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular-messages.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular-route.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular-sanitize.js"></script>
+ <script src="app/fusion/external/angular-1.4.13/angular-touch.js"></script>
<script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
- <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <!--<script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>-->
<script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<!-- Third-party scripts from app -->
@@ -48,12 +70,15 @@
<script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
<!-- OOM home -->
+ <script src="app/ccsdk/home/controller-service.js"></script>
+ <script src="app/ccsdk/home/executions-view-controller.js"></script>
+ <script src="app/ccsdk/home/api-docs-controller.js"></script>
+ <!--
<script src="app/ccsdk/home/tree-view-controller.js"></script>
<script src="app/ccsdk/home/tree-view-directive.js"></script>
- <script src="app/ccsdk/home/controller-service.js"></script>
<script src="app/ccsdk/home/oom-instances-controller.js"></script>
- <script src="app/ccsdk/home/executions-view-controller.js"></script>
<script src="app/ccsdk/home/http-interceptor.js"></script>
+ -->
<link rel="stylesheet" href="app/ccsdk/home/tree-view-style.css"/>
<link rel="stylesheet" href="app/ccsdk/home/oom-style.css"/>
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html
new file mode 100644
index 0000000..56ee149
--- /dev/null
+++ b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html
@@ -0,0 +1,27 @@
+<!--
+ ============LICENSE_START==========================================
+ ===================================================================
+ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+
+ Unless otherwise specified, all software contained herein is licensed
+ under the Apache License, Version 2.0 (the "License");
+ you may not use this software except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ ============LICENSE_END============================================
+ -->
+<div id="page-content" ng-controller="apiDocsController">
+ <h2 class="heading-page" id="controllers">REST API Specifications</h2>
+ <pre>
+{{ecdapp.apiSpec}}
+</pre>
+</div> \ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html
new file mode 100644
index 0000000..65ac372
--- /dev/null
+++ b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html
@@ -0,0 +1,13 @@
+<div style="width: 100%">
+ <footer class="b2b-footer-wrapper" role="contentinfo" aria-label="footer">
+ <div class="b2b-footer-container" >
+ <div class="divider-bottom-footer">
+ <div class="span12 footerLogo">
+ <p class="copyright-text">
+ &copy; 2020 ONAP. The Linux Foundation. <span class="build_number">Build Number: {{build_number}}</span>
+ </p>
+ </div>
+ </div>
+ </div>
+ </footer>
+</div> \ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html
new file mode 100644
index 0000000..942af9b
--- /dev/null
+++ b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html
@@ -0,0 +1,3 @@
+<div style="margin-right: 40px;"> <img src="app/ccsdk/images/onap_16x16.ico">
+ <span style="font-size: 16px;margin-left: 10px;">DCAE Dashboard</span>
+</div> \ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
index 66c38e0..1c90f97 100644
--- a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
+++ b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
@@ -10,7 +10,7 @@
</head>
<body>
<p>
- Redirecting to the <a href="ecd#">ONAP Operations Manager Dashboard</a>..
+ Redirecting to the <a href="ecd#">DCAE Dashboard</a>..
</p>
</body>
</html>
diff --git a/pom.xml b/pom.xml
index a3fc796..903095a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
<!-- Maven parent project for convenience of building and cleaning -->
<groupId>org.onap.ccsdk.dashboard</groupId>
<artifactId>ccsdk-app-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-dashboard</name>