Skip to content

Commit 547fc1e

Browse files
committed
bin: add the parameter disabling HTTP bootstrapping
Particularly useful together with locally stored metadata. I am not sure how to get rid of the need to need to provide URL when I just want to let pyodata parse locally stored metadata. The newly introduced option will allow me to run pyodata with dummy URL because no request HTTP request will be send. If you find a better User Experience, feel free to rework it. Usage: pyodata DUMMY_FAKE_URL --no-session-init --metdata ./metadata.xml
1 parent 9fec3f2 commit 547fc1e

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

bin/pyodata

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ def _parse_args(argv):
6767
parser.add_argument('--password', default=None, type=str)
6868
parser.add_argument('--metadata', default=None, type=str,
6969
help='Path to the XML file with service $metadata')
70+
parser.add_argument('--no-session-init', default=False,
71+
action='store_true', help='Skip HTTP session initialization')
7072
parser.set_defaults(func=print_out_metadata_info)
7173

7274
subparsers = parser.add_subparsers()
@@ -97,13 +99,17 @@ def _main(argv):
9799

98100
session.auth = (args.user, args.password)
99101

100-
try:
101-
session.head(args.SERVICE_ROOT_URL)
102-
args.password = 'xxxxx'
103-
except pyodata.exceptions.HttpError as err:
104-
sys.stderr.write(str(err))
105-
sys.stderr.write('\n')
106-
sys.exit(1)
102+
# Oh, I am sorry for the double negation,
103+
# but I cannot find a better construction.
104+
if not args.no_session_init:
105+
print('[Initializing HTTP session ...]')
106+
try:
107+
session.head(args.SERVICE_ROOT_URL)
108+
args.password = 'xxxxx'
109+
except pyodata.exceptions.HttpError as err:
110+
sys.stderr.write(str(err))
111+
sys.stderr.write('\n')
112+
sys.exit(1)
107113

108114
static_metadata = None
109115
if args.metadata:

0 commit comments

Comments
 (0)