laforge submitted this change.

View Change

Approvals: neels: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified dexter: Looks good to me, approved
euicc: extend get_profiles_info to retrieve all known tags

get_profiles_info only request for the default tag list, but
not all tags.
Add --all to the function to request for all known tags.

Change-Id: Ia6878519a480bd625bb1fa2567c1fd2e0e89b071
---
M pySim/euicc.py
1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/pySim/euicc.py b/pySim/euicc.py
index 36e2d2a..2884c93 100644
--- a/pySim/euicc.py
+++ b/pySim/euicc.py
@@ -444,9 +444,28 @@
d = rn.to_dict()
self._cmd.poutput_json(flatten_dict_lists(d['notification_sent_resp']))

- def do_get_profiles_info(self, _opts):
+ get_profiles_info_parser = argparse.ArgumentParser()
+ get_profiles_info_parser.add_argument('--all', action='store_true', help='Retrieve all known tags of a profile')
+
+ @cmd2.with_argparser(get_profiles_info_parser)
+ def do_get_profiles_info(self, opts):
"""Perform an ES10c GetProfilesInfo function."""
- pi = CardApplicationISDR.store_data_tlv(self._cmd.lchan.scc, ProfileInfoListReq(), ProfileInfoListResp)
+ if opts.all:
+ tags = [nest.tag for nest in ProfileInfo.nested_collection_cls().nested]
+ u8tags = []
+ # TODO: rework TagList to support 2 byte tags to not filter it into u8 tags
+ for tag in tags:
+ if tag <= 255:
+ u8tags.append(tag)
+ elif tag <= 65535:
+ u8tags.append(tag >> 8)
+ u8tags.append(tag & 0xff)
+ # Ignoring 3 byte tags
+ req = ProfileInfoListReq(children=[TagList(decoded=u8tags)])
+ else:
+ req = ProfileInfoListReq()
+
+ pi = CardApplicationISDR.store_data_tlv(self._cmd.lchan.scc, req, ProfileInfoListResp)
d = pi.to_dict()
self._cmd.poutput_json(flatten_dict_lists(d['profile_info_list_resp']))


To view, visit change 42057. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ia6878519a480bd625bb1fa2567c1fd2e0e89b071
Gerrit-Change-Number: 42057
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis@fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de>