You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@metron.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/10/19 22:22:00 UTC

[jira] [Commented] (METRON-1831) Project Version Substitution Not Working

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

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

GitHub user nickwallen opened a pull request:

    https://github.com/apache/metron/pull/1243

    METRON-1831 Project Version Substitution Not Working

    When running the stellar REPL script, a warning is reported.
    ```
    bin/stellar: line 36: ${project.version}: bad substitution
    ```
    For example...
    ```
    [root@node1 ~]# source /etc/default/metron
    [root@node1 ~]# cd $METRON_HOME
    [root@node1 0.6.1]# bin/stellar -z $ZOOKEEPER
    bin/stellar: line 36: ${project.version}: bad substitution
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/usr/metron/0.6.1/lib/metron-profiler-repl-0.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/usr/hdp/2.6.5.0-292/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    Stellar, Go!
    Functions are loading lazily in the background and will be unavailable until loaded fully.
    {es.clustername=metron, es.ip=node1:9300, es.date.format=yyyy.MM.dd.HH, parser.error.topic=indexing, update.hbase.table=metron_update, update.hbase.cf=t, es.client.settings={client.transport.ping_timeout=500s}, es.document.id=, profiler.client.period.duration=15, profiler.client.period.duration.units=MINUTES, user.settings.hbase.table=user_settings, user.settings.hbase.cf=cf, bootstrap.servers=node1:6667, source.type.field=source:type, threat.triage.score.field=threat:triage:score, enrichment.writer.batchSize=15, enrichment.writer.batchTimeout=0, profiler.writer.batchSize=15, profiler.writer.batchTimeout=0, geo.hdfs.file=/apps/metron/geo/default/GeoLite2-City.mmdb.gz}
    ```
    ## Problem
    
    In the stellar REPL launch script, the ${project.version} is not getting substituted at build time, perhaps because it is wrapped inside another ${...}.  This is probably why it is an issue in the stellar script and not the other scripts.
    
    ## Change 
    
    * The stellar REPL launch script was changed in #1232 , but I did not see this warning occur when testing that change.  
    * Since #1232, we source `/etc/default/metron` which defines `METRON_HOME` automatically. There really is no need to set `METRON_HOME` and `METRON_VERSION` in the script any longer.  It is cleaner to just remove this (which I almost did in #1232).  
    * I use a `set -u` so the script will error if `METRON_HOME` is not defined by some odd happenstance.
    
    ## Testing
    
    1. Stand-up a development environment.
    
    1. Launch the Stellar REPL.  Ensure there is no warning reported.
        ```
        [vagrant@node1 ~]$ sudo su -
        [root@node1 ~]# cd /usr/metron/0.6.1/
        [root@node1 0.6.1]# bin/stellar
        SLF4J: Class path contains multiple SLF4J bindings.
        SLF4J: Found binding in [jar:file:/usr/metron/0.6.1/lib/metron-profiler-repl-0.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
        SLF4J: Found binding in [jar:file:/usr/hdp/2.6.5.0-292/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
        SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
        SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
        Stellar, Go!
        Functions are loading lazily in the background and will be unavailable until loaded fully.
        {}
        [Stellar]>>>
        ```
    1. Ensure the standard suite of Stellar functions are discovered.
    
        ```
        [Stellar]>>> %functions
        ABS, APPEND_IF_MISSING, BIN, BLOOM_ADD, BLOOM_EXISTS, BLOOM_INIT, BLOOM_MERGE, BYTEARRAY_MATCHER, CEILING, CHOMP, CHOP, CONFIG_GET, CONFIG_PUT, COS, COUNT_MATCHES, DATE_FORMAT, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR, DECODE, DOMAIN_REMOVE_SUBDOMAINS, DOMAIN_REMOVE_TLD, DOMAIN_TO_TLD, DOMAIN_TYPOSQUAT, ENCODE, ENDS_WITH, ENRICHMENT_EXISTS, ENRICHMENT_GET, ENRICHMENT_STELLAR_TRANSFORM_ADD, ENRICHMENT_STELLAR_TRANSFORM_PRINT, ENRICHMENT_STELLAR_TRANSFORM_REMOVE, EXP, FILL_LEFT, FILL_RIGHT, FILTER, FLOOR, FORMAT, FUZZY_LANGS, FUZZY_SCORE, GEOHASH_CENTROID, GEOHASH_DIST, GEOHASH_FROM_LATLONG, GEOHASH_FROM_LOC, GEOHASH_MAX_DIST, GEOHASH_TO_LATLONG, GEO_GET, GET, GET_FIRST, GET_HASHES_AVAILABLE, GET_LAST, GET_SUPPORTED_ENCODINGS, GROK_EVAL, GROK_PREDICT, HASH, HDFS_LS, HDFS_READ, HDFS_READ_LINES, HDFS_RM, HDFS_WRITE, HLLP_ADD, HLLP_CARDINALITY, HLLP_INIT, HLLP_MERGE, INDEXING_SET_BATCH, INDEXING_SET_ENABLED, INDEXING_SET_INDEX, IN_SUBNET, IS_DATE, IS_DOMAIN, IS_EMAIL, IS_EMPTY, IS_ENCODING, IS_INTEGER, IS_IP, IS_NAN, IS_URL, IT_ENTROPY, JOIN, KAFKA_FIND, KAFKA_GET, KAFKA_PROPS, KAFKA_PUT, KAFKA_SEEK, KAFKA_TAIL, LENGTH, LIST_ADD, LN, LOCAL_LS, LOCAL_READ, LOCAL_READ_LINES, LOCAL_RM, LOCAL_WRITE, LOG10, LOG2, MAAS_GET_ENDPOINT, MAAS_MODEL_APPLY, MAP, MAP_EXISTS, MAP_GET, MAX, MIN, MONTH, MULTISET_ADD, MULTISET_INIT, MULTISET_MERGE, MULTISET_REMOVE, MULTISET_TO_SET, OBJECT_GET, OUTLIER_MAD_ADD, OUTLIER_MAD_SCORE, OUTLIER_MAD_STATE_MERGE, PARSER_STELLAR_TRANSFORM_ADD, PARSER_STELLAR_TRANSFORM_PRINT, PARSER_STELLAR_TRANSFORM_REMOVE, PREPEND_IF_MISSING, PROFILER_APPLY, PROFILER_FLUSH, PROFILER_INIT, PROFILE_FIXED, PROFILE_GET, PROFILE_WINDOW, PROTOCOL_TO_NAME, REDUCE, REGEXP_GROUP_VAL, REGEXP_MATCH, REGEXP_REPLACE, ROUND, SAMPLE_ADD, SAMPLE_GET, SAMPLE_INIT, SAMPLE_MERGE, SET_ADD, SET_INIT, SET_MERGE, SET_REMOVE, SHELL_EDIT, SHELL_GET_EXPRESSION, SHELL_LIST_VARS, SHELL_MAP2TABLE, SHELL_VARS2MAP, SIN, SPLIT, SQRT, STARTS_WITH, STATS_ADD, STATS_BIN, STATS_COUNT, STATS_GEOMETRIC_MEAN, STATS_INIT, STATS_KURTOSIS, STATS_MAX, STATS_MEAN, STATS_MERGE, STATS_MIN, STATS_PERCENTILE, STATS_POPULATION_VARIANCE, STATS_QUADRATIC_MEAN, STATS_SD, STATS_SKEWNESS, STATS_SUM, STATS_SUM_LOGS, STATS_SUM_SQUARES, STATS_VARIANCE, STRING_ENTROPY, SUBSTRING, SYSTEM_ENV_GET, SYSTEM_PROPERTY_GET, TAN, THREAT_TRIAGE_ADD, THREAT_TRIAGE_CONFIG, THREAT_TRIAGE_INIT, THREAT_TRIAGE_PRINT, THREAT_TRIAGE_REMOVE, THREAT_TRIAGE_SCORE, THREAT_TRIAGE_SET_AGGREGATOR, TLSH_DIST, TO_DOUBLE, TO_EPOCH_TIMESTAMP, TO_FLOAT, TO_INTEGER, TO_JSON_LIST, TO_JSON_MAP, TO_JSON_OBJECT, TO_LONG, TO_LOWER, TO_STRING, TO_UPPER, TRIM, URL_TO_HOST, URL_TO_PATH, URL_TO_PORT, URL_TO_PROTOCOL, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZIP, ZIP_LONGEST
        ```
    
    ## Pull Request Checklist
    
    - [ ] Is there a JIRA ticket associated with this PR? If not one needs to be created at [Metron Jira](https://issues.apache.org/jira/browse/METRON/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel).
    - [ ] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
    - [ ] Has your PR been rebased against the latest commit within the target branch (typically master)?
    - [ ] Have you included steps to reproduce the behavior or problem that is being changed or addressed?
    - [ ] Have you included steps or a guide to how the change may be verified and tested manually?
    - [ ] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
    - [ ] Have you written or updated unit tests and or integration tests to verify your changes?
    - [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)?
    - [ ] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nickwallen/metron METRON-1831

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/metron/pull/1243.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1243
    
----
commit 020fca5402a40f2acccb5f80d4295368bf3761de
Author: Nick Allen <ni...@...>
Date:   2018-10-19T22:00:59Z

    METRON-1831 Project Version Substitution Not Working

----


> Project Version Substitution Not Working
> ----------------------------------------
>
>                 Key: METRON-1831
>                 URL: https://issues.apache.org/jira/browse/METRON-1831
>             Project: Metron
>          Issue Type: Bug
>            Reporter: Nick Allen
>            Priority: Major
>
> Steps to Replicate:
>  # Spin-up development environment.
>  # Launch REPL.
>  # Notice the warning:
> {code:java}
> bin/stellar: line 36: ${project.version}: bad substitution{code}
>  
> {code:java}
> [root@node1 ~]# source /etc/default/metron
> [root@node1 ~]# cd $METRON_HOME
> [root@node1 0.6.1]# bin/stellar -z $ZOOKEEPER
> bin/stellar: line 36: ${project.version}: bad substitution
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in [jar:file:/usr/metron/0.6.1/lib/metron-profiler-repl-0.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in [jar:file:/usr/hdp/2.6.5.0-292/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
> Stellar, Go!
> Functions are loading lazily in the background and will be unavailable until loaded fully.
> {es.clustername=metron, es.ip=node1:9300, es.date.format=yyyy.MM.dd.HH, parser.error.topic=indexing, update.hbase.table=metron_update, update.hbase.cf=t, es.client.settings={client.transport.ping_timeout=500s}, es.document.id=, profiler.client.period.duration=15, profiler.client.period.duration.units=MINUTES, user.settings.hbase.table=user_settings, user.settings.hbase.cf=cf, bootstrap.servers=node1:6667, source.type.field=source:type, threat.triage.score.field=threat:triage:score, enrichment.writer.batchSize=15, enrichment.writer.batchTimeout=0, profiler.writer.batchSize=15, profiler.writer.batchTimeout=0, geo.hdfs.file=/apps/metron/geo/default/GeoLite2-City.mmdb.gz}{code}
>  
> This only seems to be a problem with the $METRON_HOME/bin/stellar script.
> {code:java}
> [root@node1 0.6.1]# grep project.version bin/*
> bin/stellar:export METRON_VERSION="${METRON_VERSION:-${project.version}}"{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)