Code

integration tests: Make sure test_lib always knows about the socket file.
[sysdb.git] / t / integration / simple_query.sh
index 8f9e3753fa7924d4cae67127a098201ee3d02269..677ce2fe0de18af1e27e249d0c8c8f2929cee546 100755 (executable)
@@ -54,7 +54,7 @@ echo "$output" | grep "Failed to parse query 'INVALID'"
 echo "$output" | grep "parse error: syntax error"
 
 # Simple, successful commands.
-output="$( run_sysdb -H "$SOCKET_FILE" -c LIST )"
+output="$( run_sysdb -H "$SOCKET_FILE" -c 'LIST hosts' )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"host2.example.com"' \
@@ -62,7 +62,7 @@ echo "$output" \
        | grep -F '"other.host.name"' \
        | grep -F '"some.host.name"'
 
-output="$( echo 'LIST;' | run_sysdb -H "$SOCKET_FILE" )" || echo $?
+output="$( echo 'LIST hosts;' | run_sysdb -H "$SOCKET_FILE" )" || echo $?
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"host2.example.com"' \
@@ -70,7 +70,20 @@ echo "$output" \
        | grep -F '"other.host.name"' \
        | grep -F '"some.host.name"'
 
-output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH 'host1.example.com'" )"
+output="$( run_sysdb -H "$SOCKET_FILE" -c 'LIST services' )"
+echo "$output" \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"host2.example.com"' \
+       | grep -F '"localhost"' \
+       | grep -F '"some.host.name"' \
+       | grep -F '"mock service"' \
+       | grep -F '"other service"' \
+       | grep -F '"database"' \
+       | grep -F '"example service one"' \
+       | grep -F '"example service two"' \
+       | grep -F '"example service three"'
+
+output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH host 'host1.example.com'" )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"mock service"' \
@@ -80,16 +93,34 @@ echo "$output" | grep -F 'localhost' && exit 1
 echo "$output" | grep -F 'other.host.name' && exit 1
 echo "$output" | grep -F 'some.host.name' && exit 1
 
-(echo 'LIST;'; sleep 1; echo "FETCH 'host1.example.com'") \
+(echo 'LIST hosts;'; sleep 1; echo "FETCH host 'host1.example.com'") \
        | run_sysdb -H "$SOCKET_FILE"
 
 # When requesting information for unknown hosts, expect a non-zero exit code.
-output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH 'does.not.exist'" )" \
+output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH host 'does.not.exist'" )" \
        && exit 1
 echo "$output" | grep -F 'not found'
 
 output="$( run_sysdb -H "$SOCKET_FILE" \
-       -c "LOOKUP hosts MATCHING attribute.architecture = 'x42'" )"
+       -c "LOOKUP hosts MATCHING metric = 'foo/bar/qux'" )"
+echo "$output" \
+       | grep -F '"some.host.name"' \
+       | grep -F '"other.host.name"'
+echo "$output" | grep -F 'localhost' && exit 1
+echo "$output" | grep -F 'host1.example.com' && exit 1
+echo "$output" | grep -F 'host2.example.com' && exit 1
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts MATCHING service = 'mock service'" )"
+echo "$output" \
+       | grep -F '"some.host.name"' \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"host2.example.com"'
+echo "$output" | grep -F 'localhost' && exit 1
+echo "$output" | grep -F 'other.host.name' && exit 1
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts MATCHING attribute[architecture] = 'x42'" )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"host2.example.com"'
@@ -106,6 +137,33 @@ echo "$output" | grep -F 'other.host.name' && exit 1
 echo "$output" | grep -F 'host1.example.com' && exit 1
 echo "$output" | grep -F 'host2.example.com' && exit 1
 
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts MATCHING attribute != 'architecture' 
+               FILTER .age >= 0s" )"
+echo "$output" \
+       | grep -F '"some.host.name"' \
+       | grep -F '"localhost"'
+echo "$output" | grep -F 'other.host.name' && exit 1
+echo "$output" | grep -F 'host1.example.com' && exit 1
+echo "$output" | grep -F 'host2.example.com' && exit 1
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts MATCHING attribute != 'architecture' 
+               FILTER .last_update < 2Y" )"
+echo $output | grep -E '^\[\]$'
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts FILTER .backend = 'backend::mock_plugin'" )"
+echo "$output" \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"host2.example.com"' \
+       | grep -F '"localhost"' \
+       | grep -F '"other.host.name"' \
+       | grep -F '"some.host.name"'
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts FILTER .backend = 'invalid'" )"
+echo $output | grep -E '^\[\]$'
+
 output="$( run_sysdb -H "$SOCKET_FILE" \
        -c "LOOKUP hosts MATCHING service = 'sysdbd'" )"
 echo "$output" | grep -F '"localhost"'
@@ -125,8 +183,15 @@ echo "$output" | grep -F 'localhost' && exit 1
 
 # When querying hosts that don't exist, expect a zero exit code.
 output="$( run_sysdb -H "$SOCKET_FILE" \
-       -c "LOOKUP hosts MATCHING attribute.invalid = 'none'" )"
+       -c "LOOKUP hosts MATCHING attribute[invalid] = 'none'" )"
 echo $output | grep -E '^\[\]$'
 
+run_sysdb -H "$SOCKET_FILE" \
+               -c "TIMESERIES 'invalid.host'.'invalid-metric'" && exit 1
+
+# Does not work yet since there is no fetcher plugin.
+run_sysdb -H "$SOCKET_FILE" \
+               -c "TIMESERIES 'some.host.name'.'foo/bar/qux'" && exit 1
+
 stop_sysdbd