[ 
https://issues.apache.org/jira/browse/METRON-623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15950963#comment-15950963
 ] 

ASF GitHub Bot commented on METRON-623:
---------------------------------------

Github user cestella commented on a diff in the pull request:

    https://github.com/apache/incubator-metron/pull/489#discussion_r109166443
  
    --- Diff: 
metron-interface/metron-config/e2e/sensor-config/sensor-config.po.ts ---
    @@ -0,0 +1,243 @@
    +/**
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you 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.
    + */
    +import { browser, element, by, protractor } from 'protractor/globals';
    +import {changeURL, waitForElementVisibility, waitForElementInVisibility, 
waitForElementPresence} from '../utils/e2e_util';
    +
    +export class SensorConfigPage {
    +
    +  _getEnrichmentsMultipleInput() {
    +    return 
element.all(by.css('.config.container')).all(by.css('metron-config-multiple-input')).get(1).all(by.css('select')).last();
    +  }
    +
    +  _getThreatIntelMultipleInput() {
    +    return 
element.all(by.css('.config.container')).all(by.css('metron-config-multiple-input')).last().all(by.css('select')).last();
    +  }
    +
    +  _getTransformationMultipleInput() {
    +    return 
element.all(by.css('.config.container')).all(by.css('metron-config-multiple-input')).first().all(by.css('select')).last();
    +  }
    +
    +  clickAddButton() {
    +    changeURL(browser.baseUrl + '/sensors');
    +    let addButton = element(by.css('.metron-add-button.hexa-button'));
    +    return waitForElementPresence(addButton).then(() => {
    +      addButton.click();
    +    });
    +  }
    +
    +  clickAddThreatTriageRule() {
    +    let addThreatTriageButton = 
element(by.css('metron-config-sensor-threat-triage .add-button'));
    +    return waitForElementVisibility(addThreatTriageButton).then(() => {
    +      return addThreatTriageButton.click();
    +    });
    +  }
    +
    +  clickGrokStatement() {
    +    let grokInput = element(by.css('input[formcontrolname="grokStatement"] 
+ span'));
    +    return waitForElementVisibility(grokInput).then(() => {
    +      return grokInput.click();
    +    });
    +  }
    +
    +  clickSchema() {
    +    let schemaInput = element(by.css('div[name="fieldSchema"] button'));
    +    return waitForElementVisibility(schemaInput).then(() => {
    +      return schemaInput.click();
    +    });
    +  }
    +
    +  clickThreatTriage() {
    +    let threatTriageInput = element(by.css('div[name="threatTriage"] 
button'));
    +    return waitForElementVisibility(threatTriageInput).then(() => {
    +      return threatTriageInput.click();
    +    });
    +  }
    +
    +  closeMainPane() {
    +    return element(by.css('.btn.save-button + button')).click();
    +  }
    +
    +  closeSchemaPane() {
    +    return element.all(by.css('metron-config-sensor-field-schema 
.form-title + i')).click();
    +  }
    +
    +  closeThreatTriagePane() {
    +    return element.all(by.css('metron-config-sensor-threat-triage 
.form-title + i')).click();
    +  }
    +
    +  getGrokStatementFromMainPane() {
    +    browser.waitForAngular;
    +    return element.all(by.css('input[formcontrolname="grokStatement"]')). 
getAttribute('value');
    +  }
    +
    +  getFieldSchemaSummary() {
    +    return element.all(by.css('[name="fieldSchema"] table tr')).getText();
    +  }
    +
    +  getFieldSchemaValues() {
    +    return 
waitForElementPresence(element(by.css('metron-config-sensor-field-schema 
.field-schema-row'))).then(() => {
    +      return element.all(by.css('metron-config-sensor-field-schema 
.field-schema-row')).getText();
    +    });
    +  }
    +
    +  getGrokResponse() {
    +    let tableRows = element(by.css('metron-config-sensor-grok table tr'));
    +    return waitForElementPresence(tableRows).then(() => {
    +      return element.all(by.css('metron-config-sensor-grok table 
tr')).getText();
    +    });
    +  }
    +
    +  getFieldSchemaEditButton(name: string) {
    +    let fieldRowClassName = 'metron-config-sensor-field-schema 
.field-schema-row';
    +    return element(by.cssContainingText(fieldRowClassName, 
name)).element(by.xpath("..")).element(by.css('.fa-pencil'));
    +  }
    +
    +  getFormData() {
    +    let mainPanel = element.all(by.css('.metron-slider-pane-edit')).last();
    +    return protractor.promise.all([
    +      mainPanel.element(by.css('.form-title')).getText(),
    +      
mainPanel.element(by.css('input[name="sensorTopic"]')).getAttribute('value'),
    +      
mainPanel.element(by.css('select[formcontrolname="parserClassName"]')).getAttribute('value'),
    +      
mainPanel.element(by.css('input[formcontrolname="grokStatement"]')).getAttribute('value'),
    +      mainPanel.all(by.css('div[name="fieldSchema"] table tr')).getText(),
    +      mainPanel.all(by.css('div[name="threatTriage"] table tr')).getText(),
    +      
mainPanel.element(by.css('input[formcontrolname="index"]')).getAttribute('value'),
    +      
mainPanel.element(by.css('metron-config-number-spinner[name="batchSize"] 
input')).getAttribute('value'),
    +      mainPanel.all(by.css('metron-config-advanced-form 
input')).getAttribute('value')
    +    ]).then(args => {
    +      return  {
    +        title: args[0],
    +        parserName: args[1],
    +        parserType: args[2],
    +        grokStatement: args[3],
    +        fieldSchemaSummary: args[4],
    +        threatTriageSummary: args[5],
    +        indexName: args[6],
    +        batchSize: args[7],
    +        advancedConfig: args[8]
    +      }
    +    });
    +  }
    +
    +  getKafkaStatusText() {
    +    return element(by.css('input[name="sensorTopic"] + label')).getText();
    +  }
    +
    +  getThreatTrigaeRule() {
    +    return 
element.all(by.css('.threat-triage-rule-row.threat-triage-rule-str')).getText();
    +  }
    +
    +  getThreatTriageSummary() {
    +    return element.all(by.css('div[name="threatTriage"] table 
tr')).getText();
    +  }
    +
    +  getTransformText() {
    +    return 
element.all(by.css('.config.container')).all(by.css('.edit-pane-readonly')).getText();
    +  }
    +
    +  navigateTo(parserName: string) {
    +    let url = browser.baseUrl + '/sensors(dialog:sensors-readonly/'+ 
parserName + ')';
    +    return changeURL(url);
    +  }
    +
    +  setAdvancedConfig(key: string, value: string) {
    +    return element.all(by.css('.advanced-link')).click().then(() => {
    +      
element(by.css('input[formcontrolname="newConfigKey"]')).sendKeys(key);
    +      
element(by.css('input[ng-reflect-name="newConfigValue"]')).sendKeys(value);
    +    });
    +  }
    +
    +  saveFieldSchemaConfig() {
    +    return 
element.all(by.css('.config.container')).all(by.cssContainingText('.btn', 
'SAVE')).click();
    +  }
    +
    +  saveGrokStatement() {
    +    let saveButton = 
element(by.cssContainingText('metron-config-sensor-grok button', 'SAVE'));
    +    return waitForElementVisibility(saveButton).then(() => {
    +      return element(by.cssContainingText('metron-config-sensor-grok 
button', 'SAVE')).click();
    +    })
    +  }
    +
    +  saveThreatTriageRule() {
    +    return element(by.cssContainingText('metron-config-sensor-rule-editor 
.btn', 'SAVE')).click();
    +  }
    +
    +  setGrokStatement(statement: string) {
    --- End diff --
    
    This seems surprisingly sensor specific given the generality of the other 
calls. Are we presuming too much about the type of sensor here?


> Management UI
> -------------
>
>                 Key: METRON-623
>                 URL: https://issues.apache.org/jira/browse/METRON-623
>             Project: Metron
>          Issue Type: New Feature
>            Reporter: Ryan Merriman
>            Assignee: Ryan Merriman
>
> It would be useful to have a User Interface for modifying parser/enrichment 
> configurations and managing topologies.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to