components/openstack/horizon/patches/05-launchpad-1260439.patch
author david.comay@oracle.com
Mon, 16 Jun 2014 01:54:54 -0700
branchs11-update
changeset 3180 073132dbad0e
permissions -rw-r--r--
18720708 Error: Unable to add userto primary project when adding user via Horizon
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3180
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     1
This proposed upstream patch addresses
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     2
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     3
	18720708 Error: Unable to add userto primary project when adding user
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     4
		 via Horizon
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     5
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     6
and is tracked under Launchpad bug 1260439. Although it's been
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     7
addressed in the Juno trunk, the patch below is still not yet released
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     8
for Havana.  It has been modified to apply cleanly into our current
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
     9
Havana implementation
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    10
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    11
commit f5ded29d9a73db4c225cbfb664e7d85e5aa0996b
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    12
Author: Matthias Runge <[email protected]>
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    13
Date:   Fri May 23 11:36:54 2014 +0200
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    14
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    15
    Prevent error message when creating a user
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    16
    
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    17
    keystone changed behaviour and didn't add the user
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    18
    to the specified role. Now it does; this patch
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    19
    prevents an exception popping up without breaking
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    20
    with previous versions.
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    21
    
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    22
    Change-Id: I115a5126b70ae3c7733aa065bf55104f88cc42e5
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    23
    Closes-Bug: #1260439
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    24
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    25
--- horizon-2013.2.3/openstack_dashboard/dashboards/admin/users/forms.py.~1~	2014-04-03 11:45:53.000000000 -0700
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    26
+++ horizon-2013.2.3/openstack_dashboard/dashboards/admin/users/forms.py	2014-06-11 12:54:51.517905246 -0700
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    27
@@ -122,15 +122,21 @@
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    28
                              _('User "%s" was successfully created.')
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    29
                              % data['name'])
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    30
             if data['role_id']:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    31
-                try:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    32
-                    api.keystone.add_tenant_user_role(request,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    33
-                                                      data['project'],
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    34
-                                                      new_user.id,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    35
-                                                      data['role_id'])
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    36
-                except Exception:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    37
-                    exceptions.handle(request,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    38
-                                      _('Unable to add user '
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    39
-                                        'to primary project.'))
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    40
+                roles = api.keystone.roles_for_user(request,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    41
+                                        new_user.id,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    42
+                                        data['project']) or []
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    43
+                assigned = [role for role in roles if role.id == str(
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    44
+                    data['role_id'])]
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    45
+                if not assigned:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    46
+                    try:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    47
+                        api.keystone.add_tenant_user_role(request,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    48
+                                                        data['project'],
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    49
+                                                        new_user.id,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    50
+                                                        data['role_id'])
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    51
+                    except Exception:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    52
+                        exceptions.handle(request,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    53
+                                        _('Unable to add user '
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    54
+                                            'to primary project.'))
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    55
             return new_user
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    56
         except Exception:
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    57
             exceptions.handle(request, _('Unable to create user.'))
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    58
--- horizon-2013.2.3/openstack_dashboard/dashboards/admin/users/tests.py.~1~	2014-04-03 11:45:53.000000000 -0700
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    59
+++ horizon-2013.2.3/openstack_dashboard/dashboards/admin/users/tests.py	2014-06-11 13:44:29.437187509 -0700
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    60
@@ -81,6 +81,7 @@
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    61
                                        'tenant_list',
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    62
                                        'add_tenant_user_role',
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    63
                                        'get_default_role',
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    64
+                                       'roles_for_user',
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    65
                                        'role_list')})
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    66
     def test_create(self):
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    67
         user = self.users.get(id="1")
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    68
@@ -102,6 +103,7 @@
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    69
                                  domain=domain_id).AndReturn(user)
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    70
         api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    71
         api.keystone.get_default_role(IgnoreArg()).AndReturn(role)
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    72
+        api.keystone.roles_for_user(IgnoreArg(), user.id, self.tenant.id)
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    73
         api.keystone.add_tenant_user_role(IgnoreArg(), self.tenant.id,
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    74
                                           user.id, role.id)
073132dbad0e 18720708 Error: Unable to add userto primary project when adding user via Horizon
david.comay@oracle.com
parents:
diff changeset
    75