dexter has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/pysim/+/42236?usp=email )


Change subject: contrib/smpp-ota-tool: define commandline arguments in global 
scope
......................................................................

contrib/smpp-ota-tool: define commandline arguments in global scope

The commandline arguments are currently defined under __main__ in a
private scope. From there they are not reachable to the sphinx
argparse module. We have to define the arguments globally at the
top. (like in the other applications)

Related: SYS#7881
Change-Id: I2d9782e3f5b1cac78c22d206fdcac4118c7d5e7c
---
M contrib/smpp-ota-tool.py
1 file changed, 42 insertions(+), 41 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/36/42236/1

diff --git a/contrib/smpp-ota-tool.py b/contrib/smpp-ota-tool.py
index 203f37c..28c13bf 100755
--- a/contrib/smpp-ota-tool.py
+++ b/contrib/smpp-ota-tool.py
@@ -30,6 +30,48 @@

 logger = logging.getLogger(Path(__file__).stem)

+option_parser = argparse.ArgumentParser(description='Tool to send OTA SMS 
RFM/RAM messages via SMPP',
+                                        
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+option_parser.add_argument("--host", help="Host/IP of the SMPP server", 
default="localhost")
+option_parser.add_argument("--port", help="TCP port of the SMPP server", 
default=2775, type=int)
+option_parser.add_argument("--system-id", help="System ID to use to bind to 
the SMPP server", default="test")
+option_parser.add_argument("--password", help="Password to use to bind to the 
SMPP server", default="test")
+option_parser.add_argument("--verbose", help="Enable verbose logging", 
action='store_true', default=False)
+algo_crypt_choices = []
+algo_crypt_classes = OtaAlgoCrypt.__subclasses__()
+for cls in algo_crypt_classes:
+    algo_crypt_choices.append(cls.enum_name)
+option_parser.add_argument("--algo-crypt", choices=algo_crypt_choices, 
default='triple_des_cbc2',
+                           help="OTA crypt algorithm")
+algo_auth_choices = []
+algo_auth_classes = OtaAlgoAuth.__subclasses__()
+for cls in algo_auth_classes:
+    algo_auth_choices.append(cls.enum_name)
+option_parser.add_argument("--algo-auth", choices=algo_auth_choices, 
default='triple_des_cbc2',
+                           help="OTA auth algorithm")
+option_parser.add_argument('--kic', required=True, type=is_hexstr, help='OTA 
key (KIC)')
+option_parser.add_argument('--kic-idx', default=1, type=int, help='OTA key 
index (KIC)')
+option_parser.add_argument('--kid', required=True, type=is_hexstr, help='OTA 
key (KID)')
+option_parser.add_argument('--kid-idx', default=1, type=int, help='OTA key 
index (KID)')
+option_parser.add_argument('--cntr', default=0, type=int, help='replay 
protection counter')
+option_parser.add_argument('--tar', required=True, type=is_hexstr, 
help='Toolkit Application Reference')
+option_parser.add_argument("--cntr-req", choices=CNTR_REQ.decmapping.values(), 
default='no_counter',
+                           help="Counter requirement")
+option_parser.add_argument('--no-ciphering', action='store_true', 
default=False, help='Disable ciphering')
+option_parser.add_argument("--rc-cc-ds", choices=RC_CC_DS.decmapping.values(), 
default='cc',
+                           help="message check (rc=redundency check, cc=crypt. 
checksum, ds=digital signature)")
+option_parser.add_argument('--por-in-submit', action='store_true', 
default=False,
+                           help='require PoR to be sent via SMS-SUBMIT')
+option_parser.add_argument('--por-no-ciphering', action='store_true', 
default=False, help='Disable ciphering (PoR)')
+option_parser.add_argument("--por-rc-cc-ds", 
choices=RC_CC_DS.decmapping.values(), default='cc',
+                           help="PoR check (rc=redundency check, cc=crypt. 
checksum, ds=digital signature)")
+option_parser.add_argument("--por-req", choices=POR_REQ.decmapping.values(), 
default='por_required',
+                           help="Proof of Receipt requirements")
+option_parser.add_argument('--src-addr', default='12', type=str, help='SMS 
source address (MSISDN)')
+option_parser.add_argument('--dest-addr', default='23', type=str, help='SMS 
destination address (MSISDN)')
+option_parser.add_argument('--timeout', default=10, type=int, help='Maximum 
response waiting time')
+option_parser.add_argument('-a', '--apdu', action='append', required=True, 
type=is_hexstr, help='C-APDU to send')
+
 class SmppHandler:
     client = None

@@ -167,47 +209,6 @@
         return h2b(resp), h2b(sw)

 if __name__ == '__main__':
-    option_parser = argparse.ArgumentParser(description='Tool to send OTA SMS 
RFM/RAM messages via SMPP',
-                                   
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    option_parser.add_argument("--host", help="Host/IP of the SMPP server", 
default="localhost")
-    option_parser.add_argument("--port", help="TCP port of the SMPP server", 
default=2775, type=int)
-    option_parser.add_argument("--system-id", help="System ID to use to bind 
to the SMPP server", default="test")
-    option_parser.add_argument("--password", help="Password to use to bind to 
the SMPP server", default="test")
-    option_parser.add_argument("--verbose", help="Enable verbose logging", 
action='store_true', default=False)
-    algo_crypt_choices = []
-    algo_crypt_classes = OtaAlgoCrypt.__subclasses__()
-    for cls in algo_crypt_classes:
-        algo_crypt_choices.append(cls.enum_name)
-    option_parser.add_argument("--algo-crypt", choices=algo_crypt_choices, 
default='triple_des_cbc2',
-                               help="OTA crypt algorithm")
-    algo_auth_choices = []
-    algo_auth_classes = OtaAlgoAuth.__subclasses__()
-    for cls in algo_auth_classes:
-        algo_auth_choices.append(cls.enum_name)
-    option_parser.add_argument("--algo-auth", choices=algo_auth_choices, 
default='triple_des_cbc2',
-                               help="OTA auth algorithm")
-    option_parser.add_argument('--kic', required=True, type=is_hexstr, 
help='OTA key (KIC)')
-    option_parser.add_argument('--kic-idx', default=1, type=int, help='OTA key 
index (KIC)')
-    option_parser.add_argument('--kid', required=True, type=is_hexstr, 
help='OTA key (KID)')
-    option_parser.add_argument('--kid-idx', default=1, type=int, help='OTA key 
index (KID)')
-    option_parser.add_argument('--cntr', default=0, type=int, help='replay 
protection counter')
-    option_parser.add_argument('--tar', required=True, type=is_hexstr, 
help='Toolkit Application Reference')
-    option_parser.add_argument("--cntr-req", 
choices=CNTR_REQ.decmapping.values(), default='no_counter',
-                               help="Counter requirement")
-    option_parser.add_argument('--no-ciphering', action='store_true', 
default=False, help='Disable ciphering')
-    option_parser.add_argument("--rc-cc-ds", 
choices=RC_CC_DS.decmapping.values(), default='cc',
-                               help="message check (rc=redundency check, 
cc=crypt. checksum, ds=digital signature)")
-    option_parser.add_argument('--por-in-submit', action='store_true', 
default=False,
-                               help='require PoR to be sent via SMS-SUBMIT')
-    option_parser.add_argument('--por-no-ciphering', action='store_true', 
default=False, help='Disable ciphering (PoR)')
-    option_parser.add_argument("--por-rc-cc-ds", 
choices=RC_CC_DS.decmapping.values(), default='cc',
-                               help="PoR check (rc=redundency check, cc=crypt. 
checksum, ds=digital signature)")
-    option_parser.add_argument("--por-req", 
choices=POR_REQ.decmapping.values(), default='por_required',
-                               help="Proof of Receipt requirements")
-    option_parser.add_argument('--src-addr', default='12', type=str, help='SMS 
source address (MSISDN)')
-    option_parser.add_argument('--dest-addr', default='23', type=str, 
help='SMS destination address (MSISDN)')
-    option_parser.add_argument('--timeout', default=10, type=int, 
help='Maximum response waiting time')
-    option_parser.add_argument('-a', '--apdu', action='append', required=True, 
type=is_hexstr, help='C-APDU to send')
     opts = option_parser.parse_args()

     logging.basicConfig(level=logging.DEBUG if opts.verbose else logging.INFO,

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/42236?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: I2d9782e3f5b1cac78c22d206fdcac4118c7d5e7c
Gerrit-Change-Number: 42236
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <[email protected]>

Reply via email to