| ... | ... |
@@ -89,6 +89,8 @@ CINDER_SECURE_DELETE=$(trueorfalse True CINDER_SECURE_DELETE) |
| 89 | 89 |
# https://bugs.launchpad.net/cinder/+bug/1180976 |
| 90 | 90 |
CINDER_PERIODIC_INTERVAL=${CINDER_PERIODIC_INTERVAL:-60}
|
| 91 | 91 |
|
| 92 |
+CINDER_ISCSI_HELPER=${CINDER_ISCSI_HELPER:-tgtadm}
|
|
| 93 |
+ |
|
| 92 | 94 |
# Tell Tempest this project is present |
| 93 | 95 |
TEMPEST_SERVICES+=,cinder |
| 94 | 96 |
|
| ... | ... |
@@ -126,31 +128,35 @@ function is_cinder_enabled {
|
| 126 | 126 |
function cleanup_cinder {
|
| 127 | 127 |
# ensure the volume group is cleared up because fails might |
| 128 | 128 |
# leave dead volumes in the group |
| 129 |
- local targets=$(sudo tgtadm --op show --mode target) |
|
| 130 |
- if [ $? -ne 0 ]; then |
|
| 131 |
- # If tgt driver isn't running this won't work obviously |
|
| 132 |
- # So check the response and restart if need be |
|
| 133 |
- echo "tgtd seems to be in a bad state, restarting..." |
|
| 134 |
- if is_ubuntu; then |
|
| 135 |
- restart_service tgt |
|
| 136 |
- else |
|
| 137 |
- restart_service tgtd |
|
| 129 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 130 |
+ local targets=$(sudo tgtadm --op show --mode target) |
|
| 131 |
+ if [ $? -ne 0 ]; then |
|
| 132 |
+ # If tgt driver isn't running this won't work obviously |
|
| 133 |
+ # So check the response and restart if need be |
|
| 134 |
+ echo "tgtd seems to be in a bad state, restarting..." |
|
| 135 |
+ if is_ubuntu; then |
|
| 136 |
+ restart_service tgt |
|
| 137 |
+ else |
|
| 138 |
+ restart_service tgtd |
|
| 139 |
+ fi |
|
| 140 |
+ targets=$(sudo tgtadm --op show --mode target) |
|
| 138 | 141 |
fi |
| 139 |
- targets=$(sudo tgtadm --op show --mode target) |
|
| 140 |
- fi |
|
| 141 | 142 |
|
| 142 |
- if [[ -n "$targets" ]]; then |
|
| 143 |
- local iqn_list=( $(grep --no-filename -r iqn $SCSI_PERSIST_DIR | sed 's/<target //' | sed 's/>//') ) |
|
| 144 |
- for i in "${iqn_list[@]}"; do
|
|
| 145 |
- echo removing iSCSI target: $i |
|
| 146 |
- sudo tgt-admin --delete $i |
|
| 147 |
- done |
|
| 148 |
- fi |
|
| 143 |
+ if [[ -n "$targets" ]]; then |
|
| 144 |
+ local iqn_list=( $(grep --no-filename -r iqn $SCSI_PERSIST_DIR | sed 's/<target //' | sed 's/>//') ) |
|
| 145 |
+ for i in "${iqn_list[@]}"; do
|
|
| 146 |
+ echo removing iSCSI target: $i |
|
| 147 |
+ sudo tgt-admin --delete $i |
|
| 148 |
+ done |
|
| 149 |
+ fi |
|
| 149 | 150 |
|
| 150 |
- if is_ubuntu; then |
|
| 151 |
- stop_service tgt |
|
| 151 |
+ if is_ubuntu; then |
|
| 152 |
+ stop_service tgt |
|
| 153 |
+ else |
|
| 154 |
+ stop_service tgtd |
|
| 155 |
+ fi |
|
| 152 | 156 |
else |
| 153 |
- stop_service tgtd |
|
| 157 |
+ sudo cinder-rtstool get-targets | sudo xargs -rn 1 cinder-rtstool delete |
|
| 154 | 158 |
fi |
| 155 | 159 |
|
| 156 | 160 |
if is_service_enabled c-vol && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then |
| ... | ... |
@@ -231,7 +237,7 @@ function configure_cinder {
|
| 231 | 231 |
iniset $CINDER_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL |
| 232 | 232 |
iniset $CINDER_CONF DEFAULT verbose True |
| 233 | 233 |
|
| 234 |
- iniset $CINDER_CONF DEFAULT iscsi_helper tgtadm |
|
| 234 |
+ iniset $CINDER_CONF DEFAULT iscsi_helper "$CINDER_ISCSI_HELPER" |
|
| 235 | 235 |
iniset $CINDER_CONF database connection `database_connection_url cinder` |
| 236 | 236 |
iniset $CINDER_CONF DEFAULT api_paste_config $CINDER_API_PASTE_INI |
| 237 | 237 |
iniset $CINDER_CONF DEFAULT rootwrap_config "$CINDER_CONF_DIR/rootwrap.conf" |
| ... | ... |
@@ -395,6 +401,13 @@ function init_cinder {
|
| 395 | 395 |
function install_cinder {
|
| 396 | 396 |
git_clone $CINDER_REPO $CINDER_DIR $CINDER_BRANCH |
| 397 | 397 |
setup_develop $CINDER_DIR |
| 398 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 399 |
+ if is_fedora; then |
|
| 400 |
+ install_package scsi-target-utils |
|
| 401 |
+ else |
|
| 402 |
+ install_package tgt |
|
| 403 |
+ fi |
|
| 404 |
+ fi |
|
| 398 | 405 |
} |
| 399 | 406 |
|
| 400 | 407 |
# install_cinderclient() - Collect source and prepare |
| ... | ... |
@@ -422,21 +435,23 @@ function start_cinder {
|
| 422 | 422 |
service_port=$CINDER_SERVICE_PORT_INT |
| 423 | 423 |
service_protocol="http" |
| 424 | 424 |
fi |
| 425 |
- if is_service_enabled c-vol; then |
|
| 426 |
- # Delete any old stack.conf |
|
| 427 |
- sudo rm -f /etc/tgt/conf.d/stack.conf |
|
| 428 |
- _configure_tgt_for_config_d |
|
| 429 |
- if is_ubuntu; then |
|
| 430 |
- sudo service tgt restart |
|
| 431 |
- elif is_fedora || is_suse; then |
|
| 432 |
- restart_service tgtd |
|
| 433 |
- else |
|
| 434 |
- # note for other distros: unstack.sh also uses the tgt/tgtd service |
|
| 435 |
- # name, and would need to be adjusted too |
|
| 436 |
- exit_distro_not_supported "restarting tgt" |
|
| 425 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 426 |
+ if is_service_enabled c-vol; then |
|
| 427 |
+ # Delete any old stack.conf |
|
| 428 |
+ sudo rm -f /etc/tgt/conf.d/stack.conf |
|
| 429 |
+ _configure_tgt_for_config_d |
|
| 430 |
+ if is_ubuntu; then |
|
| 431 |
+ sudo service tgt restart |
|
| 432 |
+ elif is_fedora || is_suse; then |
|
| 433 |
+ restart_service tgtd |
|
| 434 |
+ else |
|
| 435 |
+ # note for other distros: unstack.sh also uses the tgt/tgtd service |
|
| 436 |
+ # name, and would need to be adjusted too |
|
| 437 |
+ exit_distro_not_supported "restarting tgt" |
|
| 438 |
+ fi |
|
| 439 |
+ # NOTE(gfidente): ensure tgtd is running in debug mode |
|
| 440 |
+ sudo tgtadm --mode system --op update --name debug --value on |
|
| 437 | 441 |
fi |
| 438 |
- # NOTE(gfidente): ensure tgtd is running in debug mode |
|
| 439 |
- sudo tgtadm --mode system --op update --name debug --value on |
|
| 440 | 442 |
fi |
| 441 | 443 |
|
| 442 | 444 |
run_process c-api "$CINDER_BIN_DIR/cinder-api --config-file $CINDER_CONF" |
| ... | ... |
@@ -466,14 +481,6 @@ function stop_cinder {
|
| 466 | 466 |
for serv in c-api c-bak c-sch c-vol; do |
| 467 | 467 |
stop_process $serv |
| 468 | 468 |
done |
| 469 |
- |
|
| 470 |
- if is_service_enabled c-vol; then |
|
| 471 |
- if is_ubuntu; then |
|
| 472 |
- stop_service tgt |
|
| 473 |
- else |
|
| 474 |
- stop_service tgtd |
|
| 475 |
- fi |
|
| 476 |
- fi |
|
| 477 | 469 |
} |
| 478 | 470 |
|
| 479 | 471 |
# create_volume_types() - Create Cinder's configured volume types |
| ... | ... |
@@ -49,7 +49,7 @@ function configure_cinder_backend_lvm {
|
| 49 | 49 |
iniset $CINDER_CONF $be_name volume_backend_name $be_name |
| 50 | 50 |
iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.lvm.LVMVolumeDriver" |
| 51 | 51 |
iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name |
| 52 |
- iniset $CINDER_CONF $be_name iscsi_helper "tgtadm" |
|
| 52 |
+ iniset $CINDER_CONF $be_name iscsi_helper "$CINDER_ISCSI_HELPER" |
|
| 53 | 53 |
|
| 54 | 54 |
if [[ "$CINDER_SECURE_DELETE" == "False" ]]; then |
| 55 | 55 |
iniset $CINDER_CONF $be_name volume_clear none |
| ... | ... |
@@ -108,15 +108,20 @@ function init_lvm_volume_group {
|
| 108 | 108 |
if is_fedora || is_suse; then |
| 109 | 109 |
# services is not started by default |
| 110 | 110 |
start_service lvm2-lvmetad |
| 111 |
- start_service tgtd |
|
| 111 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 112 |
+ start_service tgtd |
|
| 113 |
+ fi |
|
| 112 | 114 |
fi |
| 113 | 115 |
|
| 114 | 116 |
# Start with a clean volume group |
| 115 | 117 |
_create_lvm_volume_group $vg $size |
| 116 | 118 |
|
| 117 | 119 |
# Remove iscsi targets |
| 118 |
- sudo tgtadm --op show --mode target | grep Target | cut -f3 -d ' ' | sudo xargs -n1 tgt-admin --delete || true |
|
| 119 |
- |
|
| 120 |
+ if [ "$CINDER_ISCSI_HELPER" = "lioadm" ]; then |
|
| 121 |
+ sudo cinder-rtstool get-targets | sudo xargs -rn 1 cinder-rtstool delete |
|
| 122 |
+ else |
|
| 123 |
+ sudo tgtadm --op show --mode target | grep Target | cut -f3 -d ' ' | sudo xargs -n1 tgt-admin --delete || true |
|
| 124 |
+ fi |
|
| 120 | 125 |
_clean_lvm_volume_group $vg |
| 121 | 126 |
} |
| 122 | 127 |
|