Merge "Rebalance Cypress pipeline groups"
authorAmichai Hemli <amichai.hemli@intl.att.com>
Thu, 26 Sep 2019 11:42:59 +0000 (11:42 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 26 Sep 2019 11:42:59 +0000 (11:42 +0000)
vid-app-common/src/test/java/org/onap/vid/client/SyncRestClientForHttpsServerTest.java
vid-app-common/src/test/java/org/onap/vid/scripts/AdministrationScriptsTest.java
vid-automation/src/main/java/vid/automation/test/test/ViewEditWithDrawingBoardTest.java
vid-webpack-master/src/app/shared/resolvers/viewEdit/viewEdit.resolver.ts
vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts

index f4692c5..645b5ea 100644 (file)
@@ -8,9 +8,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.
@@ -29,6 +29,7 @@ import static com.xebialabs.restito.semantics.Action.stringContent;
 import static org.apache.http.client.config.RequestConfig.custom;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.testng.Assert.assertEquals;
@@ -41,18 +42,25 @@ import com.xebialabs.restito.semantics.Condition;
 import com.xebialabs.restito.server.StubServer;
 import io.joshworks.restclient.http.HttpResponse;
 import io.joshworks.restclient.http.JsonNode;
+
+import java.io.IOException;
 import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
 import java.util.Collections;
+import java.util.Enumeration;
 import javax.net.ssl.SSLContext;
 import org.apache.http.config.Registry;
 import org.apache.http.config.RegistryBuilder;
 import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
 import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
+
 import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.ssl.SSLContextBuilder;
 import org.glassfish.grizzly.http.Method;
 import org.onap.vid.utils.Logging;
 import org.springframework.http.HttpMethod;
@@ -71,7 +79,7 @@ public class SyncRestClientForHttpsServerTest {
     private Logging mockLoggingService;
 
     @BeforeMethod
-    public void setUp() throws GeneralSecurityException {
+    public void setUp() throws GeneralSecurityException{
         stubServer = new StubServer();
         stubServer.secured().run();
         mockLoggingService = mock(Logging.class);
@@ -132,12 +140,16 @@ public class SyncRestClientForHttpsServerTest {
             .then(ok(), jsonContent(), contentType("application/json"));
     }
 
-    private CloseableHttpClient createNaiveHttpClient() throws GeneralSecurityException {
-        final SSLContext context = new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy())
-            .build();
+    private CloseableHttpClient createNaiveHttpClient() throws GeneralSecurityException{
+        KeyStore mock = getMockedKeyStore();
+
+        final SSLContext context = SSLContextBuilder
+                .create()
+                .loadTrustMaterial(mock, new TrustSelfSignedStrategy())
+                .build();
 
         final SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(context, SUPPORTED_PROTOCOLS,
-            null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+            null, NoopHostnameVerifier.INSTANCE);
         Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
             .register("https", socketFactory)
             .build();
@@ -148,4 +160,20 @@ public class SyncRestClientForHttpsServerTest {
             .setSSLSocketFactory(socketFactory).build();
     }
 
+    private KeyStore getMockedKeyStore() throws KeyStoreException {
+        KeyStore mock = mock(KeyStore.class);
+        doReturn(new Enumeration<String>() {
+
+            @Override
+            public boolean hasMoreElements() {
+                return false;
+            }
+
+            @Override
+            public String nextElement() {
+                return null;
+            }
+        }).when(mock).aliases();
+        return mock;
+    }
 }
index ddd28fd..31dcea0 100644 (file)
@@ -56,6 +56,11 @@ public class AdministrationScriptsTest {
 
     @Test
     public void categoryParameterSh_addReleaseCategory_PostAsExpected() throws Exception {
+        if (localWgetNotCompatible()) {
+            // cannot perform the test on hosting machine
+            return;
+        }
+
         final StubServer stubServer = new StubServer();
         final URI scriptSource = AdministrationScriptsTest.class
             .getResource("/scripts/category_parameter.sh").toURI();
@@ -100,6 +105,13 @@ public class AdministrationScriptsTest {
         }
     }
 
+    private boolean localWgetNotCompatible() throws IOException, InterruptedException {
+        // we need versions > 1.14
+        Pair<Integer, String> wgetVersion = exec("wget --version");
+        return wgetVersion.getLeft() != 0 ||
+            Pattern.compile(".*GNU Wget 1.1[0-4].*", Pattern.DOTALL).matcher(wgetVersion.getRight()).matches();
+    }
+
     private Path createTempFile(String text) throws IOException {
         Path input = Files.createTempFile("input", ".txt");
         return Files.write(input, ImmutableList.of(text));
index 073db09..bfe9222 100644 (file)
@@ -54,7 +54,7 @@ public class ViewEditWithDrawingBoardTest extends VidBaseTestCase {
     private String serviceType = "TYLER SILVIA";
     private String serviceInstanceToResumeName;
 
-    @FeatureTogglingTest({Features.FLAG_1902_VNF_GROUPING, Features.FLAG_FLASH_REPLACE_VF_MODULE})
+    @FeatureTogglingTest({Features.FLAG_1902_VNF_GROUPING})
     @Test
     public void testDeleteVnfGroupWithMembers() {
 
@@ -184,7 +184,7 @@ public class ViewEditWithDrawingBoardTest extends VidBaseTestCase {
         );
     }
 
-    @FeatureTogglingTest({Features.FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT, Features.FLAG_1908_RESUME_MACRO_SERVICE, Features.FLAG_FLASH_REPLACE_VF_MODULE})
+    @FeatureTogglingTest({Features.FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT, Features.FLAG_1908_RESUME_MACRO_SERVICE})
     @Test
     public void testResumeServiceInstanceWithCollectionResource() {
 
index d2f76e4..540e02f 100644 (file)
@@ -1,6 +1,6 @@
 import {ActivatedRouteSnapshot, Resolve} from "@angular/router";
 import {Injectable} from "@angular/core";
-import {from, Observable} from "rxjs";
+import {from, Observable, of} from "rxjs";
 import {AaiService} from "../../services/aaiService/aai.service";
 import {forkJoin} from "rxjs/observable/forkJoin";
 import {AppState} from "../../store/reducers";
@@ -9,11 +9,14 @@ import {createServiceInstance} from "../../storeUtil/utils/service/service.actio
 import {ServiceInstance} from "../../models/serviceInstance";
 import * as _ from "lodash";
 import {ModelInfo} from "../../models/modelInfo";
+import {FeatureFlagsService, Features} from "../../services/featureFlag/feature-flags.service";
 
 @Injectable()
 export class ViewEditResolver implements Resolve<Observable<boolean>> {
 
-  constructor(private _aaiService: AaiService, private _store: NgRedux<AppState>) {
+  constructor(private _aaiService: AaiService,
+              private featureFlagsService:FeatureFlagsService,
+              private _store: NgRedux<AppState>) {
   }
 
   resolve(route: ActivatedRouteSnapshot): Observable<boolean> {
@@ -26,12 +29,16 @@ export class ViewEditResolver implements Resolve<Observable<boolean>> {
     let streams: Observable<any>[] = [serviceModelApi, serviceInstanceApi];
     streams = streams.filter( stream => stream !== undefined);
     return forkJoin(streams).switchMap(([serviceModel, serviceInstance]) => {
-      return from(this.retrieveLatestVersionAndSetServiceInstance(serviceInstance.modelInfo.modelInvariantId).then((response)=>{
-        this.setServiceLatestAvailableVersion(serviceInstance, response);
-        this.applyRequestsResponsesToStateAndInitServiceInstance(serviceModelId, serviceInstance, serviceModel);
-        return true;
-      }));
-
+      if (this.featureFlagsService.getFlagState(Features.FLAG_FLASH_REPLACE_VF_MODULE)) {
+        return from(this.retrieveLatestVersionAndSetServiceInstance(serviceInstance.modelInfo.modelInvariantId).then((response) => {
+          this.setServiceLatestAvailableVersion(serviceInstance, response);
+          this.applyRequestsResponsesToStateAndInitServiceInstance(serviceModelId, serviceInstance, serviceModel);
+          return true;
+        }));
+      }
+      else {
+        return of(true);
+      }
     });
   }
 
index d421fe8..1cc5593 100644 (file)
@@ -4,7 +4,7 @@ import {Injectable} from '@angular/core';
 import * as _ from 'lodash';
 import 'rxjs/add/operator/catch';
 import 'rxjs/add/operator/do';
-import {of} from "rxjs";
+import {Observable, of} from "rxjs";
 
 import {AicZone} from "../../models/aicZone";
 import {CategoryParams} from "../../models/categoryParams";
@@ -29,22 +29,12 @@ import {VnfInstance} from "../../models/vnfInstance";
 import {VfModuleInstance} from "../../models/vfModuleInstance";
 import {ServiceInstance} from "../../models/serviceInstance";
 import {VfModuleMap} from "../../models/vfModulesMap";
-import {
-  updateAicZones,
-  updateCategoryParameters,
-  updateLcpRegionsAndTenants,
-  updateServiceTypes,
-  updateSubscribers,
-  updateUserId
-} from "../../storeUtil/utils/general/general.actions";
-import {
-  updateModel,
-  createServiceInstance,
-} from "../../storeUtil/utils/service/service.actions";
+import {updateAicZones, updateCategoryParameters, updateLcpRegionsAndTenants, updateServiceTypes, updateSubscribers, updateUserId} from "../../storeUtil/utils/general/general.actions";
+import {createServiceInstance, updateModel,} from "../../storeUtil/utils/service/service.actions";
 import {FeatureFlagsService, Features} from "../featureFlag/feature-flags.service";
 import {VnfMember} from "../../models/VnfMember";
 import {setOptionalMembersVnfGroupInstance} from "../../storeUtil/utils/vnfGroup/vnfGroup.actions";
-import {Observable} from "rxjs";import {NetworkModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model";
+import {NetworkModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model";
 import {VPNModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model";
 import {ModelInfo} from "../../models/modelInfo";
 
@@ -66,11 +56,8 @@ export class AaiService {
   };
 
   retrieveServiceLatestUpdateableVersion = (modelInvariantId: string): Observable<ModelInfo> => {
-    if (this.featureFlagsService.getFlagState(Features.FLAG_FLASH_REPLACE_VF_MODULE)){
-      let pathQuery: string = Constants.Path.SERVICE_LATEST_VERSION + modelInvariantId;
-      return this.http.get<ModelInfo>(pathQuery)
-    }
-    return;
+    let pathQuery: string = Constants.Path.SERVICE_LATEST_VERSION + modelInvariantId;
+    return this.http.get<ModelInfo>(pathQuery)
   };
 
   getUserId = (): Observable<any> => {