Skip to content

Commit

Permalink
Fix entire-reload parameter behaviour (#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
leenr authored Jan 21, 2025
1 parent a513152 commit 150586d
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions annet/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,9 @@ def parse_result(self, res: ann_gen.OldNewResult):
elif not new_files and not new_json_fragment_files:
return

enable_reload = self.args.entire_reload is not cli_args.EntireReloadFlag.no
force_reload = self.args.entire_reload is cli_args.EntireReloadFlag.force

upload_files: Dict[str, bytes] = {}
reload_cmds: Dict[str, bytes] = {}
generator_types: Dict[str, GeneratorType] = {}
Expand All @@ -485,18 +488,23 @@ def parse_result(self, res: ann_gen.OldNewResult):
old_text = jsontools.format_json(old_json_cfg)
new_text = jsontools.format_json(file_content_or_json_cfg)
diff_content = "\n".join(_diff_file(old_text, new_text))
if diff_content:
self._has_diff = True
upload_files[file], reload_cmds[file] = file_content.encode(), cmds.encode()
generator_types[file] = generator_type
self.cmd_lines.append("= Deploy cmds %s/%s " % (device.hostname, file))
self.cmd_lines.extend([cmds, ""])
self.cmd_lines.append("= %s/%s " % (device.hostname, file))
self.cmd_lines.extend([file_content, ""])
self.diff_lines.append("= %s/%s " % (device.hostname, file))
self.diff_lines.extend([diff_content, ""])

if upload_files:

if diff_content or force_reload:
self._has_diff |= True

upload_files[file] = file_content.encode()
generator_types[file] = generator_type
self.cmd_lines.append("= %s/%s " % (device.hostname, file))
self.cmd_lines.extend([file_content, ""])
self.diff_lines.append("= %s/%s " % (device.hostname, file))
self.diff_lines.extend([diff_content, ""])

if enable_reload:
reload_cmds[file] = cmds.encode()
self.cmd_lines.append("= Deploy cmds %s/%s " % (device.hostname, file))
self.cmd_lines.extend([cmds, ""])

if self._has_diff:
self.deploy_cmds[device] = {
"files": upload_files,
"cmds": reload_cmds,
Expand Down Expand Up @@ -536,13 +544,12 @@ def __init__(self, args: cli_args.DeployOptions):
self._filterer = filtering.filterer_connector.get()

def parse_result(self, job: DeployerJob, result: ann_gen.OldNewResult):
entire_reload = self.args.entire_reload
logger = get_logger(job.device.hostname)

job.parse_result(result)
self.failed_configs.update(job.failed_configs)

if job.has_diff() or entire_reload is entire_reload.force:
if job.has_diff():
self.cmd_lines.extend(job.cmd_lines)
self.deploy_cmds.update(job.deploy_cmds)
self.diffs.update(job.diffs)
Expand Down

0 comments on commit 150586d

Please sign in to comment.