Skip to content

Commit d22cb26

Browse files
author
Vladimir Kotal
committed
switch over to config-merge.py
1 parent a9fac2d commit d22cb26

File tree

3 files changed

+34
-19
lines changed

3 files changed

+34
-19
lines changed

tools/src/main/python/config-merge.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030

3131
"""
32-
Script for merging OpenGrok configuration
32+
Wrapper for Java program merging OpenGrok configuration.
3333
"""
3434

3535
if __name__ == '__main__':
@@ -48,12 +48,14 @@
4848
logger = logging.getLogger(os.path.basename(sys.argv[0]))
4949

5050
cmd = Java(args.options, classpath=args.jar, java=args.java,
51-
java_opts=args.java_opts,
51+
java_opts=args.java_opts, redirect_stderr=False,
5252
main_class='org.opengrok.indexer.configuration.ConfigMerge',
5353
logger=logger)
5454
cmd.execute()
5555
ret = cmd.getretcode()
5656
if ret is None or ret != 0:
57-
logger.error(cmd.getoutputstr())
57+
logger.error(cmd.geterroutput())
5858
logger.error("command failed (return code {})".format(ret))
5959
sys.exit(1)
60+
61+
print(cmd.getoutputstr())

tools/src/main/python/java.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Java(Command):
3737
"""
3838

3939
def __init__(self, command, logger=None, main_class=None, java=None,
40-
jar=None, java_opts=None, classpath=None):
40+
jar=None, java_opts=None, classpath=None, redirect_stderr=True):
4141

4242
if not java:
4343
java = self.FindJava(logger)
@@ -63,7 +63,8 @@ def __init__(self, command, logger=None, main_class=None, java=None,
6363
java_command.extend(command)
6464
logger.debug("Java command: {}".format(java_command))
6565

66-
super().__init__(java_command, logger=logger)
66+
super().__init__(java_command, logger=logger,
67+
redirect_stderr=redirect_stderr)
6768

6869
def FindJava(self, logger):
6970
"""

tools/src/main/python/projadm.py

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
print("Need Python 3, you are running {}".format(MAJOR_VERSION))
4949
sys.exit(1)
5050

51-
__version__ = "0.2"
51+
__version__ = "0.3"
5252

5353

5454
def exec_command(doit, logger, cmd, msg):
@@ -103,7 +103,7 @@ def install_config(doit, src, dst):
103103
sys.exit(1)
104104

105105

106-
def config_refresh(doit, logger, basedir, uri, configmerge, roconfig):
106+
def config_refresh(doit, logger, basedir, uri, configmerge, jar_file, roconfig):
107107
"""
108108
Refresh current configuration file with configuration retrieved
109109
from webapp. If roconfig is not None, the current config is merged with
@@ -137,7 +137,8 @@ def config_refresh(doit, logger, basedir, uri, configmerge, roconfig):
137137
logger.info('Refreshing configuration '
138138
'(merging with read-only config)')
139139
merged_config = exec_command(doit, logger,
140-
[configmerge, roconfig, fcur.name],
140+
[configmerge, '-a', jar_file,
141+
roconfig, fcur.name],
141142
"cannot merge configuration")
142143
with tempfile.NamedTemporaryFile() as fmerged:
143144
logger.debug("Temporary file for merged config: {}".
@@ -192,8 +193,7 @@ def project_delete(doit, logger, project, uri):
192193

193194

194195
if __name__ == '__main__':
195-
parser = argparse.ArgumentParser(description='grok configuration '
196-
'management.',
196+
parser = argparse.ArgumentParser(description='project management.',
197197
formatter_class=argparse.
198198
ArgumentDefaultsHelpFormatter)
199199
parser.add_argument('-D', '--debug', action='store_true',
@@ -203,9 +203,10 @@ def project_delete(doit, logger, project, uri):
203203
parser.add_argument('-R', '--roconfig',
204204
help='OpenGrok read-only configuration file')
205205
parser.add_argument('-U', '--uri', default='http://localhost:8080/source',
206-
help='uri of the webapp with context path')
206+
help='URI of the webapp with context path')
207207
parser.add_argument('-c', '--configmerge',
208208
help='path to the ConfigMerge binary')
209+
parser.add_argument('--jar', help='Path to jar archive to run')
209210
parser.add_argument('-u', '--upload', action='store_true',
210211
help='Upload configuration at the end')
211212
parser.add_argument('-n', '--noop', action='store_true', default=False,
@@ -248,23 +249,31 @@ def project_delete(doit, logger, project, uri):
248249
.format(args.base))
249250
sys.exit(1)
250251

251-
# read-only configuration file.
252+
# If read-only configuration file is specified, this means read-only
253+
# configuration will need to be merged with active webapp configuration.
254+
# This requires config merge tool to be run so couple of other things
255+
# need to be checked.
252256
if args.roconfig:
253257
if path.isfile(args.roconfig):
254258
logger.debug("Using {} as read-only config".format(args.roconfig))
255259
else:
256260
logger.error("File {} does not exist".format(args.roconfig))
257261
sys.exit(1)
258262

263+
configmerge_file = get_command(logger, args.configmerge, "config-merge.py")
264+
if configmerge_file is None:
265+
logger.error("Use the --configmerge option to specify the path to"
266+
"the config merge script")
267+
sys.exit(1)
268+
269+
if args.jar is None:
270+
logger.error('jar file needed for config merge tool, '
271+
'use --jar to specify one')
272+
sys.exit(1)
273+
259274
uri = args.uri
260275
if not uri:
261-
logger.error("uri of the webapp not specified")
262-
sys.exit(1)
263-
264-
configmerge_file = get_command(logger, args.configmerge, "ConfigMerge")
265-
if not configmerge_file:
266-
logger.error("Use the --configmerge option to specify the path to"
267-
"the ConfigMerge script")
276+
logger.error("URI of the webapp not specified")
268277
sys.exit(1)
269278

270279
lock = filelock.FileLock(os.path.join(tempfile.gettempdir(),
@@ -281,6 +290,7 @@ def project_delete(doit, logger, project, uri):
281290
basedir=args.base,
282291
uri=uri,
283292
configmerge=configmerge_file,
293+
jar_file=args.jar,
284294
roconfig=args.roconfig)
285295
elif args.delete:
286296
for proj in args.delete:
@@ -292,12 +302,14 @@ def project_delete(doit, logger, project, uri):
292302
basedir=args.base,
293303
uri=uri,
294304
configmerge=configmerge_file,
305+
jar_file=args.jar,
295306
roconfig=args.roconfig)
296307
elif args.refresh:
297308
config_refresh(doit=doit, logger=logger,
298309
basedir=args.base,
299310
uri=uri,
300311
configmerge=configmerge_file,
312+
jar_file=args.jar,
301313
roconfig=args.roconfig)
302314
else:
303315
parser.print_help()

0 commit comments

Comments
 (0)