• Kirill Smelkov's avatar
    X Do not recreate slaptapX-* on every idempotent `slapos node instance` run · e7066823
    Kirill Smelkov authored
    To run tapsplit we use plone.recipe.command with both command and
    update-command set to `tapsplit ...`. But tapsplit, when run, fully
    recreates and reinitializes subtap interfaces, which leads to
    interfering with running enb because subtap interfaces, that enb
    started to use, are removed. This is not desirable behaviour.
    
    What we need:
    
    1) create subtap interfaces only once and keep them stable
    2) until configuration changes which should lead to
       * subtaps recreated, and
       * enb restarted
    
    Carefully reading plone.recipe.command documentation shows:
    
      command
        Command to run when the buildout part is installed.
    
      update-command
        Command to run when the buildout part is updated. This happens when
        buildout is run BUT THE CONFIGURATION FOR THIS BUILDOUT PART HAS NOT
        CHANGED.
    
      (emphasis mine)
    
    So the fix looks to be to make update-command noop - this fulfills
    requirement "1". For "2" - I've verified that when configuration
    changes, e.g. number of RU changes, buildout reinstalls [vtap] section
    from scratch, and it also should restart enb, because generated enb.cfg
    changes.
    
    So the fix is fully correct because it satifies all needed requirements.
    e7066823
libinstance.jinja2.cfg 12 KB