1. 29 Aug, 2022 3 commits
    • Thomas Goirand's avatar
      Add autopkgtest. · a7581b4b
      Thomas Goirand authored
      a7581b4b
    • Thomas Goirand's avatar
      Now packaging 4.1.0 · 8ef9f3aa
      Thomas Goirand authored
      8ef9f3aa
    • Thomas Goirand's avatar
      Merge tag '4.1.0' into debian/zed · 73d1b68f
      Thomas Goirand authored
      glance_store 4.1.0 release
      
      meta:version: 4.1.0
      meta:diff-start: -
      meta:series: zed
      meta:release-type: release
      meta:pypi: yes
      meta:first: no
      meta:release:Author: Előd Illés <elod.illes@est.tech>
      meta:release:Commit: Abhishek Kekane <akekane@redhat.com>
      meta:release:Change-Id: Ifa4524ac453b3714250db655bf4d92597a33defc
      meta:release:Code-Review+1: Pranali Deore <pdeore@redhat.com>
      meta:release:Code-Review+2: Elod Illes <elod.illes@est.tech>
      meta:release:Code-Review+2: Thierry Carrez <thierry@openstack.org>
      meta:release:Workflow+1: Thierry Carrez <thierry@openstack.org>
      73d1b68f
  2. 23 Aug, 2022 1 commit
  3. 22 Aug, 2022 2 commits
  4. 18 Aug, 2022 1 commit
    • Takashi Kajinami's avatar
      Swift: Honor *_domain_name parameters · 6738d0b1
      Takashi Kajinami authored
      The *_domain_id parmaeters should not have any default. Otherwise
      keystoneauth ignores the *_domain_name parameters and it requires
      only *_domain_id parameters are used.
      
      Closes-Bug: #1620999
      Change-Id: I1f8c9184761313f9fc5fda2f257e52233e0196d1
      6738d0b1
  5. 11 Aug, 2022 2 commits
  6. 04 Aug, 2022 1 commit
    • Pavlo Shchelokovskyy's avatar
      Do not loose url queries on redirects · 951a9f53
      Pavlo Shchelokovskyy authored
      when fetching images with http driver, the redirect URL can have
      mandatory query in it, which must be kept intact to successfully
      fetch the image.
      
      Change-Id: I2a9d4d026b935ea6c5e5a3a46c86f70ce1e39ae7
      Closes-Bug: #1633860
      951a9f53
  7. 20 Jul, 2022 1 commit
    • whoami-rajat's avatar
      Add debug logs to cinder store · 6851cab5
      whoami-rajat authored
      When debugging issues related to glance cinder store, there are
      several calls to cinder and it becomes hard to determine which step
      we are currently executing without going through cinder logs.
      This patch adds some useful debug logs for the new attachment's code
      to understand which stage of attachment we are on.
      
      Change-Id: I491b7292a511c47c1d6148dab69ae04269e50c85
      6851cab5
  8. 12 Jul, 2022 1 commit
    • Gorka Eguileor's avatar
      Support os-brick specific lock_path for Cinder · 73ebb705
      Gorka Eguileor authored
      As a new feature relevant for the Cinder store, os-brick now supports
      setting the location of file locks in a different location from the
      locks of the service.
      
      The functionality is intended for HCI deployments and hosts that are
      running Cinder and Glance using Cinder backend.  In those scenarios the
      service can use a service specific location for its file locks while
      only sharing the location of os-brick with the other services.
      
      To leverage this functionality the new os-brick code is needed and
      method ``os_brick.setup`` needs to be called once the service
      configuration options have been loaded.
      
      The default value of the os-brick ``lock_path`` is the one set in
      ``oslo_concurrency``.
      
      This patch adds support for this new feature in a backward compatible
      way so code works even if using an os-brick version that doesn't have
      this feature.  That is the case for many CI jobs that install os-brick
      from PyPi instead of the code present in master.
      
      Change-Id: Ib11d63e3c388e12f145f40247d17030a566b8c5e
      73ebb705
  9. 26 May, 2022 1 commit
  10. 25 May, 2022 1 commit
    • liyou01's avatar
      Remove Python 2 support · 5ff06df9
      liyou01 authored
      
      
      Python 2 has been deprecated for almost two years, and has not been
      guaranteed to work with glance_store for a while. This patch removes all
      traces of six, unicode strings and Python 2 tweaks.
      
      Co-Authored-By: default avatarCyril Roelandt <cyril@redhat.com>
      Change-Id: Ifa78924d7ecf4f2d9a54c677888ab2926530c487
      5ff06df9
  11. 11 May, 2022 1 commit
  12. 05 May, 2022 2 commits
  13. 04 May, 2022 3 commits
  14. 28 Apr, 2022 1 commit
    • whoami-rajat's avatar
      Cinder: Correct exception logging during attach · 3ee399a1
      whoami-rajat authored
      There is a syntax error in the exception logging when attaching a
      volume fails in attachment state manager. This patch corrects it
      and adds a test to guard against similar changes in future.
      
      Closes-Bug: #1970698
      
      Change-Id: I43c407046a49bb37631113e2ea65d05450f9365d
      3ee399a1
  15. 18 Apr, 2022 1 commit
    • whoami-rajat's avatar
      Correct retry interval during attach volume · ba4af147
      whoami-rajat authored
      When we try to simultaneously attach same volume multiple times
      (multiattach), there are multiple attachments created, suppose
      attachA and attachB. If attachA marks the volume "reserved" then
      attachB can't proceed until the volume is in "in-use" or "available"
      state. We retry until we reach any of these states for which we use
      the retrying library.
      
      The retrying library defaults to 1 second retry[1] (5 times) which causes
      the original failure as the volume takes time to transition between
      "reserved" -> "in-use" state. This patch corrects it by adding an
      exponential retry time and max exponential retry i.e.
      
      1: 2 ** 1 = 2 seconds
      2: 2 ** 2 = 4 seconds
      3: 2 ** 3 = 8 seconds
      4: 2 ** 4 = 16 seconds (but max wait time is 10 seconds)
      5: 2 ** 5 = 32 seconds (but max wait time is 10 seconds)
      
      [1] https://github.com/rholder/retrying/blob/master/retrying.py#L84
      
      Closes-Bug: #1969373
      
      Change-Id: I0094b044085d7f92b07ea86236de3b6efd7d67ea
      ba4af147
  16. 24 Mar, 2022 1 commit
  17. 22 Mar, 2022 4 commits
    • whoami-rajat's avatar
      Add coverage for add method · f9253a4a
      whoami-rajat authored
      This patch adds test coverage of code paths like extend volume,
      exception blocks, when image_size is zero, volume delete call etc
      
      Change-Id: I59b1579dc9877668b82d4195431c14cc41cfe892
      f9253a4a
    • whoami-rajat's avatar
      Add exception coverage for get, get_size, delete · 4bd0304e
      whoami-rajat authored
      This patch adds coverage for the various exceptions handled and
      raised in get, get_size and delete methods.
      It also corrects the behavior of _test_cinder_get_size method where
      client.volumes returned dictionary instead of a MagicMock and it
      worked due to the existing method "get" in dictionary which has
      same name as "get" method in cinderclient. The dictionary object
      is replaced with the appropriate MagicMock object in this patch.
      
      Change-Id: If63a6c810b5aab992e54857bc81f5052c2c593c4
      4bd0304e
    • whoami-rajat's avatar
      Add coverage for helper methods · e5a3c9ee
      whoami-rajat authored
      Add coverage for helper methods like ``get_hash_str``,
      ``_get_mount_path`` and ``_get_host_ip``.
      
      Change-Id: Idb232f2d7b0f74e9c65e42955c767fb7bb6ae004
      e5a3c9ee
    • whoami-rajat's avatar
      Add coverage for get_cinderclient and _check_context · 77919e15
      whoami-rajat authored
      This patch adds coverage for some parts in get_cinderclient
      method like ``cinder_endpoint_template`` option and keystone
      exception case when catalog info for cinder could not be found.
      Also it adds tests for complete coverage of _check_context
      method.
      
      Change-Id: I18b1e5e8fd818824a2dda2ad14d9456190fe9ff4
      77919e15
  18. 17 Mar, 2022 2 commits
    • whoami-rajat's avatar
      Remove redundant try except around volume create · 8ec07902
      whoami-rajat authored
      The cinder volume create call was moved to the cinder_utils
      module to keep the driver code cleaner with commit[1].
      A decorator was also added to handle NotFound exception which
      made the existing try/except block redundant.
      Also the current try/except block has misleading messages:
      
      1) "Invalid volume type configured"
      2) "Failed to create image-volume due to invalid
         `cinder_volume_type` configured."
      
      A volume create could fail because of many reasons and "invalid
      volume type" is just one of them. These messages will confuse
      the operators even if the configured volume type is correct.
      This patch removes them since the NotFound exception is already
      handled at[2] and the messages are misleading.
      
      [1] 1178f113
      [2] https://github.com/openstack/glance_store/blob/c0c4969a4a6ce77c61f84fcb37b3efdac71d6418/glance_store/common/cinder_utils.py#L37
      
      Change-Id: I39c9caec85f574fc717e60f11e5681860a20ed30
      8ec07902
    • whoami-rajat's avatar
      Add coverage for StoreLocation · 3666d2d2
      whoami-rajat authored
      This patch adds code coverage (UTs) for methods in StoreLocation class:
      1) process_specs
      2) get_uri
      3) parse_uri
      
      It also adds a missing method (_set_url_prefix) coverage in
      Multistore cinder tests (test_multistore_cinder).
      
      Change-Id: I8ced5af11669fb131c665ce53be57143f2c7b518
      3666d2d2
  19. 14 Mar, 2022 3 commits
    • whoami-rajat's avatar
      Add coverage for get_cinder_session · c0c4969a
      whoami-rajat authored
      Add test coverage for two config options used to create a keystone
      session object for cinderclient namely ``cinder_api_insecure`` and
      ``cinder_ca_certificates_file``.
      
      Change-Id: Idb6db9f87ef7290441dfe60ca2eb9a59c9ee7bd3
      c0c4969a
    • whoami-rajat's avatar
      Remove six usage · 95b49304
      whoami-rajat authored
      six has been used to maintain compatibility between python2 and
      python3 code. Since current openstack development branches doesn't
      support python2, we don't need the six library and can use python3
      code directly.
      This patch removes six usage from cinder store tests.
      
      Change-Id: I4deb193b44394ae9f99f57e31fb81fe04394e247
      95b49304
    • whoami-rajat's avatar
      Refactor cinder store tests[2/2] · fba6d0dd
      whoami-rajat authored
      This patch aims at a refactoring effort that would remove
      duplicate tests (current and future) by moving them into a
      common base class which is called via both single and multi store
      test modules with their specific configurations.
      
      This has a lot of benefits:
      
      1) Removes duplicate code
      2) Makes addition of new tests easier and cleaner
      3) Ensuring a new method/code path added is tested in both
         single and multi store configurations
      4) Fixing issues detected while refactoring methods
         (Eg: tests for add method in test_multistore_cinder were not
          passing the hashing_algo parameter which is currently handled
          by the backward compat code (back_compat_add decorator) but
          those tests will break when we remove backward compatibility)
      
      Change-Id: I12569af5623f1cd7803c00a6c3b9eb211f15b6fd
      fba6d0dd
  20. 11 Mar, 2022 1 commit
    • whoami-rajat's avatar
      Refactor cinder store tests[1/2] · bb790de1
      whoami-rajat authored
      This patch aims at a refactoring effort that would remove
      duplicate tests (current and future) by moving them into a
      common base class which is called via both single and multi store
      test modules with their specific configurations.
      
      This has a lot of benefits:
      
      1) Removes duplicate code
      2) Makes addition of new tests easier and cleaner
      3) Ensuring a new method/code path added is tested in both
         single and multi store configurations
      4) Fixing issues detected while refactoring methods
         (Eg: fake_chown accepted an optional backend parameter which
          does not match the signature of original method temporary_chown)
      
      Change-Id: Iaacb3e117cac2a661750bdb21bd0a7496078ea26
      bb790de1
  21. 10 Mar, 2022 2 commits
    • whoami-rajat's avatar
      Replace FakeObject with MagicMock[2/2] · 7b5b50fd
      whoami-rajat authored
      FakeObject is used to set dynamic attributes to a fake class which
      works in most cases but fails when an attribute is accessed which
      is not defined/passed explicitly.
      This causes failure of tests whenever a new attribute is accessed
      and it's hard to maintain the set of attributes for every object
      used.
      MagicMock provides the same functionality with additional features
      and handles the case effectively when an attribute is accessed
      which is not explicitly defined in the tests.
      This change will help safeguard against cases seen earlier in[1].
      This patch replaces FakeObject with MagicMock in test_multistore_cinder.py
      
      [1] https://review.opendev.org/c/openstack/glance/+/805974
      
      Change-Id: I193bb03d174e6c010132702dedef1dea05f40e41
      7b5b50fd
    • whoami-rajat's avatar
      Replace FakeObject with MagicMock[1/2] · 4b2aab18
      whoami-rajat authored
      FakeObject is used to set dynamic attributes to a fake class which
      works in most cases but fails when an attribute is accessed which
      is not defined/passed explicitly.
      This causes failure of tests whenever a new attribute is accessed
      and it's hard to maintain the set of attributes for every object
      used.
      MagicMock provides the same functionality with additional features
      and handles the case effectively when an attribute is accessed
      which is not explicitly defined in the tests.
      This change will help safeguard against cases seen earlier in[1].
      This patch replaces FakeObject with MagicMock in test_cinder_store.py
      
      [1] https://review.opendev.org/c/openstack/glance/+/805974
      
      Change-Id: Ifd0905b139cc90c2bd7444bc9e7638f3af6879a7
      4b2aab18
  22. 18 Feb, 2022 2 commits
    • Thomas Goirand's avatar
      Now packaging 3.0.0 · 249b9cfb
      Thomas Goirand authored
      249b9cfb
    • Thomas Goirand's avatar
      Merge tag '3.0.0' into debian/yoga · 73cfe039
      Thomas Goirand authored
      glance_store 3.0.0 release
      
      meta:version: 3.0.0
      meta:diff-start: -
      meta:series: yoga
      meta:release-type: release
      meta:pypi: yes
      meta:first: yes
      meta:release:Author: Abhishek Kekane <akekane@redhat.com>
      meta:release:Commit: Abhishek Kekane <akekane@redhat.com>
      meta:release:Change-Id: Ib5e65c509bad4c594c53a5ed8038cc8c4b0b1a37
      meta:release:Code-Review+1: Brian Rosmaita <rosmaita.fossdev@gmail.com>
      meta:release:Code-Review+2: Elod Illes <elod.illes@est.tech>
      meta:release:Code-Review+2: Thierry Carrez <thierry@openstack.org>
      meta:release:Workflow+1: Thierry Carrez <thierry@openstack.org>
      73cfe039
  23. 16 Feb, 2022 1 commit
    • OpenStack Release Bot's avatar
      Update master for stable/yoga · db235f1b
      OpenStack Release Bot authored
      Add file to the reno documentation build to show release notes for
      stable/yoga.
      
      Use pbr instruction to increment the minor version number
      automatically so that master versions are higher than the versions on
      stable/yoga.
      
      Sem-Ver: feature
      Change-Id: I99772281621ebce5a57ddd37cee879d7cc387c47
      db235f1b
  24. 07 Feb, 2022 1 commit
    • whoami-rajat's avatar
      Cinder store: Wait for device resize · f3433ed1
      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
      f3433ed1
  25. 07 Jan, 2022 1 commit