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

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

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

    https://github.com/apache/incubator-metron/pull/312#discussion_r83660563
  
    --- Diff: 
metron-platform/metron-common/src/main/java/org/apache/metron/common/dsl/functions/SystemFunctions.java
 ---
    @@ -0,0 +1,75 @@
    +/**
    + * 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.
    + */
    +package org.apache.metron.common.dsl.functions;
    +
    +import org.apache.metron.common.dsl.BaseStellarFunction;
    +import org.apache.metron.common.dsl.Stellar;
    +import org.apache.metron.common.system.Environment;
    +
    +import java.util.List;
    +
    +public class SystemFunctions {
    +
    +  @Stellar(namespace = "SYSTEM",
    +          name = "ENV_GET",
    +          description = "Returns the value associated with an environment 
variable",
    +          params = {
    +                  "env_var - Environment variable name to get the value 
for"
    +          },
    +          returns = "String"
    +  )
    +  public static class EnvGet extends BaseStellarFunction {
    +    private Environment env;
    +
    +    public EnvGet() {
    +      this(new Environment());
    +    }
    +
    +    public EnvGet(Environment env) {
    +      this.env = env;
    +    }
    +
    +    @Override
    +    public Object apply(List<Object> args) {
    +      if (args.size() == 0) {
    +        return null;
    +      } else {
    +        return env.get((String) args.get(0));
    --- End diff --
    
    Well, if we were going to coerce strings, I'd suggest using the 
`ConversionUtils` stuff just for consistency.  I had thought of suggesting 
coercing the argument, but I couldn't imagine any situation where the coerced 
string would be what I would want.  Like, if you passed in a list or a number 
accidentally, would you rather coercion or just return null?
    
    I guess the argument for coercion is it does no harm.  If there's no 
environment variable, then fine, then it'll return null anyway.  If there is, 
then you have done good.  I don't know, I am fine with either way.


> Add environment variable and system property functions to the Stellar language
> ------------------------------------------------------------------------------
>
>                 Key: METRON-505
>                 URL: https://issues.apache.org/jira/browse/METRON-505
>             Project: Metron
>          Issue Type: Improvement
>            Reporter: Michael Miklavcic
>            Assignee: Michael Miklavcic
>
> Stellar and the Stellar REPL allow you assign variables and compose functions 
> for use in parsing, enrichment, and threat triage. There is currently no 
> mechanism for extracting values from environment variables and Java system 
> properties. This Jira tracks adding functions for exposing this functionality 
> in Stellar.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to