Commit Graph

26 Commits

Author SHA1 Message Date
Neels Hofmeyr 4d688c2faf fix multi-suite runs: implement modem cleanup
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
2017-05-29 04:32:13 +02:00
Neels Hofmeyr 896f08f6ab fix: refresh dbus object when interfaces have changed
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
2017-05-29 04:30:34 +02:00
Pau Espin 927344b4dc event_loop: Create a global event loop to poll and wait for events
Tweaked-by: nhofmeyr
Change-Id: Iaa78bae0f053496377609b24a11ebaef3fd77598
2017-05-25 17:25:09 +00:00
Neels Hofmeyr 47de6b0a24 ofono/dbus: detach from signals as appropriate
In the dbus_connect() code path, return the subscription token.

In the Modem class, use this token to disconnect signal callbacks when an
interface is removed.

Generalize the signal connect/disconnect handling: have one tuple defining all
signals and their handler functions, add generalized loop to attach them. Store
all subscription tokens in a dict of lists, any number of signal callbacks per
general interface name. When an interface is announced to be removed from
ofono, detach all signals for that interface implicitly.

So far this only handles the MessageManager interface's IncomingMessage signal,
but others will likely follow soon.

Fixes: OS#2242
Change-Id: I0939ef414bc599ee8742df48da04d8d9569d00ba
2017-05-11 12:33:00 +02:00
Neels Hofmeyr f49c7daa81 sms: log info as dbg
Change-Id: Ia9ae0fa63a96a541e7d66cf0d8a9032b135760e6
2017-05-08 10:12:00 +00:00
Neels Hofmeyr 2e41defdd4 sms: don't log info
Change-Id: Ie9c4757de1eedcbcc85b7b99b94d164cc6ae3c59
2017-05-08 10:12:00 +00:00
Neels Hofmeyr 5a602b752b less verbose origins on interface enable/disable
Change-Id: Ia59b3e6a9617f1b9e8dc0c488846a9fb0ec8f566
2017-05-07 01:22:14 +00:00
Neels Hofmeyr 035cda8483 fix: handle dbus signals outside of the glib main loop
Collect incoming signals in a defer queue and handle them once the DBus polling
is through.

Related: OS#2220

Change-Id: Ic7520f2165888a4ee0f83b779cd58d20c4e45fa0
2017-05-07 01:21:28 +00:00
Neels Hofmeyr 8d8b03e1e3 compose SMS with more descriptive text
Allow tokens to be passed for SMS composition, and use that to pass MO and MT
modem names into the SMS text for easier debugging.

Change-Id: I5e0d066ffa7a4631e8568c6cd4f210627f209122
2017-05-06 22:29:45 +02:00
Neels Hofmeyr cf1e20ebe6 ofono_client: drop explicit exception catching
For some reason the code there catches exceptions happening while interfaces
are being established. That's not a good idea, drop it.

Related: OS#2220
Change-Id: Ida7731ed6ff3cad44ff437137abe2d6a424fcaa4
2017-05-05 18:36:37 +02:00
Pau Espin 107f2751a7 ofono_client: Sort events more logically
Change-Id: I515203a14cf629e789a7f7659d43126898ab4534
2017-05-04 20:56:38 +00:00
Pau Espin 504a664ca6 ofono_client: Allow other ifaces in some methods
Change-Id: Ic6df1e9c3f8948f694182bd2924753ae3cbe99ee
2017-05-04 20:56:38 +00:00
Neels Hofmeyr 943f8a28d7 fixup: ofono: try a different way to catch missing dbus interfaces
Change-Id: Ifec1127d8ae38ca98f4d8e203b812ca16dee786e
2017-05-03 17:37:53 +02:00
Neels Hofmeyr 5fe88817d1 ofono: try a different way to catch missing dbus interfaces
The nested wait was definitely a bad idea. This here is certainly not very
nice either, but an attempt to catch cases where a dbus interface cannot
be used yet despite being signalled by ofono (sporadically happens).

Change-Id: I2ac7eb0f5174250f4b97e2bf758666410d8cb854
2017-05-03 17:20:17 +02:00
Neels Hofmeyr 93f5866bd2 cosmetic: rename ofono_client.get() to .systembus_get()
Change-Id: Iccce22fd4f07803e2468a2089f565d41e9a2cd9a
2017-05-03 16:32:16 +02:00
Neels Hofmeyr 24bfcee8ad fix: Modem.msisdn is not a function 2017-05-02 16:30:49 +02:00
Neels Hofmeyr 27d459c887 ofono: modem: make sure a property is its set value, make sure an interface is really present 2017-05-02 16:30:18 +02:00
Neels Hofmeyr fec7d16d0c modem: store / match received SMS 2017-05-02 16:29:09 +02:00
Neels Hofmeyr 863cb5678f cosmetic: rename to sms_was_received() 2017-05-02 16:27:59 +02:00
Neels Hofmeyr 9dbcb828aa ofono: modem: have a common function for SetProperty
So far for bool only because we don't have a non-bool setting yet. Should
be extended once we have.

Keep the probably unneeded 'poll()' to not mix changes too much.
2017-05-02 14:57:57 +02:00
Neels Hofmeyr 1ea59eac05 log: also log SMS that is being sent 2017-05-02 14:41:54 +02:00
Pau Espin b995576e40 ofono_client: Set modem online before connecting to the network
Change-Id: I62ba1bfbdee64b18a443e8ad3974bb035b0be344
2017-05-02 14:29:12 +02:00
Neels Hofmeyr b02c21115d wip
Change-Id: Icce6bd83173db86a64fa621e641131758380c7cd
2017-04-09 19:11:25 +02:00
Neels Hofmeyr b3daaea6b5 implement modem and nitb bits for a real test
Change-Id: I1ca3bd874aed1265d83a46340e9b3e469075c7ee
2017-04-09 18:24:52 +02:00
Neels Hofmeyr eafdbb2fb2 clearly mark not yet implemented test api
Change-Id: Ie0781e618ed49ac31685d69b860e77d791ec5300
2017-04-08 19:27:42 +02:00
Neels Hofmeyr 3531a192ae core implementation
code bomb implementing the bulk of the osmo-gsm-tester

Change-Id: I53610becbf643ed51b90cfd9debc6992fe211ec9
2017-04-08 15:43:19 +02:00