1. 17 Feb, 2022 1 commit
    • whoami-rajat's avatar
      Cinder store: Wait for device resize · 5f1cee6f
      whoami-rajat authored
      When we have an image with size > 1 GB, we follow the following steps
      to accomodate the image:
      1) Detach the volume
      2) extend the volume
      3) Attach the volume
      4) Open the volume device as a file and resume writing the image
      
      Sometimes due to several reasons (mostly network related), the
      size of the device file could mismatch with the actual volume size
      (or the backend LUN size). This can happen if the extend was performed
      (i.e. the control path) but it takes the time to reflect that into
      the mapped device (i.e. the data path). This mismatch can cause the
      issue "IOError: [Errno 28] No space left on device".
      To avoid this scenario, we check if the device size is less than the
      volume size, we wait for the extended LUN to show up in mapped device
      and then continue the image writing operation.
      
      Closes-Bug: #1959913
      
      Change-Id: I206580f6be615ebc5e15b546b9c23728d4116a5d
      (cherry picked from commit f3433ed1)
      (cherry picked from commit ea5139be)
      5f1cee6f
  2. 28 Dec, 2021 1 commit
    • whoami-rajat's avatar
      Pass valid IP address to os-brick · 2bc17c0a
      whoami-rajat authored
      While fetching connector information the cinder driver of
      glance-store is passing 'hostname' as IP address whereas it
      actually needs IP address.
      
      This path fetches the IPV4 or IPV6 address from the available
      'hostname' and passes it to os-brick.
      
      This worked for other cinder backends which don't rely specifically
      on IP address for initializing connection like fibre channel, nfs etc
      and even for some iscsi backends since, in some environments,
      the hostname is same as the ip address. This is not the case always
      and we should pass the correct IPv4/IPv6 address of the host to
      avoid this issue.
      
      Closes-Bug: #1955668
      
      Change-Id: Ic79815972e654a8bfe2775f57c68cfa0bf115e2f
      (cherry picked from commit 8b4d97a6)
      (cherry picked from commit 83d9c5dc)
      Conflicts:
      	glance_store/_drivers/cinder.py
      	glance_store/tests/unit/test_cinder_store.py
      	glance_store/tests/unit/test_multistore_cinder.py
      2bc17c0a
  3. 12 Aug, 2021 1 commit
  4. 15 Apr, 2021 1 commit
    • whoami-rajat's avatar
      Pass multipath config while creating connector object · 9bb85709
      whoami-rajat authored
      
      
      Currently we only pass the configured multipath option when getting
      the connector properties and do not pass it when creating the
      connector object which in turn does the multipathing in os-brick.
      So we are only passing multipathing option to cinder for exporting &
      mapping the volume to paths but not while creating the connector object
      and hence doing multipathing partially.
      This patch passes that option and fixes the stated issue.
      
      Related-Bug: #1863983
      
      Co-Authored-By: default avatarGorka Eguileor <geguileo@redhat.com>
      
      Change-Id: I82979c47ec9ec1dd6cc864d3827ab219177251f8
      (cherry picked from commit 04e5ead7)
      9bb85709
  5. 19 Mar, 2021 2 commits
    • OpenStack Release Bot's avatar
      Update TOX_CONSTRAINTS_FILE for stable/wallaby · ae9022cd
      OpenStack Release Bot authored
      Update the URL to the upper-constraints file to point to the redirect
      rule on releases.openstack.org so that anyone working on this branch
      will switch to the correct upper-constraints list automatically when
      the requirements repository branches.
      
      Until the requirements repository has as stable/wallaby branch, tests will
      continue to use the upper-constraints list on master.
      
      Change-Id: If0ff588f0b97c870209bd7b5063e6ddc1e4be1c5
      ae9022cd
    • OpenStack Release Bot's avatar
      Update .gitreview for stable/wallaby · 48dc2bd5
      OpenStack Release Bot authored
      Change-Id: Idb0ed63d97eec0fc4560d4d9dd02bfb8e27c2f3c
      48dc2bd5
  6. 01 Mar, 2021 2 commits
  7. 19 Feb, 2021 1 commit
  8. 16 Feb, 2021 2 commits
    • Zuul's avatar
      Merge "Validate volume type during volume create" · 00025156
      Zuul authored
      00025156
    • whoami-rajat's avatar
      Validate volume type during volume create · d0702ea8
      whoami-rajat authored
      Currently when configuring multiple cinder stores,
      glance validates the volume types configured in glance-api.conf
      during service startup.
      This check however has a dependency on cinder API service to be
      up and running.
      During certain deployment scenarios, it is not always mandatory
      that cinder is already running when we are starting glance hence
      this check will fail the glance service hence the deployment
      This patch removes the startup exceptions and instead logs a warning.
      Also the check is done during volume create so handling for NotFound
      exception from cinder is also handled.
      
      Change-Id: I468523b947ad6fcff4b074d2ed1cb7a9e52b15ca
      Closes-Bug: #1915163
      d0702ea8
  9. 13 Feb, 2021 1 commit
    • Takashi Kajinami's avatar
      Cinder store: Use v3 API by default · 77b61a95
      Takashi Kajinami authored
      v2 API of cinder is already deprecated, and the cinder community is now
      planning to remove it.
      This change makes cinder store use v3 API instead, which is the current
      latest version actively maintainced.
      
      Closes-Bug: #1915602
      Change-Id: I8f374eb1b26ec408c52c6279da79cfe470d59a1c
      77b61a95
  10. 18 Dec, 2020 1 commit
  11. 11 Nov, 2020 1 commit
    • Ade Lee's avatar
      Replace md5 with oslo version · a34419ae
      Ade Lee authored
      md5 is not an approved algorithm in FIPS mode, and trying to
      instantiate a hashlib.md5() will fail when the system is running in
      FIPS mode.
      
      md5 is allowed when in a non-security context.  There is a plan to
      add a keyword parameter (usedforsecurity) to hashlib.md5() to annotate
      whether or not the instance is being used in a security context.
      
      In the case where it is not, the instantiation of md5 will be allowed.
      See https://bugs.python.org/issue9216 for more details.
      
      Some downstream python versions already support this parameter.  To
      support these versions, a new encapsulation of md5() has been added to
      oslo_utils.  See https://review.opendev.org/#/c/750031/
      
      This patch is to replace the instances of hashlib.md5() with this new
      encapsulation, adding an annotation indicating whether the usage is
      a security context or not.
      
      It looks like the uses of the md5 are primarily for checksums and
      generation of etags.
      
      With this patch, all the unit and functional tests appear to pass
      on a FIPS enabled system.
      
      Change-Id: I0603ba217d6dc19f5c9f73c60c7b365efd28d30b
      Depends-On: https://review.opendev.org/#/c/760160
      a34419ae
  12. 04 Oct, 2020 1 commit
  13. 16 Sep, 2020 1 commit
  14. 10 Sep, 2020 2 commits
  15. 07 Sep, 2020 1 commit
  16. 28 Aug, 2020 1 commit
    • Mohammed Naser's avatar
      Drop snapshot in use log from ERROR to WARN · 5aa2bc7a
      Mohammed Naser authored
      This message is not actually an error inside the system for most of the
      time.  The primary reason behind this is that it is possible that there
      are VMs using this image and therefore it can't be deleted, the operator
      has no actionable thing to do about this.
      
      For those who are monitoring ERROR level messages and alerting on them,
      this is noisy and not actionable, drop this error message to warning.
      
      Change-Id: If5447c3f5b4f678943273c2bdb2e44cd25d5b226
      5aa2bc7a
  17. 27 Aug, 2020 1 commit
  18. 26 Aug, 2020 3 commits
  19. 25 Aug, 2020 2 commits
  20. 24 Aug, 2020 2 commits
    • whoami-rajat's avatar
      Support Cinder multiple stores · eec09483
      whoami-rajat authored
      This patch adds support for configuring multiple cinder stores.
      The following changes are part of this patch:
      1) location URL format: previously cinder://<volume-id>, the format is
      now changed to cinder://<store-name>/<volume-id>
      2) Check for configured volume types: During initialization of service,
      all volume types configured in the cinder store(s) will be checked if
      they exist in deployment or not, the store with the wrong type will be
      disabled. if cinder store is configured using traditional/old way
      (i.e. using 'stores' config option) then this validation will not be performed.
      3) Update legacy images: This change is partially depedent on the glance
      changes[1] which trigger updating the URL for legacy images and the
      cinder store checks the configured stores volume type against the existing
      image-volume's type and update it respectively.
      
      [1] https://review.opendev.org/#/c/742373/
      
      Implements: blueprint multiple-cinder-backend-support
      Change-Id: I0ba36d1095886fd1d96926af37a3a65a178c004f
      eec09483
    • Zuul's avatar
      Merge "Fix hacking min version to 3.0.1" · c889ebc7
      Zuul authored
      c889ebc7
  21. 21 Aug, 2020 1 commit
    • Victor Coutellier's avatar
      Handle sparse images in glance_store · 201d85b4
      Victor Coutellier authored
      
      
      Add new configuration option ``rbd_thin_provisioning`` and
      ``filesystem_thin_provisioning`` to rbd and filesystem
      store to enable or not sparse upload.
      
      A sparse file means that we do not actually write null byte
      sequences but only the data itself at a given offset, the
      "holes" which can appear will automatically be interpreted by
      the storage backend as null bytes, and do not really consume
      your storage.
      
      Change-Id: I129e30f490e3920e9093c2b793f89b70ce310a50
      Co-Authored-By: default avatarGrégoire Unbekandt <gregoire.unbekandt@gmail.com>
      Partially Implements: blueprint handle-sparse-image
      201d85b4
  22. 20 Aug, 2020 1 commit
    • Erno Kuvaja's avatar
      Ramp up rbd resize to avoid excessive calls · c43f19e8
      Erno Kuvaja authored
      Change the RBD store to resize the image by up to 8GiB
      at the time to not resize on every write.
      
      Trim the image in Ceph after all data has been written
      to the actual size in case we overshot the resize.
      
      Partial-Bug: #1792710
      Related-to: spec-lite-Ceph-Store-Optimization
      
      Change-Id: I7f0bffda222b663d4316c5d6c03fdbd0d3337035
      c43f19e8
  23. 10 Aug, 2020 1 commit
    • Abhishek Kekane's avatar
      Copy data files to glance upon installation · 3b71ce2d
      Abhishek Kekane authored
      At the moment if you need to configure cinder store of glance in your
      environment then you need to mannualy copy rootwrap related files
      from glance_store/etc/glance to /etc/glance folder.
      
      Added those rootwrap.* related files as data_files in setup.cfg
      which will copies those to /etc/glance on installation.
      
      Change-Id: I9217f4a1379687241d23fe34deecd1f482cbb49c
      Closes-Bug: #1890844
      3b71ce2d
  24. 07 Aug, 2020 1 commit
  25. 31 Jul, 2020 1 commit
  26. 30 Jul, 2020 1 commit
  27. 29 Jul, 2020 1 commit
  28. 28 Jul, 2020 1 commit
  29. 27 Jul, 2020 2 commits
  30. 25 Jul, 2020 1 commit
    • Doug Hellmann's avatar
      use stevedore to load extensions · 30bd0306
      Doug Hellmann authored
      
      
      Importing pkg_resources causes the app to scan the entire import path
      for all distributions, not just those providing entry points. The
      scanner in stevedore will have a cache of the entry point data, making
      it significantly faster.
      
      This also more accurately reflects the way oslo.config loads option
      plugins.
      
      Change-Id: Ibbac3240a99684de0dea2f690f4276a3d24e3fe1
      Signed-off-by: default avatarDoug Hellmann <doug@doughellmann.com>
      30bd0306
  31. 13 Jul, 2020 1 commit