1. 13 Jan, 2024 36 commits
    • Jérome Perrin's avatar
      component/fluentbit-plugin-wendelin: version up · da033542
      Jérome Perrin authored
      also reorganise the build to use latest golang
      da033542
    • Jérome Perrin's avatar
      wip cloudooo · 7528edee
      Jérome Perrin authored
      7528edee
    • Jérome Perrin's avatar
      version ERP5 conflicts zope · 5066dfd7
      Jérome Perrin authored
      5066dfd7
    • Jérome Perrin's avatar
      hstack/slapos: version up urllib3 2.0.6 · ee3eac41
      Jérome Perrin authored
      ee3eac41
    • Jérome Perrin's avatar
      erp5/test: use ZPythonScript_edit instead of ZPythonScriptHTML_editAction · d76381a8
      Jérome Perrin authored
      The later is not really supposed to be XML-RPC comptabible and it's
      anyway to use ZPythonScript_edit
      d76381a8
    • Jérome Perrin's avatar
      theia retry downloads · 7f7c4873
      Jérome Perrin authored
      7f7c4873
    • Jérome Perrin's avatar
      WIP grafana · 37a7ba87
      Jérome Perrin authored
      37a7ba87
    • Jérome Perrin's avatar
      stack/erp5: backport some Zope fixes WIP · 868d3cdd
      Jérome Perrin authored
      868d3cdd
    • Jérome Perrin's avatar
      software/erp5/test: test clean shutdown WIP 🚧 · add6f921
      Jérome Perrin authored
      testing strategy:
       - use an external method with a transaction manager which sleeps
        for 20 seconds during tpc_vote and tpc_commit
       - commit such a transaction
       - stop zope
       - check the stop happens after the tpc_commit
      add6f921
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      grafana · f294f127
      Jérome Perrin authored
      f294f127
    • Jérome Perrin's avatar
      3f5995b1
    • Jérome Perrin's avatar
      software/grafana: include a telegraf plugin to get slapos process metrics · ac4a9743
      Jérome Perrin authored
      For now this still have to be enabled with a config like this in a .conf
      file in srv/telegraf/extra-config/  :
      
          [[inputs.execd]]
            name_override = "slapos"
            # this needs sudo when using can not access supervisor socket, like when being installed in root slapos
            command = ["/usr/bin/sudo", "$SOFTWARE_DIR/go.work/bin/telegraf-input-slapos", "-config", "/path/to/slapos.conf"]
      
      /path/to/slapos.conf would contain something like this:
      
          [[inputs.slapos]]
            ## Folder where partitions are located
            instance_root = "/srv/slapgrid/"
      
            ## filepath.Glob pattern to look for recursive instances
            recursive_instance_glob_pattern = "*/srv/runner/inst*/"
      
            ## Path of supervisor socket, relative to instance root
            socket_name = "sv.sock"
      ac4a9743
    • Jérome Perrin's avatar
      software/grafana: version up telegraf v1.20.2 · 89ea9651
      Jérome Perrin authored
      This version has a new sql input, that can be used to get metrics from sql
      queries.
      89ea9651
    • Jérome Perrin's avatar
      2833e2bb
    • Jérome Perrin's avatar
      Revert "XXX-zope4py3: zodbpickle: Dirty hack to have encoding sets to utf-8." · 93b33ce7
      Jérome Perrin authored
      This reverts commit 31eaaec1.
      
      This slows down business template by a factor of two and it seems we
      don't need it. I'm experimenting with hacks in ppml.py but maybe just
      creating the Unpickler with encoding='utf-8' in
      product/ERP5Type/XMLExportImport/__init__.py:267 is enough ?
      93b33ce7
    • Jérome Perrin's avatar
      py3: do not enable NEO test yet 🚧 · 9ddeee5d
      Jérome Perrin authored
      at this point they all fail after long timeouts, because neo does not
      support py3 yet
      9ddeee5d
    • Jérome Perrin's avatar
      ERP5 PY3: WIP init_user fix · 7961d4fd
      Jérome Perrin authored
      7961d4fd
    • Jérome Perrin's avatar
      WIP ERP5: XXX dumps() parameter for longrequest promise 🚧 · c8d6fa47
      Jérome Perrin authored
      Not sure why it was OK on python2 and not sure if this has to be done
      or the promise code needs to cast the results of getConfig()
      c8d6fa47
    • Jérome Perrin's avatar
      ERP5 py3: WIP changes · bd945955
      Jérome Perrin authored
      bd945955
    • Arnaud Fontaine's avatar
      XXX-zope4py3: zodbpickle: Dirty hack to have encoding sets to utf-8. · f6541699
      Arnaud Fontaine authored
      Otherwise it fails with the following exception because of non-ASCII characters
      (`[A-Z&é@{]{3,7})`) (see unconvert()) below):
      
        => erp5_core/PathTemplateItem/portal_preferences/default_site_preference.xml
           File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 844, in load
              dispatch[key[0]](self)
           File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 1035, in load_short_binstring
              self.append(self.decode_string(data))
           File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 989, in decode_string
              return value.decode(self.encoding, self.errors)
        UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128)
      f6541699
    • Jérome Perrin's avatar
      software/slapos-sr-testing: add erp5-py3 · 55e0c200
      Jérome Perrin authored
      55e0c200
    • Bryton Lacquement's avatar
    • Kazuhiko Shiozaki's avatar
    • Kazuhiko Shiozaki's avatar
      78fe6140
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      28982944
    • Jérome Perrin's avatar
      random: expose hashed passwords in recipe options · 5efa1762
      Jérome Perrin authored
      Directly expose all passlib.hash supported hashes, using a `passwd-`
      prefix. For example, to access `sha256_crypt`, use `passwd-sha256-crypt`
      option name.
      
        [secret]
        recipe = slapos.cookbook:generate.password
      
        [config-file]
        hashed-password = ${secret:passwd-sha256-crypt}
      5efa1762
    • Jérome Perrin's avatar
      stack/erp5: implement Zope's rewrite rules in ERP5 balancer partition · fa27962e
      Jérome Perrin authored
      The strategy for compatibility is that:
       - haproxy still listen on the same port as before, without rewrite rule.
         This is called "legacy" port.
       - for each frontend from request parameters, we introduce an haproxy
         frontend with a rewrite for the corresponding `internal-path`
         parameter.
       - the shared frontend instance is updated to use this new frontend
         entry from haproxy. This will cause a small downtime until the shared
         frontend is updated to the new URL on ERP5, but since this feature
         was not used, it's OK.
      
      Technical details are that we:
       - split haproxy config to have frontends and backends.
       - introduce one frontend in haproxy for each frontend from request
         parameters.
       - routing-rule-list argument is still honored the same way, globally
         and after path from frontend.
       - change the shared frontend requests to use "" type, no longer "zope"
         type.
       - we don't do automatic detection of /VirtualHostRoot in URL but always
         add it, because it could be used to trick zope into thinking it
         serves requests for an arbitrary host and do open redirects
       - before using the request's host header in virtualhost path, we check
         that it does not contain /, to prevent injection of virutalhost path
         elements through the host header.
       - we don't use the "path" parameter from shared frontend, because we
         want the frontend to be simple, so we don't want it to rewrite the
         request path (which is also the reason why we deprecated "zope" type)
       - the tests have changed a lot, because they were using what's now the
         "legacy" URL types, so we updated it to use the new URL types with
         all the /VirtualHostRoot/../ in path and also because they use IPv6
         URL, no longer IPv4
      fa27962e
    • Jérome Perrin's avatar
      79344e15
    • Jérome Perrin's avatar
      stack/erp5: use slapos.recipe.build to manage haproxy parameters · e4da0fe1
      Jérome Perrin authored
      and save the already allocated ports in a state file, so that requesting
      new families does not change already allocated ports.
      e4da0fe1
    • Jérome Perrin's avatar
      stack/erp5: use caucase managed certificate for balancer · c90ff590
      Jérome Perrin authored
      This reverts commit 620c9332 (stack/erp5: stop using caucase managed
      certificate for balancer, 2020-11-10) with an updated design. We add a
      caucase service for balancer in the balancer partition. The caucase
      service from the root partition (that was not used) is removed.
      
      The underlying idea is that the default configuration should use multiple
      caucases with limited scope, here we have one caucase to manage the
      certificate used by haproxy server in the balancer partition, so we put
      one caucase to manage this certificate and the caucase is configured to
      auto-accept one certificate only. The plan is that when we will add a
      certificate for mariadb server, we'll add another caucase inside this
      mariadb server.
      
      For more advanced usage and also to support the cases where a new
      certificate needs to be re-emitted for some reason, users can request
      with an existing caucase URL. In that case, they will have to accept
      the certificate requests.
      
      Notable changes:
      
      balancer/ssl/caucase-url is no longer documented in parameters, this is
      an internal parameter, users can pass one global caucase service to
      manage all partition
      
      CAUCASE environment variable is no longer set when running zope. There
      was no identified use case and with this new approach of multiple
      caucases, the term "caucase" alone became ambiguous.
      c90ff590
    • Jérome Perrin's avatar
      stack/erp5: remove not used "backend-path" · 1e8055a7
      Jérome Perrin authored
      This is not documented in schema and has no effect in erp5 (but this is
      still used for slapos-master)
      1e8055a7
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      ERP5: rework frontend instance parameter · f686885b
      Jérome Perrin authored
      This change the format or the (mostly) unused frontend parameter to
      support requesting more than one frontend and also enable the request of
      a frontend by default, so that requesting a frontend separately is no
      longer needed.
      
      The `frontend` parameter now also supports requesting frontends for
      specific paths on the ERP5 backend, the example below requests a
      frontend serving directly a web site, with the necessary rewrite rules:
      
      ```js
      {
        "frontend": {
          "default": {
            "internal-path": "/erp5/web_site_module/renderjs_runner/"
          }
        }
      }
      ```
      
      The example below requests a default frontend to the erp5 root, to
      access the ZMI or erp5_xhtml_style interface and two web sites:
      
      ```js
      {
        "frontend": {
          "default": {},
          "erp5js": {
            "internal-path": "/erp5/web_site_module/renderjs_runner/"
          },
          "crm": {
            "internal-path": "/erp5/web_site_module/erp5_officejs_support_request_ui/"
          }
        }
      }
      ```
      
      The example below has an explicit definition of the zope families using
      `zope-partition-dict` parameter, because there is more than one zope
      family, no frontend is requested by default:
      
      ```js
      {
        "zope-partition-dict": {
          "backoffice": {
            "family": "backoffice"
          },
          "web": {
            "family": "web"
          },
          "activities": {
            "family": "activities"
          }
        }
      }
      ```
      
      Continuing this example, to have frontends for backoffice and web
      families, the frontend request can specify the families, like it is
      demonstrated in the example below. In this example, we don't specify an
      entry for "activities" family, so no frontend will be requested for
      this family.
      
      ```js
      {
        "frontend": {
          "backoffice": {
            "zope-family": "backoffice"
          },
          "web": {
            "zope-family": "web",
            "internal-path": "/erp5/web_site_module/web_site/"
          }
        }
        "zope-partition-dict": {
          "backoffice": {
            "family": "backoffice"
          },
          "web": {
            "family": "web"
          },
          "activities": {
            "family": "activities"
          }
        }
      }
      ```
      f686885b
    • Jérome Perrin's avatar
      software/theia/test: use absolute links for find-links · 15871bbf
      Jérome Perrin authored
      our new nexedi.org currently no longer serve static pages with links,
      using absolute links should allow us to have test passing until this is
      fixed.
      15871bbf
  2. 12 Jan, 2024 1 commit
  3. 11 Jan, 2024 3 commits