Allows using 'with some_origin() as foo:' constructs.
Not used actively, but is sometimes useful during debugging sessions.
Change-Id: I7a6463ee39761775305dd2272c24f248552db4ad
This seems to be the default address used to communicate via SSH with the
sysmoBTS. Whichever process ends up getting this address sees all of the
SSH in its pcap (for the AoIP build it tends to be OsmoHLR).
We could filter properly, but actually also just take this address out of
the pool for allocation to server processes.
Change-Id: I07e74ba0b9a5b08a308aae7646c4b7c70fe4aa0e
After a suite was done, the modem object would linger. If two suites were run
consecutively, the first suite's modem objects would still log incoming SMS.
Add an object cleanup mechanism in the SuiteRun class. Start by adding a
cleanup() to the Modem object and subscribing created modems there.
Move the modem_obj() function into SuiteRun, there is no use of it being
separate, and it makes for better logging.
Change-Id: I0048d33e661d683a263c98128cd5c38b8d897dab
This solves the KeyError problems when we attempt to use new Interfaces that
have come up. The solution is to get a fresh pydbus object when interfaces have
been added.
Another key solution is to not completely discard and unregister all signals
every time. This is racy and may cause signals getting lost. If an interface
was not removed, it is not harmful to have it subscribed using an older pydbus
object. These older objects may linger until the specific signal subscriptions
are disconnected. It is important to fetch a new dbus object for subscribing to
signals on interfaces that have just been added.
Put signal subscription and property watching in a separate class
ModemDbusInteraction. This class may also be used without signals or a modem
config, in anticipation of the IMSI discovery patch that's coming up.
Related: OS#2233
Change-Id: Ia36b881c25976d7e69dbb587317dd139169ce3d9
Add missing code to free resources, not upon program exit, but when a suite is
done.
This allows running more than one suite in a row.
Also add a check to not attempt to free if there is nothing to be freed, to
avoid a regression test failure triggered when a suite exits without reserving
anything.
Change-Id: Ic017a1cf07052f5e48812c8553fba6f972d280f0
Related: OS#2301
If not a single resource of a wanted item was left, we ran into a None. Report
unavailability instead.
Change-Id: Ie1849a74cb227964e7c3ac06852582baa2333697
Before this, the network opened up by osmo-bts-trx would be invisible through
the attenuation of the osmo-gsm-tester hardware, because tx-attenuation would
apparently default to 50, meaning maximum attenuation.
Change-Id: I1c026b5691033127eef766d82566c39cc070e14a
The idea is to see the full origin list for log level ERR, while the rest
of the logging can be kept less verbose.
Change-Id: I0277782652548fa321f767da79b207d70678fad1
It would be nicer to select the network programs as scenarios, i.e.
independently from the specifics of tests that don't care whether a NITB or a
MSC+BSC is in place. See OS#2270.
For now have a separate script for BSC+MSC+HLR operation to be able to rapidly
get the binaries to work. We might even simply drop the NITB style, in which
case we don't need to make it configurable.
Change-Id: I06d2529822f3e483ce7fffc439edfa57844e01ef
The upcoming BSC+MSC+HLR+MGCPGW style will need four IP addresses. I found six
already configured on the main unit, so adding all of them to our
resources.conf.
Change-Id: Ie0e0ed9bb7fbd87ebe630c32ef59659117d77ed8
To start an MGCPGW, we so far need the BTS address in advance (should get fixed
at some point, but so far we do).
The sysmoBTS has a fixed IP address configured. The osmo-bts-trx so far always
uses 127.0.0.1 (should also be fixed at some point). Both now return this
address with the remote_addr() function.
This also replaces a SysmoBts.remote_addr member variable (which is not
sufficient because it is only populated during configure()).
Change-Id: I7af9275914f34808cb60ae16b65ecd3688fd6b5b
A NITB is a BSC + MSC, and if a BTS talks to a NITB, it talks to the BSC part
of the NITB. Hence it makes more sense to name certain things 'bsc' instead of
'nitb', to prepare for a separate BSC process appearing soon.
Change-Id: I6a0343b9243b166d4053cc44f523543f1245d772
I would like to use the IP addresses also for OsmoBSC processes, so it is more
than clear now that 'nitb_iface' was the wrong naming choice.
The only distinction we may need in the future is public versus loopback
interface. To add that, we may add a trait to the 'ip_address' resource
like:
ip_address:
- addr: 10.42.42.1
type: public
- addr: 127.0.0.1
type: loopback
This way we can substitute public vs loopback addresses flexibly (e.g. using
scenarios).
Change-Id: I3ad583ae7a33f7a7bb56fe78a125f73c56a0e860
We're not currently paying attention to the octphy in osmo-gsm-tester. So
instead of maintaining dead code, remove the bts_octphy.py; we can re-add when
the octphy is implemented properly.
Change-Id: Ia5d5750d440ae7019634b51fa1efe7bbb2a1d1e2
This file is already created in run_suites().
Creating it in here too makes a new file name()_2.xml created and
populated instead of the original name().xml one.
Change-Id: Ibec14a1ef5fd029aa37ce666d00236bb872d636e
Make sure we free the reserved resources and kill launched subprocesses
before stopping. Before this patch it was not the case for instance if we
received a SIGTREM signal from kill.
Change-Id: I039e4d1908a04bf606b101ddc6a186ba67e6178e
* Add Junit output file support
* Differentiate between an expected failure test and an error in the
test, as described in JUnit.
* In case of an error/exception during test, record and attach it to the
Test object and continue running the tests, and show it at the end
during the trial report.
Change-Id: Iedf6d912b3cce3333a187a4ac6d5c6b70fe9d5c5
Composing the filter in gen_filter() is more complex than we need. We pass the
address and potentially further filter elements separately, and then
gen_filter() has to guess how to combine these. Instead, have just a filter
string to use right from the start, so that the caller has full control (and
full responsibility).
Remove the addr argument, which was only used for filtering.
This is my conclusion of looking at the patches with change Ids
I62a6ae7bd3a84baceb684c26727d2269c86ed023 (PS 1) and
Icbb0f8d2058fa7ebb7f0f731645f9266cacdb120
I62... PS 2 will add the SSH filtering.
The name 'filter' is a python built-in, which is why I chose the argument
name 'filters' instead. It works with 'filter' as well, but let's try to
avoid naming conflicts like that.
Change-Id: Iff7ddf51d3bf0189ce07b488a3dcdcfce6907aba
No actual failure known, but using the abspath will prevent further problems
when running a binary in its own run dir and passing trial paths to it.
Adjust test expectations.
Change-Id: Ia2ba876a42eef9122a92645edd1f28ddb56e6be3
From an earlier stage of the code, there was still an exception catcher that
makes no sense. Remove it.
Change-Id: I8085318c91b06a3e8f7d3f8cfdd15a99650666e2
Previously, the idea was to run a test remotely via SSH. This has moved to
operating an actual jenkins build slave on the main unit, which simplifies
things.
Also, previously (in the old osmo-gsm-tester), there was a daemon running,
accepting new trials by a directory appearing. Now, we're directly launching a
test run, which simplifies things.
Remove all SSH stuff from the "run" script.
Compose the checksums of the built binary-tars in the actual build jobs. In the
"run" job, only combine those checksums to one file. (Otherwise we would
compose the sums after transmitting over the network to the build slave.)
Instead of storing trials in a common location on the system, just keep one
trial in the workspace per run. After the run, tar up the trial dir to enable
easy archiving of build results.
The common location on the system might still be a good idea if we're one day
going to move to concurrent runs with scheduling of hardware resources, but so
far we're having simple one-shot runs.
Change-Id: I129f5189ce2bebd761bc752b158fb8778b31010e
The jenkins jobs used to have multiple source repositories configured, but it
is really cumbersome to add all the SCM links to a jenkins job.
Instead, clone the git sources from the script, as we also do in various other
contrib/ scripts.
This partly duplicates the osmo-ci scripts, but since this code is much more
intended to run on other peoples' jenkins instances, rather keep the osmo-ci
dependency out of here.
Change-Id: Ie05cb9cd2bd884f72cbdbcc96d9c4389ffca7357
The idea is that if someone reads the short log and scratches her head, she can
notice that there is a more detailed log available.
Change-Id: Id5f443f1af0dc774d4d4c588a238b786a83e44d3