fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/37787?usp=email )
Change subject: [TEST] rebar.config: specify repository and tag for meck
......................................................................
Abandoned
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/37787?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: abandon
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: Id36eab57cf4dce723c8bbf2554c35fe85b6e2378
Gerrit-Change-Number: 37787
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Attention is currently required from: fixeria.
osmith has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/37718?usp=email )
Change subject: osmo_dia2gsup.service: use /etc/osmocom/osmo-dia2gsup.config
......................................................................
Patch Set 3: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/37718?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: erlang/osmo_dia2gsup
Gerrit-Branch: master
Gerrit-Change-Id: I5ff07341597b2838bce0750a576e463addd2964f
Gerrit-Change-Number: 37718
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 05 Aug 2024 07:42:57 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Attention is currently required from: dexter, neels.
fixeria has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/osmo-mgw/+/37776?usp=email )
Change subject: mgcp_network: use an uint16_t to store the port number
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/37776?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I392b07b243389a78d4ad1d784cdfdc28ec59b487
Gerrit-Change-Number: 37776
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 06 Aug 2024 17:52:16 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/37786?usp=email )
Change subject: pySim-shell: improve fsdump
......................................................................
pySim-shell: improve fsdump
The export and the walk method that it is based on received some
improvement recently. Let's now also improve fsdump.
Change-Id: I4d2ef7b383025a5bbf122f18ecd51b7d73aaba14
---
M pySim-shell.py
1 file changed, 63 insertions(+), 101 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/86/37786/1
diff --git a/pySim-shell.py b/pySim-shell.py
index 183fbb6..3a89f2d 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -633,118 +633,80 @@
raise RuntimeError(
"unable to export %i dedicated files(s)%s" % (context['ERR'], exception_str_add))
- def fsdump_df(self, filename, context, as_json):
- """Dump information about currently selected [A]DF"""
- df = self._cmd.lchan.selected_file
- df_path_list = df.fully_qualified_path(True)
- df_path = df.fully_qualified_path_str(True)
-
- res = {
- 'path': df_path_list,
- }
-
- try:
- if not self._cmd.lchan.selected_file_fcp_hex:
- # An application without a real ADF (like ADF.ARA-M) / filesystem
- return
-
- fcp_dec = self._cmd.lchan.selected_file_fcp
- res['fcp_raw'] = str(self._cmd.lchan.selected_file_fcp_hex)
- res['fcp'] = fcp_dec
-
- except SwMatchError as e:
- res['error'] = {
- 'sw_actual': e.sw_actual,
- 'sw_expected': e.sw_expected,
- 'message': e.description,
+ def __dump_file(self, filename, context, as_json):
+ """ Select and dump a single file (EF, DF or ADF) """
+ file = self._cmd.lchan.get_file_by_name(filename)
+ if file:
+ res = {
+ 'path': file.fully_qualified_path(True)
}
- except Exception as e:
- raise(e)
- res['error'] = {
- 'message': str(e)
- }
-
- context['result']['files'][df_path] = res
-
- def fsdump_ef(self, filename, context, as_json):
- """Select and dump a single elementary file (EF) """
- # TODO: this is very similar to export_ef(), but I couldn't really come up with a way to share
- # code between the two. They only hypothetical option could be turn "export" into a mere
- # post-processing / printing function that works on the fsdump-generated dict/json?
- df = self._cmd.lchan.selected_file
-
- # The currently selected file (not the file we are going to export)
- # must always be an ADF or DF. From this starting point we select
- # the EF we want to export.
- if not isinstance(df, CardDF):
- raise RuntimeError("currently selected file %s is not a DF or ADF" % str(df))
-
- df_path_list = df.fully_qualified_path(True)
- df_path = df.fully_qualified_path_str(True)
- df_path_fid = df.fully_qualified_path_str(False)
-
- file_str = df_path + "/" + str(filename)
-
- res = {
- 'path': df_path_list + [str(filename)],
- }
+ else:
+ # If this is called from self.__walk(), then it is ensured that the file exists.
+ raise RuntimeError("cannot dump, file %s does not exist in the file system tree" % filename)
try:
fcp_dec = self._cmd.lchan.select(filename, self._cmd)
+ # File control parameters (common for EF, DF and ADF files)
+ if not self._cmd.lchan.selected_file_fcp_hex:
+ # An application without a real ADF (like ADF.ARA-M) / filesystem
+ return
+
res['fcp_raw'] = str(self._cmd.lchan.selected_file_fcp_hex)
res['fcp'] = fcp_dec
- structure = self._cmd.lchan.selected_file_structure()
- if structure == 'transparent':
- if as_json:
- result = self._cmd.lchan.read_binary_dec()
- body = result[0]
- else:
- result = self._cmd.lchan.read_binary()
- body = str(result[0])
- elif structure == 'cyclic' or structure == 'linear_fixed':
- body = []
- # Use number of records specified in select response
- num_of_rec = self._cmd.lchan.selected_file_num_of_rec()
- if num_of_rec:
- for r in range(1, num_of_rec + 1):
- if as_json:
- result = self._cmd.lchan.read_record_dec(r)
- body.append(result[0])
- else:
- result = self._cmd.lchan.read_record(r)
- body.append(str(result[0]))
-
- # When the select response does not return the number of records, read until we hit the
- # first record that cannot be read.
- else:
- r = 1
- while True:
- try:
+ # File structure and contents (EF only)
+ if isinstance(self._cmd.lchan.selected_file, CardEF):
+ structure = self._cmd.lchan.selected_file_structure()
+ if structure == 'transparent':
+ if as_json:
+ result = self._cmd.lchan.read_binary_dec()
+ body = result[0]
+ else:
+ result = self._cmd.lchan.read_binary()
+ body = str(result[0])
+ elif structure == 'cyclic' or structure == 'linear_fixed':
+ body = []
+ # Use number of records specified in select response
+ num_of_rec = self._cmd.lchan.selected_file_num_of_rec()
+ if num_of_rec:
+ for r in range(1, num_of_rec + 1):
if as_json:
result = self._cmd.lchan.read_record_dec(r)
body.append(result[0])
else:
result = self._cmd.lchan.read_record(r)
body.append(str(result[0]))
- except SwMatchError as e:
- # We are past the last valid record - stop
- if e.sw_actual == "9402":
- break
- # Some other problem occurred
- raise e
- r = r + 1
- elif structure == 'ber_tlv':
- tags = self._cmd.lchan.retrieve_tags()
- body = {}
- for t in tags:
- result = self._cmd.lchan.retrieve_data(t)
- (tag, l, val, remainer) = bertlv_parse_one(h2b(result[0]))
- body[t] = b2h(val)
- else:
- raise RuntimeError('Unsupported structure "%s" of file "%s"' % (structure, filename))
- res['body'] = body
+
+ # When the select response does not return the number of records, read until we hit the
+ # first record that cannot be read.
+ else:
+ r = 1
+ while True:
+ try:
+ if as_json:
+ result = self._cmd.lchan.read_record_dec(r)
+ body.append(result[0])
+ else:
+ result = self._cmd.lchan.read_record(r)
+ body.append(str(result[0]))
+ except SwMatchError as e:
+ # We are past the last valid record - stop
+ if e.sw_actual == "9402":
+ break
+ # Some other problem occurred
+ raise e
+ r = r + 1
+ elif structure == 'ber_tlv':
+ tags = self._cmd.lchan.retrieve_tags()
+ body = {}
+ for t in tags:
+ result = self._cmd.lchan.retrieve_data(t)
+ (tag, l, val, remainer) = bertlv_parse_one(h2b(result[0]))
+ body[t] = b2h(val)
+ else:
+ raise RuntimeError('Unsupported structure "%s" of file "%s"' % (structure, filename))
+ res['body'] = body
except SwMatchError as e:
res['error'] = {
@@ -758,7 +720,7 @@
'message': str(e)
}
- context['result']['files'][file_str] = res
+ context['result']['files'][file.fully_qualified_path_str(True)] = res
fsdump_parser = argparse.ArgumentParser()
fsdump_parser.add_argument(
@@ -785,11 +747,11 @@
exception_str_add = ""
if opts.filename:
- self.__walk_action(self.fsdump_ef, opts.filename, context, **kwargs_export)
+ self.__walk_action(self.__dump_file, opts.filename, context, **kwargs_export)
else:
# export an entire subtree
try:
- self.__walk(0, self.fsdump_ef, self.fsdump_df, context, **kwargs_export)
+ self.__walk(0, self.__dump_file, self.__dump_file, context, **kwargs_export)
except Exception as e:
print("# Stopping early here due to exception: " + str(e))
print("#")
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/37786?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: I4d2ef7b383025a5bbf122f18ecd51b7d73aaba14
Gerrit-Change-Number: 37786
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/37775?usp=email )
(
1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
)Change subject: filesystem: add placeholder export method in CardFile base class
......................................................................
filesystem: add placeholder export method in CardFile base class
We add export methods in subclasses of CardFile but the base class
itself lacks an export method. To make the code more readable and
to avoid unnecessary exceptions, les's add a default export method
that just returns a comment.
Related: OS#6092
Change-Id: Ife2a9bad14750db84a87fab907297028c33f1f7d
---
M pySim/filesystem.py
1 file changed, 11 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
fixeria: Looks good to me, but someone else must approve
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 2151c21..a4659cf 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -298,6 +298,17 @@
return True
raise ValueError("self.service must be either int or list or tuple")
+ @staticmethod
+ def export(as_json: bool, lchan):
+ """
+ Export file contents in the form of commandline script. This method is meant to be overloaded by a subclass in
+ case any exportable contents are present. The generated script may contain multiple command lines separated by
+ line breaks ("\n"), where the last commandline shall have no line break at the end
+ (e.g. "update_record 1 112233\nupdate_record 1 445566"). Naturally this export method will always refer to the
+ currently selected file of the presented lchan.
+ """
+ return "# %s has no exportable contents" % str(lchan.selected_file)
+
class CardDF(CardFile):
"""DF (Dedicated File) in the smart card filesystem. Those are basically sub-directories."""
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/37775?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: Ife2a9bad14750db84a87fab907297028c33f1f7d
Gerrit-Change-Number: 37775
Gerrit-PatchSet: 2
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
fixeria has restored this change. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/37787?usp=email )
Change subject: [TEST] rebar.config: specify repository and tag for meck
......................................................................
Restored
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/37787?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: restore
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: Id36eab57cf4dce723c8bbf2554c35fe85b6e2378
Gerrit-Change-Number: 37787
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder