Browse code

Merge "Add swift user and project in non-default domain"

Jenkins authored on 2014/10/28 12:16:03
Showing 2 changed files
... ...
@@ -797,38 +797,70 @@ function policy_add {
797 797
     mv ${tmpfile} ${policy_file}
798 798
 }
799 799
 
800
+# Gets or creates a domain
801
+# Usage: get_or_create_domain <name> <description>
802
+function get_or_create_domain {
803
+    local os_url="$KEYSTONE_SERVICE_URI/v3"
804
+    # Gets domain id
805
+    local domain_id=$(
806
+        # Gets domain id
807
+        openstack --os-token=$OS_TOKEN --os-url=$os_url \
808
+            --os-identity-api-version=3 domain show $1 \
809
+            -f value -c id 2>/dev/null ||
810
+        # Creates new domain
811
+        openstack --os-token=$OS_TOKEN --os-url=$os_url \
812
+            --os-identity-api-version=3 domain create $1 \
813
+            --description "$2" \
814
+            -f value -c id
815
+    )
816
+    echo $domain_id
817
+}
818
+
800 819
 # Gets or creates user
801
-# Usage: get_or_create_user <username> <password> <project> [<email>]
820
+# Usage: get_or_create_user <username> <password> <project> [<email> [<domain>]]
802 821
 function get_or_create_user {
803 822
     if [[ ! -z "$4" ]]; then
804 823
         local email="--email=$4"
805 824
     else
806 825
         local email=""
807 826
     fi
827
+    local os_cmd="openstack"
828
+    local domain=""
829
+    if [[ ! -z "$5" ]]; then
830
+        domain="--domain=$5"
831
+        os_cmd="$os_cmd --os-url=$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version=3"
832
+    fi
808 833
     # Gets user id
809 834
     local user_id=$(
810 835
         # Gets user id
811
-        openstack user show $1 -f value -c id 2>/dev/null ||
836
+        $os_cmd user show $1 $domain -f value -c id 2>/dev/null ||
812 837
         # Creates new user
813
-        openstack user create \
838
+        $os_cmd user create \
814 839
             $1 \
815 840
             --password "$2" \
816 841
             --project $3 \
817 842
             $email \
843
+            $domain \
818 844
             -f value -c id
819 845
     )
820 846
     echo $user_id
821 847
 }
822 848
 
823 849
 # Gets or creates project
824
-# Usage: get_or_create_project <name>
850
+# Usage: get_or_create_project <name> [<domain>]
825 851
 function get_or_create_project {
826 852
     # Gets project id
853
+    local os_cmd="openstack"
854
+    local domain=""
855
+    if [[ ! -z "$2" ]]; then
856
+        domain="--domain=$2"
857
+        os_cmd="$os_cmd --os-url=$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version=3"
858
+    fi
827 859
     local project_id=$(
828 860
         # Gets project id
829
-        openstack project show $1 -f value -c id 2>/dev/null ||
861
+        $os_cmd project show $1 $domain -f value -c id 2>/dev/null ||
830 862
         # Creates new project if not exists
831
-        openstack project create $1 -f value -c id
863
+        $os_cmd project create $1 $domain -f value -c id
832 864
     )
833 865
     echo $project_id
834 866
 }
... ...
@@ -468,12 +468,21 @@ EOF
468 468
     iniset ${testfile} func_test username3 swiftusertest3
469 469
     iniset ${testfile} func_test account2 swifttenanttest2
470 470
     iniset ${testfile} func_test username2 swiftusertest2
471
+    iniset ${testfile} func_test account4 swifttenanttest4
472
+    iniset ${testfile} func_test username4 swiftusertest4
473
+    iniset ${testfile} func_test password4 testing4
474
+    iniset ${testfile} func_test domain4 swift_test
471 475
 
472 476
     if is_service_enabled key;then
473 477
         iniuncomment ${testfile} func_test auth_version
478
+        local auth_vers=$(iniget ${testfile} func_test auth_version)
474 479
         iniset ${testfile} func_test auth_host ${KEYSTONE_SERVICE_HOST}
475 480
         iniset ${testfile} func_test auth_port ${KEYSTONE_AUTH_PORT}
476
-        iniset ${testfile} func_test auth_prefix /v2.0/
481
+        if [[ $auth_vers == "3" ]]; then
482
+            iniset ${testfile} func_test auth_prefix /v3/
483
+        else
484
+            iniset ${testfile} func_test auth_prefix /v2.0/
485
+        fi
477 486
     fi
478 487
 
479 488
     local swift_log_dir=${SWIFT_DATA_DIR}/logs
... ...
@@ -548,12 +557,13 @@ function create_swift_disk {
548 548
 # since we want to make it compatible with tempauth which use
549 549
 # underscores for separators.
550 550
 
551
-# Tenant               User       Roles
551
+# Tenant             User               Roles          Domain
552 552
 # ------------------------------------------------------------------
553
-# service            swift              service
554
-# swifttenanttest1   swiftusertest1     admin
555
-# swifttenanttest1   swiftusertest3     anotherrole
556
-# swifttenanttest2   swiftusertest2     admin
553
+# service            swift              service        default
554
+# swifttenanttest1   swiftusertest1     admin          default
555
+# swifttenanttest1   swiftusertest3     anotherrole    default
556
+# swifttenanttest2   swiftusertest2     admin          default
557
+# swifttenanttest4   swiftusertest4     admin          swift_test
557 558
 
558 559
 function create_swift_accounts {
559 560
     # Defines specific passwords used by tools/create_userrc.sh
... ...
@@ -562,6 +572,7 @@ function create_swift_accounts {
562 562
     export swiftusertest1_password=testing
563 563
     export swiftusertest2_password=testing2
564 564
     export swiftusertest3_password=testing3
565
+    export swiftusertest4_password=testing4
565 566
 
566 567
     KEYSTONE_CATALOG_BACKEND=${KEYSTONE_CATALOG_BACKEND:-sql}
567 568
 
... ...
@@ -603,6 +614,16 @@ function create_swift_accounts {
603 603
         "$swift_tenant_test2" "test2@example.com")
604 604
     die_if_not_set $LINENO swift_user_test2 "Failure creating swift_user_test2"
605 605
     get_or_add_user_role $admin_role $swift_user_test2 $swift_tenant_test2
606
+
607
+    local swift_domain=$(get_or_create_domain swift_test 'Used for swift functional testing')
608
+    die_if_not_set $LINENO swift_domain "Failure creating swift_test domain"
609
+
610
+    local swift_tenant_test4=$(get_or_create_project swifttenanttest4 $swift_domain)
611
+    die_if_not_set $LINENO swift_tenant_test4 "Failure creating swift_tenant_test4"
612
+    local swift_user_test4=$(get_or_create_user swiftusertest4 $swiftusertest4_password \
613
+        $swift_tenant_test4 "test4@example.com" $swift_domain)
614
+    die_if_not_set $LINENO swift_user_test4 "Failure creating swift_user_test4"
615
+    get_or_add_user_role $admin_role $swift_user_test4 $swift_tenant_test4
606 616
 }
607 617
 
608 618
 # init_swift() - Initialize rings