Mercurial > p > roundup > code
annotate scripts/schema-dump.py @ 8566:e4191aa7b402 default tip
doc: issue2551415 correct doc for change input->input_payload
in 2.5 the rest interface changed a variable name from input to
input_payload. An earlier commit changed the rest docs. This commit
adds an item for it to the upgrading 2.4.0->2.5.0 section. Also cross
reference added to the rest docs with the updated examples.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 09 Apr 2026 00:19:06 -0400 |
| parents | 9c3ec0a5c7fc |
| children |
| rev | line source |
|---|---|
|
7053
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
1 #!/usr/bin/env python3 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
3 """ |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
4 Use recently documented XML-RPC API to dump |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
5 Roundup data schema in human readable form. |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
6 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
7 Works with demo tracker using: |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
8 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
9 http://admin:admin@localhost:8917/demo/xmlrpc |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
10 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
11 Future development may cover: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
12 [ ] unreadable dump formats |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
13 [ ] access to local database |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
14 [ ] lossless dump/restore cycle |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
15 [ ] data dump and filtering with preserved |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
16 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
17 """ |
|
5936
ed5c19fca083
__future__ import was failing, not first command in file.
John Rouillard <rouilj@ieee.org>
parents:
5487
diff
changeset
|
18 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
19 __license__ = "Public Domain" |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
20 __version__ = "1.1" |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
21 __authors__ = [ |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
22 "anatoly techtonik <techtonik@gmail.com>" |
|
7783
8d81f89ba246
chore: lint - sort import, add trailing , in dict.
John Rouillard <rouilj@ieee.org>
parents:
7075
diff
changeset
|
23 "John Rouillard <rouilj@users.sourceforge.net>", |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
24 ] |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
25 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
26 import os |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
27 import pprint |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
28 import sys |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
29 import textwrap |
|
7783
8d81f89ba246
chore: lint - sort import, add trailing , in dict.
John Rouillard <rouilj@ieee.org>
parents:
7075
diff
changeset
|
30 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
31 try: |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
32 import urllib.parse as url_parser # python 3 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
33 except ImportError: |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
34 import urlparse as url_parser # python 2 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
35 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
36 from argparse import ArgumentParser |
|
7783
8d81f89ba246
chore: lint - sort import, add trailing , in dict.
John Rouillard <rouilj@ieee.org>
parents:
7075
diff
changeset
|
37 |
|
5408
e46ce04d5bbc
Python 3 preparation: update xmlrpclib / SimpleXMLRPCServer imports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4938
diff
changeset
|
38 from roundup.anypy import xmlrpc_ |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
39 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
40 sname = os.path.basename(sys.argv[0]) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
41 usage = """\ |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
42 usage: %s [options] URL |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
43 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
44 URL is XML-RPC endpoint for your tracker, such as: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
45 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
46 http://localhost:8917/demo/xmlrpc |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
47 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
48 options: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
49 --pprint (default) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
50 --json |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
51 --yaml |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
52 --raw |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
53 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
54 -h --help |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
55 --version |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
56 """ % sname |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
57 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
58 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
59 def format_pprint(var): |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
60 return pprint.pformat(var) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
61 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
62 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
63 def format_json(var): |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
64 jout = pprint.pformat(var) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
65 jout = jout.replace('"', "\\'") # " to \' |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
66 jout = jout.replace("'", '"') # ' to " |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
67 jout = jout.replace('\\"', "'") # \" to ' |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
68 return jout |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
69 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
70 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
71 def format_yaml(var): |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
72 out = pprint.pformat(var) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
73 out = out.replace('{', ' ') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
74 out = out.replace('}', '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
75 out = textwrap.dedent(out) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
76 out = out.replace("'", '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
77 out = out.replace(' [[', '\n [') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
78 out = out.replace(']]', ']') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
79 out = out.replace('],', '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
80 out = out.replace(']', '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
81 out2 = [] |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
82 for line in out.splitlines(): |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
83 if '[' in line: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
84 line = ' ' + line.lstrip(' [') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
85 line = line.replace('>', '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
86 line = line.replace('roundup.hyperdb.', '') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
87 # expandtabs(16) with limit=1 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
88 n, v = line.split(', <') |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
89 if len(n) > 14: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
90 indent = 0 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
91 else: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
92 indent = 14 - len(n) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
93 line = line.replace(', <', ': '+' '*indent) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
94 line.split(",") |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
95 out2.append(line) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
96 out = '\n'.join(out2) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
97 return out |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
98 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
99 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
100 class SpecialTransport(): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
101 """Mixin for http/https transports to implement new send_content with |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
102 CSRF prevention headers to both of them. |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
103 """ |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
104 def send_content(self, connection, request_body): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
105 connection.putheader("Referer", "%s://%s%s%s/" % ( |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
106 self.components.scheme, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
107 self.components.hostname, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
108 ':' + str(self.components.port) if self.components.port else '', |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
109 self.components.path)) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
110 connection.putheader("Origin", "%s://%s%s" % ( |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
111 self.components.scheme, self.components.hostname, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
112 ':' + str(self.components.port) if self.components.port else '')) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
113 connection.putheader("X-Requested-With", "XMLHttpRequest") |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
114 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
115 connection.putheader("Content-Type", "text/xml") |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
116 connection.putheader("Content-Length", str(len(request_body))) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
117 connection.endheaders() |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
118 if request_body: |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
119 connection.send(request_body) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
120 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
121 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
122 class SpecialHttpTransport(SpecialTransport, xmlrpc_.client.Transport, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
123 object): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
124 """SpecialTransport must be first to use its send_content. Explicit |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
125 object inheritance required for python2 apparently.""" |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
126 def __init__(self, url): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
127 self.components = url_parser.urlparse(url) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
128 # works both python2 (with object inheritance) and python3 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
129 super(SpecialHttpTransport, self).__init__(self) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
130 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
131 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
132 class SpecialHttpsTransport(SpecialTransport, xmlrpc_.client.SafeTransport, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
133 object): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
134 """SpecialTransport must be first to use its send_content. Explicit |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
135 object inheritance required for python2 apparently.""" |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
136 def __init__(self, url): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
137 self.components = url_parser.urlparse(url) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
138 # works both python2 (with object inheritance) and python3 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
139 super(SpecialHttpsTransport, self).__init__(self) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
140 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
141 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
142 if __name__ == "__main__": |
|
7053
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
143 parser = ArgumentParser() |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
144 parser.add_argument("url", nargs=1) |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
145 parser.add_argument("--raw", action='store_true') |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
146 parser.add_argument("--yaml", action='store_true') |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
147 parser.add_argument("--json", action='store_true') |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
148 parser.add_argument("-v", "--version", action='store_true') |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
149 args = parser.parse_args() |
|
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
150 if args.version: |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
151 sys.exit(sname + " " + __version__) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
152 |
|
7075
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
153 if args.url[0].lower().startswith('https:'): |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
154 transport = SpecialHttpsTransport |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
155 else: |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
156 transport = SpecialHttpTransport |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
157 |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
158 roundup_server = xmlrpc_.client.ServerProxy( |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
159 args.url[0], |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
160 transport=transport(args.url[0]), |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
161 verbose=False, |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
162 allow_none=True) |
|
739b9f017d2c
issue2551243: Update schema-dump add anti-csrf headers
John Rouillard <rouilj@ieee.org>
parents:
7053
diff
changeset
|
163 |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
164 schema = roundup_server.schema() |
|
7053
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
165 if args.raw: |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
166 print(str(schema)) |
|
7053
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
167 elif args.yaml: |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
168 print(format_yaml(schema)) |
|
7053
b5fffd2a64af
issue2551195: port scripts to argparse
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5936
diff
changeset
|
169 elif args.json: |
|
4937
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
170 print(format_json(schema)) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
171 else: |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
172 print(format_pprint(schema)) |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
173 |
|
9369ade6c24b
scripts/schema-dump.py: New script to dump schema from tracker through XML-RPC
anatoly techtonik <techtonik@gmail.com>
parents:
diff
changeset
|
174 print("") |
