Browse code

Add an openSUSE Tumbleweed devstack non-voting check job

This adds the necessary fixes to pass a devstack run
on openSUSE Tumbleweed. Also removes opensuse 42.2 as it
is EOL for some time already and no longer actively tested
in the OpenStack infra.

Depends-On: I1b68c08c07cf6653ea58506f738cbe0054b38f3a
Change-Id: I2894482deef063fd02b0818c695a2ddbf6767039

Dirk Mueller authored on 2018/03/02 08:37:58
Showing 6 changed files
... ...
@@ -29,6 +29,16 @@
29 29
           - controller
30 30
 
31 31
 - nodeset:
32
+    name: devstack-single-node-opensuse-tumbleweed
33
+    nodes:
34
+      - name: controller
35
+        label: opensuse-tumbleweed
36
+    groups:
37
+      - name: tempest
38
+        nodes:
39
+          - controller
40
+
41
+- nodeset:
32 42
     name: devstack-single-node-fedora-27
33 43
     nodes:
34 44
       - name: controller
... ...
@@ -238,11 +248,18 @@
238 238
 - job:
239 239
     name: devstack-platform-opensuse-423
240 240
     parent: tempest-full
241
-    description: OpenSuSE 43.2 platform test
241
+    description: openSUSE 43.2 platform test
242 242
     nodeset: devstack-single-node-opensuse-423
243 243
     voting: false
244 244
 
245 245
 - job:
246
+    name: devstack-platform-opensuse-tumbleweed
247
+    parent: tempest-full
248
+    description: openSUSE Tumbleweed platform test
249
+    nodeset: devstack-single-node-opensuse-tumbleweed
250
+    voting: false
251
+
252
+- job:
246 253
     name: devstack-platform-fedora-27
247 254
     parent: tempest-full
248 255
     description: Fedora 27 platform test
... ...
@@ -318,6 +335,7 @@
318 318
         - devstack
319 319
         - devstack-platform-centos-7
320 320
         - devstack-platform-opensuse-423
321
+        - devstack-platform-opensuse-tumbleweed
321 322
         - devstack-platform-fedora-27
322 323
         - devstack-multinode
323 324
         - devstack-unit-tests
... ...
@@ -373,6 +373,9 @@ function GetDistro {
373 373
         DISTRO="f$os_RELEASE"
374 374
     elif [[ "$os_VENDOR" =~ (openSUSE) ]]; then
375 375
         DISTRO="opensuse-$os_RELEASE"
376
+        # Tumbleweed uses "n/a" as a codename, and the release is a datestring
377
+        # like 20180218, so not very useful.
378
+        [ "$os_CODENAME" = "n/a" ] && DISTRO="opensuse-tumbleweed"
376 379
     elif [[ "$os_VENDOR" =~ (SUSE LINUX) ]]; then
377 380
         # just use major release
378 381
         DISTRO="sle${os_RELEASE%.*}"
... ...
@@ -52,7 +52,20 @@ function install_rpc_backend {
52 52
     if is_service_enabled rabbit; then
53 53
         # Install rabbitmq-server
54 54
         install_package rabbitmq-server
55
-        if is_fedora; then
55
+        if is_suse; then
56
+            install_package rabbitmq-server-plugins
57
+            # the default systemd socket activation only listens on the loopback interface
58
+            # which causes rabbitmq to try to start its own epmd
59
+            sudo mkdir -p /etc/systemd/system/epmd.socket.d
60
+            cat <<EOF | sudo tee /etc/systemd/system/epmd.socket.d/ports.conf >/dev/null
61
+[Socket]
62
+ListenStream=
63
+ListenStream=[::]:4369
64
+EOF
65
+            sudo systemctl daemon-reload
66
+            sudo systemctl restart epmd.socket epmd.service
67
+        fi
68
+        if is_fedora || is_suse; then
56 69
             sudo systemctl enable rabbitmq-server
57 70
         fi
58 71
     fi
... ...
@@ -557,7 +557,11 @@ EOF
557 557
 
558 558
     local swift_log_dir=${SWIFT_DATA_DIR}/logs
559 559
     sudo rm -rf ${swift_log_dir}
560
-    sudo install -d -o ${STACK_USER} -g adm ${swift_log_dir}/hourly
560
+    local swift_log_group=adm
561
+    if is_suse; then
562
+        swift_log_group=root
563
+    fi
564
+    sudo install -d -o ${STACK_USER} -g ${swift_log_group} ${swift_log_dir}/hourly
561 565
 
562 566
     if [[ $SYSLOG != "False" ]]; then
563 567
         sed "s,%SWIFT_LOGDIR%,${swift_log_dir}," $FILES/swift/rsyslog.conf | sudo \
... ...
@@ -221,7 +221,7 @@ write_devstack_version
221 221
 
222 222
 # Warn users who aren't on an explicitly supported distro, but allow them to
223 223
 # override check and attempt installation with ``FORCE=yes ./stack``
224
-if [[ ! ${DISTRO} =~ (xenial|zesty|artful|stretch|jessie|f25|f26|f27|opensuse-42.2|opensuse-42.3|rhel7) ]]; then
224
+if [[ ! ${DISTRO} =~ (xenial|zesty|artful|stretch|jessie|f25|f26|f27|opensuse-42.3|opensuse-tumbleweed|rhel7) ]]; then
225 225
     echo "WARNING: this script has not been tested on $DISTRO"
226 226
     if [[ "$FORCE" != "yes" ]]; then
227 227
         die $LINENO "If you wish to run this script anyway run with FORCE=yes"
... ...
@@ -129,10 +129,10 @@ get_versions
129 129
 
130 130
 # Eradicate any and all system packages
131 131
 
132
-# Python in fedora depends on the python-pip package so removing it
132
+# Python in fedora/suse depends on the python-pip package so removing it
133 133
 # results in a nonfunctional system. pip on fedora installs to /usr so pip
134 134
 # can safely override the system pip for all versions of fedora
135
-if ! is_fedora ; then
135
+if ! is_fedora  && ! is_suse; then
136 136
     uninstall_package python-pip
137 137
     uninstall_package python3-pip
138 138
 fi