An error occurred fetching the project authors.
  1. 10 Oct, 2022 1 commit
  2. 28 Jun, 2022 1 commit
  3. 10 Dec, 2021 1 commit
  4. 22 Oct, 2021 1 commit
  5. 22 Jun, 2020 2 commits
    • Jérome Perrin's avatar
      util: use safe variant or xml_marshaller · 05c9f108
      Jérome Perrin authored
      Also change places where xml_marshaller were used directly to always use
      the wrapper from utils (except in tests for simplicity)
      05c9f108
    • Jérome Perrin's avatar
      util.rmtree: fix for python 3 · 6cd47aed
      Jérome Perrin authored
      On python3, deleting a chmoded folder causes this error:
      
          Traceback (most recent call last):
            File "/usr/lib/python3.7/shutil.py", line 423, in _rmtree_safe_fd
              dirfd = os.open(entry.name, os.O_RDONLY, dir_fd=topfd)
          PermissionError: [Errno 13] Permission denied: 'directory'
      
          During handling of the above exception, another exception occurred:
      
          Traceback (most recent call last):
            File "slapos.core/slapos/grid/slapgrid.py", line 607, in processSoftwareReleaseList
              software.destroy()
            File "slapos.core/slapos/grid/SlapObject.py", line 360, in destroy
              rmtree(self.software_path)
            File "slapos.core/slapos/util.py", line 267, in rmtree
              shutil.rmtree(path, onerror=chmod_retry)
            File "/usr/lib/python3.7/shutil.py", line 491, in rmtree
              _rmtree_safe_fd(fd, path, onerror)
            File "/usr/lib/python3.7/shutil.py", line 425, in _rmtree_safe_fd
              onerror(os.open, fullname, sys.exc_info())
            File "slapos.core/slapos/util.py", line 264, in chmod_retry
              func(failed_path)
          TypeError: open() missing required argument 'flags' (pos 2)
      
      Our error handler was assuming that on python 3 the EACCESS for the
      directory would happen first on an os.lstat call [1], which is true when the
      top level folder is not listable, but it did not support the case where
      the top level folder is listable but contain another folder that is not listable.
      In that case, the first error is an os.open [2]
      
      Tests from erp5.util (where this function came from) only covered the 1 case but
      new tests in slapos.core covered the 2.
      
      Anyway, do the "chmod folder and retry from beginning" for both 1 or 2 cases.
      
      [1]: https://github.com/python/cpython/blob/3.6/Lib/shutil.py#L475
      
      [2]: https://github.com/python/cpython/blob/3.6/Lib/shutil.py#L418
      6cd47aed
  6. 08 Jun, 2020 1 commit
  7. 01 Jun, 2020 1 commit
    • Thomas Gambier's avatar
      fix xml2dixt and dict2xml · fc2fe51d
      Thomas Gambier authored
      software releases expects _ parameter to be a string with JSON inside
      not a python dict so we partially revert 2acef14b
      and we do the nice printing of JSON parameters in getInformation
      fc2fe51d
  8. 06 Apr, 2020 1 commit
    • Thomas Gambier's avatar
      Fixes for "slapos service info" · 2acef14b
      Thomas Gambier authored
       * xml2dict and dict2xml support the JSON format of parameter dict
       * since xml2dict doesn't support unicode, we convert unicode to str in
      getInformation
      2acef14b
  9. 02 Feb, 2020 1 commit
  10. 28 Nov, 2019 1 commit
  11. 01 Oct, 2019 3 commits
  12. 14 Dec, 2018 1 commit
  13. 11 Dec, 2018 1 commit
  14. 26 Nov, 2018 1 commit
  15. 02 Nov, 2018 1 commit
  16. 19 Mar, 2018 1 commit
  17. 15 Nov, 2015 2 commits
    • Kirill Smelkov's avatar
      util/sqlite_connect: Allow 8-bit strings · af7de08e
      Kirill Smelkov authored
      Because e.g. for the following instance parameters
      
          <?xml version='1.0' encoding='utf-8'?>
          <instance>
            <parameter id="text">Привет Мир!</parameter>
          </instance>
      
      we get the following DB query
      
          'UPDATE %s SET slap_state="busy" ,software_release=? ,partition_reference=? ,requested_by=? ,software_type=? ,xml=? WHERE
      reference=? AND computer_reference=?',
          ['http://sr//', 'myinstance', 'slappart0', 'default',
           '<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<instance>\n  <parameter id="text">\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82\xd0\x9c\xd0\xb8\xd1\x80!</parameter>\n</instance>\n',
           'slappart6', 'computer']
      
      which fails the following way:
      
        File ".../site-packages/flask/app.py", line 1817, in wsgi_app
          response = self.full_dispatch_request()
        File ".../site-packages/flask/app.py", line 1477, in full_dispatch_request
          rv = self.handle_user_exception(e)
        File ".../site-packages/flask/app.py", line 1381, in handle_user_exception
          reraise(exc_type, exc_value, tb)
        File ".../site-packages/flask/app.py", line 1475, in full_dispatch_request
          rv = self.dispatch_request()
        File ".../site-packages/flask/app.py", line 1461, in dispatch_request
          return self.view_functions[rule.endpoint](**req.view_args)
        File "slapos/proxy/views.py", line 393, in requestComputerPartition
          software_instance = requestNotSlave(**parsed_request_dict)
        File "slapos/proxy/views.py", line 609, in requestNotSlave
          execute_db('partition', q, args)
        File "slapos/proxy/views.py", line 142, in execute_db
          cur = db.execute(query, args)
      ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
      
      our instance parameters is always XML UTF-8 encoded, and thus it is not
      unicode and we cannot go the 'use unicode always' way.
      
      So autotune sqlite connections on open to support 8-bit strings.
      af7de08e
    • Kirill Smelkov's avatar
      *: Factor opening sqlite db into separate function · 8bf68261
      Kirill Smelkov authored
      Currently it is just sqlite3.connect(), but we'll want to add connection
      autotuning in the next patch, so before that let's consolidate all
      sqlite opening places in the code into one.
      8bf68261
  18. 28 Nov, 2014 1 commit
  19. 10 Nov, 2014 2 commits
  20. 22 Sep, 2014 1 commit
  21. 23 May, 2014 1 commit
  22. 09 May, 2014 1 commit
  23. 22 Apr, 2014 1 commit
  24. 09 Sep, 2013 1 commit
  25. 24 Jun, 2013 2 commits
  26. 14 Jun, 2013 1 commit
  27. 24 Apr, 2013 1 commit
  28. 23 Apr, 2013 1 commit
  29. 28 Jan, 2013 1 commit