"Unable to retrive container list" in Horizon for member

Bug #1251251 reported by Anastasia Palkina
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Released
Low
Matthew Mosesohn

Bug Description

"release": "3.2.1",
"nailgun_sha": "51fd1d386b8cfc425cb258c4fa1cdb1ebb9e5a6e",
"ostf_sha": "c70535553616d3c2f8b0bccced54361c06f76f97",
"astute_sha": "df6ddea3abc93fbe1cab9b4534d4d5e9508c95d6",
"fuellib_sha": "e1e14026d78848597ef19c7ff73651d2103adab0"

1. Create new environment (CentOS, HA mode)
2. Add 3 controllers, 1 compute, 3 cinder nodes
3. Start deployment. It was successful
4. Go to Horizon
5. Create new user with role member
6. Login into Horizon inder added user
7. Click in left menu to Containers. Error presents "Unable to retrive container list"

Warning in ./node-6.domain.tld/dashboard-horizon.exceptions.log

 warning: WARNING ESC[31;1mRecoverable error: Account GET failed: http://172.16.0.6:8080/v1/AUTH_ac5ea7a5870a4f938540fc98ac307fc5?format=json&limit=1001 403 Forbidden [first 60 chars of response] <html><h1>Forbidden</h1><p>Access was denied to this resourcESC[0m

Tags: horizon
Revision history for this message
Anastasia Palkina (apalkina) wrote :
Revision history for this message
Anastasia Palkina (apalkina) wrote :
Mike Scherbakov (mihgen)
Changed in fuel:
milestone: none → 4.0
importance: Undecided → Low
Mike Scherbakov (mihgen)
Changed in fuel:
assignee: Vladimir Kuklin (vkuklin) → nobody
Changed in fuel:
assignee: nobody → Matthew Mosesohn (raytrac3r)
status: New → In Progress
Revision history for this message
Matthew Mosesohn (raytrac3r) wrote :

This problem relates to the core problem that Swift admin tasks are quite limited in Horizon and by default, Swift is reserved for Admins only.

I'm paraphrasing documentation from these two sources:
http://docs.openstack.org/developer/swift/overview_auth.html
http://rtg.in.ua/blog/openstack-swift-and-keystone-setting-up-cloud-storage/

The expected tenant admin behavior is as follows:
1 - Users who should manage all swift object stores should be given SwiftOperator role (it exists in our conf, but not the role itself)
2 - Users who should get a container should have an object created for them (CLI only, not via Horizon)
3 - Non-privileged users who don't get assigned any containers don't have any swift access at all.

The error in Horizon is correct because unless you're a Swift operator, you don't get to list any objects.

We have two routes to solve this:
1 - Create SwiftOperator role when deploying Fuel so that it can be delegated for a project if needed. (We should definitely do this)
2 - Allow (either always or with a config option) admin swift access for users by default by calling swift::proxy::keystone with $operator_roles = ['admin', 'SwiftOperator', 'Member']. This should be discussed and we'll decide if this is beneficial.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to fuel-library (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/62634

Revision history for this message
Matthew Mosesohn (raytrac3r) wrote :

Patch applied to iso #150 (in progress).

Steps to follow workaround:
1 - Deploy CentOS HA (3 controller, 1 compute) with all defaults
2 - Log into Horizon as admin
3 - Create test project, test user as non-admin
4 - Modify project "test" and add role "SwiftOperator" to user "test"
5 - Log out and log in as test user
6 - Create a container and upload files in test project.

Revision history for this message
Anastasia Palkina (apalkina) wrote :

Confirmed on ISO #150
"release": "4.0",
"nailgun_sha": "d9191d45273ae3437339df7fbd86b0543fc0761a",
"ostf_sha": "c1c353909cd1a0af018bbe89fb12570db6b09969",
"astute_sha": "83a8115245e3314d770a4e858317713ac0dbee48",
"fuellib_sha": "e2bec279b7307b50d6a5f0cd3f104ec4fcd80c18"

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to fuel-library (master)

Reviewed: https://review.openstack.org/62634
Committed: https://git.openstack.org/cgit/stackforge/fuel-library/commit/?id=e2bec279b7307b50d6a5f0cd3f104ec4fcd80c18
Submitter: Jenkins
Branch: master

commit e2bec279b7307b50d6a5f0cd3f104ec4fcd80c18
Author: Matthew Mosesohn <email address hidden>
Date: Tue Dec 17 16:57:35 2013 +0400

    Create swift operator keystone roles

    Defining operator_roles in swift-proxy.conf requires
    that these roles exist in keystone.

    Because Keystone API access is not available on Swift
    proxy hosts in most cases, operator_roles keystone
    roles have been added to swift::keystone::auth class.

    Added basic docs for swift::keystone::auth
    Updated ensure_resource from latest PuppetLabs stdlib

    Change-Id: I941c75e51898847ad346cdefbaa6ed7737dffc69
    Related-Bug: #1251251

Changed in fuel:
status: In Progress → Fix Committed
Changed in fuel:
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.