Github user kiwiflyer commented on the pull request:
https://github.com/apache/cloudstack/pull/1470#issuecomment-218446038
Remi,
I'm seeing some issues with this PR, related to the way the VR scripts
utilize the argv file name for other uses. We spent a fair bit of time trying
to run down a problem with static routes not being hot plugged. The odd thing
was, a failover to the backup, or a restart of the network brought up the
static routes fine (after applying your static route failover PR - thanks for
that!).
I think the problem is in the way /opt/cloud/bin/update_config.py calls out
to configure.main, that in turn calls the individual process classes:
def finish_config():
# Converge
returncode = configure.main(sys.argv)
sys.exit(returncode)
sys.argv here, happens in this PRs case to be static_routes.json.[GUID].
In configure.py, def main(argv) relies on the argv to be the actual json
file payload from /etc/cloudstack/, or in the case where you want to configure
every service, you just specify cmd_line.json. In our case, what we see is that
/etc/cloudstack/static_routes.json gets correctly replaced with the valid data,
but the configure method never calls out to CsStaticRoutes here:
if process_file in ["cmd_line.json", "static_routes.json"]:
logging.debug("Configuring static routes")
static_routes = CsStaticRoutes("staticroutes", config)
static_routes.process()
I took a look at this in Cosmic last night and I didn't see any additional
code within the systemvm scripts to handle this differently, so this may also
be an issue in Cosmic.
I would suspect, this pretty much affects the hot-plugging of any new
configuration.
I've learnt a lot about how horrible the VR scripts are in this adventure
and honestly I think the community needs to work on not just cleaning these up,
but making them more bulletproof in general.
I hope this points you in the right direction.
- Si
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---