Github user cestella commented on the issue:

    https://github.com/apache/metron/pull/717
  
    Testing Instructions beyond the normal smoke test (i.e. letting data
    flow through to the indices and checking them).
    
    # Preliminaries
    
    Set an environment variable to indicate `METRON_HOME`:
    * `export METRON_HOME=/usr/metron/0.4.1` 
    
    # Deploy the dummy parser
    * Edit `$METRON_HOME/config/zookeeper/parsers/dummy.json`:
    ```
    {
      "parserClassName":"org.apache.metron.parsers.json.JSONMapParser",
      "sensorTopic":"dummy"
    }
    ```
    * Create the dummy kafka topic:
      `/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper node1:2181 
--create --topic dummy --partitions 1 --replication-factor 1`
    * Persist config changes: `$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i 
$METRON_HOME/config/zookeeper -z node1:2181`
    * Start via `$METRON_HOME/bin/start_parser_topology.sh -k node1:6667 -z 
node1:2181 -s dummy`
    
    # Send dummy data through
    * Edit `~/msg.json` with the following content:
    ```
    { "guid" : "guid0", "sensor.type" : "dummy", "timestamp" : 100 }
    ```
    * Send `msg.json` through to kafka via `cat ~/msg.json | 
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list 
node1:6667 --topic dummy`
    
    ## Test Case: Update via patch
    * Patch the message in ES and create a new field 'project' by executing
      the following:
    ```
    curl -u user:password -X PATCH --header 'Content-Type: application/json' 
--header 'Accept: */*' -d '{
      "uuid" : "guid0",
        "sensorType" : "dummy",
        "patch" : [
        {
          "op": "add"
            , "path": "/project"
            , "value": "metron"
        }
      ]
    }' 'http://node1:8082/api/v1/update/patch'
    ```
    * Validate that the message has a field 'project':
    ```
    curl -XPOST 'http://localhost:9200/dummy*/_search?pretty' -d '
    {
      "_source" : [ "project" ]
    }
    '
    ```
    
    ## Test Case: Update via replace 
    * Replace the message in ES and create a couple of modifications:
      * new field `new_field` == "brand new"
      * modified `timestamp` == 7
    Execute the following:
    ```
    curl -u user:password -X POST --header 'Content-Type: application/json' 
--header 'Accept: */*' -d '{
         "uuid" : "guid0",
         "sensorType" : "dummy",
         "replacement" : {
           "source:type": "dummy",
           "guid" : "guid0",
           "new_field" : "brand new",
           "timestamp" : 7
          }
       }' 'http://node1:8082/api/v1/update/replace'
    ```
    * Validate that the message has a field 'project':
    ```
    curl -XPOST 'http://localhost:9200/dummy*/_search?pretty' -d '
    {
      "_source" : [ "new_field", "timestamp" ]
    }
    '
    ```
    ## Test Case: Validate that the changes persist to HBase
    * Execute `echo "scan 'metron_update'" | hbase shell` 
    * Ensure that 
      * There is one row: `guid0`
      * There are 2 columns 
      * The values associated with the columns correspond to the two 
modifications done in the tests above



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to