|
62 | 62 | # "constants"
|
63 | 63 | HOOK_TIMEOUT_PROPERTY = 'hook_timeout'
|
64 | 64 | CMD_TIMEOUT_PROPERTY = 'command_timeout'
|
| 65 | + IGNORED_REPOS_PROPERTY = 'ignored_repos' |
| 66 | + PROXY_PROPERTY = 'proxy' |
| 67 | + COMMANDS_PROPERTY = 'commands' |
| 68 | + DISABLED_PROPERTY = 'disabled' |
| 69 | + HOOKDIR_PROPERTY = 'hookdir' |
| 70 | + HOOKS_PROPERTY = 'hooks' |
| 71 | + LOGDIR_PROPERTY = 'logdir' |
| 72 | + PROJECTS_PROPERTY = 'projects' |
65 | 73 |
|
66 | 74 | parser = argparse.ArgumentParser(description='project mirroring')
|
67 | 75 |
|
|
93 | 101 | else:
|
94 | 102 | config = {}
|
95 | 103 |
|
96 |
| - GLOBAL_TUNABLES = ['hookdir', 'proxy', 'logdir', 'commands', 'projects', |
| 104 | + GLOBAL_TUNABLES = [HOOKDIR_PROPERTY, PROXY_PROPERTY, LOGDIR_PROPERTY, |
| 105 | + COMMANDS_PROPERTY, PROJECTS_PROPERTY, |
97 | 106 | HOOK_TIMEOUT_PROPERTY, CMD_TIMEOUT_PROPERTY]
|
98 | 107 | diff = diff_list(config.keys(), GLOBAL_TUNABLES)
|
99 | 108 | if diff:
|
|
102 | 111 | sys.exit(1)
|
103 | 112 |
|
104 | 113 | # Make sure the log directory exists.
|
105 |
| - logdir = config.get("logdir") |
| 114 | + logdir = config.get(LOGDIR_PROPERTY) |
106 | 115 | if logdir:
|
107 | 116 | check_create_dir(logger, logdir)
|
108 | 117 |
|
|
121 | 130 | logger.debug("Source root = {}".format(source_root))
|
122 | 131 |
|
123 | 132 | project_config = None
|
124 |
| - projects = config.get('projects') |
| 133 | + projects = config.get(PROJECTS_PROPERTY) |
125 | 134 | if projects:
|
126 | 135 | if projects.get(args.project):
|
127 | 136 | project_config = projects.get(args.project)
|
|
140 | 149 | project_config = projects.get(proj)
|
141 | 150 | break
|
142 | 151 |
|
143 |
| - hookdir = config.get('hookdir') |
| 152 | + hookdir = config.get(HOOKDIR_PROPERTY) |
144 | 153 | if hookdir:
|
145 | 154 | logger.debug("Hook directory = {}".format(hookdir))
|
146 | 155 |
|
|
163 | 172 | format(args.project))
|
164 | 173 |
|
165 | 174 | # Quick sanity check.
|
166 |
| - KNOWN_PROJECT_TUNABLES = ['disabled', CMD_TIMEOUT_PROPERTY, |
167 |
| - HOOK_TIMEOUT_PROPERTY, 'proxy', |
168 |
| - 'ignored_repos', 'hooks'] |
| 175 | + KNOWN_PROJECT_TUNABLES = [DISABLED_PROPERTY, CMD_TIMEOUT_PROPERTY, |
| 176 | + HOOK_TIMEOUT_PROPERTY, PROXY_PROPERTY, |
| 177 | + IGNORED_REPOS_PROPERTY, HOOKS_PROPERTY] |
169 | 178 | diff = diff_list(project_config.keys(), KNOWN_PROJECT_TUNABLES)
|
170 | 179 | if diff:
|
171 | 180 | logger.error("unknown project configuration option(s) '{}' "
|
|
190 | 199 | logger.debug("Project hook timeout = {}".
|
191 | 200 | format(hook_timeout))
|
192 | 201 |
|
193 |
| - ignored_repos = project_config.get('ignored_repos') |
| 202 | + ignored_repos = project_config.get(IGNORED_REPOS_PROPERTY) |
194 | 203 | if ignored_repos:
|
195 | 204 | if type(ignored_repos) is not list:
|
196 |
| - logger.error("ignored_repos for project {} is not a list". |
197 |
| - format(args.project)) |
| 205 | + logger.error("{} for project {} is not a list". |
| 206 | + format(IGNORED_REPOS_PROPERTY, args.project)) |
198 | 207 | sys.exit(1)
|
199 | 208 | logger.debug("has ignored repositories: {}".
|
200 | 209 | format(ignored_repos))
|
201 | 210 |
|
202 |
| - hooks = project_config.get('hooks') |
| 211 | + hooks = project_config.get(HOOKS_PROPERTY) |
203 | 212 | if hooks:
|
204 | 213 | if not hookdir:
|
205 |
| - logger.error("Need to have 'hookdir' in the configuration " |
206 |
| - "to run hooks") |
| 214 | + logger.error("Need to have '{}' in the configuration " |
| 215 | + "to run hooks".format(HOOKDIR_PROPERTY)) |
207 | 216 | sys.exit(1)
|
208 | 217 |
|
209 | 218 | if not os.path.isdir(hookdir):
|
|
227 | 236 | "executable".format(hookpath))
|
228 | 237 | sys.exit(1)
|
229 | 238 |
|
230 |
| - if project_config.get('proxy'): |
231 |
| - if not config.get('proxy'): |
| 239 | + if project_config.get(PROXY_PROPERTY): |
| 240 | + if not config.get(PROXY_PROPERTY): |
232 | 241 | logger.error("global proxy setting is needed in order to"
|
233 | 242 | "have per-project proxy")
|
234 | 243 | sys.exit(1)
|
|
273 | 282 |
|
274 | 283 | # We want this to be logged to the log file (if any).
|
275 | 284 | if project_config:
|
276 |
| - if project_config.get('disabled'): |
| 285 | + if project_config.get(DISABLED_PROPERTY): |
277 | 286 | logger.info("Project {} disabled, exiting".
|
278 | 287 | format(args.project))
|
279 | 288 | sys.exit(2)
|
|
282 | 291 | args.project + "-mirror.lock"))
|
283 | 292 | try:
|
284 | 293 | with lock.acquire(timeout=0):
|
285 |
| - proxy = config.get('proxy') if use_proxy else None |
| 294 | + proxy = config.get(PROXY_PROPERTY) if use_proxy else None |
286 | 295 | if prehook:
|
287 | 296 | logger.info("Running pre hook")
|
288 | 297 | if run_hook(logger, prehook,
|
|
315 | 324 | source_root + repo_path,
|
316 | 325 | repo_type,
|
317 | 326 | args.project,
|
318 |
| - config.get('commands'), |
| 327 | + config.get(COMMANDS_PROPERTY), |
319 | 328 | proxy,
|
320 | 329 | None,
|
321 | 330 | command_timeout)
|
|
0 commit comments