• Jérome Perrin's avatar
    testnode: SlapOS shared parts support · 316f23c0
    Jérome Perrin authored
    Shared parts speed up compilation time and is becoming the standard in
    SlapOS software installations, so it makes sense to use it in our test
    nodes, as it also gives one more opportunity to test this feature.
    
    erp5testnode configuration file supports a new shared_part_list option,
    that can be set to a \n separated list of paths to use for shared parts,
    following the same rules as slapos.core and slapos.recipe.cmmi (ie. the
    first ones are read-only and the last one is read-write).
    
    This shared_part_list option will be set in slapos.cfg used to compile
    both the "software for testnode" (ie. selenium-runner) and later the
    softwares under tests.
    The software under tests will also use a local directory for each test
    suite to install shared suite.
    
    The directory structure is now:
    
      srv/
        shared/
          (shared parts to install selenium runner)
        slapos/
          soft/
            (selenium-runner software)
        testnode/
          foo/ # test suite with reference foo
            inst/
              (partitions of tested software)
            shared/
              (shared parts to install tested software)
            soft/
              (tested software)
    
    and in the configuration srv/shared will be set as initial
    shared_part_list.
    
    When installing selenium-runner, srv/shared/ is used to write shared
    parts. These shared parts are never removed.
    
    When installing software under test, srv/shared/ and
    srv/testnode/foo/shared/ are used. If parts are found in srv/shared they
    are used, if they are not found, they are installed in
    srv/testnode/foo/shared/.
    
    In practice, this should mean that the shared parts installed by
    selenium-runner will be reused for all tested softwares and this should
    speed up initial installation of these softwares.
    
    Currently, nothing is implemented regarding removal of unused shared
    parts, but in our case:
     - srv/testnode/foo/shared/ will be removed when "foo" is removed.
     - srv/shared/ should be used only when installing selenium-runner.
    
    If this starts to use too much disk space, one quick and dirty
    workaround could be to destroy the test node instance and re-create it.
    316f23c0
__init__.py 4.38 KB