Additional Swift middleware not loaded in proxy server

Bug #1453276 reported by Julian Montez
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack-Ansible
Fix Released
Medium
Julian Montez
Juno
Won't Fix
Medium
Unassigned
Kilo
Fix Released
Medium
Jesse Pretorius
Trunk
Fix Released
Medium
Julian Montez

Bug Description

The [Swift cluster's capabilities listing](http://docs.openstack.org/developer/swift/middleware.html#discoverability) doesn't include form post, static web, or cross-domain middleware. In contrast OSAD's Tempest runs all available Object Storage tests as defined within `os_tempest/templates/tempest.conf`.

Upon inspection, within the (Swift proxy server template)[https://github.com/stackforge/os-ansible-deployment/blob/338bd807745b99701be2d95ac7dbb63b86f8908c/playbooks/roles/os_swift/templates/proxy-server.conf.j2#L14-L19] doesn't include the aforementioned middleware within the "pipeline" as defined in the [middleware installation instructions](http://docs.openstack.org/developer/swift/development_middleware.html).

Once I added the missing middleware, the failing Swift test cases listed below passed (http://jenkins.propter.net/job/nightly-multinode-docker/1047/console). Expect the patch shortly.

---

Failing test cases:

tempest.api.object_storage \
| .test_object_formpost.ObjectFormPostTest.test_post_object_using_form
| .test_object_formpost_negative.ObjectFormPostNegativeTest.test_post_object_using_form_expired
| .test_object_formpost_negative.ObjectFormPostNegativeTest.test_post_object_using_form_invalid_signature
| .test_container_staticweb.StaticWebTest.test_web_index
| .test_container_staticweb.StaticWebTest.test_web_listing_css
| .test_crossdomain.CrossdomainTest.test_get_crossdomain_policy
| .test_container_sync_middleware.ContainerSyncMiddlewareTest.test_container_synchronization

Current Swift cluster's capabilities:

root@node116_utility_container-e1d1f1a0:~# swift capabilities
Core: swift
 Options:
  account_autocreate: True
  account_listing_limit: 10000
  allow_account_management: False
  container_listing_limit: 10000
  max_account_name_length: 256
  max_container_name_length: 256
  max_file_size: 5368709122
  max_header_size: 8192
  max_meta_count: 90
  max_meta_name_length: 128
  max_meta_overall_size: 4096
  max_meta_value_length: 256
  max_object_name_length: 1024
  policies: [{'default': True, 'name': 'gold'}, {'name': 'silver'}]
  strict_cors_mode: True
  version: 2.3.0
Additional middleware: account_quotas
Additional middleware: bulk_delete
 Options:
  max_deletes_per_request: 10000
  max_failed_deletes: 1000
Additional middleware: bulk_upload
 Options:
  max_containers_per_extraction: 10000
  max_failed_extractions: 1000
Additional middleware: container_quotas
Additional middleware: container_sync
 Options:
  realms: {}
Additional middleware: ratelimit
 Options:
  account_ratelimit: 0.0
  container_listing_ratelimits: []
  container_ratelimits: []
  max_sleep_time_seconds: 60.0
Additional middleware: slo
 Options:
  max_manifest_segments: 1000
  max_manifest_size: 2097152
  min_segment_size: 1048576
Additional middleware: tempurl
 Options:
  methods: ['GET', 'HEAD', 'PUT', 'POST', 'DELETE']

--
Julian

Julian Montez (jpmontez)
Changed in openstack-ansible:
assignee: nobody → Julian Montez (jpmontez)
status: New → In Progress
status: In Progress → New
tags: added: juno-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to os-ansible-deployment (master)

Fix proposed to branch: master
Review: https://review.openstack.org/181560

Changed in openstack-ansible:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to os-ansible-deployment (master)

Reviewed: https://review.openstack.org/181560
Committed: https://git.openstack.org/cgit/stackforge/os-ansible-deployment/commit/?id=2ed2bde1b0e728831c17b32b8805a3435f1ee38f
Submitter: Jenkins
Branch: master

commit 2ed2bde1b0e728831c17b32b8805a3435f1ee38f
Author: Andy McCrae <email address hidden>
Date: Fri Jun 26 12:21:47 2015 +0100

    Allow Swift middleware to be set via a variable

    This patch allows the swift-proxy pipeline to be adjusted via a variable
    "swift_middleware_list", which can be amended to add additional
    middleware as required.

    The default remains the same - which is to include the default pipeline
    when using keystone.

    Additionally the logic around whether "authtoken" or "tempauth" are
    enabled was changed to check if these are set in "swift_middleware_list"
    without requiring a separate variable. Variable "swift_authtoken_active"
    was removed as it is no longer required.

    Tempest object storage settings were adjusted to work with the default
    list of enabled discoverable_apis for object storage. Container syncing
    was also turned into a variable based on the object storage default.

    Closes-Bug: #1453276
    Co-Authored-By: Julian Montez <email address hidden>
    Co-Authored-By: Darren Birkett <email address hidden>
    Change-Id: I70565296242d10327a58b02149f73eb5f31a877d

Changed in openstack-ansible:
status: In Progress → Fix Committed
Revision history for this message
Jesse Pretorius (jesse-pretorius) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to os-ansible-deployment (kilo)

Reviewed: https://review.openstack.org/210297
Committed: https://git.openstack.org/cgit/stackforge/os-ansible-deployment/commit/?id=7734572d9d0e0ec62a01cec6c5aa84b929859cbf
Submitter: Jenkins
Branch: kilo

commit 7734572d9d0e0ec62a01cec6c5aa84b929859cbf
Author: Andy McCrae <email address hidden>
Date: Fri Jun 26 12:21:47 2015 +0100

    Allow Swift middleware to be set via a variable

    This patch allows the swift-proxy pipeline to be adjusted via a variable
    "swift_middleware_list", which can be amended to add additional
    middleware as required.

    The default remains the same - which is to include the default pipeline
    when using keystone.

    Additionally the logic around whether "authtoken" or "tempauth" are
    enabled was changed to check if these are set in "swift_middleware_list"
    without requiring a separate variable. Variable "swift_authtoken_active"
    was removed as it is no longer required.

    Tempest object storage settings were adjusted to work with the default
    list of enabled discoverable_apis for object storage. Container syncing
    was also turned into a variable based on the object storage default.

    Closes-Bug: #1453276
    Co-Authored-By: Julian Montez <email address hidden>
    Co-Authored-By: Darren Birkett <email address hidden>
    Change-Id: I70565296242d10327a58b02149f73eb5f31a877d
    (cherry picked from commit 2ed2bde1b0e728831c17b32b8805a3435f1ee38f)

Revision history for this message
Jesse Pretorius (jesse-pretorius) wrote :

Setting Juno series target to "Won't Fix" as there will be no more adjustments going into the Juno branch unless they are Critical bugs.

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/openstack-ansible 11.2.11

This issue was fixed in the openstack/openstack-ansible 11.2.11 release.

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/openstack-ansible 11.2.12

This issue was fixed in the openstack/openstack-ansible 11.2.12 release.

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/openstack-ansible 11.2.14

This issue was fixed in the openstack/openstack-ansible 11.2.14 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.