summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--features.properties.md173
-rwxr-xr-xvid-app-common/src/main/webapp/app/vid/scripts/constants/componentConstants.js2
-rwxr-xr-xvid-app-common/src/main/webapp/app/vid/scripts/controller/InstantiationController.js2
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java10
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java37
-rw-r--r--vid-automation/src/main/java/vid/automation/test/infra/Features.java1
-rw-r--r--vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json2
-rw-r--r--vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts2
8 files changed, 214 insertions, 15 deletions
diff --git a/features.properties.md b/features.properties.md
new file mode 100644
index 000000000..a61893f29
--- /dev/null
+++ b/features.properties.md
@@ -0,0 +1,173 @@
+
+### Feature Flags
+
+* FLAG_ADD_MSO_TESTAPI_FIELD
+
+ As MSO are trying a macro/a-la-carte API consolidation, this feature will signal
+ MSO whether to use the old API or the new one.
+ If enabled, VID will add the field "testApi" (with a selectable value) to many
+ requests' payloads.
+
+* FLAG_NETWORK_TO_ASYNC_INSTANTIATION
+
+ If FLAG_NETWORK_TO_ASYNC_INSTANTIATION is enabled - services that contain networks will also use the new macro instantiation flow
+ as describes under: FLAG_ASYNC_INSTANTIATION
+ Combination of FLAG_ASYNC_INSTANTIATION- enabled and FLAG_NETWORK_TO_ASYNC_INSTANTIATION- disabled - may break tests
+ that contain csars with networks and expected to go to new flow
+
+* FLAG_5G_IN_NEW_INSTANTIATION_UI
+
+ Enable deployment of 5G a-la-carte services in the "new" Angular 2 instantiation pages.
+ If disabled, the deploy process will be in old UI.
+
+* FLAG_SHOW_ASSIGNMENTS
+
+* FLAG_ASYNC_ALACARTE_VNF
+
+ enable creating vnfs via async instantiation of a-la-carte service
+
+* FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS
+
+
+* FLAG_A_LA_CARTE_AUDIT_INFO
+
+ This flag enable show a-la-carte mso audit info, online from mso
+
+
+* FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS
+
+ Once a Provider Network is instantiated and the user goes to View / Edit, she will
+ be able to view the Tenant Networks associated with a Provider network.
+
+ This information about the networks is retrieved from A&AI.
+
+ If flag disabled, A&AI is not approached, and View / Edit shows no underlying
+ VLANs.
+
+* FLAG_ASYNC_ALACARTE_VFMODULE
+
+ Enable creating vfModules and volume groups via async instantiation of a-la-carte
+ service. If turned off, only VNFs will be created; vf modules will be ignored.
+
+* FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI
+
+ Experimental flag that route any a-la-carte service deployment to "new" Angular 2 instantiation pages.
+ This flag is currently only for development propose and shall not be enabled in testing/production.
+
+* FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST
+
+ When this flag is is on, VID is adding cloudOwner field into CloudConfiguration section of MSO requests.
+ Relevant requests for 1810 :
+
+ * Create VNF
+ * Create Volume Group
+ * Create VfModule
+ * Create Network
+ * Create Macro service
+ * Delete VNF
+ * Delete Volume Group
+ * Delete VfModule
+ * Delete Network
+ * Delete Macro service
+
+
+* FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE
+
+ Enable soft delete for vf-module in view/edit page for a-la-carte only.
+
+
+* FLAG_1810_AAI_LOCAL_CACHE
+
+ Enables the caching of selected AAI responses.
+
+
+* FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI
+
+ Enables to identify the service for new UI.
+
+
+* FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER
+
+ Enables using DefaultHostnameVerifier in HttpAuthClient in order to enable a more secure connection
+
+
+* FLAG_1902_NEW_VIEW_EDIT
+
+ Enable users to go to new view service instance page that is based on service planning page.
+ If the feature flag is on, once a use click open a service on instantiation status dashboard,
+ the user is redirected to the new view page.
+
+
+* FLAG_1902_VNF_GROUPING
+
+ Support services with vnf grouping. If the flag is enabled, clicking on deploy of service with vnf grouping
+ would open the new UI of deploy service. Also if the flag is enabled, view/edit of such a service is service planning
+ new UI in view/edit mode.
+
+* FLAG_1902_RETRY_JOB
+ Support retry of failed job. Once async job has failed, the user is able to retry execute the job again.
+
+* FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY
+
+ While creating a port-mirroring configuration, user will be able to choose the service-type for
+ both pnf anv vnf (aka pprobe and vprobe).
+
+ Disable this flag to go back to original behaviour, that pnf defaults to the service's service-
+ type, without a visible queue nor an option to change.
+
+* FLAG_EXP_CREATE_RESOURCES_IN_PARALLEL
+
+ Enable the user to create resources (like VNF, NETWORK, VF_MODULE) in parallel during ALaCarte.
+ For 1902 version the flag is false, since SDNC doesn't support creation of resources in parallel
+ for ALaCarte scenarios.
+
+* FLAG_1906_COMPONENT_INFO
+
+ Show in drawing board an information for each resource, when the resource is selected in
+ the drawing board tree
+
+* FLAG_1906_INSTANTIATION_API_USER_VALIDATION
+
+ Enable user role validation for the Backend API instantiation request. The validation is applied for subscriber
+ and service type. There is no tenants validation.
+
+* FLAG_1906_AAI_SUB_DETAILS_REDUCE_DEPTH
+
+ Enable using the depth=1 instead of depth=2 parameter in outgoing A&AI GET 'business/customers/customer/{subscriberId}'
+ request when the Frontend sends the GET '/aai_sub_details/{subscriberId}' request with additional parameter
+ 'omitServiceInstances=true' to the Backend.
+
+ Relevant for these specific cases:
+ 1) Service types fetching on the "Create New Service Instance" page after subscriber choosing.
+ 2) Service types fetching on Service Instance creation popup from the "Browse SDC models" page.
+
+* FLAG_1908_TRANSPORT_SERVICE_NEW_INSTANTIATION_UI
+ Enable opening transport service (service with type:TRANSPORT) in new instantiation UI.
+
+* FLAG_1908_INFRASTRUCTURE_VPN
+ Enable opening VRF service (service with type:BONDING, role: INFRASTRUCTURE-VPN) in new instantiation UI.
+
+* FLAG_1908_RESUME_MACRO_SERVICE
+ Enable resume macro service from new view edit page, if :
+ * Service model has a Macro deployment
+ * Service Instance is in Assigned / Inventoried Ocrh. Status
+ * Service instance Service Type != Transport (PNFs)
+
+* FLAG_1908_VNF_FABRIC_CONFIGURATION_NEW_INSTANTIATION_UI
+ Enable open the "new" Angular 2 instantiation pages for service with service-role = "VNF"
+
+* FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT
+ Adds a button in legacy View/Edit screen that reopens the service in the _new_ View/Edit screen.
+ This button is not displayed when no "Edit" permissions.
+
+* FLAG_FLASH_REPLACE_VF_MODULE
+ Enable Replace VF module for upgrade flows, requested by the Flash team.
+ When upgrading a VF module VID will invoke the MSO POST VF-module/replace request
+
+* FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT
+ Enable New UI on View Edit for Macro, NON TRANSPORT services
+
+
+
+
+ \ No newline at end of file
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 67a89ee74..0c6d1d74f 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
@@ -262,7 +262,7 @@ appDS2
FLAG_VF_MODULE_RESUME_STATUS_CREATE: "FLAG_VF_MODULE_RESUME_STATUS_CREATE",
FLAG_1908_RELEASE_TENANT_ISOLATION: "FLAG_1908_RELEASE_TENANT_ISOLATION",
FLAG_FLASH_REPLACE_VF_MODULE: "FLAG_FLASH_REPLACE_VF_MODULE",
- FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN: "FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN",
+ FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT: "FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT",
}
};
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 a21776e5d..b3afcd864 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
@@ -225,7 +225,7 @@
};
$scope.allowTransferToNewScreenAndShowButton = function (){
- if(featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN)) {
+ if(featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT)) {
return $scope.isPermitted;
}
return false;
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
index e5799bcf0..8c33e7f64 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
@@ -41,7 +41,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.ws.rs.core.Response;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.onap.vid.aai.AaiClientInterface;
import org.onap.vid.aai.ExceptionWithRequestInfo;
import org.onap.vid.aai.util.AAITreeConverter;
@@ -292,14 +291,7 @@ public class AAIServiceTreeIntegrativeTest {
@BeforeMethod
public void initMocks() {
- aaiClient = null;
- aaiGetVersionByInvariantIdResponse = null;
- sdcService = null;
- serviceModelInflator = null;
- exceptionWithRequestInfo = null;
-
- MockitoAnnotations.initMocks(this);
-
+ TestUtils.initMockitoMocks(this);
aaiTreeNodeBuilder = new AAITreeNodeBuilder(aaiClient);
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
index 399274d69..66052adeb 100644
--- a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
+++ b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
@@ -7,9 +7,9 @@
* 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.
@@ -46,11 +46,13 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
+import java.lang.reflect.Field;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Predicate;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
@@ -60,6 +62,7 @@ import javax.ws.rs.core.Response;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.commons.lang3.reflect.MethodUtils;
import org.apache.commons.text.RandomStringGenerator;
import org.apache.http.HttpResponseFactory;
@@ -71,8 +74,11 @@ import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Assert;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
import org.mockito.MockSettings;
import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.mockito.stubbing.OngoingStubbing;
@@ -176,6 +182,33 @@ public class TestUtils {
.collect(toList());
}
+ private static List<Field> allMockitoFieldsOf(Object object) {
+ final Predicate<Field> hasMockAnnotation = field -> field.getAnnotation(Mock.class) != null;
+ final Predicate<Field> hasInjectMocksAnnotation = field -> field.getAnnotation(InjectMocks.class) != null;
+
+ return Arrays.stream(FieldUtils.getAllFields(object.getClass()))
+ .filter(hasMockAnnotation.or(hasInjectMocksAnnotation))
+ .collect(toList());
+ }
+
+ /**
+ * Calls MockitoAnnotations.initMocks after nullifying any field which is annotated @Mocke or @InjectMock.
+ * This makes a "hard rest" to any mocked state or instance. Expected to be invoked between any @Tests in class, by
+ * being called in TestNG's @BeforeMethod (or equivalently JUnit's @BeforeTest).
+ */
+ public static void initMockitoMocks(Object testClass) {
+ for (Field field : allMockitoFieldsOf(testClass)) {
+ try {
+ // Write null to fields
+ FieldUtils.writeField(field, testClass, null, true);
+ } catch (ReflectiveOperationException e) {
+ ExceptionUtils.rethrow(e);
+ }
+ }
+
+ MockitoAnnotations.initMocks(testClass);
+ }
+
/**
* Sets each String property with a value equal to the name of
* the property; e.g.: { name: "name", city: "city" }
diff --git a/vid-automation/src/main/java/vid/automation/test/infra/Features.java b/vid-automation/src/main/java/vid/automation/test/infra/Features.java
index dd02609bd..bf1147a6d 100644
--- a/vid-automation/src/main/java/vid/automation/test/infra/Features.java
+++ b/vid-automation/src/main/java/vid/automation/test/infra/Features.java
@@ -44,6 +44,7 @@ public enum Features implements Feature {
FLAG_HANDLE_SO_WORKFLOWS,
FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT,
FLAG_FLASH_REPLACE_VF_MODULE,
+ FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT,
;
public boolean isActive() {
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json
index 59672f7b1..d1d23869f 100644
--- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json
+++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json
@@ -18,5 +18,5 @@
"FLAG_1908_RESUME_MACRO_SERVICE": true,
"FLAG_ENABLE_WEBPACK_MODERN_UI": true,
"FLAG_FLASH_REPLACE_VF_MODULE": true,
- "FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN": true
+ "FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT": true
}
diff --git a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
index da79a1a4e..7df15fcda 100644
--- a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
+++ b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
@@ -11,7 +11,7 @@ export enum Features {
FLAG_1906_COMPONENT_INFO = 'FLAG_1906_COMPONENT_INFO',
FLAG_1908_RESUME_MACRO_SERVICE = 'FLAG_1908_RESUME_MACRO_SERVICE',
FLAG_FLASH_REPLACE_VF_MODULE ='FLAG_FLASH_REPLACE_VF_MODULE',
- FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN ='FLAG_FLASH_VIEW_IN_NEW_VIEWEDIT_SCREEN'
+ FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT ='FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT'
}
@Injectable()