1. 09 Dec, 2021 1 commit
    • Xavier Thompson's avatar
      slap/slap: Unwrap json-in-xml · 6d2c5888
      Xavier Thompson authored
      This makes it so that both `xml` and `json-in-xml` encoding for
      instance parameters are accepted by all SRs, regardless of whether
      they use `slapos.cookbook:slapconfiguration` in `.serialised` mode.
      6d2c5888
  2. 07 Dec, 2021 1 commit
  3. 06 Dec, 2021 3 commits
    • Rafael Monnerat's avatar
      rss_style: include guid in tickets RSS · f62ccafe
      Rafael Monnerat authored
      See merge request nexedi/slapos.core!351
      f62ccafe
    • Jérome Perrin's avatar
      rss_style: include guid in tickets RSS · df57bbe4
      Jérome Perrin authored
      SlapOS ticket RSS have one entry for each ticket, with the content of
      the latest event as description, but when using a feed reader application,
      we'd like to have a new entry for each message posted to the ticket, to
      be notified that a new message was posted.
      
      Feed reader applications fetch the RSS and have to determine if each
      entry is already in their database or not. In a scenario like below, we
      observe different behaviors for different applications:
      
        1. a user open a ticket "help" with a first message "I need help !".
          The RSS entry for this ticket is:
      
          <item>
            <link>https://slapos.example.com/#/support_request_module/1</link>
            <title>Help</title>
            <pubDate>Mon, 01 Jan 2001 10:57:10 +0100</pubDate>
            <description>I need help !</description>
          </item>
      
         => feed reader fetches the RSS and add a new entry with title "Help"
      
        2. support operator reply with a second message "how can I help you ?"
          The RSS entry for the ticket becomes:
      
          <item>
            <link>https://slapos.example.com/#/support_request_module/1</link>
            <title>Help</title>
            <pubDate>Mon, 02 Jan 2001 08:32:12 +0100</pubDate>      <== this is different
            <description>How can I help you ?</description>           <== this is different
          </item>
      
      now depending on the implementation of the feed reader, it will either:
      
       - add a new entry, this is the best behavior. In the RSS readers I tested,
        liferea and newsboat do this. Probably they consider that the entry is
         different because it has a new pubDate and/or description.
       - update the existing entry "in place" - this is not so good, because
        this does not appear as a new entry and the original message is no
        longer in the RSS reader. TinyTinyRSS behaves like this (at least in
        version 17.4, which is a bit old)
       - consider they already have the entry and don't do anything - this is
        even worse, because user can not see there was a reply. FreshRSS
        behaves like this.
      
      A RSS for tickets will always have the problem that the feed reader must
      refresh often enough if we want to have a copy of all messages in the
      feed reader (and that's why ERP5 CRM's uses a RSS of Events and not
      Tickets), but we can make this situation better by using guid on messages.
      
      By constructing a guid [1] that will become different every time a new
      message was posted, feed readers consider each item as a a new, different
      entry. At least this is the case for all the feed reader I tested, except
      ERP5 builtin feed reader which only consider the `link` attribute.
      
      Strictly speaking this implementation has a "problem" that these guids
      are not permalinks, but I believe that's something we should address in
      erp5_rss_style (if guid does not look like an URL, set isPermalink="false"),
      but in practice it does not seem to be a problem.
      
      1: https://validator.w3.org/feed/docs/rss2.html#ltguidgtSubelementOfLtitemgt
      df57bbe4
    • Jérome Perrin's avatar
      grid/utils/setRunning: detect the case where pid has been recycled · 19b3eac1
      Jérome Perrin authored
      It can happen that slapos can be terminated without removing the pid
      file, and another long running process using the same pid from the one
      in the pid file is running, which cause slapos node to never run.
      
      This makes setRunning a little bit clever, by ignoring the process
      unless it also has `slapos` in its name.
      19b3eac1
  4. 02 Dec, 2021 1 commit
    • Julien Muchembled's avatar
      slapos.cfg.example: clean up [networkcache] · 3ed62713
      Julien Muchembled authored
      When using HTTPS, slapos.libnetworkcache uses exclusively the client certificate
      (which must be configured) so https://*.nxdcdn.com can't work from slapos.libnetworkcache
      
      And without download-dir-url, download-cache-url is quite useless.
      
      Reorder options to clarify the difference between upload & https.
      3ed62713
  5. 25 Nov, 2021 1 commit
  6. 24 Nov, 2021 1 commit
  7. 23 Nov, 2021 1 commit
  8. 22 Nov, 2021 2 commits
  9. 19 Nov, 2021 1 commit
    • Jérome Perrin's avatar
      Fix promise output when falling back to SR python · e2cebc0c
      Jérome Perrin authored
      On python3 slapos.core for python2 software release, the output was bytes:
      
      ```
      2021-11-05 17:28:39 slapos[12654] INFO Error with promises for the following partitions:
      2021-11-05 17:28:39 slapos[12654] INFO   slappart7[balancer]: b'Promise \'check-apachedex-result.py\' failed with output: ERROR \'"/srv/slapgrid/slappart3/srv/runner/software/cc0326f0dcb093f56c01291c300c8481/bin/check-apachedex-result" --apachedex_path "/srv/slapgrid/slappart3/srv/runner/instance/slappart7/srv/monitor/private/apachedex" --status_file /srv/slapgrid/slappart3/srv/runner/instance/slappart7/srv/monitor/private/apachedex.report.json --threshold "70"\' run with failure, output: \'Score too low: 0% - Threshold: 70.0%\\n\''
      ```
      
      See merge request !344
      e2cebc0c
  10. 12 Nov, 2021 3 commits
  11. 11 Nov, 2021 1 commit
  12. 10 Nov, 2021 3 commits
  13. 08 Nov, 2021 1 commit
  14. 06 Nov, 2021 2 commits
  15. 05 Nov, 2021 2 commits
  16. 04 Nov, 2021 1 commit
  17. 29 Oct, 2021 1 commit
  18. 25 Oct, 2021 1 commit
  19. 23 Oct, 2021 3 commits
  20. 22 Oct, 2021 7 commits
  21. 19 Oct, 2021 3 commits
    • Rafael Monnerat's avatar
      slapos_mysql_innodb_catalog: Index consistency_error · 1822be3b
      Rafael Monnerat authored
          We index now for very few portal types the bool(checkConsistency()) in order to search inconsistent documents.
      
          The indexation is limited to the scope we must monitor rather them all documents for 2 major reasons:
      
              - Too much useless constrants on erp5 code base, not applicable for our project (ie.: On person)
              - Performance on indexation is penalized from this extra cost, specially when index large trees (Deliveries or open orders)**
      
          ** Not so much, however, on a scale of millions of documents it can make a major difference, so this commits keeps up to the minimal implementation.
      1822be3b
    • Rafael Monnerat's avatar
      slapos_accounting: Skip garbage from the report · 9661e882
      Rafael Monnerat authored
         If partition is None, it means the computer was reformated and there is garbage on it. It is meaningless to process this.
      9661e882
    • Xavier Thompson's avatar
      slapproxy: Fix software URL migration · 23f35307
      Xavier Thompson authored
      The `local-software-release-url` option allows migrating the software
      URLs which are local paths by rebasing them on the path provided by
      the option.
      
      Do not migrate software release URLs if the old root path and the
      new root path are subpaths or superpaths one of the other.
      
      In addition, do not migrate an URL if the old one refers to an
      existing file and the new one doesn't.
      
      Also, create a backup of the database before migrating.
      
      See merge request nexedi/slapos.core!338
      23f35307