Sahara is not passing region parameter to the Swift client

Bug #1717222 reported by Nikita Konovalov
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Fix Released
High
Alexey Stupnikov

Bug Description

Detailed bug description:
 In a multi-region environment Sahara does not pass the os_region_name parameter to the swiftclient
https://github.com/openstack/sahara/blob/master/sahara/utils/openstack/swift.py#L65

Steps to reproduce:
 1) Setup MOS with Swift and Sahara enabled in 2 regions
 2) Create a PIG job template referencing the main script uploaded to Swift in each region.
    Use different pig script names
 3) Launch a job execution
Expected results:
 In both region job completes
Actual result:
 In one of the regions (in one which is not the default) the job fails due to Sahara trying to get
 the script from the wrong region
Reproducibility:
 always
Workaround:
 N/A
Impact:
 Cannot run jobs in the non-default region

Description of the environment:
 Multiregion

Changed in mos:
milestone: 9.x-updates → 9.2-mu-4
Changed in mos:
assignee: nobody → MOS Maintenance (mos-maintenance)
status: New → Confirmed
Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

I have few remarks about this bug. IMO it is not as simple as it looks like. It is easy to change add something like https://github.com/openstack/solum/blob/master/contrib/lp-cedarish/docker/swift-handler.py#L46 to sahara's code, but this will not fix original issue.

First of all, I would like to say that swift has its own definition of region: regions are used to store replicas in different geographical locations [1]. Swift regions configuration is stored in swift ring.

On the other hand, openstack looks at a region as a separate openstack deployments with some common services (like Horizon and Keystone) [2]

It is essential to note that it is impossible to configure an openstack region for swift with fuel, since we use the region only to describe keystone's connection. [3]

IMO this bug is kind of incomplete, since there is no information about the way the customer configured a region for swift. I will ask Nikita to comment on it.

[1] https://www.swiftstack.com/docs/admin/cluster_management/regions.html
[2] https://docs.openstack.org/arch-design/arch-requirements/arch-requirements-ha.html
[3] https://github.com/fuel-infra/puppet-swift/blob/8.2.0/manifests/keystone/auth.pp

Changed in mos:
assignee: MOS Maintenance (mos-maintenance) → Alexey Stupnikov (astupnikov)
Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix proposed to openstack/sahara (9.0/mitaka)

Fix proposed to branch: 9.0/mitaka
Change author: Nikita Konovalov <email address hidden>
Review: https://review.fuel-infra.org/36625

Changed in mos:
status: Confirmed → In Progress
Changed in mos:
milestone: 9.2-mu-4 → 9.2-mu-3
Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix merged to openstack/sahara (9.0/mitaka)

Reviewed: https://review.fuel-infra.org/36625
Submitter: Pkgs Jenkins <email address hidden>
Branch: 9.0/mitaka

Commit: e5c6b23456e7e332f65a6c5ad5b6f903d71c2bde
Author: Nikita Konovalov <email address hidden>
Date: Wed Sep 27 11:50:22 2017

Allow swiftclient to be multiregion

CONF swift_region_parameter is now passed to swiftclient.

Change-Id: I2c3c45a3074cd9ea60922a32c5965155703b0fce
Closes-bug: #1717222

Changed in mos:
status: In Progress → Fix Committed
Revision history for this message
Dmitry (dtsapikov) wrote :

Verified on 9.2+mu3

Changed in mos:
status: Fix Committed → Fix Released
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.