lynxis lazus has uploaded this change for review. ( 
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(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/42057/1

diff --git a/pySim/euicc.py b/pySim/euicc.py
index ccb65be..763d7ff 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: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ia6878519a480bd625bb1fa2567c1fd2e0e89b071
Gerrit-Change-Number: 42057
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <[email protected]>

Reply via email to