[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574999#comment-16574999 ] ASF GitHub Bot commented on METRON-1728: Github user mmiklavc commented on the issue: https://github.com/apache/metron/pull/1151 Closing as merged > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16575000#comment-16575000 ] ASF GitHub Bot commented on METRON-1728: Github user mmiklavc closed the pull request at: https://github.com/apache/metron/pull/1151 > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574829#comment-16574829 ] ASF GitHub Bot commented on METRON-1728: Github user justinleet commented on the issue: https://github.com/apache/metron/pull/1151 +1 by inspection. Thanks for the improvement! > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16573711#comment-16573711 ] ASF GitHub Bot commented on METRON-1728: Github user mmiklavc commented on a diff in the pull request: https://github.com/apache/metron/pull/1151#discussion_r208697541 --- Diff: metron-platform/metron-pcap/src/main/java/org/apache/metron/pcap/mr/PcapJob.java --- @@ -216,20 +218,22 @@ public void setCompleteCheckInterval(long interval) { Configuration hadoopConf = PcapOptions.HADOOP_CONF.get(configuration, Configuration.class); FileSystem fileSystem = PcapOptions.FILESYSTEM.get(configuration, FileSystem.class); Path basePath = PcapOptions.BASE_PATH.getTransformed(configuration, Path.class); -Path baseInterimResultPath = PcapOptions.BASE_INTERIM_RESULT_PATH.getTransformed(configuration, Path.class); +Path baseInterimResultPath = PcapOptions.BASE_INTERIM_RESULT_PATH +.getTransformedOrDefault(configuration, Path.class, +new Path(PcapGlobalDefaults.BASE_INTERIM_RESULT_PATH_DEFAULT)); long startTime; if (configuration.containsKey(PcapOptions.START_TIME_NS.getKey())) { - startTime = PcapOptions.START_TIME_NS.get(configuration, Long.class); + startTime = PcapOptions.START_TIME_NS.getOrDefault(configuration, Long.class, 0L); } else { - startTime = PcapOptions.START_TIME_MS.get(configuration, Long.class) * 100; + startTime = PcapOptions.START_TIME_MS.getOrDefault(configuration, Long.class, 0L) * 100; } long endTime; if (configuration.containsKey(PcapOptions.END_TIME_NS.getKey())) { - endTime = PcapOptions.END_TIME_NS.get(configuration, Long.class); + endTime = PcapOptions.END_TIME_NS.getOrDefault(configuration, Long.class, System.nanoTime()); --- End diff -- @justinleet good catch! Thanks. > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16573607#comment-16573607 ] ASF GitHub Bot commented on METRON-1728: Github user justinleet commented on a diff in the pull request: https://github.com/apache/metron/pull/1151#discussion_r208679310 --- Diff: metron-platform/metron-pcap/src/main/java/org/apache/metron/pcap/mr/PcapJob.java --- @@ -216,20 +218,22 @@ public void setCompleteCheckInterval(long interval) { Configuration hadoopConf = PcapOptions.HADOOP_CONF.get(configuration, Configuration.class); FileSystem fileSystem = PcapOptions.FILESYSTEM.get(configuration, FileSystem.class); Path basePath = PcapOptions.BASE_PATH.getTransformed(configuration, Path.class); -Path baseInterimResultPath = PcapOptions.BASE_INTERIM_RESULT_PATH.getTransformed(configuration, Path.class); +Path baseInterimResultPath = PcapOptions.BASE_INTERIM_RESULT_PATH +.getTransformedOrDefault(configuration, Path.class, +new Path(PcapGlobalDefaults.BASE_INTERIM_RESULT_PATH_DEFAULT)); long startTime; if (configuration.containsKey(PcapOptions.START_TIME_NS.getKey())) { - startTime = PcapOptions.START_TIME_NS.get(configuration, Long.class); + startTime = PcapOptions.START_TIME_NS.getOrDefault(configuration, Long.class, 0L); } else { - startTime = PcapOptions.START_TIME_MS.get(configuration, Long.class) * 100; + startTime = PcapOptions.START_TIME_MS.getOrDefault(configuration, Long.class, 0L) * 100; } long endTime; if (configuration.containsKey(PcapOptions.END_TIME_NS.getKey())) { - endTime = PcapOptions.END_TIME_NS.get(configuration, Long.class); + endTime = PcapOptions.END_TIME_NS.getOrDefault(configuration, Long.class, System.nanoTime()); --- End diff -- Nanotime isn't actually current time in nanos or anything objectively meaningful (and can vary by jvm or be negative or whatever). Check out https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime() Particularly, > This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). I'd just make it System.currentTimeMillis() and adjust, since I don't think there's a clean way to get a real nanos timestamp in Java (at least until 9, maybe) > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (METRON-1728) Handle null values in config in Pcap backend more gracefully
[ https://issues.apache.org/jira/browse/METRON-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16572241#comment-16572241 ] ASF GitHub Bot commented on METRON-1728: GitHub user mmiklavc opened a pull request: https://github.com/apache/metron/pull/1151 METRON-1728: Handle null values in config in Pcap backend more gracefully ## Contributor Comments https://issues.apache.org/jira/browse/METRON-1728 I modified the ConfigOptions interface to provide the ability to handle default values similar to the Map interface. ie getOrDefault. For PcapJob, I only improved/changed the values we expect to be user-supplied, ie start time, end time, etc., so we don't throw NPE's if a value gets lost in translation. I think we should definitely still add some validation to users via both REST and the UI similar to what is done in PcapCLI. **Note:** This PR is an improvement to existing functionality, not a regression fix. ## Pull Request Checklist ### For all changes: - [x] 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). - [x] Does your PR title start with METRON- where is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [x] Has your PR been rebased against the latest commit within the target branch (typically master)? ### For code changes: - [x] Have you included steps to reproduce the behavior or problem that is being changed or addressed? - [x] Have you included steps or a guide to how the change may be verified and tested manually? - [x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via: ``` mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh ``` - [x] Have you written or updated unit tests and or integration tests to verify your changes? - [x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent? ### For documentation related changes: n/a Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. It is also recommended that [travis-ci](https://travis-ci.org) is set up for your personal repository such that your branches are built there before submitting a pull request. You can merge this pull request into a Git repository by running: $ git pull https://github.com/mmiklavc/metron pcap-config-handle-nulls Alternatively you can review and apply these changes as the patch at: https://github.com/apache/metron/pull/1151.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 #1151 commit 1fee540969b2f192e58805cdca1ce0a666759af6 Author: Michael Miklavcic Date: 2018-08-07T19:29:41Z Handle null values in config backend more gracefully > Handle null values in config in Pcap backend more gracefully > > > Key: METRON-1728 > URL: https://issues.apache.org/jira/browse/METRON-1728 > Project: Metron > Issue Type: Sub-task >Reporter: Michael Miklavcic >Assignee: Michael Miklavcic >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)