remove_disabled_extensions do matching by '$ext_to_remove","'. So it doesn't
match an extension at the last position in extensions_list.
This patch fixes that.
Closes-Bug: #1443254
Change-Id: I194b483de797697ba06b320cf33f1bac67fc0cc7
... | ... |
@@ -1629,7 +1629,6 @@ function disable_all_services { |
1629 | 1629 |
function disable_negated_services { |
1630 | 1630 |
local to_remove="" |
1631 | 1631 |
local remaining="" |
1632 |
- local enabled="" |
|
1633 | 1632 |
local service |
1634 | 1633 |
|
1635 | 1634 |
# build up list of services that should be removed; i.e. they |
... | ... |
@@ -1644,21 +1643,7 @@ function disable_negated_services { |
1644 | 1644 |
|
1645 | 1645 |
# go through the service list. if this service appears in the "to |
1646 | 1646 |
# be removed" list, drop it |
1647 |
- for service in ${remaining//,/ }; do |
|
1648 |
- local remove |
|
1649 |
- local add=1 |
|
1650 |
- for remove in ${to_remove//,/ }; do |
|
1651 |
- if [[ ${remove} == ${service} ]]; then |
|
1652 |
- add=0 |
|
1653 |
- break |
|
1654 |
- fi |
|
1655 |
- done |
|
1656 |
- if [[ $add == 1 ]]; then |
|
1657 |
- enabled="${enabled},$service" |
|
1658 |
- fi |
|
1659 |
- done |
|
1660 |
- |
|
1661 |
- ENABLED_SERVICES=$(_cleanup_service_list "$enabled") |
|
1647 |
+ ENABLED_SERVICES=$(remove_disabled_services "$remaining" "$to_remove") |
|
1662 | 1648 |
} |
1663 | 1649 |
|
1664 | 1650 |
# disable_service() removes the services passed as argument to the |
... | ... |
@@ -1762,6 +1747,30 @@ function is_service_enabled { |
1762 | 1762 |
return $enabled |
1763 | 1763 |
} |
1764 | 1764 |
|
1765 |
+# remove specified list from the input string |
|
1766 |
+# remove_disabled_services service-list remove-list |
|
1767 |
+function remove_disabled_services { |
|
1768 |
+ local service_list=$1 |
|
1769 |
+ local remove_list=$2 |
|
1770 |
+ local service |
|
1771 |
+ local enabled="" |
|
1772 |
+ |
|
1773 |
+ for service in ${service_list//,/ }; do |
|
1774 |
+ local remove |
|
1775 |
+ local add=1 |
|
1776 |
+ for remove in ${remove_list//,/ }; do |
|
1777 |
+ if [[ ${remove} == ${service} ]]; then |
|
1778 |
+ add=0 |
|
1779 |
+ break |
|
1780 |
+ fi |
|
1781 |
+ done |
|
1782 |
+ if [[ $add == 1 ]]; then |
|
1783 |
+ enabled="${enabled},$service" |
|
1784 |
+ fi |
|
1785 |
+ done |
|
1786 |
+ _cleanup_service_list "$enabled" |
|
1787 |
+} |
|
1788 |
+ |
|
1765 | 1789 |
# Toggle enable/disable_service for services that must run exclusive of each other |
1766 | 1790 |
# $1 The name of a variable containing a space-separated list of services |
1767 | 1791 |
# $2 The name of a variable in which to store the enabled service's name |
... | ... |
@@ -91,10 +91,7 @@ function remove_disabled_extensions { |
91 | 91 |
local extensions_list=$1 |
92 | 92 |
shift |
93 | 93 |
local disabled_exts=$* |
94 |
- for ext_to_remove in ${disabled_exts//,/ } ; do |
|
95 |
- extensions_list=${extensions_list/$ext_to_remove","} |
|
96 |
- done |
|
97 |
- echo $extensions_list |
|
94 |
+ remove_disabled_services "$extensions_list" "$disabled_exts" |
|
98 | 95 |
} |
99 | 96 |
|
100 | 97 |
# configure_tempest() - Set config files, create data dirs, etc |
... | ... |
@@ -137,6 +137,31 @@ test_disable_negated_services 'a,aa,-a' 'aa' |
137 | 137 |
test_disable_negated_services 'a,av2,-a,a' 'av2' |
138 | 138 |
test_disable_negated_services 'a,-a,av2' 'av2' |
139 | 139 |
|
140 |
+echo "Testing remove_disabled_services()" |
|
141 |
+ |
|
142 |
+function test_remove_disabled_services { |
|
143 |
+ local service_list="$1" |
|
144 |
+ local remove_list="$2" |
|
145 |
+ local expected="$3" |
|
146 |
+ |
|
147 |
+ results=$(remove_disabled_services "$service_list" "$remove_list") |
|
148 |
+ if [ "$results" = "$expected" ]; then |
|
149 |
+ passed "OK: '$service_list' - '$remove_list' -> '$results'" |
|
150 |
+ else |
|
151 |
+ failed "getting '$expected' from '$service_list' - '$remove_list' failed: '$results'" |
|
152 |
+ fi |
|
153 |
+} |
|
154 |
+ |
|
155 |
+test_remove_disabled_services 'a,b,c' 'a,c' 'b' |
|
156 |
+test_remove_disabled_services 'a,b,c' 'b' 'a,c' |
|
157 |
+test_remove_disabled_services 'a,b,c,d' 'a,c d' 'b' |
|
158 |
+test_remove_disabled_services 'a,b c,d' 'a d' 'b,c' |
|
159 |
+test_remove_disabled_services 'a,b,c' 'a,b,c' '' |
|
160 |
+test_remove_disabled_services 'a,b,c' 'd' 'a,b,c' |
|
161 |
+test_remove_disabled_services 'a,b,c' '' 'a,b,c' |
|
162 |
+test_remove_disabled_services '' 'a,b,c' '' |
|
163 |
+test_remove_disabled_services '' '' '' |
|
164 |
+ |
|
140 | 165 |
echo "Testing is_package_installed()" |
141 | 166 |
|
142 | 167 |
if [[ -z "$os_PACKAGE" ]]; then |