laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/pysim/+/42057?usp=email )

Change subject: euicc: extend get_profiles_info to retrieve all known tags
......................................................................

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(-)

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




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 https://gerrit.osmocom.org/c/pysim/+/42057?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ia6878519a480bd625bb1fa2567c1fd2e0e89b071
Gerrit-Change-Number: 42057
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: neels <[email protected]>

Reply via email to