@@ -966,53 +966,41 @@ function _get_domain_args {
966966# Usage: get_or_add_user_project_role <role> <user> <project> [<user_domain> <project_domain>]
967967function get_or_add_user_project_role {
968968 local user_role_id
969+ local domain_args
969970
970971 domain_args=$( _get_domain_args $4 $5 )
971972
972- # Gets user role id
973+ # Note this is idempotent so we are safe across multiple
974+ # duplicate calls.
975+ openstack --os-cloud devstack-system-admin role add $1 \
976+ --user $2 \
977+ --project $3 \
978+ $domain_args
973979 user_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
974980 --role $1 \
975981 --user $2 \
976982 --project $3 \
977983 $domain_args \
978- | grep ' ^|\s[a-f0-9]\+' | get_field 1)
979- if [[ -z " $user_role_id " ]]; then
980- # Adds role to user and get it
981- openstack --os-cloud devstack-system-admin role add $1 \
982- --user $2 \
983- --project $3 \
984- $domain_args
985- user_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
986- --role $1 \
987- --user $2 \
988- --project $3 \
989- $domain_args \
990- | grep ' ^|\s[a-f0-9]\+' | get_field 1)
991- fi
984+ -c Role -f value)
992985 echo $user_role_id
993986}
994987
995988# Gets or adds user role to domain
996989# Usage: get_or_add_user_domain_role <role> <user> <domain>
997990function get_or_add_user_domain_role {
998991 local user_role_id
999- # Gets user role id
992+
993+ # Note this is idempotent so we are safe across multiple
994+ # duplicate calls.
995+ openstack --os-cloud devstack-system-admin role add $1 \
996+ --user $2 \
997+ --domain $3
1000998 user_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
1001999 --role $1 \
10021000 --user $2 \
10031001 --domain $3 \
1004- | grep ' ^|\s[a-f0-9]\+' | get_field 1)
1005- if [[ -z " $user_role_id " ]]; then
1006- # Adds role to user and get it
1007- openstack --os-cloud devstack-system-admin role add $1 \
1008- --user $2 \
1009- --domain $3
1010- user_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
1011- --role $1 \
1012- --user $2 \
1013- --domain $3 \
1014- | grep ' ^|\s[a-f0-9]\+' | get_field 1)
1015- fi
1002+ -c Role -f value)
1003+
10161004 echo $user_role_id
10171005}
10181006
@@ -1051,23 +1039,18 @@ function get_or_add_user_system_role {
10511039# Usage: get_or_add_group_project_role <role> <group> <project>
10521040function get_or_add_group_project_role {
10531041 local group_role_id
1054- # Gets group role id
1042+
1043+ # Note this is idempotent so we are safe across multiple
1044+ # duplicate calls.
1045+ openstack role add $1 \
1046+ --group $2 \
1047+ --project $3
10551048 group_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
10561049 --role $1 \
10571050 --group $2 \
10581051 --project $3 \
1059- -f value)
1060- if [[ -z " $group_role_id " ]]; then
1061- # Adds role to group and get it
1062- openstack --os-cloud devstack-system-admin role add $1 \
1063- --group $2 \
1064- --project $3
1065- group_role_id=$( openstack --os-cloud devstack-system-admin role assignment list \
1066- --role $1 \
1067- --group $2 \
1068- --project $3 \
1069- -f value)
1070- fi
1052+ -f value -c Role)
1053+
10711054 echo $group_role_id
10721055}
10731056
0 commit comments