diff options
23 files changed, 743 insertions, 422 deletions
diff --git a/lf_config/OpenECOMP-VID-LF-release-notes.txt b/lf_config/OpenECOMP-VID-LF-release-notes.txt index 7cb89e6a..169d2cd5 100644 --- a/lf_config/OpenECOMP-VID-LF-release-notes.txt +++ b/lf_config/OpenECOMP-VID-LF-release-notes.txt @@ -7,8 +7,8 @@ ${gerrit_repo_root}/vid/lf_config/vid-pre-init.sql 2. Set up and run the mariadb docker image: -docker run --name vid-mariadb -e MYSQL_DATABASE=vid_openecomp -e MYSQL_USER=vidadmin -e MYSQL_PASSWORD=<db password here> -e MYSQL_ROOT_PASSWORD=<root db password here> -v /path/to/vid-my.cnf:/etc/mysql/my.cnf -v /path/to/vid-pre-init.sql:/docker-entrypoint-initdb.d/vid-pre-init.sql -v /var/lib/mysql -d mariadb:10 +docker run --name vid-mariadb -e MYSQL_DATABASE=vid_openecomp_epsdk -e MYSQL_USER=vidadmin -e MYSQL_PASSWORD=<db password here> -e MYSQL_ROOT_PASSWORD=<root db password here> -v /path/to/vid-my.cnf:/etc/mysql/my.cnf -v /path/to/vid-pre-init.sql:/docker-entrypoint-initdb.d/vid-pre-init.sql -v /var/lib/mysql -d mariadb:10 3. Set up and run the vid-server docker image: -docker run -e VID_MYSQL_DBNAME=vid_openecomp -e VID_MYSQL_PASS=<db password here> --name vid-server -p 8080:8080 --link vid-mariadb:vid-mariadb-docker-instance -d <openecomp-nexus>:<openecomp-nexus-port>/openecomp/vid:1.0.0 +docker run -e VID_MYSQL_DBNAME=vid_openecomp_epsdk -e VID_MYSQL_PASS=<db password here> --name vid-server -p 8080:8080 --link vid-mariadb:vid-mariadb-docker-instance -d <openecomp-nexus>:<openecomp-nexus-port>/openecomp/vid:1.0.0 diff --git a/vid-app-common/src/main/java/org/openecomp/vid/asdc/beans/tosca/ToscaMeta.java b/vid-app-common/src/main/java/org/openecomp/vid/asdc/beans/tosca/ToscaMeta.java index 66938372..a5295c47 100755 --- a/vid-app-common/src/main/java/org/openecomp/vid/asdc/beans/tosca/ToscaMeta.java +++ b/vid-app-common/src/main/java/org/openecomp/vid/asdc/beans/tosca/ToscaMeta.java @@ -1,9 +1,9 @@ /*-
- * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ + * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 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
@@ -14,7 +14,7 @@ * 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. + * limitations under the License.
* ============LICENSE_END=========================================================
*/
@@ -104,12 +104,14 @@ public class ToscaMeta { try {
while ((line = br.readLine()) != null) {
- final String[] entry = line.split(":");
-
- if (entry.length != 2) throw new AsdcCatalogException("TOSCA.meta file cannot be parsed (more than 1 colon found on a single line");
- if (!entry[1].startsWith(" ")) throw new AsdcCatalogException("TOSCA.meta file cannot be parsed (: not immediately followed by ' ')");
-
- metadata.put(entry[0], entry[1].substring(1));
+ if ( line.length() > 0 ) {
+ final String[] entry = line.split(":");
+
+ if (entry.length != 2) throw new AsdcCatalogException("TOSCA.meta file cannot be parsed (more than 1 colon found on a single line");
+ if (!entry[1].startsWith(" ")) throw new AsdcCatalogException("TOSCA.meta file cannot be parsed (: not immediately followed by ' ')");
+
+ metadata.put(entry[0], entry[1].substring(1));
+ }
}
} catch (IOException e) {
metadata.clear();
diff --git a/vid-app-common/src/main/java/org/openecomp/vid/asdc/rest/RestfulAsdcClient.java b/vid-app-common/src/main/java/org/openecomp/vid/asdc/rest/RestfulAsdcClient.java index 26d45cc7..9f7c3a57 100755 --- a/vid-app-common/src/main/java/org/openecomp/vid/asdc/rest/RestfulAsdcClient.java +++ b/vid-app-common/src/main/java/org/openecomp/vid/asdc/rest/RestfulAsdcClient.java @@ -22,16 +22,19 @@ package org.openecomp.vid.asdc.rest; import java.io.IOException;
import java.io.InputStream;
+import java.io.FileInputStream;
+import java.io.File;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
-import java.util.logging.Logger;
import java.util.zip.ZipFile;
import javax.ws.rs.NotFoundException;
@@ -44,6 +47,7 @@ import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedHashMap;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.openecomp.vid.asdc.AsdcCatalogException;
import org.openecomp.vid.asdc.AsdcClient;
import org.openecomp.vid.asdc.beans.Artifact;
@@ -64,8 +68,11 @@ import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; */
public class RestfulAsdcClient implements AsdcClient {
- /** The Constant LOGGER. */
- private static final Logger LOGGER = Logger.getLogger(RestfulAsdcClient.class.getName());
+ /** The Constant LOG. */
+ private static final EELFLoggerDelegate LOG = EELFLoggerDelegate.getLogger(RestfulAsdcClient.class);
+
+ /** The Constant dateFormat. */
+ final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");
/** The client. */
private final Client client;
@@ -422,7 +429,6 @@ public class RestfulAsdcClient implements AsdcClient { */
private ToscaCsar getToscaModel(InputStream csarInputStream) throws AsdcCatalogException {
final Path csarFile;
-
try {
csarFile = Files.createTempFile("csar", ".zip");
Files.copy(csarInputStream, csarFile, StandardCopyOption.REPLACE_EXISTING);
@@ -444,10 +450,17 @@ public class RestfulAsdcClient implements AsdcClient { final ToscaCsar.Builder csarBuilder = new ToscaCsar.Builder(parentModel);
for (Map<String, Map<String, String>> imports : parentModel.getImports()) {
+ LOG.debug("imports = " + imports.toString());
for (Entry<String, Map<String, String>> entry : imports.entrySet()) {
- final InputStream toscaChildEntryYamlStream = csar.getInputStream(csar.getEntry("Definitions/" + entry.getValue().get("file")));
- final ToscaModel childModel = yaml.loadAs(toscaChildEntryYamlStream, ToscaModel.class);
- csarBuilder.addVnf(childModel);
+ if ( entry.getValue() != null) {
+ String fname = entry.getValue().get("file");
+ if ( ( fname != null ) && (fname.startsWith("service") || fname.startsWith("resource")) ) {
+ LOG.debug("fname = " + fname);
+ final InputStream toscaChildEntryYamlStream = csar.getInputStream(csar.getEntry("Definitions/" + fname ));
+ final ToscaModel childModel = yaml.loadAs(toscaChildEntryYamlStream, ToscaModel.class);
+ csarBuilder.addVnf(childModel);
+ }
+ }
}
}
diff --git a/vid-app-common/src/main/java/org/openecomp/vid/controller/AaiController.java b/vid-app-common/src/main/java/org/openecomp/vid/controller/AaiController.java index 7cb25c26..92b75285 100755 --- a/vid-app-common/src/main/java/org/openecomp/vid/controller/AaiController.java +++ b/vid-app-common/src/main/java/org/openecomp/vid/controller/AaiController.java @@ -126,7 +126,10 @@ public class AaiController extends RestrictedBaseController{ User user = (User) session.getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME));
if (user != null)
{
- userId = user.getHrid();
+ //userId = user.getHrid();
+ userId = user.getLoginId();
+ if (userId == null)
+ userId = user.getOrgUserId();
}
}
diff --git a/vid-app-common/src/main/java/org/openecomp/vid/controller/VidHomeController.java b/vid-app-common/src/main/java/org/openecomp/vid/controller/VidHomeController.java deleted file mode 100755 index cfb915b0..00000000 --- a/vid-app-common/src/main/java/org/openecomp/vid/controller/VidHomeController.java +++ /dev/null @@ -1,79 +0,0 @@ -/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 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=========================================================
- */
-
-package org.openecomp.vid.controller;
-
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-
-
-import org.springframework.beans.factory.annotation.Autowired;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.servlet.ModelAndView;
-
-import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
-
-
-/**
- * The Class VidHomeController.
- */
-@RestController
-public class VidHomeController extends RestrictedBaseController{
-
- /** The view name. */
- String viewName;
-
-
- /** The servlet context. */
- private @Autowired ServletContext servletContext;
-
- /**
- * Welcome.
- *
- * @param request the request
- * @return the model and view
- */
- @RequestMapping(value = {"/vidhome" }, method = RequestMethod.GET)
- public ModelAndView welcome(HttpServletRequest request) {
-
- return new ModelAndView(getViewName());
- }
-
- /* (non-Javadoc)
- * @see org.openecomp.portalsdk.core.controller.RestrictedBaseController#getViewName()
- */
- public String getViewName() {
- return viewName;
- }
-
- /* (non-Javadoc)
- * @see org.openecomp.portalsdk.core.controller.RestrictedBaseController#setViewName(java.lang.String)
- */
- public void setViewName(String viewName) {
- this.viewName = viewName;
- }
-
-
-
-}
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/constants/componentConstants.js b/vid-app-common/src/main/webapp/app/vid/scripts/constants/componentConstants.js index 855f9908..d2db094b 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/constants/componentConstants.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/constants/componentConstants.js @@ -1,148 +1,149 @@ -/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 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=========================================================
- */
-
-"use strict";
-
-appDS2.constant("COMPONENT", (function() {
- return {
- A_LA_CARTE : "a la carte",
- CLOUD_REGION_ID : "cloudRegionID",
- COMPONENT_STATUS : "ComponentStatus",
- CREATE_COMPONENT : "createComponent",
- DELETE_COMPONENT : "deleteComponent",
- ENTITY : "entity",
- GET_COMPONENT_LIST : "getComponentList",
- GET_SUBS : "getSubs",
- GET_SUB_DETAILS : "getSubDetails",
- GLOBAL_CUSTOMER_ID : "globalCustomerId",
- MACRO : "Macro",
- MODEL_VERSION_1 : "1",
- MSO_CREATE_REQ : "createInstance",
- MSO_DELETE_REQ : "deleteInstance",
- NAME : "name",
- NETWORK : "network",
- NETWORKS : "networks",
-
- QUERY_SERVICE_INSTANCE : "queryServiceInstance",
- REFRESH_PROPERTIES : "refreshProperties",
- SERVICE : "service",
- SERVICE_TYPE : "serviceType",
- SHOW_COMPONENT_DETAILS : "showComponentDetails",
- STATUS : "status",
- SUBSCRIBER_NAME : "subscriberName",
- TENANT_ID : "tenantID",
- TENANT_NAME : "tenantName",
- TRUE : "true",
+/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 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========================================================= + */ + +"use strict"; + +appDS2.constant("COMPONENT", (function() { + return { + A_LA_CARTE : "a la carte", + CLOUD_REGION_ID : "cloudRegionID", + COMPONENT_STATUS : "ComponentStatus", + CREATE_COMPONENT : "createComponent", + DELETE_COMPONENT : "deleteComponent", + ENTITY : "entity", + GET_COMPONENT_LIST : "getComponentList", + GET_SUBS : "getSubs", + GET_SUB_DETAILS : "getSubDetails", + GLOBAL_CUSTOMER_ID : "globalCustomerId", + MACRO : "Macro", + MODEL_VERSION_1 : "1", + MSO_CREATE_REQ : "createInstance", + MSO_DELETE_REQ : "deleteInstance", + NAME : "name", + NETWORK : "network", + NETWORKS : "networks", + + QUERY_SERVICE_INSTANCE : "queryServiceInstance", + REFRESH_PROPERTIES : "refreshProperties", + SERVICE : "service", + SERVICE_TYPE : "serviceType", + SHOW_COMPONENT_DETAILS : "showComponentDetails", + STATUS : "status", + SUBSCRIBER_NAME : "subscriberName", + TENANT_ID : "tenantID", + TENANT_NAME : "tenantName", + TRUE : "true", - VF_MODULE : "vfModule",
- VNF : "vnf",
- VNF_CODE : "vnfCode",
- VNF_FUNCTION : "vnfFunction",
- VNF_ROLE : "vnfRole",
- VNF_TYPE : "vnfType",
- VOLUME_GROUP : "volumeGroup",
-
-
- // IDs
- CIDR_MASK_1 : "255.255.255.000",
- //COMPONENT_LIST_NAMED_QUERY_ID : "ed0a0f5b-cf79-4784-88b2-911cd726cd3d",
- CUSTOMER_ID_1 : "icore9883749",
- DELETE_INSTANCE_ID_1 : "ff305d54-75b4-ff1b-fff1-eb6b9e5460ff",
- GATEWAY_ADDRESS_1 : "10.10.125.1",
- GLOBAL_SUBSCRIBER_ID_1 : "C12345",
- INSTANCE_ID_1 : "ff305d54-75b4-431b-adb2-eb6b9e5ff000",
- INSTANCE_ID_2 : "ff305d54-75b4-ff1b-adb2-eb6b9e5460ff",
- INSTANCE_ID_3 : "ff305d54-75b4-ff1b-bdb2-eb6b9e5460ff",
- MODEL_ID_1 : "sn5256d1-5a33-55df-13ab-12abad84e764",
- MODEL_ID_2 : "ff5256d1-5a33-55df-aaaa-12abad84e7ff",
- MODEL_ID_3 : "ff3514e3-5a33-55df-13ab-12abad84e7ff",
- MODEL_ID_4 : "ff5256d1-5a33-55df-13ab-12abad84e7ff",
- MODEL_ID_5 : "ff5256d1-5a33-55df-13ab-22abad84e7ff",
- MODEL_NAME_VERSION_ID_1 : "ab6478e4-ea33-3346-ac12-ab121484a333",
- MODEL_NAME_VERSION_ID_2 : "fe6478e4-ea33-3346-aaaa-ab121484a3fe",
- MODEL_NAME_VERSION_ID_3 : "fe6985cd-ea33-3346-ac12-ab121484a3fe",
- MODEL_NAME_VERSION_ID_4 : "fe6478e4-ea33-3346-ac12-ab121484a3fe",
- MODEL_NAME_VERSION_ID_5 : "fe6478e4-ea33-3346-bc12-ab121484a3fe",
- SERVICE_INSTANCE_ID_1 : "bc305d54-75b4-431b-adb2-eb6b9e546014",
- SUBSCRIBER_NAME_GED12 : "General Electric Division 12",
- VNF_INSTANCE_ID : "VNF_INSTANCE_ID_12345",
- VPN_ID_1 : "1a2b3c4d5e6f",
-
- // PATHS
- ASSIGN : "?r=",
- AAI_GET_SERVICE_INSTANCE_PATH : "aai_get_service_instance/",
- AAI_GET_SERVICES : "aai_get_services",
- AAI_GET_TENANTS : "aai_get_tenants/",
- AAI_SUB_DETAILS_PATH : "aai_sub_details/",
- AAI_SUB_VIEWEDIT_PATH : "aai_sub_viewedit",
- ASDC_GETMODEL_PATH : "asdc/getModel/",
- CREATE_INSTANCE_PATH : "/models/services/createInstance",
- FORWARD_SLASH : "/",
- GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH : "get_system_prop_vnf_prov_status",
- GET_USER_ID : "getuserID",
- INSTANTIATE_ROOT_PATH : "#/instantiate?subscriberId=",
- INSTANTIATE_PATH : "/instantiate",
- INVALID_STRING : "/INVALID_STRING/",
- INVALID_STRING_MSO_CREATE_SVC_INSTANCE : "INVALID_STRING_mso_create_svc_instance",
- MSO_CREATE_NW_INSTANCE : "mso_create_nw_instance",
- MSO_CREATE_NW_INSTANCE_PATH : "mso_create_nw_instance/",
- MSO_CREATE_SVC_INSTANCE : "mso_create_svc_instance",
- MSO_DELETE_SVC_INSTANCE_PATH : "mso_delete_svc_instance/",
- SELECTED_SERVICE_SUB_PATH : "#/instances/subdetails?selectedServiceSubscription=",
- SELECTED_SUB_PATH : "#/instances/subdetails?selectedSubscriber=",
- SELECTEDSERVICEINSTANCE_SUB_PATH : "&selectedServiceInstance=",
- SELECTEDSUBSCRIBER_SUB_PATH : "&selectedSubscriber=",
- SERVICE_TYPE_LIST_PATH : "#/instances/serviceTypes?serviceTypeList=",
- SERVICE_MODLES_INSTANCES_SUBSCRIBERS_PATH : 'serviceModels.htm#/instances/subscribers',
- SERVICES_DIST_STATUS_PATH : "rest/models/services?distributionStatus=",
- SERVICES_PATH : "rest/models/services/",
- SERVICETYPE_SUB_PATH : "&serviceType=",
- SERVICEINSTANCEID_SUB_PATH : "&serviceInstanceId=",
- SERVICEMODELS_INSTANCES_SERVICES_PATH : "serviceModels.htm#/instances/services",
- SERVICEMODELS_MODELS_SERVICES_PATH : "serviceModels.htm#/models/services",
- SUBDETAILS_SELECTEDSUBSCRIBER : "#subdetails?selectedSubscriber=",
- SUBSCRIBERNAME_SUB_PATH : "&subscriberName=",
- WELCOME_PATH : "welcome.htm",
-
- //Template Urls
- AAI_GET_SUBS_URL : "app/vid/scripts/view-models/aaiGetSubs.htm",
- AAI_GET_SUBSCRIBER_URL : "app/vid/scripts/view-models/aaiGetSubscriberList.htm",
- AAI_SERVICE_TYPES_URL : "app/vid/scripts/view-models/aaiServiceTypes.htm",
- AAI_SUB_DETAILS_URL : "app/vid/scripts/view-models/aaiSubDetails.htm",
- CREATE_INSTANCE_SERVICE_MODELS_URL : "app/vid/scripts/view-models/createInstanceServiceModels.htm",
- INSTANTIATE_URL : "app/vid/scripts/view-models/instantiate.htm",
- SERVICE_MODELS : "app/vid/scripts/view-models/serviceModels.htm",
-
-
-
- FULL_NAME_MAP : {
- "model-invariant-id" : "Model ID",
- "model-version-id" : "Model Version ID"
- },
- PARTIAL_NAME_MAP : {
- "id" : "ID",
- "uuid" : "UUID",
- "vfmodule" : "VF Module",
- "vnf" : "VNF",
- "volumegroup" : "Volume Group"
- }
-
- };
-})())
+ VF_MODULE : "vfModule", + VNF : "vnf", + VNF_CODE : "vnfCode", + VNF_FUNCTION : "vnfFunction", + VNF_ROLE : "vnfRole", + VNF_TYPE : "vnfType", + VOLUME_GROUP : "volumeGroup", + + + // IDs + CIDR_MASK_1 : "255.255.255.000", + //COMPONENT_LIST_NAMED_QUERY_ID : "ed0a0f5b-cf79-4784-88b2-911cd726cd3d", + CUSTOMER_ID_1 : "icore9883749", + DELETE_INSTANCE_ID_1 : "ff305d54-75b4-ff1b-fff1-eb6b9e5460ff", + GATEWAY_ADDRESS_1 : "10.10.125.1", + GLOBAL_SUBSCRIBER_ID_1 : "C12345", + INSTANCE_ID_1 : "ff305d54-75b4-431b-adb2-eb6b9e5ff000", + INSTANCE_ID_2 : "ff305d54-75b4-ff1b-adb2-eb6b9e5460ff", + INSTANCE_ID_3 : "ff305d54-75b4-ff1b-bdb2-eb6b9e5460ff", + MODEL_ID_1 : "sn5256d1-5a33-55df-13ab-12abad84e764", + MODEL_ID_2 : "ff5256d1-5a33-55df-aaaa-12abad84e7ff", + MODEL_ID_3 : "ff3514e3-5a33-55df-13ab-12abad84e7ff", + MODEL_ID_4 : "ff5256d1-5a33-55df-13ab-12abad84e7ff", + MODEL_ID_5 : "ff5256d1-5a33-55df-13ab-22abad84e7ff", + MODEL_NAME_VERSION_ID_1 : "ab6478e4-ea33-3346-ac12-ab121484a333", + MODEL_NAME_VERSION_ID_2 : "fe6478e4-ea33-3346-aaaa-ab121484a3fe", + MODEL_NAME_VERSION_ID_3 : "fe6985cd-ea33-3346-ac12-ab121484a3fe", + MODEL_NAME_VERSION_ID_4 : "fe6478e4-ea33-3346-ac12-ab121484a3fe", + MODEL_NAME_VERSION_ID_5 : "fe6478e4-ea33-3346-bc12-ab121484a3fe", + SERVICE_INSTANCE_ID_1 : "bc305d54-75b4-431b-adb2-eb6b9e546014", + SUBSCRIBER_NAME_GED12 : "General Electric Division 12", + VNF_INSTANCE_ID : "VNF_INSTANCE_ID_12345", + VPN_ID_1 : "1a2b3c4d5e6f", + + // PATHS + ASSIGN : "?r=", + AAI_GET_SERVICE_INSTANCE_PATH : "aai_get_service_instance/", + AAI_GET_SERVICES : "aai_get_services", + AAI_GET_SERVICES_BY_TYPE : "aai_get_models_by_service_type", + AAI_GET_TENANTS : "aai_get_tenants/", + AAI_SUB_DETAILS_PATH : "aai_sub_details/", + AAI_SUB_VIEWEDIT_PATH : "aai_sub_viewedit", + ASDC_GETMODEL_PATH : "asdc/getModel/", + CREATE_INSTANCE_PATH : "/models/services/createInstance", + FORWARD_SLASH : "/", + GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH : "get_system_prop_vnf_prov_status", + GET_USER_ID : "getuserID", + INSTANTIATE_ROOT_PATH : "#/instantiate?subscriberId=", + INSTANTIATE_PATH : "/instantiate", + INVALID_STRING : "/INVALID_STRING/", + INVALID_STRING_MSO_CREATE_SVC_INSTANCE : "INVALID_STRING_mso_create_svc_instance", + MSO_CREATE_NW_INSTANCE : "mso_create_nw_instance", + MSO_CREATE_NW_INSTANCE_PATH : "mso_create_nw_instance/", + MSO_CREATE_SVC_INSTANCE : "mso_create_svc_instance", + MSO_DELETE_SVC_INSTANCE_PATH : "mso_delete_svc_instance/", + SELECTED_SERVICE_SUB_PATH : "#/instances/subdetails?selectedServiceSubscription=", + SELECTED_SUB_PATH : "#/instances/subdetails?selectedSubscriber=", + SELECTEDSERVICEINSTANCE_SUB_PATH : "&selectedServiceInstance=", + SELECTEDSUBSCRIBER_SUB_PATH : "&selectedSubscriber=", + SERVICE_TYPE_LIST_PATH : "#/instances/serviceTypes?serviceTypeList=", + SERVICE_MODLES_INSTANCES_SUBSCRIBERS_PATH : 'serviceModels.htm#/instances/subscribers', + SERVICES_DIST_STATUS_PATH : "rest/models/services?distributionStatus=", + SERVICES_PATH : "rest/models/services/", + SERVICETYPE_SUB_PATH : "&serviceType=", + SERVICEINSTANCEID_SUB_PATH : "&serviceInstanceId=", + SERVICEMODELS_INSTANCES_SERVICES_PATH : "serviceModels.htm#/instances/services", + SERVICEMODELS_MODELS_SERVICES_PATH : "serviceModels.htm#/models/services", + SUBDETAILS_SELECTEDSUBSCRIBER : "#subdetails?selectedSubscriber=", + SUBSCRIBERNAME_SUB_PATH : "&subscriberName=", + WELCOME_PATH : "welcome.htm", + + //Template Urls + AAI_GET_SUBS_URL : "app/vid/scripts/view-models/aaiGetSubs.htm", + AAI_GET_SUBSCRIBER_URL : "app/vid/scripts/view-models/aaiGetSubscriberList.htm", + AAI_SERVICE_TYPES_URL : "app/vid/scripts/view-models/aaiServiceTypes.htm", + AAI_SUB_DETAILS_URL : "app/vid/scripts/view-models/aaiSubDetails.htm", + CREATE_INSTANCE_SERVICE_MODELS_URL : "app/vid/scripts/view-models/createInstanceServiceModels.htm", + INSTANTIATE_URL : "app/vid/scripts/view-models/instantiate.htm", + SERVICE_MODELS : "app/vid/scripts/view-models/serviceModels.htm", + + + + FULL_NAME_MAP : { + "model-invariant-id" : "Model ID", + "model-version-id" : "Model Version ID" + }, + PARTIAL_NAME_MAP : { + "id" : "ID", + "uuid" : "UUID", + "vfmodule" : "VF Module", + "vnf" : "VNF", + "volumegroup" : "Volume Group" + } + + }; +})()) diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/constants/fieldConstants.js b/vid-app-common/src/main/webapp/app/vid/scripts/constants/fieldConstants.js index 6dbcbc2f..291549d6 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/constants/fieldConstants.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/constants/fieldConstants.js @@ -103,7 +103,7 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { SERVICE_INSTANCE_NAME : "service-instance-name",
SERVICE_SUBSCRIPTION : "service-subscription",
SERVICE_SUBSCRIPTIONS : "service-subscriptions",
- SERVICE_TYPE : "service-type",
+ SERVICETYPE : "service-type",
STATUS_MESSAGE : "statusMessage",
SUBNAME : "subscriber-name",
TIMESTAMP : "timestamp",
@@ -121,6 +121,9 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { VOLUME_GROUP : "volume-group",
VOLUME_GROUP_ID : "volume-group-id",
VOLUME_GROUP_NAME : "volume-group-name",
+ SDN_C_PRELOAD : "sdncPreload",
+ UPLOAD_SUPPLEMENTORY_DATA_FILE : "uploadSupplementoryDataFile",
+ SUPPLEMENTORY_DATA_FILE : "supplementoryDataFile"
};
var KEY = {
@@ -144,7 +147,7 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { MODEL_VNF_TYPE: "NF Type",
MODEL_VNF_ROLE: "NF Role",
MODEL_VNF_FUNCTION: "NF Function",
- MODEL_VNF_CODE: "NF Code",
+ MODEL_VNF_CODE: "NF Naming Code",
MODEL_CUSTOMIZATION_NAME: "Resource Name",
PRODUCT_FAMILY : "Product Family",
RESOURCE_DESCRIPTION : "Resource Description",
@@ -161,6 +164,9 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { SERVICE_VERSION : "Service Version",
SUBSCRIBER_NAME : "Subscriber Name",
SUPPRESS_ROLLBACK : "Suppress Rollback on Failure",
+ SDN_C_PRELOAD : "SDN-C Pre-Load",
+ UPLOAD_SUPPLEMENTORY_DATA_FILE : "Upload Supplementory Data file",
+ SUPPLEMENTORY_DATA_FILE : "Supplementory Data file (JSON format)",
TENANT : "Tenant",
USER_SERVICE_INSTANCE_NAME : "User Service Instance Name",
VF_MODULE_DESCRIPTION : "VF Module Description",
@@ -260,6 +266,10 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { FETCHING_SERVICE_INSTANCE_DATA : "Failed to fetch service instance data from A&AI: Response Code: ",
INVALID_INSTANCE_NAME : "Invalid instance name: ",
INSTANCE_NAME_VALIDATE : "The instance name must contain only alphanumeric or \"_-.\" characters, and must start with an alphabetic character",
+ INVALID_LIST : "Invalid list parameter: ",
+ INVALID_MAP : "Invalid map parameter: ",
+ LIST_VALIDATE : "A list parameter value must have the following syntax: '[<value1>,\.\.\.,<valueN>]'",
+ MAP_VALIDATE : "A map parameter value must have the following syntax: '{ <entry_key_1>: <entry_value_1>, \.\.\., <entry_key_n>: <entry_value_n> }'",
MAX_POLLS_EXCEEDED : "Maximum number of poll attempts exceeded",
MISSING_DATA : "Missing data",
MODEL_VERSION_ID_MISSING : "Error: model-version-id is not populated in A&AI",
@@ -341,6 +351,47 @@ appDS2.factory("FIELD", [ "PARAMETER", function(PARAMETER) { type : PARAMETER.BOOLEAN,
value : false
},
+ SDN_C_PRELOAD_CHECKED : {
+ name : NAME.SDN_C_PRELOAD,
+ id : ID.SDN_C_PRELOAD,
+ type : PARAMETER.CHECKBOX,
+ value : true,
+ isVisible:true,
+ isRequired:false
+ },
+ SDN_C_PRELOAD_UNCHECKED : {
+ name : NAME.SDN_C_PRELOAD,
+ id : ID.SDN_C_PRELOAD,
+ type : PARAMETER.CHECKBOX,
+ value : false,
+ isVisible:true,
+ isRequired:false
+ },
+ UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED : {
+ name : NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ id : ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ type : PARAMETER.CHECKBOX,
+ value : true,
+ isVisible:true,
+ isRequired:false
+ },
+ UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED : {
+ name : NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ id : ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ type : PARAMETER.CHECKBOX,
+ value : false,
+ isVisible:true,
+ isRequired:false
+ },
+ SUPPLEMENTORY_DATA_FILE : {
+ name : NAME.SUPPLEMENTORY_DATA_FILE,
+ id : ID.SUPPLEMENTORY_DATA_FILE,
+ type : PARAMETER.FILE,
+ isRequired : false,
+ isVisible : true,
+ fileData:''
+ },
+
SUBSCRIBER_NAME : {
name : NAME.SUBSCRIBER_NAME,
id : ID.SUBSCRIBER_NAME,
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/constants/parameterConstants.js b/vid-app-common/src/main/webapp/app/vid/scripts/constants/parameterConstants.js index 4e3ad29d..693186af 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/constants/parameterConstants.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/constants/parameterConstants.js @@ -46,7 +46,10 @@ appDS2.constant("PARAMETER", (function() { GREATER_THAN: "greater_than",
LESS_THAN: "less_than",
GREATER_OR_EQUAL: "greater_or_equal",
- LESS_OR_EQUAL: "less_or_equal"
+ LESS_OR_EQUAL: "less_or_equal",
+ DISPLAY_NAME: "displayName",
+ CHECKBOX:'checkbox',
+ FILE:'file'
};
})())
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/constants/vidConfiguration.js b/vid-app-common/src/main/webapp/app/vid/scripts/constants/vidConfiguration.js index 8fdfd3fc..f5606616 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/constants/vidConfiguration.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/constants/vidConfiguration.js @@ -27,6 +27,11 @@ appDS2.constant("VIDCONFIGURATION", (function() { */
var VNF_STATUS_CHECK_ENABLED = false;
/*
+ * UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED: Determines the Property to Govern Presence of Upload Supplementary File on Volume Group Screen.
+ * Set to false, to disable the check.
+ */
+ var UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED = false;
+ /*
* List of valid VNF status combinations
*/
var vnfValidStatusList = [
@@ -93,6 +98,7 @@ appDS2.constant("VIDCONFIGURATION", (function() { MSO_POLLING_INTERVAL_MSECS : MSO_POLLING_INTERVAL_MSECS,
VNF_STATUS_CHECK_ENABLED : VNF_STATUS_CHECK_ENABLED,
VNF_VALID_STATUS_LIST : vnfValidStatusList,
+ UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED : UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED,
MACRO_SERVICES : MACRO_SERVICES,
COMPONENT_LIST_NAMED_QUERY_ID : COMPONENT_LIST_NAMED_QUERY_ID
};
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/InstantiationController.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/InstantiationController.js index f928f4ec..dcbf3e6e 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/InstantiationController.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/InstantiationController.js @@ -236,7 +236,7 @@ });
DataService.setSubscriberName(serviceObject[FIELD.ID.SUBSCRIBER_NAME]);
- DataService.setServiceType(serviceObject[FIELD.ID.SERVICE_TYPE]);
+ DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);
DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);
DataService.setGlobalCustomerId(serviceObject[COMPONENT.GLOBAL_CUSTOMER_ID]);
@@ -366,6 +366,7 @@ var vnfModelVersion = null;
var vnfModelCustomizationUuid = null;
var vnfModel = null;
+ var vnfModelVersionId = null;
vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];
vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];
@@ -435,6 +436,7 @@ var vnfModelVersion = null;
var vnfModelCustomizationUuid = null;
var vnfModel = null;
+ var vnfModelVersionId = null;
vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];
vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/ServiceModelController.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/ServiceModelController.js index 5d382e9e..dd2cf73f 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/ServiceModelController.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/ServiceModelController.js @@ -139,7 +139,7 @@ for (var i = 0; i < response.control.length; i++) {
if (response.control[i].id == COMPONENT.SUBSCRIBER_NAME) {
subscriberId = response.control[i].value;
- } else if (response.control[i].id == "service-type") {
+ } else if (response.control[i].id == FIELD.ID.SERVICE_TYPE) {
serviceType = response.control[i].value;
}
}
@@ -182,8 +182,8 @@ if (subVal[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {
angular.forEach(subVal[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {
$scope.serviceInstanceId = [];
- if (serviceSubscription[FIELD.ID.SERVICE_TYPE] != null) {
- $scope.serviceType = serviceSubscription[FIELD.ID.SERVICE_TYPE];
+ if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {
+ $scope.serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];
} else {
$scope.serviceType = FIELD.STATUS.NO_SERVICE_SUBSCRIPTION_FOUND;
}
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js index 5caa3298..00c14148 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/aaiSubscriberController.js @@ -152,20 +152,12 @@ appDS2.controller("aaiSubscriberController", [ "COMPONENT", "FIELD", "PARAMETER" pathQuery = COMPONENT.SERVICES_PATH +globalCustomerId+"/"+$scope.serviceTypeName;
}
- AaiService.getServiceModels(globalCustomerId,$scope.serviceTypeName,function(response) { // success
- console.log("service models : "+response.data);
- DataService.setServiceIdList(response);
- }, function(response) { // failure
- $scope.showError(FIELD.ERROR.AAI);
- $scope.errorMsg = FIELD.ERROR.FETCHING_SERVICES+ response.status;
- $scope.errorDetails = response.data;
- });
-
- /*$http.get('/aai_get_services/'+globalCustomerId+''+$scope.serviceTypeName)
- .then(function successCallback(response) {
+ var namedQueryId='6e806bc2-8f9b-4534-bb68-be91267ff6c8';
+ AaiService.getServiceModelsByServiceType(namedQueryId,globalCustomerId,$scope.serviceTypeName,function(response) { // success
$scope.services = [];
- if (angular.isArray(response.data)) {
- $scope.services = response.data;
+ if (angular.isArray(response.data['inventory-response-item'])) {
+ $scope.services = response.data['inventory-response-item'][0]['inventory-response-items']['inventory-response-item'];
+ $scope.serviceType = response.data['inventory-response-item'][0]['service-subscription']['service-type'];
$scope.viewPerPage=10;
$scope.totalPage=$scope.services.length/$scope.viewPerPage;
$scope.sortBy="name";
@@ -177,15 +169,100 @@ appDS2.controller("aaiSubscriberController", [ "COMPONENT", "FIELD", "PARAMETER" $scope.isSpinnerVisible = false;
$scope.isProgressVisible = false;
} else {
- $scope.status = "Failed to get service models from SDC.";
+ $scope.status = "Failed to get service models from ASDC.";
$scope.error = true;
$scope.isSpinnerVisible = false;
}
- }, function errorCallback(response) {
- console.log("Error: " + response);
- }); */
-
+ DataService.setServiceIdList(response);
+ }, function(response) { // failure
+ $scope.showError(FIELD.ERROR.AAI);
+ $scope.errorMsg = FIELD.ERROR.FETCHING_SERVICES+ response.status;
+ $scope.errorDetails = response.data;
+ });
+
+ };
+ $scope.createType = "a la carte";
+ $scope.deployService = function(service,hideServiceFields) {
+ hideServiceFields = hideServiceFields|| false;
+ var temp = service;
+ service.uuid = service['service-instance']['model-version-id'];
+
+ console.log("Instantiating ASDC service " + service.uuid);
+
+ $http.get('rest/models/services/' + service.uuid)
+ .then(function successCallback(getServiceResponse) {
+ getServiceResponse.data['service'].serviceTypeName =$scope.serviceTypeName ;
+ getServiceResponse.data['service'].createSubscriberName =$scope.createSubscriberName ;
+ var serviceModel = getServiceResponse.data;
+ DataService.setServiceName(serviceModel.service.name);
+
+ DataService.setModelInfo(COMPONENT.SERVICE, {
+ "modelInvariantId": serviceModel.service.invariantUuid,
+ "modelVersion": serviceModel.service.version,
+ "modelNameVersionId": serviceModel.service.uuid,
+ "modelName": serviceModel.service.name,
+ "description": serviceModel.service.description,
+ "category":serviceModel.service.category,
+ "serviceTypeName":serviceModel.service.serviceTypeName,
+ "createSubscriberName":serviceModel.service.createSubscriberName
+ });
+ DataService.setHideServiceFields(hideServiceFields);
+ DataService.setALaCarte (true);
+ $scope.createType = "a la carte";
+ var broadcastType = "createComponent";
+
+ if (UtilityService.arrayContains (VIDCONFIGURATION.MACRO_SERVICES, serviceModel.service.invariantUuid )) {
+ DataService.setALaCarte (false);
+ $scope.createType = "Macro";
+ var convertedAsdcModel = UtilityService.convertModel(serviceModel);
+
+ //console.log ("display inputs ");
+ //console.log (JSON.stringify ( convertedAsdcModel.completeDisplayInputs));
+
+ DataService.setModelInfo(COMPONENT.SERVICE, {
+ "modelInvariantId": serviceModel.service.invariantUuid,
+ "modelVersion": serviceModel.service.version,
+ "modelNameVersionId": serviceModel.service.uuid,
+ "modelName": serviceModel.service.name,
+ "description": serviceModel.service.description,
+ "category":serviceModel.service.category,
+ "inputs": serviceModel.service.inputs,
+ "displayInputs": convertedAsdcModel.completeDisplayInputs,
+ "serviceTypeName":serviceModel.service.serviceTypeName,
+ "createSubscriberName":serviceModel.service.createSubscriberName
+ });
+ };
+
+ $scope.$broadcast(broadcastType, {
+ componentId : COMPONENT.SERVICE,
+ callbackFunction : function(response) {
+ if (response.isSuccessful) {
+ vidService.setModel(serviceModel);
+
+ var subscriberId = "Not Found";
+ var serviceType = "Not Found";
+
+ var serviceInstanceId = response.instanceId;
+
+ for (var i = 0; i < response.control.length; i++) {
+ if (response.control[i].id == "subscriberName") {
+ subscriberId = response.control[i].value;
+ } else if (response.control[i].id == "serviceType") {
+ serviceType = response.control[i].value;
+ }
+ }
+
+
+ $scope.refreshSubs(subscriberId,serviceType,serviceInstanceId);
+
+ }
+ }
+ });
+
+ }, function errorCallback(response) {
+ console.log("Error: " + response);
+ });
};
$scope.cancelCreateSIType = function(){
@@ -207,6 +284,7 @@ appDS2.controller("aaiSubscriberController", [ "COMPONENT", "FIELD", "PARAMETER" }
$scope.refreshSubs = function() {
+ $scope.init();
$scope.fetchSubs(FIELD.PROMPT.REFRESH_SUB_LIST);
$scope.fetchServices();
};
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/creationDialogController.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/creationDialogController.js index 6a1c14c5..eb170915 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/creationDialogController.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/creationDialogController.js @@ -20,8 +20,8 @@ "use strict";
-var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeout, $log,
- CreationService, UtilityService, DataService) {
+var creationDialogController = function( COMPONENT, FIELD, PARAMETER, $scope, $http, $timeout, $log,
+ CreationService, UtilityService, DataService,VIDCONFIGURATION) {
$scope.isDialogVisible = false;
$scope.summaryControl = {};
@@ -73,8 +73,29 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo return false;
}
return true;
- }
-
+ };
+ var validateMap = function(mname) {
+ var patt1 = /^{(\s*\w+\s*:\s*\w+\s*)(\s*,\s*\w+\s*:\s*\w+\s*)*}$/im;
+ if ( mname == null ){
+ return true;
+ }
+ if ( !mname.match(patt1) ) {
+ return false;
+ }
+ return true;
+ };
+
+ var validateList = function(lname) {
+ var patt1 = /^\[(\s*\w+\s*)(\s*,\s*\w+\s*)*\]$/i;
+ if ( lname == null ){
+ return true;
+ }
+ if ( !lname.match(patt1) ) {
+ return false;
+ }
+ return true;
+ };
+
$scope.userParameterChanged = function(id) {
CreationService.updateUserParameterList(id, $scope.userProvidedControl);
}
@@ -108,7 +129,50 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo return;
}
}
-
+ var arbitraryParametersList = DataService.getArbitraryParameters();
+ var p = null;
+ if (UtilityService.hasContents (arbitraryParametersList)) {
+ for (var i = 0; i < arbitraryParametersList.length; i++) {
+ p = arbitraryParametersList[i];
+ if (p.type === PARAMETER.MAP) {
+ //validate a map: { <entry_key_1>: <entry_value_1>, ... , <entry_key_n>: <entry_value_n> }
+ // need to find the value in paramList
+ for (var j = 0; j < paramList.length; j++) {
+ if (paramList[j].id === p.id) {
+ p.value = paramList[j].value;
+ var isValid = validateMap (p.value);
+ if ( isValid ) {
+ $scope.isErrorVisible = false;
+ break;
+ }
+ else {
+ showError(FIELD.ERROR.INVALID_MAP + p.id,
+ FIELD.ERROR.MAP_VALIDATE);
+ return;
+ }
+ }
+ }
+ } else if (p.type === PARAMETER.LIST) {
+ //validate a list: { value or a list of comma separated values }
+ // need to find the value in paramList
+ for (var j = 0; j < paramList.length; j++) {
+ if (paramList[j].id === p.id) {
+ p.value = paramList[j].value;
+ var isValid = validateList (p.value);
+ if ( isValid ) {
+ $scope.isErrorVisible = false;
+ break;
+ }
+ else {
+ showError(FIELD.ERROR.INVALID_LIST + p.id,
+ FIELD.ERROR.LIST_VALIDATE);
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
var requestDetails = CreationService
.getMsoRequestDetails($scope.userProvidedControl.getList());
@@ -158,6 +222,6 @@ var creationDialogController = function( COMPONENT, FIELD, $scope, $http, $timeo }
-appDS2.controller("creationDialogController", [ "COMPONENT", "FIELD", "$scope", "$http",
- "$timeout", "$log", "CreationService", "UtilityService", "DataService",
+appDS2.controller("creationDialogController", [ "COMPONENT", "FIELD", "PARAMETER", "$scope", "$http",
+ "$timeout", "$log", "CreationService", "UtilityService", "DataService","VIDCONFIGURATION",
creationDialogController ]);
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/controller/subscriberSearch.js b/vid-app-common/src/main/webapp/app/vid/scripts/controller/subscriberSearch.js index afd7abad..2cf689e7 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/controller/subscriberSearch.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/controller/subscriberSearch.js @@ -238,7 +238,7 @@ appDS2.controller("aaiSubscriberSearchController", [ "$scope", "$timeout", "$log });
}
-
+
$scope.getSubscriberDet = function(selectedCustomer){
window.location.href = COMPONENT.SUBDETAILS_SELECTEDSUBSCRIBER + selectedCustomer;
};
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/directives/parameterBlockDirective.js b/vid-app-common/src/main/webapp/app/vid/scripts/directives/parameterBlockDirective.js index 811a51ec..b6a360f4 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/directives/parameterBlockDirective.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/directives/parameterBlockDirective.js @@ -49,7 +49,7 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { var checkboxInputStyle = "height: 18px; width: 18px; padding: 2px 5px;";
var selectStyle = "height: 25px; padding: 2px; text-align: center;";
var requiredLabelStyle = "width: 25px; padding: 5px 10px 10px 5px;";
- var textInputPrompt = "Enter data";
+
var getParameterHtml = function(parameter, editable) {
var style = valueStyle;
@@ -60,7 +60,11 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { if (UtilityService.hasContents(parameter.description)) {
attributeString += " title=' " + parameter.description + " '";
}
- var html = "<tr><td style='" + nameStyle + "'" + attributeString + ">"
+ var rowstyle='';
+ if(parameter.type == 'file' && !parameter.isVisiblity){
+ rowstyle = ' style="display:none;"';
+ }
+ var html = "<tr"+rowstyle+"><td style='" + nameStyle + "'" + attributeString + ">"
+ getNameHtml(parameter) + "</td><td style='" + style + "'>";
if (editable === undefined) {
if (UtilityService.hasContents(parameter.value)) {
@@ -102,6 +106,8 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { };
var getValueHtml = function(parameter) {
+
+ var textInputPrompt = "Enter data";
var attributeString = " parameter-id='" + parameter.id + "'";
var additionalStyle = "";
if (parameter.isEnabled === false) {
@@ -136,6 +142,14 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { name = parameter.id;
}
attributeString += " parameter-name='" + name + "'";
+
+ if ( parameter.type === PARAMETER.MAP ) {
+ textInputPrompt = "{<key1>: <value1>,\.\.\.,<keyN>: <valueN>}";
+ }
+
+ if ( parameter.type === PARAMETER.LIST ) {
+ textInputPrompt = "[<value1>,\.\.\.,<valueN>]";
+ }
switch (parameter.type) {
case PARAMETER.BOOLEAN:
@@ -151,6 +165,18 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { + "</select>";
}
break;
+ case PARAMETER.CHECKBOX:
+ if (parameter.value) {
+ return "<input type='checkbox' "+attributeString+ " checked='checked' style='"+checkboxInputStyle+"'"
+ + " value='true'/>";
+ }else{
+ return "<input type='checkbox' "+attributeString+ "' style='"+checkboxInputStyle+"'"
+ + " value='false'/>";
+ }
+ break;
+ case PARAMETER.FILE:
+ return "<input type='file' "+attributeString+ " id='"+parameter.id+"' value='"+parameter.value+"'/>";
+ break;
case PARAMETER.NUMBER:
var value=parameter.value;
var parameterSpec = "<input type='number'" + attributeString + " style='" + textInputStyle + additionalStyle + "'";
@@ -258,6 +284,9 @@ var parameterBlockDirective = function($log, PARAMETER, UtilityService) { };
if ($(element).prop("type") === "checkbox") {
parameter.value = $(element).prop("checked");
+ }else if ($(element).prop("type") === "file") {
+ parameter.value = $('#'+id).attr("value");
+
} else {
if ($(element).prop("type") === "text") {
$(element).val($(element).val().trim());
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/services/aaiService.js b/vid-app-common/src/main/webapp/app/vid/scripts/services/aaiService.js index 8132e3a3..ee99547b 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/services/aaiService.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/services/aaiService.js @@ -82,8 +82,8 @@ var AaiService = function($http, $log, PropertyService, UtilityService, COMPONEN angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {
var serviceInstanceId = [];
var serviceType = "";
- if (serviceSubscription[FIELD.ID.SERVICE_TYPE] != null) {
- serviceType = serviceSubscription[FIELD.ID.SERVICE_TYPE];
+ if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {
+ serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];
} else {
serviceType = FIELD.PROMPT.NO_SERVICE_SUB;
}
@@ -115,7 +115,8 @@ var AaiService = function($http, $log, PropertyService, UtilityService, COMPONEN serviceType : serviceType,
serviceInstanceId : subVal.serviceInstanceId,
aaiModelInvariantId : subVal.aaiModelInvariantId,
- aaiModelVersionId : subVal.aaiModelVersionId,
+ aaiModelVersionId
+ : subVal.aaiModelVersionId,
serviceInstanceName : subVal.serviceInstanceName
});
});
@@ -198,7 +199,7 @@ var AaiService = function($http, $log, PropertyService, UtilityService, COMPONEN var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];
for (var i = 0; i < serviceSubscriptions.length; i++) {
- serviceTypes.push(serviceSubscriptions[i][FIELD.ID.SERVICE_TYPE]);
+ serviceTypes.push(serviceSubscriptions[i][FIELD.ID.SERVICETYPE]);
}
successCallbackFunction(serviceTypes);
} else {
@@ -331,7 +332,25 @@ var AaiService = function($http, $log, PropertyService, UtilityService, COMPONEN }
})["catch"]
(UtilityService.runHttpErrorHandler);
-}
+},
+getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {
+ $log
+ .debug("AaiService:getServiceModelsByServiceType");
+ var url = COMPONENT.AAI_GET_SERVICES_BY_TYPE+COMPONENT.FORWARD_SLASH+namedQueryId+COMPONENT.FORWARD_SLASH+globalCustomerId+COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();
+
+ $http.get(url,
+ {
+ timeout : PropertyService
+ .getServerResponseTimeoutMsec()
+ }).then(function(response) {
+ if (response.data) {
+ successCallbackFunction(response);
+ } else {
+ successCallbackFunction([]);
+ }
+ })["catch"]
+ (UtilityService.runHttpErrorHandler);
+ }
}
}
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js b/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js index f6838af0..28498129 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js @@ -29,7 +29,7 @@ *
*/
-var CreationService = function($log, AaiService, AsdcService, DataService,
+var CreationService = function($log, AaiService, AsdcService, DataService,VIDCONFIGURATION,
ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService) {
var _this = this;
@@ -77,7 +77,11 @@ var CreationService = function($log, AaiService, AsdcService, DataService, /*
* Common fields displayed at the top of all create instance screens.
*/
- addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
+ if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]==null
+ || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==undefined
+ || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==''){
+ addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
+ }
switch (_this.componentId) {
case COMPONENT.SERVICE:
@@ -98,6 +102,15 @@ var CreationService = function($log, AaiService, AsdcService, DataService, }
}
}
+ if(DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=null && DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=''){
+ addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
+ .getModelInfo(_this.componentId)["createSubscriberName"]);
+ }
+ if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=null && DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=''){
+ addToList(FIELD.NAME.SERVICE_TYPE, DataService
+ .getModelInfo(_this.componentId)["serviceTypeName"]);
+ addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
+ }
addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService
.getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
addToList(FIELD.NAME.SERVICE_VERSION, DataService
@@ -115,7 +128,7 @@ var CreationService = function($log, AaiService, AsdcService, DataService, addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
.getServiceInstanceName());
addToList(FIELD.NAME.MODEL_NAME, DataService
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
.getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
addToList(FIELD.NAME.MODEL_VERSION, DataService
@@ -131,7 +144,7 @@ var CreationService = function($log, AaiService, AsdcService, DataService, addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
.getServiceInstanceName());
addToList(FIELD.NAME.MODEL_NAME, DataService
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
.getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
addToList(FIELD.NAME.MODEL_VERSION, DataService
@@ -158,7 +171,7 @@ var CreationService = function($log, AaiService, AsdcService, DataService, addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
.getServiceInstanceName());
addToList(FIELD.NAME.MODEL_NAME, DataService
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
.getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
addToList(FIELD.NAME.MODEL_VERSION, DataService
@@ -181,7 +194,8 @@ var CreationService = function($log, AaiService, AsdcService, DataService, isUserProvidedNaming = true;
}
var parameterList;
- if (_this.componentId === COMPONENT.SERVICE) {
+ var hsf = DataService.getHideServiceFields() || false;
+ if (_this.componentId === COMPONENT.SERVICE && !hsf) {
if ( DataService.getALaCarte() ) {
parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
parameterList = parameterList.concat([ getSubscribersParameter(),
@@ -193,11 +207,11 @@ var CreationService = function($log, AaiService, AsdcService, DataService, parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
}
- parameterList = parameterList.concat([ getSubscribersParameter(),
- FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
+ parameterList = parameterList.concat([ getSubscribersParameter() ]);
parameterList = parameterList.concat([ getServiceId(),
FIELD.PARAMETER.SERVICE_TYPE,
FIELD.PARAMETER.LCP_REGION,
+ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
FIELD.PARAMETER.TENANT_DISABLED ]);
}
}
@@ -237,8 +251,49 @@ var CreationService = function($log, AaiService, AsdcService, DataService, FIELD.PARAMETER.TENANT_DISABLED ]);
}
}
-
parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);
+ if(_this.componentId === COMPONENT.VF_MODULE ){
+ parameterList.push({name: "SDN-C Pre-Load",
+ id: "sdncPreload",
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false
+ }
+ );
+ parameterList.push({name: "Upload Supplementory Data file",
+ id: "uploadSupplementoryDataFile",
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false
+ }
+ );
+
+ parameterList.push({name: "Supplemetory file (JSON format)",
+ id: "supplementoryDataFile",
+ type: "file",
+ isRequired: false,
+ isVisiblity: false
+ }
+ );
+ }
+
+ if( VIDCONFIGURATION.UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED && _this.componentId === COMPONENT.VOLUME_GROUP){
+ parameterList.push({name: "Upload Supplementory Data file",
+ id: "uploadSupplementoryDataFile",
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false
+ }
+ );
+
+ parameterList.push({name: "Supplemetory file (JSON format)",
+ id: "supplementoryDataFile",
+ type: "file",
+ isRequired: false,
+ isVisiblity: false
+ }
+ );
+ }
addArbitraryParameters(parameterList);
@@ -267,6 +322,7 @@ var CreationService = function($log, AaiService, AsdcService, DataService, case PARAMETER.RANGE:
break;
case PARAMETER.LIST:
+ parameter.type = PARAMETER.LIST;
break;
case PARAMETER.MAP:
parameter.type = PARAMETER.MAP;
@@ -284,6 +340,7 @@ var CreationService = function($log, AaiService, AsdcService, DataService, parameterList.push(parameter);
}
}
+ DataService.setArbitraryParameters (parameterList);
}
};
@@ -432,6 +489,9 @@ var CreationService = function($log, AaiService, AsdcService, DataService, var getMsoRequestDetails = function(parameterList) {
console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));
+ //console.log("getMsoRequestDetails invoked, DataService.getArbitraryParameters()=");
+ //console.log(JSON.stringify(DataService.getArbitraryParameters(),null,4));
+
var modelInfo = DataService.getModelInfo(_this.componentId);
var requestorloggedInId = DataService.getLoggedInUserId();
if (requestorloggedInId == null)
@@ -733,53 +793,27 @@ var CreationService = function($log, AaiService, AsdcService, DataService, var getServiceId = function() {
var serviceIdList = DataService.getServiceIdList();
- var serviceTypeList = DataService.getSubscriptionServiceTypeList();
+ //var serviceTypeList = DataService.getSubscriptionServiceTypeList();
var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;
parameter.optionList = new Array();
-
- if (serviceTypeList == null) {
- getSubscriptionServiceTypeList();
- serviceTypeList = DataService.getSubscriptionServiceTypeList();
- }
- var went = 0;
- if ( UtilityService.hasContents (serviceIdList) ) {
+ if ( UtilityService.hasContents(serviceIdList) ) {
+ // load them all
for (var i = 0; i < serviceIdList.length; i++) {
- var go = 0;
- var name = serviceIdList[i].id;
-
- if (UtilityService.hasContents(serviceTypeList) ) {
- console.log("STL: " + serviceTypeList);
- for (var k = 0; k < serviceTypeList.length; k++) {
- if (angular.equals(name,serviceTypeList[k])) {
- go = 1;
- went = 1;
- }
- }
- } else {
- go = 1;
- went = 1;
- }
- if (go == 1) {
- parameter.optionList.push({
- id : serviceIdList[i].id,
- name : serviceIdList[i].description
- });
- }
- } // load them all, ours wasn't in the list
- if (went == 0) {
- for (var i = 0; i < serviceIdList.length; i++) {
- parameter.optionList.push({
- id : serviceIdList[i].id,
- name : serviceIdList[i].description
- });
- }
+ parameter.optionList.push({
+ id : serviceIdList[i].id,
+ name : serviceIdList[i].description
+ });
}
}
+
return parameter;
};
var getLcpRegion = function() {
var cloudRegionTenantList = DataService.getCloudRegionTenantList();
+ console.log ( "cloudRegionTenantList=");
+ console.log ( JSON.stringify (cloudRegionTenantList, null, 4 ));
+
var parameter = FIELD.PARAMETER.LCP_REGION;
if ( UtilityService.hasContents (cloudRegionTenantList) ) {
parameter.optionList = new Array();
@@ -842,7 +876,53 @@ var CreationService = function($log, AaiService, AsdcService, DataService, };
var updateUserParameterList = function(updatedId, parameterListControl) {
console.log ("updateUserParameterList() updatedId=" + updatedId);
- if (updatedId === FIELD.ID.LCP_REGION) {
+ if (updatedId === FIELD.ID.SDN_C_PRELOAD) {
+ var list = parameterListControl.getList(updatedId);
+ if($('input[parameter-id="'+updatedId+'"]').is(':checked')){
+ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED.value=true;
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED ]);
+ }else{
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_UNCHECKED ]);
+ }
+ }else if (updatedId === FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE) {
+ if($('input[parameter-id="'+updatedId+'"]').is(':checked')){
+ $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').show();
+ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=true;
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED ]);
+ }else{
+ $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').hide();
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED ]);
+ }
+ } else if (updatedId === FIELD.ID.SUPPLEMENTORY_DATA_FILE) {
+ var filePath = $('input[parameter-id="'+updatedId+'"]').val();
+ var arr =filePath.split('.');
+ var fileExt = arr[arr.length-1];
+ if(fileExt!='' && fileExt.toLowerCase()!='json'){
+ $('input[parameter-id="'+updatedId+'"]').val('');
+ showError("Invalid file format.", 'Please select *.json format file.');
+ return false;
+ }
+ var fileJsonData={};
+ var fileInput = document.getElementById(updatedId);
+ var file = fileInput.files[0];
+ var reader = new FileReader();
+ reader.onload = function(e) {
+ try{
+ fileJsonData = JSON.parse(reader.result);
+ FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value']=(JSON.stringify(fileJsonData)).toString();
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE ]);
+ }catch(e){
+ alert('Invalid json format.');
+ showError("Invalid data format.", 'Please check your file content it is not in json format.');
+ }
+ }
+ reader.readAsText(file);
+ } else if (updatedId === FIELD.ID.LCP_REGION) {
var list = parameterListControl.getList(updatedId);
if (list[0].selectedIndex >= 0) {
parameterListControl
@@ -920,5 +1000,5 @@ var CreationService = function($log, AaiService, AsdcService, DataService, }
appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",
- "DataService", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",
+ "DataService","VIDCONFIGURATION", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",
"UtilityService", CreationService ]);
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/services/dataService.js b/vid-app-common/src/main/webapp/app/vid/scripts/services/dataService.js index 7d913faf..bb5adad3 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/services/dataService.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/services/dataService.js @@ -124,6 +124,36 @@ var DataService = function($log, DataService) { setServiceUuid : function(serviceUuid) {
_this.serviceUuid = serviceUuid;
},
+ getServiceTypeName : function() {
+ return _this.serviceTypeName;
+ },
+ setServiceTypeName : function(serviceTypeName) {
+ _this.serviceTypeName = serviceTypeName;
+ },
+ getCreateSubscriberName : function() {
+ return _this.createSubscriberName;
+ },
+ setCreateSubscriberName : function(createSubscriberName) {
+ _this.createSubscriberName = createSubscriberName;
+ },
+ getSdncPreload : function() {
+ return _this.sdncPreload;
+ },
+ setSdncPreload : function(sdncPreload) {
+ _this.sdncPreload = sdncPreload;
+ },
+ getUploadSupplementoryDataFile : function() {
+ return _this.uploadSupplementoryDataFile;
+ },
+ setUploadSupplementoryDataFile : function(uploadSupplementoryDataFile) {
+ _this.uploadSupplementoryDataFile = uploadSupplementoryDataFile;
+ },
+ getSupplementoryDataFile : function() {
+ return _this.supplementoryDataFile;
+ },
+ setSupplementoryDataFile : function(supplementoryDataFile) {
+ _this.supplementoryDataFile = supplementoryDataFile;
+ },
getSubscriberId : function() {
return _this.subscriberId;
},
@@ -236,6 +266,18 @@ var DataService = function($log, DataService) { },
setUpdatedVNFProvStatus : function(r) {
_this.updatedvnfProvStatus = r;
+ },
+ setArbitraryParameters : function (pList) {
+ _this.arbitraryParameters = pList;
+ },
+ getArbitraryParameters : function () {
+ return _this.arbitraryParameters;
+ },
+ setHideServiceFields:function(b){
+ _this.hideServiceFields=b;
+ },
+ getHideServiceFields:function(){
+ return _this.hideServiceFields;
}
}
}
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/services/utilityService.js b/vid-app-common/src/main/webapp/app/vid/scripts/services/utilityService.js index 13332694..4e4d1230 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/services/utilityService.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/services/utilityService.js @@ -63,7 +63,7 @@ * string for some known conditions.
*/
-var UtilityService = function($log, DataService) {
+var UtilityService = function($log, DataService, PARAMETER) {
var _this = this;
var convertModel = function (serviceModel) {
@@ -153,6 +153,7 @@ var UtilityService = function($log, DataService) { if (serviceModel.service != null && serviceModel.service.inputs != null &&
serviceModel.service.inputs[cmdObj.inputName] != null ) {
networkModelDisplayInputs[cmdObj.inputName] = (serviceModel.service.inputs[cmdObj.inputName]);
+ networkModelDisplayInputs[cmdObj.inputName][PARAMETER.DISPLAY_NAME] = cmdObj.displayName;
}
}
@@ -219,6 +220,7 @@ var UtilityService = function($log, DataService) { if (serviceModel.service != null && serviceModel.service.inputs != null &&
serviceModel.service.inputs[cmdObj.inputName] != null ) {
vnfModelDisplayInputs[cmdObj.inputName] = (serviceModel.service.inputs[cmdObj.inputName]);
+ vnfModelDisplayInputs[cmdObj.inputName][PARAMETER.DISPLAY_NAME] = cmdObj.displayName;
}
}
@@ -243,8 +245,8 @@ var UtilityService = function($log, DataService) { if (hasContents (vnfModel.properties.nf_function) ) {
vnf_function = vnfModel.properties.nf_function;
}
- if (hasContents (vnfModel.properties.nf_code) ) {
- vnf_code = vnfModel.properties.nf_code;
+ if (hasContents (vnfModel.properties.nf_naming_code) ) {
+ vnf_code = vnfModel.properties.nf_naming_code;
}
}
convertedAsdcModel.vnfs[vnfCustomizationUuid]["nfType"] = vnf_type;
@@ -344,6 +346,7 @@ var UtilityService = function($log, DataService) { if (serviceModel.service != null && serviceModel.service.inputs != null &&
serviceModel.service.inputs[cmdObj.inputName] != null ) {
networkModelDisplayInputs[cmdObj.inputName] = (serviceModel.service.inputs[cmdObj.inputName]);
+ networkModelDisplayInputs[cmdObj.inputName][PARAMETER.DISPLAY_NAME] = cmdObj.displayName;
}
}
@@ -404,6 +407,7 @@ var UtilityService = function($log, DataService) { if (serviceModel.service != null && serviceModel.service.inputs != null &&
serviceModel.service.inputs[cmdObj.inputName] != null ) {
vnfModelDisplayInputs[cmdObj.inputName] = (serviceModel.service.inputs[cmdObj.inputName]);
+ vnfModelDisplayInputs[cmdObj.inputName][PARAMETER.DISPLAY_NAME] = cmdObj.displayName;
}
}
@@ -637,4 +641,4 @@ var UtilityService = function($log, DataService) { }
//app.factory("UtilityService", UtilityService);
-appDS2.factory("UtilityService", [ "$log", "DataService", UtilityService ]);
+appDS2.factory("UtilityService", [ "$log", "DataService", "PARAMETER", UtilityService ]);
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/createInstanceServiceModels.htm b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/createInstanceServiceModels.htm index a78b95ee..4d02ae80 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/createInstanceServiceModels.htm +++ b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/createInstanceServiceModels.htm @@ -78,30 +78,31 @@ <thead att-table-row type="header">
<tr>
<th att-table-header key="action">Action</th>
- <th att-table-header key="uuid">UUID</th>
- <th att-table-header key="invariantUUID">Invariant UUID</th>
- <th att-table-header default-sort="A" key="name">Name</th>
- <th att-table-header key="version">Version</th>
- <th att-table-header key="category">Category</th>
- <th att-table-header key="distributionStatus">Distribution Status</th>
- <th att-table-header key="lastUpdaterUserId">Last Updated By</th>
- <th att-table-header key="toscaModelUrl">Tosca Model</th>
+ <th att-table-header key="serviceInstanceName">Service Name</th>
+ <th att-table-header key="serviceDescription">Service Description</th>
+ <th att-table-header key="serviceType">Service Type</th>
+ <th att-table-header key="serviceUuid">Service UUID</th>
+ <th att-table-header key="serviceInvariantUuid">Service Invariant UUID</th>
+ <th att-table-header key="serviceVersion">Service Version</th>
+ <th att-table-header key="actions">Action</th>
</tr>
</thead>
<tbody att-table-row type="body" row-repeat="service in services">
- <tr>
- <td att-table-body ><button type=button ng-click="deployService(service)" att-button btn-type="primary" size="small">Deploy</button></td>
- <td att-table-body ng-bind="service['uuid']"></td>
- <td att-table-body ng-bind="service['invariantUUID']"></td>
- <td att-table-body ng-bind="service['name']"></td>
- <td att-table-body ng-bind="service['version']"></td>
- <td att-table-body ng-bind="service['category']"></td>
- <td att-table-body ng-bind="service['distributionStatus']"></td>
- <td att-table-body ng-bind="service['lastUpdaterUserId']"></td>
- <td att-table-body ng-bind="service['toscaModelUrl']"></td>
- </tr>
+ <tr>
+ <td att-table-body ><button type=button ng-click="deployService(service,true)" att-button btn-type="primary" size="small">Deploy</button></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][2]['property-value']"></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][0]['property-value']"></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][3]['property-value']"></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][1]['property-value']"></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][4]['property-value']"></td>
+ <td att-table-body ng-bind="service['extra-properties']['extra-property'][6]['property-value']"></td>
+ <td att-table-body ><button type=button ng-click="deploService(service)" att-button btn-type="primary" size="small">Previous Versions</button></td>
+ </tr>
</tbody>
</table>
+ <div >
+ <center><button type="submit" class="btn btn-primary" size="small" ng-click="cancelCreateSIType();">Cancel</button></center>
+ </div>
<table width='100%'>
<tr>
<td width='33%' valign='middle'>
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/creationDialog.htm b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/creationDialog.htm index 0ac74a9a..11dc1c39 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/creationDialog.htm +++ b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/creationDialog.htm @@ -1,64 +1,64 @@ -<!--
- ============LICENSE_START=======================================================
- VID
- ================================================================================
- Copyright (C) 2017 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=========================================================
- -->
+<!-- + ============LICENSE_START======================================================= + VID + ================================================================================ + Copyright (C) 2017 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========================================================= + --> + +<div ng-controller="creationDialogController"> + + <div ng-show="isDialogVisible"> + <div class="titleLine"> + <img src="app/vid/images/spinner.gif" + ngx-visible="{{isSpinnerVisible}}"></img> + <h3>Create {{componentName}} -- {{createType}}</h3> + </div> + + <div class="error" ng-show="isErrorVisible"> + <img src="app/vid/images/error.png"></img>{{error}} + </div> + + <div ngx-visible="{{isDataVisible}}"> + <parameter-block control="summaryControl"></parameter-block> + <h4> + User Provided Data (<img class="requiredIndicator" + src="app/vid/images/asterisk.png" height='10' width='10'></img> indicates required field) + </h4> + <parameter-block control="userProvidedControl" + callback="userParameterChanged(id);" editable></parameter-block> -<div ng-controller="creationDialogController">
-
- <div ng-show="isDialogVisible">
- <div class="titleLine">
- <img src="app/vid/images/spinner.gif"
- ngx-visible="{{isSpinnerVisible}}"></img>
- <h3>Create {{componentName}} -- {{createType}}</h3>
- </div>
-
- <div class="error" ng-show="isErrorVisible">
- <img src="app/vid/images/error.png"></img>{{error}}
- </div>
-
- <div ngx-visible="{{isDataVisible}}">
- <parameter-block control="summaryControl"></parameter-block>
- <h4>
- User Provided Data (<img class="requiredIndicator"
- src="app/vid/images/asterisk.png" height='10' width='10'></img> indicates required field)
- </h4>
- <parameter-block control="userProvidedControl"
- callback="userParameterChanged(id);" editable></parameter-block>
-
- <div class="prompt">
- <p>
- Enter Data and <span>Confirm</span> to<br />Create <span>{{componentName}}</span>
- </p>
- <p>
- <span>Cancel</span> to Return to Previous Page.<br />Data entered
- will be lost
- </p>
- </div>
-
- </div>
- <div class="buttonRow">
- <button ngx-enabled="{{isConfirmEnabled}}" att-button size="small"
- ng-click="confirm();">Confirm</button>
- <button type="button" ng-click="cancel();" att-button
- btn-type="primary" size="small">Cancel</button>
- </div>
- </div>
-
- <div ng-include="'app/vid/scripts/view-models/msoCommit.htm'"></div>
-
-</div>
+ <div class="prompt"> + <p> + Enter Data and <span>Confirm</span> to<br />Create <span>{{componentName}}</span> + </p> + <p> + <span>Cancel</span> to Return to Previous Page.<br />Data entered + will be lost + </p> + </div> + + </div> + <div class="buttonRow"> + <button ngx-enabled="{{isConfirmEnabled}}" att-button size="small" + ng-click="confirm();">Confirm</button> + <button type="button" ng-click="cancel();" att-button + btn-type="primary" size="small">Cancel</button> + </div> + </div> + + <div ng-include="'app/vid/scripts/view-models/msoCommit.htm'"></div> + +</div> diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/serviceModels.htm b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/serviceModels.htm index c0a8ee54..00b8972f 100755 --- a/vid-app-common/src/main/webapp/app/vid/scripts/view-models/serviceModels.htm +++ b/vid-app-common/src/main/webapp/app/vid/scripts/view-models/serviceModels.htm @@ -52,6 +52,7 @@ <th att-table-header key="distributionStatus">Distribution Status</th>
<th att-table-header key="lastUpdaterUserId">Last Updated By</th>
<th att-table-header key="toscaModelUrl">Tosca Model</th>
+ <th att-table-header key="actions">Action</th>
</tr>
</thead>
<tbody att-table-row type="body" row-repeat="service in services">
@@ -65,6 +66,7 @@ <td att-table-body ng-bind="service['distributionStatus']"></td>
<td att-table-body ng-bind="service['lastUpdaterUserId']"></td>
<td att-table-body ng-bind="service['toscaModelUrl']"></td>
+ <td att-table-body ><button type=button ng-click="deloyService(service)" att-button btn-type="primary" size="small">Previous Versions</button></td>
</tr>
</tbody>
</table>
diff --git a/vid-app-common/version.properties b/vid-app-common/version.properties index e2595ba1..e2595ba1 100644..100755 --- a/vid-app-common/version.properties +++ b/vid-app-common/version.properties |