Skip to content

Commit

Permalink
Refactor update_templates method
Browse files Browse the repository at this point in the history
This refactor aims at simplifying the flow of the code and reducing
conditionals.

Signed-off-by: Lorenzo Manacorda <lorenzo@kinvolk.io>
  • Loading branch information
Lorenzo Manacorda committed Oct 25, 2017
1 parent caa5609 commit a416de0
Showing 1 changed file with 21 additions and 23 deletions.
44 changes: 21 additions & 23 deletions components/sup/src/manager/service/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -418,35 +418,33 @@ impl Service {
"Service update failed; unable to find own service group",
);
let cfg_updated_from_rumors = self.cfg.update(census_group);
let cfg_changed = cfg_updated_from_rumors || self.user_config_updated;
let something_to_do = cfg_changed || census_ring.changed();

if something_to_do {
if self.user_config_updated {
if let Err(e) = self.cfg.load_user(&self.pkg) {
outputln!(preamble self.service_group, "Loading user-config failed: {}", e);
}
}

let (reload, reconfigure) = {
let ctx = self.render_context(census_ring);
if self.user_config_updated {
if let Err(e) = self.cfg.load_user(&self.pkg) {
outputln!(preamble self.service_group, "Loading user-config failed: {}", e);
}
}

let hooks_changed = if cfg_updated_from_rumors || census_ring.changed() {
self.compile_hooks(&ctx)
} else {
false
};
let (cfg_changed, reload, reconfigure) = {
let ctx = self.render_context(census_ring);

let reconfigure = self.compile_configuration(&ctx);
let reload = hooks_changed || self.user_config_updated;
if cfg_updated_from_rumors || census_ring.changed() {
let config_changed = cfg_updated_from_rumors || self.user_config_updated;
let needs_reload = self.compile_hooks(&ctx) || self.user_config_updated;
let needs_reconfigure = self.compile_configuration(&ctx);

(reload, reconfigure)
};
(config_changed, needs_reload, needs_reconfigure)
} else if self.user_config_updated {
(true, true, self.compile_configuration(&ctx))
} else {
(false, self.needs_reload, self.needs_reconfiguration)
}
};

self.needs_reload = reload;
self.needs_reconfiguration = reconfigure;
self.user_config_updated = false;
}
self.needs_reload = reload;
self.needs_reconfiguration = reconfigure;
self.user_config_updated = false;

cfg_changed
}
Expand Down

0 comments on commit a416de0

Please sign in to comment.