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 |