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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to