blob: 4430bbf69e1d8dbf5df05b405c8913598fa0cb7f [file] [log] [blame]
Masayuki Igawae1a50832017-04-11 16:24:00 +09001#!/usr/bin/env bash
Clint Adamsa4136522016-03-10 20:24:34 -05002
3# Copyright 2016 Hewlett Packard Enterprise Development Company, L.P.
4#
5# Licensed under the Apache License, Version 2.0 (the "License"); you may
6# not use this file except in compliance with the License. You may obtain
7# a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14# License for the specific language governing permissions and limitations
15# under the License.
16
17# This script is intended to be run as a periodic proposal bot job
18# in OpenStack infrastructure, though you can run it as a one-off.
19#
20# In order to function correctly, the environment in which the
21# script runs must have
22# * a writable doc/source directory relative to the current
23# working directory
24# AND ( (
25# * git
26# * all git repos meant to be searched for plugins cloned and
27# at the desired level of up-to-datedness
28# * the environment variable git_dir pointing to the location
29# * of said git repositories
30# ) OR (
caoyuan349ba752019-04-23 19:40:06 +080031# * network access to the review.opendev.org Gerrit API
Clint Adamsa4136522016-03-10 20:24:34 -050032# working directory
caoyuan349ba752019-04-23 19:40:06 +080033# * network access to https://opendev.org/openstack
Clint Adamsa4136522016-03-10 20:24:34 -050034# ))
35#
Masayuki Igawa6d5a48c2017-09-06 18:31:57 +090036# If a file named doc/source/data/tempest-plugins-registry.header or
37# doc/source/data/tempest-plugins-registry.footer is found relative to the
Clint Adamsa4136522016-03-10 20:24:34 -050038# current working directory, it will be prepended or appended to
39# the generated reStructuredText plugins table respectively.
40
Masayuki Igawae1a50832017-04-11 16:24:00 +090041set -ex
42
Clint Adamsa4136522016-03-10 20:24:34 -050043(
Masayuki Igawa6d5a48c2017-09-06 18:31:57 +090044if [[ -r doc/source/data/tempest-plugins-registry.header ]]; then
45 cat doc/source/data/tempest-plugins-registry.header
Clint Adamsa4136522016-03-10 20:24:34 -050046fi
47
48sorted_plugins=$(python tools/generate-tempest-plugins-list.py)
49
ghanshyamdf037312018-07-27 09:31:16 +000050name_col_len=$(echo "${sorted_plugins}" | wc -L)
akhiljain23a2260de2018-07-26 18:23:36 +053051name_col_len=$(( name_col_len + 20 ))
ghanshyamdf037312018-07-27 09:31:16 +000052
53# Print the title underline for a RST table.
54function title_underline {
55 printf "== "
56 local len=$1
57 while [[ $len -gt 0 ]]; do
58 printf "="
59 len=$(( len - 1))
60 done
61 printf " ===\n"
62}
63
Masayuki Igawade1153b2019-07-30 18:02:07 +090064function print_plugin_table {
Masayuki Igawaac8ae642019-05-23 11:39:02 +020065 title_underline ${name_col_len}
66 printf "%-3s %-${name_col_len}s %s\n" "SR" "Plugin Name" "URL"
67 title_underline ${name_col_len}
68
69 i=0
70 for plugin in $1; do
71 i=$((i+1))
saswati61f03b72019-08-15 08:44:30 +080072 giturl="https://opendev.org/${plugin}"
Masayuki Igawaac8ae642019-05-23 11:39:02 +020073 printf "%-3s %-${name_col_len}s %s\n" "$i" "${plugin}" "${giturl}"
74 done
75
76 title_underline ${name_col_len}
77}
78
ghanshyamdf037312018-07-27 09:31:16 +000079printf "\n\n"
Masayuki Igawaac8ae642019-05-23 11:39:02 +020080print_plugin_table "${sorted_plugins}"
ghanshyamdf037312018-07-27 09:31:16 +000081
Masayuki Igawaac8ae642019-05-23 11:39:02 +020082printf "\n\n"
Clint Adamsa4136522016-03-10 20:24:34 -050083
Martin Kopecdc844232020-12-24 15:57:53 +000084# Print NON_ACTIVE_LIST
85if [[ -r doc/source/data/tempest-non-active-plugins-registry.header ]]; then
86 cat doc/source/data/tempest-non-active-plugins-registry.header
Masayuki Igawaac8ae642019-05-23 11:39:02 +020087fi
88
Martin Kopecdc844232020-12-24 15:57:53 +000089nonactivelist=$(python tools/generate-tempest-plugins-list.py nonactivelist)
90name_col_len=$(echo "${nonactivelist}" | wc -L)
Masayuki Igawaac8ae642019-05-23 11:39:02 +020091name_col_len=$(( name_col_len + 20 ))
92
93printf "\n\n"
Martin Kopecdc844232020-12-24 15:57:53 +000094print_plugin_table "${nonactivelist}"
ghanshyamdf037312018-07-27 09:31:16 +000095
96printf "\n\n"
97
Masayuki Igawa6d5a48c2017-09-06 18:31:57 +090098if [[ -r doc/source/data/tempest-plugins-registry.footer ]]; then
99 cat doc/source/data/tempest-plugins-registry.footer
Clint Adamsa4136522016-03-10 20:24:34 -0500100fi
Ghanshyam Mannda3bb612020-05-04 20:52:01 -0500101) > doc/source/plugins/plugin-registry.rst
Clint Adamsa4136522016-03-10 20:24:34 -0500102
103if [[ -n ${1} ]]; then
Ghanshyam Mannda3bb612020-05-04 20:52:01 -0500104 cp doc/source/plugins/plugin-registry.rst ${1}/doc/source/plugins/plugin-registry.rst
Clint Adamsa4136522016-03-10 20:24:34 -0500105fi