There is a more complete check that should already handle the case this
instance was covering, with a non-empty license-key.
This was causing the following parse failure with the new goss version
from Debian trixie:
,---
Error: could not read json data in /etc/ngcp-system-tests/510_init-daemons-ngcp.yaml: yaml: unmarshal errors:
line 115: mapping key "ngcp-license-client.service" already defined at line 31
`---
Reported-by: goss 0.4.9
Change-Id: I7323fbd80e2b13d0bcc280210bdb8010b910c5f1
Fixes:
| Error: could not read json data in /etc/ngcp-system-tests/900_service-ngcp-api.yaml: yaml: unmarshal errors:
| line 61: mapping key "curl --insecure -L http://192.168.211.210/" already defined at line 4
| line 68: mapping key "curl --insecure -L https://192.168.211.210/" already defined at line 11
Merge the identical curl command lines into one single test.
This is being detected by new goss versions from Debian trixie as
errors, and causing the entire ngcp-system-tests run to fail.
Change-Id: If9fb68dd182891ae742a4af07ebe259d914c3c91
These share the same ports depending on the role of the current node, so
to avoid emitting the same duplicate port entries we should turn these
into cascading if/elif.
This is being detected by new goss versions from Debian trixie as
errors, and causing the entire ngcp-system-tests run to fail.
Change-Id: I2898f623e87867a03ef6cfb728a90631f53ffae7
For services we use an «enable» key to select whether to enable or
disable a service. The «start» key is unusual and has already caused a
wrong usage in templates in the past. Rename them for uniformity with
the rest of the key naming conventions used.
For DHCP address ranges, namespace the «start» key (alongside «end» and
«lease» renamed from «expire») into a new addr_range map, so that it's
obvious this is not about starting the service, but about the
aforementioned address range setting.
Change-Id: Icff25a273358e69881cc54ccdd9be39a27c5c526
Add checks for stock services that were previously omitted. This makes
sure we can spot any possible regression in the set of listening
addresses.
This includes dnsmasq and nginx ports.
Change-Id: I9a9041cf97df511f4801941e932e97baa797a348
We only support keydb now, and the config knob and migration script
have been removed. Hardcode keydb for the redis flavor we intend to
use, and add checks to make sure the redis service is not running nor
enabled anymore
Change-Id: I1a9ecb7e26346cd23618b464a7f5f420d5ab7263
There's currently a divergence between CE and PRO, where web_int is not
setup by default as a role for the loopback interface on CE systems. We
should thus for now not expect NGINX to be listening there, for the
NGCP Panel admin and csc ports.
In the future we should probably unify this behavior and make CE behave
the same as a PRO, because this seems like a gratuitous divergence.
Fixes: commit d0d8c1eb10
Change-Id: Ib65b9dcf94a34b416d59aad93e19d88cf5a6469c
Add IPv6 entries for services for which we are currently checking their
IPv4 listening addresses. This makes sure we check for these addresses
and that we do not regress in case other components rely on being able
to access these services through these addresses.
Change-Id: Ifa73e594d8cce862af77317ea88cea5c564dd1c6
These services also listen on the localhost and any address. Add these
explicitly as we might have other components relying on being able
to access these services through them.
Change-Id: I6d234620847ccc88f2c709a20692c6d5b7174229
We switched from heartbeat-2 to corosync/pacemaker long ago, and these
checks that were in place for a transitory period to make sure no odd
services were running when not expected, no longer serve much of a
purpose.
Change-Id: I8be3252278a5876f1a6ac89da0ade3fb63b01a18
We have removed InfluxDB support long ago, and there's been enough time
to clean up any systems involved. Remove these checks that no longer
serve any purpose.
Change-Id: I6de535f0dd571d7d8d006eecd66cb31ff6661db6
As of git rev 511e1f69cc91 in templates (see "MT#58452 monit: Use a Unix socket for the httpd control access"),
monit no longer listens on port 2812 but uses a Unix socket instead.
Fixes:
| not ok 848 - Port: tcp:2812: listening: doesn't match, expect: [true] found: [false]
Change-Id: I9b16aac2ebbf14defdd2713f72c7362ab21d43b8
On a CE the general.process_handler is always set to 'none'. So we need
to take this into account and mark it as enabled.
Change-Id: Id1347ac027412861a1319a95d1537aaeb778bf6a
The rate-o-mat service can run in active-active or in active-standby
modes. If the service is enabled and on the proxy nodes, the former
mode means the service will be enabled and running on both peers, the
latter will mean it's in the traditional HA mode and thus only running
on the active node.
Change-Id: I020c8a00706135ed5d432bf8b1b8874cf1b2f532
The openssh-server Debian package no longer uses the "ssh" group,
but renamed it to "_ssh" (see git rev 18da782e in
https://salsa.debian.org/ssh-team/openssh.git + Debian's #990456), which
was shipped starting with v1:8.4p1-6.
Debian/bookworm currently ships openssh-server v1:9.0p1-1+b2,
so adjust tests accordingly.
Change-Id: I4f75e94ac32ce9d06a4bc9991fa62b73086e4f45
It's an often error after upgrade that this file is missing.
It happens because right after reboot there is no such file and it's not
created by logrotate because we use missingok, notifempty option for
it.
So make it optional.
Change-Id: I4ee18e8ba5e93d19e4b80fd3fcf8197d144f1ea3
grep 3.8 deprecated support for egrep + fgrep, and now prints a warning on stderr:
| egrep: warning: egrep is obsolescent; using grep -E
| fgrep: warning: fgrep is obsolescent; using grep -F
Change-Id: Iae561f2dc592a24359832a80fde4d6d7cfea97d0
The old obsolete metrics got removed in commit
8a99fc1809, but these had been replaced by
newer entries in the sipTable. Use those so that we can keep detecting
regressions or misbehavior.
Change-Id: I41c21f7dd47bb5f9a6a584672836c9dd5c176380
These OIDs had been obsoleted for a while and have now been removed in
Iddf81e4fcfd1e6bac0c478c01074ab220a49c96a.
Change-Id: Ib88d965495609ed2766639975280bc16bf45aa6b
These are now conditional on a config knob. We should not expect them to
be present of they are disabled.
Change-Id: I2ebc68db597db0fbccf9f990ceab101589a8e914
The configuration files specific to the ngcpcfg tool should not be
mixed with the site specific configuration, as that's rather confusing,
more so when the actual ngcpcfg configuration contains references to the
location of the ngcp-config dir itself, which makes it self-referential.
Change-Id: I25bee17e69e9c302d40b1bb55f73a1e88e505a8d
We check that when the pathname exists it is a symlink. We will perform
further consistency checks from «ngcpcfg check».
Change-Id: I3850d9cf23fd77b926d08ae47a6969cac1790cf0
The rtpengine project used to be called rtpengine-ng, and before that
mediaproxy-ng, which was an implementation using the same protocol as
the rtpproxy project. It's about time we rename the config.yml section
so that this is less confusing.
Change-Id: Ia36ab199caf242605d9558f2eb27806215a0a0d2
These are shared files across all PRO/Carrier nodes, but at the time
they were introduced we did not have the concept of a shared-files
subdirectory. All other such shared files have been moved over time to
that subdirectory, but this was still remaining behind. Let's move it
now for consistency, and so that its purpose is more clear.
Change-Id: I45c89245d36706dba5ed1fb47a8bf9124c390dae
Goss doesn't trim the trailing space at the end of process name.
It is a workaround for the issue reported upstream as:
> https://github.com/aelsabbahy/goss/issues/762
It can be reverted as soon as issue is fixed in goss.
Change-Id: Ie3d7e2b3470aed9aa3c5ee3743d950237919dbde
These components are obsolete and not available anymore since mr10.5.
Force them to never be enabled nor running.
Change-Id: I25efecd1714d85b9591ac599d7ae33cdab87dec5
From now on the 'sems' config.yml section is deprecated,
and we have to only use 'b2b'. This commit concerns it.
Change-Id: I8e1a4c480011404a005ea52d66a7f770f97123bf
Starting with mr10.5, the heartbeat-2 support is now obsolete and not
available anymore. Switch all heartbeat-2 service and process checks
to expect them to be disabled. Remove the UDP check, as we have now
removed the RPC port start limitation, so we might end up checking for
an unrelated colliding port.
Change-Id: Ibacaf2d55e45b3f86a5218b92204d180e934e1e2
goss checks the name of the *binary*, not the name of the *process*.
This can be checked from a user perspective via:
| $ systemctl cat ngcp-rest-api | grep ExecStart
| ExecStart=/usr/bin/node --title ngcp-rest-api /usr/share/ngcp-rest-api/server
| $ sudo systemctl status ngcp-rest-api | grep PID
| Main PID: 327024 (node)
| $ ps -p 327024 -o comm
| COMMAND
| node
Underneath, goss looks at the cmdline and stat files inside procfs:
| $ cat /proc/327024/cmdline
| ngcp-rest-api
| $ cat /proc/327024/stat
| 327024 (node) S 1 327024 327024 0 -1 4194560 38500 0 47 0 121 13 0 0 20 0 7 0 552217 704745472 32511 18446744073709551615 1 1 0 0 0 0 0 4096 82434 0 0 0 17 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Since those two don't match with each other, our ngcp-rest-api service,
running under the node binary, isn't identified as such a running process.
NOTE: we're already checking for goss' service named ngcp-rest-api from
within templates/510_init-daemons-ngcp.yaml.tt2, but this doesn't check
if the process is alive. We need to explicitly check for the expected
process name, which we're doing hereby.
Change-Id: Iafa63b8e9fbfeee9edb2c0d48e8ed3514da4804a
ngcpcfg-api.service is supposed to be disabled by default, and running
only during ongoing deployments.
Fixes:
| not ok 218 - Service: ngcpcfg-api.service: enabled: doesn't match, expect: [true] found: [false]
| not ok 219 - Service: ngcpcfg-api.service: running: doesn't match, expect: [true] found: [false]
Change-Id: Ide7e17f90b83f205b79db689d2e226df4bc990da
Otherwise the resulting file isn't valid json syntax:
| root@sp1:~# goss --gossfile /etc/ngcp-system-tests/goss.yaml --vars /tmp/ngcp-system-tests.1O3urIHya7.yaml validate --format tap
| Error: could not read json data in /etc/ngcp-system-tests/135_filesys-logfiles.yaml: could not unmarshal "file:\n\n /var/log/messages:\n
| [...]
Change-Id: I3a99570e5069553411a574f02fcd95355a9e3e7f