You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by rm...@apache.org on 2019/01/03 15:46:12 UTC

[metron] branch master updated: METRON-1958 Optimize Cypress to use best practices (sardell via merrimanr) closes apache/metron#1317

This is an automated email from the ASF dual-hosted git repository.

rmerriman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metron.git


The following commit(s) were added to refs/heads/master by this push:
     new 74658e9  METRON-1958 Optimize Cypress to use best practices (sardell via merrimanr) closes apache/metron#1317
74658e9 is described below

commit 74658e97a55aeac612a70689850d352d907adf96
Author: sardell <sa...@hortonworks.com>
AuthorDate: Thu Jan 3 09:40:57 2019 -0600

    METRON-1958 Optimize Cypress to use best practices (sardell via merrimanr) closes apache/metron#1317
---
 .../CURRENT/package/templates/alerts_ui.yml.j2     |  2 ++
 metron-interface/metron-alerts/alerts_ui.yml       |  2 ++
 .../{alerts_ui.yml => alerts_ui_cypress.yml}       |  6 ++--
 metron-interface/metron-alerts/cypress.json        |  3 +-
 .../cypress/integration/pcap/pcap.spec.js          | 38 ++++++++++++----------
 metron-interface/metron-alerts/package-lock.json   | 10 ++++++
 metron-interface/metron-alerts/package.json        |  6 ++--
 .../metron-alerts/scripts/alerts-server.js         |  6 ++--
 8 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/templates/alerts_ui.yml.j2 b/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/templates/alerts_ui.yml.j2
index a3e87cb..92a9510 100644
--- a/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/templates/alerts_ui.yml.j2
+++ b/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/templates/alerts_ui.yml.j2
@@ -21,3 +21,5 @@ port: {{metron_alerts_ui_port}}
 rest:
   host: {{metron_rest_host}}
   port: {{metron_rest_port}}
+
+dirPath: alerts-ui
diff --git a/metron-interface/metron-alerts/alerts_ui.yml b/metron-interface/metron-alerts/alerts_ui.yml
index 4481fa9..343d883 100644
--- a/metron-interface/metron-alerts/alerts_ui.yml
+++ b/metron-interface/metron-alerts/alerts_ui.yml
@@ -19,3 +19,5 @@ port: 4201
 rest:
   host: localhost
   port: 8080
+
+dirPath: alerts-ui
\ No newline at end of file
diff --git a/metron-interface/metron-alerts/alerts_ui.yml b/metron-interface/metron-alerts/alerts_ui_cypress.yml
similarity index 95%
copy from metron-interface/metron-alerts/alerts_ui.yml
copy to metron-interface/metron-alerts/alerts_ui_cypress.yml
index 4481fa9..ddf663a 100644
--- a/metron-interface/metron-alerts/alerts_ui.yml
+++ b/metron-interface/metron-alerts/alerts_ui_cypress.yml
@@ -14,8 +14,10 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
 #
-port: 4201
+port: 4200
 
 rest:
   host: localhost
-  port: 8080
+  port: 4200
+
+dirPath: dist
\ No newline at end of file
diff --git a/metron-interface/metron-alerts/cypress.json b/metron-interface/metron-alerts/cypress.json
index 7c0410d..da8aafb 100644
--- a/metron-interface/metron-alerts/cypress.json
+++ b/metron-interface/metron-alerts/cypress.json
@@ -3,5 +3,6 @@
   "viewportHeight": 850,
   "video": false,
   "supportFile": false,
-  "pluginsFile": false
+  "pluginsFile": false,
+  "baseUrl": "http://localhost:4200"
 }
\ No newline at end of file
diff --git a/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js b/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
index 58f7d26..835c714 100644
--- a/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
+++ b/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
@@ -25,8 +25,13 @@ context('PCAP Tab', () => {
       url: '/api/v1/user',
       response: 'user'
     });
+    cy.route({
+      method: 'POST',
+      url: 'logout',
+      response: []
+    });
 
-    cy.route('GET', 'config', 'fixture:config.json');
+    cy.route('GET', '/api/v1/global/config', 'fixture:config.json');
     cy.route('POST', 'search', 'fixture:search.json');
 
     cy.route({
@@ -34,15 +39,14 @@ context('PCAP Tab', () => {
       url: '/api/v1/pcap?state=*',
       response: []
     }).as('runningJobs');
-    
-    cy.visit('http://localhost:4200/login');
+
+    cy.visit('login');
     cy.get('[name="user"]').type('user');
     cy.get('[name="password"]').type('password');
     cy.contains('LOG IN').click();
   });
 
   afterEach(() => {
-    cy.get('.logout-link').click();
   });
 
   it('checking running jobs on navigating to PCAP tab', () => {
@@ -62,7 +66,7 @@ context('PCAP Tab', () => {
     cy.get('[data-qe-id="protocol"]').type('24');
     cy.get('[data-qe-id="include-reverse"]').check();
     cy.get('[data-qe-id="packet-filter"]').type('filter');
-    
+
     cy.get('[data-qe-id="submit-button"]').click();
 
     cy.wait('@postingPcapJob').then((xhr) => {
@@ -82,7 +86,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@jobStatusCheck').its('url').should('include', '/api/v1/pcap/job_1537878471649_0001');
   });
 
@@ -92,7 +96,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@jobStatusCheck');
 
     cy.contains('75%').should('be.visible');
@@ -105,7 +109,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@statusCheck');
 
     cy.wait('@gettingPdml').its('url').should('include', '/api/v1/pcap/job_1537878471649_0001/pdml?page=1');
@@ -119,7 +123,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@statusCheck');
 
     cy.wait('@gettingPdml');
@@ -135,7 +139,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@statusCheck');
     cy.wait('@gettingPdml');
 
@@ -143,7 +147,7 @@ context('PCAP Tab', () => {
     cy.contains('General information').should('not.be.visible');
 
     cy.get(':nth-child(3) > .timestamp').click();
-    
+
     cy.contains('General information').should('be.visible');
     cy.get('[data-qe-id="proto"]').should('have.length', 6);
   });
@@ -155,12 +159,12 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@statusCheck');
     cy.wait('@gettingPdml');
 
     cy.contains('Page 1 of 2').should('be.visible');
-    
+
     cy.get('.fa-chevron-right').click();
 
     cy.wait('@gettingPdml').its('url').should('include', '?page=2');
@@ -174,7 +178,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@statusCheck');
     cy.wait('@gettingPdml');
 
@@ -194,7 +198,7 @@ context('PCAP Tab', () => {
 
     cy.contains('PCAP').click();
     cy.get('[data-qe-id="submit-button"]').click();
-    
+
     cy.wait('@jobStatusCheck');
 
     cy.get('[data-qe-id="pcap-cancel-query-button"]').click();
@@ -210,7 +214,7 @@ context('PCAP Tab', () => {
     cy.get('[data-qe-id="ip-dst-addr"]').type('ccc.ddd.222.000');
     cy.get('[data-qe-id="ip-src-port"]').type('99999');
     cy.get('[data-qe-id="ip-dst-port"]').type('aaaa');
-    
+
     cy.get('.pcap-search-validation-errors').should('be.visible');
     cy.get('.pcap-search-validation-errors li').should('have.length', 4);
   });
@@ -221,7 +225,7 @@ context('PCAP Tab', () => {
     cy.get('[data-qe-id="end-time"]').click();
     cy.get('.pika-select-year').select('2015');
     cy.get('[data-day="11"] > .pika-button').click();
-    
+
     cy.get('.pcap-search-validation-errors').should('be.visible');
     cy.get('.pcap-search-validation-errors li').should('have.length', 1);
   });
diff --git a/metron-interface/metron-alerts/package-lock.json b/metron-interface/metron-alerts/package-lock.json
index f80f72b..3c11822 100644
--- a/metron-interface/metron-alerts/package-lock.json
+++ b/metron-interface/metron-alerts/package-lock.json
@@ -20591,6 +20591,16 @@
       "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
       "dev": true
     },
+    "yamljs": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
+      "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "glob": "^7.0.5"
+      }
+    },
     "yargs": {
       "version": "7.1.0",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
diff --git a/metron-interface/metron-alerts/package.json b/metron-interface/metron-alerts/package.json
index deb5ecf..c63c1fc 100644
--- a/metron-interface/metron-alerts/package.json
+++ b/metron-interface/metron-alerts/package.json
@@ -13,7 +13,8 @@
     "e2e": "protractor-flake --protractor-path=./node_modules/.bin/protractor --max-attempts=3 -- ./protractor.conf.js",
     "cypress:run": "cypress run",
     "cypress:open": "cypress open",
-    "cypress:ci": "run-p --race start cypress:run"
+    "cypress:ci": "ng build --prod && run-p --race start:ci cypress:run",
+    "start:ci": "node ./scripts/alerts-server.js -c alerts_ui_cypress.yml"
   },
   "private": true,
   "dependencies": {
@@ -75,6 +76,7 @@
     "serve-static": "^1.13.2",
     "ssh2": "^0.5.5",
     "tslint": "~5.0.0",
-    "typescript": "~2.9.2"
+    "typescript": "~2.9.2",
+    "yamljs": "^0.3.0"
   }
 }
diff --git a/metron-interface/metron-alerts/scripts/alerts-server.js b/metron-interface/metron-alerts/scripts/alerts-server.js
index 716f37b..e700dd1 100644
--- a/metron-interface/metron-alerts/scripts/alerts-server.js
+++ b/metron-interface/metron-alerts/scripts/alerts-server.js
@@ -60,15 +60,15 @@ var restUrl = 'http://' + uiConfig.rest.host + ':' + uiConfig.rest.port;
 app.use('/api/v1', proxy(restUrl));
 app.use('/logout', proxy(restUrl));
 
-app.use(favicon(path.join(__dirname, '../alerts-ui/favicon.ico')));
+app.use(favicon(path.join(__dirname, '../' + uiConfig.dirPath + '/favicon.ico')));
 
-app.use(serveStatic(path.join(__dirname, '../alerts-ui'), {
+app.use(serveStatic(path.join(__dirname, '../' + uiConfig.dirPath), {
   maxAge: '1d',
   setHeaders: setCustomCacheControl
 }));
 
 app.get('*', function(req, res){
-  res.sendFile(path.join(__dirname, '../alerts-ui/index.html'));
+  res.sendFile(path.join(__dirname, '../' + uiConfig.dirPath + '/index.html'));
 });
 
 app.listen(uiConfig.port, function(){