diff options
author | Matthias Braun <matze@braunis.de> | 2017-09-06 21:57:03 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-09-06 21:57:03 +0000 |
commit | 1404ca840aabef04e628d8853866ca6939b350a4 (patch) | |
tree | c10df2b981d5bcf938005ec6d8072ecc9902d59e /lnt/util/ServerUtil.py | |
parent | da189bcea9ca301e4a739cb5884cc9d4d86c4310 (diff) |
Make machine selection/update more flexible
r309247 changed LNTs response to mismatching machine information to
either reject the submission or update the existing machine data. Some
users prefer the previous behavior of creating a separate machine with
the same name instead.
This changes LNT interface to accept an select-machine parameter:
- match: Rejects submission with mismatching machine information
- update: Updates the existing machine on mismatching machine
information.
- split: Creates a new machine with the same name (but different id
number) when none of the existing ones match the machine
information.
Differential Revision: https://reviews.llvm.org/D37083
git-svn-id: https://llvm.org/svn/llvm-project/lnt/trunk@312672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lnt/util/ServerUtil.py')
-rw-r--r-- | lnt/util/ServerUtil.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lnt/util/ServerUtil.py b/lnt/util/ServerUtil.py index c41cf9d..270f781 100644 --- a/lnt/util/ServerUtil.py +++ b/lnt/util/ServerUtil.py @@ -29,13 +29,13 @@ def _show_json_error(reply): sys.stderr.write(message + '\n') -def submitFileToServer(url, file, updateMachine, mergeRun): +def submitFileToServer(url, file, select_machine, merge_run): with open(file, 'rb') as f: values = { 'input_data': f.read(), 'commit': "1", # compatibility with old servers. - 'update_machine': "1" if updateMachine else "0", - 'merge': mergeRun, + 'select_machine': select_machine, + 'merge': merge_run, } headers = {'Accept': 'application/json'} data = urllib.urlencode(values) @@ -63,7 +63,8 @@ def submitFileToServer(url, file, updateMachine, mergeRun): return reply -def submitFileToInstance(path, file, updateMachine=False, mergeRun='replace'): +def submitFileToInstance(path, file, select_machine='match', + merge_run='replace'): # Otherwise, assume it is a local url and submit to the default database # in the instance. instance = lnt.server.instance.Instance.frompath(path) @@ -75,22 +76,25 @@ def submitFileToInstance(path, file, updateMachine=False, mergeRun='replace'): session = db.make_session() return lnt.util.ImportData.import_and_report( config, db_name, db, session, file, format='<auto>', ts_name='nts', - updateMachine=updateMachine, mergeRun=mergeRun) + select_machine=select_machine, merge_run=merge_run) -def submitFile(url, file, verbose, updateMachine=False, mergeRun='replace'): +def submitFile(url, file, verbose, select_machine='match', + merge_run='replace'): # If this is a real url, submit it using urllib. if '://' in url: - result = submitFileToServer(url, file, updateMachine, mergeRun) + result = submitFileToServer(url, file, select_machine, merge_run) else: - result = submitFileToInstance(url, file, updateMachine, mergeRun) + result = submitFileToInstance(url, file, select_machine, merge_run) return result -def submitFiles(url, files, verbose, updateMachine=False, mergeRun='replace'): +def submitFiles(url, files, verbose, select_machine='match', + merge_run='replace'): results = [] for file in files: - result = submitFile(url, file, verbose, updateMachine, mergeRun) + result = submitFile(url, file, verbose, select_machine=select_machine, + merge_run=merge_run) if result: results.append(result) return results |