Commit 357a7ea3 authored by Tomek Mrugalski's avatar Tomek Mrugalski 🛰

[5137] version is now reported properly.

parent ca2ff7fc
...@@ -40,7 +40,9 @@ endif ...@@ -40,7 +40,9 @@ endif
# this is done here since configure.ac AC_OUTPUT doesn't expand exec_prefix # this is done here since configure.ac AC_OUTPUT doesn't expand exec_prefix
kea-shell: kea-shell.py kea-shell: kea-shell.py
$(SED) "s|@@PYTHONPATH@@|@pyexecdir@|" kea-shell.py >$@ rm -f kea-shell.tmp
$(SED) "s|@@PYTHONPATH@@|@pyexecdir@|" kea-shell.py > kea-shell.tmp
$(SED) "s|REPORTED_VERSION|@PACKAGE_VERSION@|" kea-shell.tmp >$@
chmod a+x $@ chmod a+x $@
install-data-local: install-data-local:
......
#!/usr/bin/python #!/usr/bin/python
# This is going to be replaced with the actual version (see kea-shell target
# in Makefile.am)
VERSION = "REPORTED_VERSION"
# First, let's import the right kea_connector. # First, let's import the right kea_connector.
# We have two versions: one for python 2.x and another for python 3.x. # We have two versions: one for python 2.x and another for python 3.x.
# Sadly, there's no unified way to handle http connections. The recommended # Sadly, there's no unified way to handle http connections. The recommended
...@@ -29,22 +33,27 @@ from kea_conn import CARequest, CAResponse ...@@ -29,22 +33,27 @@ from kea_conn import CARequest, CAResponse
# the help and sanity checking input parameters. # the help and sanity checking input parameters.
parser = argparse.ArgumentParser(description='Connects to Kea Control Agent.') parser = argparse.ArgumentParser(description='Connects to Kea Control Agent.')
parser.add_argument('--host', type=str, nargs=1, default='127.0.0.1', parser.add_argument('--host', type=str, default='127.0.0.1',
help='hostname of the CA to connect to') help='hostname of the CA to connect to')
parser.add_argument('--port', type=int, nargs=1, default=8000, parser.add_argument('--port', type=int, default=8000,
help='TCP port of the CA to connect to') help='TCP port of the CA to connect to')
parser.add_argument('--timeout', type=int, nargs=1, default='10', parser.add_argument('--timeout', type=int, default='10',
help='Timeout (in seconds) when attempting to connect to CA') help='Timeout (in seconds) when attempting to connect to CA')
parser.add_argument('command', type=str, nargs="?", default='list-commands', parser.add_argument('command', type=str, nargs="?", default='list-commands',
help='command to be executed. If not specified, "list-commands" is used') help='command to be executed. If not specified, "list-commands" is used')
parser.add_argument('-v', action="store_true", help="Prints version")
cmd_args = parser.parse_args() cmd_args = parser.parse_args()
if (cmd_args.v):
print (VERSION)
exit(0)
# Ok, now time to put the parameters parsed into the structure to be used by the # Ok, now time to put the parameters parsed into the structure to be used by the
# connection. # connection.
params = CARequest() params = CARequest()
params.command = cmd_args.command params.command = cmd_args.command
params.http_host = cmd_args.host[0] params.http_host = cmd_args.host
params.http_port = cmd_args.port[0] params.http_port = cmd_args.port
params.timeout = cmd_args.timeout params.timeout = cmd_args.timeout
params.generateBody() params.generateBody()
......
...@@ -35,6 +35,9 @@ CONFIG="{ ...@@ -35,6 +35,9 @@ CONFIG="{
} }
}" }"
# In these tests we need to use two binaries: Control Agent and Kea shell.
# Using bin and bin_path would be confusing, so we omit defining bin and bin_path
# on purpose.
ca_bin="kea-ctrl-agent" ca_bin="kea-ctrl-agent"
ca_bin_path=@abs_top_builddir@/src/bin/agent ca_bin_path=@abs_top_builddir@/src/bin/agent
...@@ -146,7 +149,30 @@ shell_command_test() { ...@@ -146,7 +149,30 @@ shell_command_test() {
test_finish 0 test_finish 0
} }
shell_command_test "shell.list-commands" "list-commands" "[ { \"arguments\": [ \"list-commands\" ], \"result\": 0 } ]" "" # This test verifies that the binary is reporting its version properly.
shell_command_test "shell.bogus" "give-me-a-beer" "[ { \"result\": 1, \"text\": \"'give-me-a-beer' command not supported.\" } ]" "" version_test() {
test_name=${1} # Test name
# Log the start of the test and print test name.
test_start ${test_name}
# Remove dangling Kea instances and remove log files.
cleanup
REPORTED_VERSION="`${shell_bin_path}/${shell_bin} -v`"
if test "${REPORTED_VERSION}" == "${EXPECTED_VERSION}"; then
test_finish 0
else
printf "ERROR: Expected version ${EXPECTED_VERSION}, got ${REPORTED_VERSION}\n"
test_finish 1
fi
}
version_test "shell.version"
shell_command_test "shell.list-commands" "list-commands" \
"[ { \"arguments\": [ \"list-commands\" ], \"result\": 0 } ]" ""
shell_command_test "shell.bogus" "give-me-a-beer" \
"[ { \"result\": 1, \"text\": \"'give-me-a-beer' command not supported.\" } ]" ""
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment