示例#1
0
    def test_java_example5(self):
        """
        Test done on java syntax. commandline has many other similar key value pairs.
        Expected Status : True
        """
        command_line = {"cmdline" : "/opt/oobe/jdk1.8.0_202/bin/java -Djava.util.logging.config.file=/opt/oobe/oobe-tomcat-9.0.31/conf/logging.properties " \
                    "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 " \
                    "-Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 " \
                    "-javaagent:/opt/oobe/newrelic-java-5.10.0/newrelic.jar -Xmx10310m -Xms512m -XX:+UseG1GC -XX:+UseStringDeduplication " \
                    "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/efs/dumps/i-0b23463e49967f3e4/dumpOnExit.hprof -XX:+UnlockDiagnosticVMOptions " \
                    "-XX:+DebugNonSafepoints -XX:+UnlockCommercialFeatures -XX:+FlightRecorder " \
                    "-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxage=2h,dumponexit=true," \
                    "dumponexitpath=/mnt/efs/dumps/i-0b23463e49967f3e4/JFRdump.jfr,loglevel=info,repository=/mnt/efs/dumps/i-0b23463e49967f3e4/temp/ " \
                    "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=15000 -Dcom.sun.management.jmxremote.ssl=false " \
                    "-Dcom.sun.management.jmxremote.authenticate=false -Dsun.net.inetaddr.ttl=30 -Dinstance.id=tomcat " \
                    "-Dcom.adobe.ffc.config=/opt/ffc/ffc-package/config/prod -Dcom.adobe.ffc.environment=prod -Dcom.adobe.ffc.scripts=/opt/ffc/ffc-package/scripts " \
                    "-Dserver.log.dir=/opt/oobe/oobe-tomcat-9.0.31/logs -Djboss.server.log.dir=/opt/oobe/oobe-tomcat-9.0.31/logs " \
                    "-Dlog4j.configurationFile=file:///opt/ffc/ffc-package/config/prod/log4j2.xml -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector " \
                    "-Dcom.netflix.servo.DefaultMonitorRegistry.registryClass=com.netflix.servo.jmx.JmxMonitorRegistry " \
                    "-Dignore.endorsed.dirs= -classpath /opt/oobe/apache-tomcat-9.0.31/bin/bootstrap.jar:/opt/oobe/apache-tomcat-9.0.31/bin/tomcat-juli.jar " \
                    "-Dcatalina.base=/opt/oobe/oobe-tomcat-9.0.31 -Dcatalina.home=/opt/oobe/apache-tomcat-9.0.31 " \
                    "-Djava.io.tmpdir=/opt/oobe/oobe-tomcat-9.0.31/temp org.apache.catalina.startup.Bootstrap start"}

        key_aliases = ["Djdk.tls.ephemeralDHKeySize"]
        params = {'key_aliases': key_aliases, 'delimiter': '='}
        block_dict = {'args': params}
        chain_args = {'result': command_line}
        extra_args = {'chaining_args': chain_args}
        status, val = command_line_parser.execute("test-1", block_dict,
                                                  extra_args)
        expected_value = ["2048"]
        assert val['result'] == expected_value
示例#2
0
 def test_no_keys_given(self):
     """
     Keys are not given
     Expected Status : False
     """
     command_line = {"cmdline": ""}
     params = {'key_aliases': '', 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     assert val['result'] == []
示例#3
0
 def test_second_regex(self):
     """
         Match is done through second regex in code
         Expected Status : True
     """
     command_line = {"cmdline": "docker run -it -v a:b -v d:e"}
     key_aliases = ["volume", "v"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["a:b", "d:e"]
     assert val['result'] == expected_value
示例#4
0
 def test_value_is_a_list(self):
     """
     Value is a list
     Expected Status : True
     """
     command_line = {"cmdline": "tool_name --key:[\"value1\", \"value2\"]"}
     key_aliases = ["key"]
     params = {'key_aliases': key_aliases, 'delimiter': ':'}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["[\"value1\", \"value2\"]"]
     assert val['result'] == expected_value
示例#5
0
 def test_key_alias_with_space(self):
     """
     Key alias has spaces
     Expected Status : True
     """
     command_line = {"cmdline": "docker network inspect 9f9408b2d29e"}
     key_aliases = ["network inspect"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["9f9408b2d29e"]
     assert val['result'] == expected_value
示例#6
0
 def test_extra_spaces_different_delimiter(self):
     """
     Extra spaces present between key value
     Expected Status : True
     """
     command_line = {"cmdline": "docker run -v    =     a:b"}
     key_aliases = ["v"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = [('a:b')]
     assert val['result'] == expected_value
示例#7
0
 def testExecute2(self):
     """
     Passing cmdline from args
     should pass
     """
     block_id = "test-1"
     block_dict = {
         'args': {
             'cmdline': 'app --config-file=abc test',
             'key_aliases': ['config-file'],
             'delimiter': '='
         }
     }
     status, result_dict = command_line_parser.execute(block_id, block_dict)
     self.assertTrue(status)
     self.assertEqual(result_dict['result'], ['abc'])
示例#8
0
 def test_java_example2(self):
     """
     Test done on java syntax. Key has colon.
     Expected Status : True
     """
     command_line = {"cmdline" : "/etc/alternatives/jre/bin/java -Xmx1024m -XX:OnOutOfMemoryError=kill -9 %p -XX:MinHeapFreeRatio=10 -server " \
                 "-cp /usr/share/aws/emr/instance-controller/lib/*:/home/hadoop/conf -Dlog4j.defaultInitOverride aws157.instancecontroller.Main"}
     key_aliases = ["XX:MinHeapFreeRatio"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["10"]
     assert val['result'] == expected_value
示例#9
0
 def test_with_special_chars_in_value(self):
     """
         Test done with header value in Curl
         Expected Status : True
     """
     command_line = {
         "cmdline": "curl -H \"X-Header: value\" https://www.keycdn.com"
     }
     key_aliases = ["-H"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["X-Header: value"]
     assert val['result'] == expected_value
示例#10
0
 def test_multiple_key_aliases(self):
     """
         result has results for multiple keys
         Expected Status : True
     """
     command_line = {
         "cmdline": "docker run -v=\"a:b\" -v=\"d:e\" --log-level=\"debug\""
     }
     key_aliases = ["volume", "v"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["a:b", "d:e"]
     assert val['result'] == expected_value
示例#11
0
 def testExecute1(self):
     """
     should pass
     """
     block_id = "test-1"
     block_dict = {
         'args': {
             'key_aliases': ['config-file'],
             'delimiter': '='
         }
     }
     chain_args = {'result': {'cmdline': 'app --config-file=abc test'}}
     extra_args = {'chaining_args': chain_args}
     status, result_dict = command_line_parser.execute(
         block_id, block_dict, extra_args)
     self.assertTrue(status)
     self.assertEqual(result_dict['result'], ['abc'])
示例#12
0
 def test_do_not_match_partial_matching_key_alias_short(self):
     """
         Partial match of key is not done. Here the key is substring of commandline string
         Expected Status : True
     """
     command_line = {
         "cmdline":
         "dockerd --config-file=\"/etc/docker/daemon.json\" --log-level=\"debug\""
     }
     key_aliases = ["level"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = []
     assert val['result'] == expected_value
示例#13
0
 def test_curl_quote_in_value(self):
     """
         The value has a single quote and must be present in final result.
         Expected Status : True
     """
     command_line = {
         "cmdline":
         "curl -X POST -d \"username=your'susername&password=yourpassword\" http://www.yourwebsite.com/login/"
     }
     key_aliases = ["d"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["username=your'susername&password=yourpassword"]
     assert val['result'] == expected_value
示例#14
0
 def test_long_option_with_complex_value(self):
     """
     value has special chars
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "docker run --cidfile /tmp/docker_test.cid ubuntu echo \"test\""
     }
     key_aliases = ["cidfile"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["/tmp/docker_test.cid"]
     assert val['result'] == expected_value
示例#15
0
 def test_value_with_special_char(self):
     """
     value is a URL
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "/configmap-reload --volume-dir=/etc/prometheus --webhook-url=http://localhost:9090/-/reload"
     }
     key_aliases = ["webhook-url"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["http://localhost:9090/-/reload"]
     assert val['result'] == expected_value
示例#16
0
 def test_key_value_inside_dict(self):
     """
     key value pair is inside a dict
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "tool_name --key={\"subkey1\":\"value1\", \"subkey2\":\"value2\"}"
     }
     key_aliases = ["subkey1"]
     params = {'key_aliases': key_aliases, 'delimiter': ':'}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["value1"]
     assert val['result'] == expected_value
示例#17
0
 def test_value_with_multiple_special_chars(self):
     """
     Value has word separator (comma)
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image"
     }
     key_aliases = ["tmpfs"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["/run:rw,noexec,nosuid,size=65536k"]
     assert val['result'] == expected_value
示例#18
0
 def test_values_with_single_quotes(self):
     """
         values in command line have single-quotes
         Expected Status : True
     """
     command_line = {
         "cmdline": "docker run -v=\'a:b\' -v=\'d:e\' --log-level=\'debug\'"
     }
     key_aliases = ["volume", "v"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["a:b", "d:e"]
     assert val['result'][0] == expected_value[0]
     assert val['result'][1] == expected_value[1]
示例#19
0
 def test_java_example3(self):
     """
     Test done on java syntax. Value has assignment operator
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "/apps/api-etms/jdk1.8.0_241/bin/java -XX:PermSize=128m -XX:MaxPermSize=256m -jar /apps/api-etms/usage-tracking-services-launchpad.jar"
     }
     key_aliases = ["XX:PermSize"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["128m"]
     assert val['result'] == expected_value
示例#20
0
 def test_curl_example_different_position(self):
     """
         Test performed on curl syntax. Tweaking commandline
         Expected Status : True
     """
     command_line = {
         "cmdline":
         "curl -X POST -d 'username=yourusername&password=yourpassword' http://www.yourwebsite.com/login/"
     }
     key_aliases = ["d"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["username=yourusername&password=yourpassword"]
     assert val['result'] == expected_value
示例#21
0
 def test_java_example1(self):
     """
     Test done on java syntax.
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "nlserver watchdog -svc -noconsole -pidfile:/var/run/nlserver6.pid"
     }
     key_aliases = ["pidfile"]
     params = {'key_aliases': key_aliases, 'delimiter': ':'}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["/var/run/nlserver6.pid"]
     assert val['result'] == expected_value
示例#22
0
 def test_value_with_assignment_operator(self):
     """
     Value has assignment operator.
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "docker run -it --storage-opt size=120G fedora /bin/bash"
     }
     key_aliases = ["storage-opt"]
     params = {'key_aliases': key_aliases, 'delimiter': ' '}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = ["size=120G"]
     assert val['result'] == expected_value
示例#23
0
 def test_key_alias_not_found_in_cmdline(self):
     """
     Key alias is not found in the commandLine
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "dockerd --config-file=\"/etc/docker/daemon.json\" --log-level=\"debug\""
     }
     key_aliases = ["not_found"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = []
     assert val['result'] == expected_value
示例#24
0
    def test_match_key_alias_in_middle_of_cmdline(self):
        """
        Key alias is in the middle of commandLine
        Expected Status : True
        """
        command_line = {
            "cmdline":
            "dockerd --config-file=\"/etc/docker/daemon.json\" --log-level=\"debug\""
        }
        key_aliases = ["config-file"]
        block_id = "test-1"
        block_dict = {'args': {'key_aliases': key_aliases, 'delimiter': '='}}
        chain_args = {'result': command_line}
        extra_args = {'chaining_args': chain_args}
        status, val = command_line_parser.execute(block_id, block_dict,
                                                  extra_args)

        expected_value = ["/etc/docker/daemon.json"]
        assert val['result'] == expected_value
示例#25
0
 def test_value_has_regex(self):
     """
     Value is a regex
     Expected Status : True
     """
     command_line = {
         "cmdline":
         r'/bin/node_exporter --collector.diskstats.ignored-devices=^(dm-\d+|ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\d+n\d+p)\d+$'
     }
     key_aliases = ["collector.diskstats.ignored-devices"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = [
         r'^(dm-\d+|ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\d+n\d+p)\d+$'
     ]
     assert val['result'] == expected_value
示例#26
0
 def test_value_with_brackets(self):
     """
     Value is a dict
     Expected Status : True
     """
     command_line = {
         "cmdline":
         'mesos-journald-logger --journald_labels={"labels":[{"key":"DCOS_PACKAGE_IS_FRAMEWORK","value":"false"}]} --logrotate_max_size={"size":"50MB"}'
     }
     key_aliases = ["journald_labels"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = [
         '{"labels":[{"key":"DCOS_PACKAGE_IS_FRAMEWORK","value":"false"}]}'
     ]
     assert val['result'] == expected_value
示例#27
0
 def test_value_has_regex2(self):
     """
     Value is a regex (test2)
     Expected Status : True
     """
     command_line = {
         "cmdline":
         "/bin/sh -c nice -n 15 ionice -c2 -n7 clamscan -r -d /var/lib/clamav --infected --exclude-dir='^/proc|^/sys|^/dev|^/mnt|^/export|^/var/lib/mysql|^/volr' / > /var/log/clamav/clamscan.log"
     }
     key_aliases = ["exclude-dir"]
     params = {'key_aliases': key_aliases, 'delimiter': '='}
     block_dict = {'args': params}
     chain_args = {'result': command_line}
     extra_args = {'chaining_args': chain_args}
     status, val = command_line_parser.execute("test-1", block_dict,
                                               extra_args)
     expected_value = [
         '^/proc|^/sys|^/dev|^/mnt|^/export|^/var/lib/mysql|^/volr'
     ]
     assert val['result'] == expected_value