1. 17 Jul, 2015 1 commit
    • Saurabh's avatar
      Published parameters as simple storage for generated passwords and NEO cluster name · 836309f4
      Saurabh authored
      For performance reasons, the root partition requests subpartitions during
      initialization of sections, whereas such processing should normally be done
      during the update/install phase.
      
      The consequence is that partitions may be requested whereas they depend on
      sections that fail (usually just temporarily, because of missing returned
      parameters in the first runs).
      
      For example, the request of zope partitions depends on the generation of
      passwords:
      
      1. password generated (__init__)
      2. zope partitions requested (__init__)
      3. password saved (install)
      
      As long as a failure happens between 2 and 3, zope parameters are always
      updated with a different password.
      
      In the case of NEO, the instanciation of zope partitions currently succeeds even
      if the list of master nodes is missing (note that there is a minor bug to fix
      here: whenever a NEO storage is not the main one, zope processes may start too
      early, and the user may have to restart zopes manually). The 'inituser_done'
      file is created but zope processes fail to start if NEO is used as main storage,
      and all this happens before the password was saved in the root partition
      ([neo-0-final] failing to install because 'admins' parameter returned yet).
      
      This was never an issue with ZEO because zopes start successfully at the same
      time the 'inituser_done' file is created.
      
      One way to solve this could have been to introduce a dummy dependency between
      [neo-0-final] and any other section generating a password. Quite ugly and we
      also found non-optimal to use a non-backuped file in the root partition to save
      such information, whereas we need anyway to publish them for the user.
      
      Therefore, we introduce a new 'publish-early' recipe for accessing and
      publishing desired parameters before any request of partitions. Of course,
      these must not be dropped by the usual [publish] section, and to avoid having
      to repeating them all manually, we have also added a '-extends' option to the
      'publish' recipe.
      
      We use the same technique to autogenerate and configure cluster name for NEO,
      which helps us in minimizing the number of params one has to pass for
      requesting NEO.
      
      In the 'generate.password' recipe, the 'storage-path' can now be empty, when
      there's no need to save the generated password in a file.
      836309f4
  2. 13 Jul, 2015 2 commits
  3. 10 Jul, 2015 3 commits
  4. 09 Jul, 2015 1 commit
  5. 08 Jul, 2015 2 commits
    • Julien Muchembled's avatar
    • Saurabh's avatar
      Make it possible to instanciate 1 NEO DB inside an ERP5 instance · d35284d8
      Saurabh authored
      Before it was only possible to make an ERP5 cluster connect to a NEO cluster
      that was instanciated separately, by passing "name" and "master_nodes"
      connection parameters in "storage-dict".
      
      For an internal NEO DB, "name" and "master_nodes" is filled automatically
      and you must instead pass a "server" dict, with same parameters as in NEO SR.
      Currently, a NEO cluster name must be given. Later, we hope to generate a good
      name automatically.
      
      All this was implemented by refactoring NEO & ERP5 SR, with common files.
      For the ERP5 SR, the root partition also serves as "root" partition for NEO
      partitions: in other words, there's no second empty partition.
      d35284d8
  6. 07 Jul, 2015 3 commits
  7. 05 Jul, 2015 1 commit
  8. 03 Jul, 2015 1 commit
  9. 02 Jul, 2015 3 commits
  10. 01 Jul, 2015 4 commits
  11. 30 Jun, 2015 1 commit
  12. 26 Jun, 2015 4 commits
  13. 25 Jun, 2015 2 commits
  14. 24 Jun, 2015 2 commits
  15. 22 Jun, 2015 7 commits
  16. 17 Jun, 2015 1 commit
  17. 16 Jun, 2015 2 commits