diff --git a/README.md b/README.md index 9f07c72..59c1f54 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ Why not simply use the [official Linstor driver](https://github.com/OpenNebula/a This add-on is compatible with: * OpenNebula 5.6+ -* Linstor server 1.2.0+ -* Linstor client 1.0.4+ +* Linstor server 1.7.0+ +* Linstor client 1.1.1+ ## OpenNebula Installation @@ -138,7 +138,7 @@ To use your Linstor cluster with the OpenNebula, you need to define a System and | `CHECKPOINT_REPLICA_COUNT` | Number of replicas for save checkpoint file for suspend and offline migration process. | NO | | `DO_NOT_PLACE_WITH` | Space separated resources list to avid placing replicas on same place with them. | NO | | `DO_NOT_PLACE_WITH_REGEX` | Regular expression to avoid placing replicas on same place with targeted resources. | NO | -| `STORAGE_POOL` | Storage pool name to place replicas. | **YES** 2 | +| `STORAGE_POOL` | Space separated storage pool names to place replicas. | **YES** 2 | | `DISKLESS_POOL` | Diskless pool to place diskless replicas. Default: `DfltDisklessStorPool`. | NO | | `PREFER_NODE` | `yes` - try to place and copy the data on the node that will afterwards be used by the VM | NO | | `ENCRYPTION` | `yes` - will enable encryption during volume creation. | NO | diff --git a/datastore/linstor_un/linstor_utils.sh b/datastore/linstor_un/linstor_utils.sh index 6d4c78c..25b3d7a 100644 --- a/datastore/linstor_un/linstor_utils.sh +++ b/datastore/linstor_un/linstor_utils.sh @@ -486,7 +486,7 @@ function linstor_attach_diskless { local RES_HOSTS="$(linstor_get_hosts_for_res $RES)" if ! [[ " $RES_HOSTS " =~ " $HOST " ]]; then linstor_exec_and_log \ - "resource create -s $DISKLESS_POOL $HOST $RES" + "resource create $HOST $RES -s $DISKLESS_POOL" EXEC_RC=0 fi diff --git a/datastore/linstor_un/monitor b/datastore/linstor_un/monitor index 37bb764..84f4627 100755 --- a/datastore/linstor_un/monitor +++ b/datastore/linstor_un/monitor @@ -70,7 +70,7 @@ if [ -z "$STORAGE_POOL" ]; then exit -1 fi STORAGE_POOL=$($LINSTOR -m --output-version v0 resource-group list -r "$RESOURCE_GROUP" \ - | $JQ -r ".[][].select_filter.storage_pool") + | $JQ -r '.[][].select_filter.storage_pool_list // [] | join(" ")') if [ -z "$STORAGE_POOL" ]; then error_message "Resource group missing 'StoragePool' attribute." exit -1 @@ -80,7 +80,7 @@ fi # ------------ Compute datastore usage ------------- MONITOR_SCRIPT=$(cat < ${SIZE}" ) if [ "$NODE_HAS_STORAGE_POOL" = "true" ]; then linstor_exec_and_log \ diff --git a/tm/linstor_un/mkimage b/tm/linstor_un/mkimage index 37bde3b..b299c6e 100755 --- a/tm/linstor_un/mkimage +++ b/tm/linstor_un/mkimage @@ -132,12 +132,12 @@ linstor_exec_and_log \ if [ "${PREFER_NODE,,}" = "yes" ]; then STORAGE_POOL=${STORAGE_POOL:-$($LINSTOR -m --output-version v0 resource-group list -r "$RESOURCE_GROUP" \ - | $JQ -r ".[][].select_filter.storage_pool")} + | $JQ -r '.[][].select_filter.storage_pool_list // [] | join(" ")')} if [ -z "$STORAGE_POOL" ]; then error_message "Resource group missing 'StoragePool' attribute." exit -1 fi - NODE_HAS_STORAGE_POOL=$($LINSTOR -m --output-version v0 storage-pool list --node "$DST_HOST" --storage-pool "$STORAGE_POOL" \ + NODE_HAS_STORAGE_POOL=$($LINSTOR -m --output-version v0 storage-pool list --node "$DST_HOST" --storage-pool $STORAGE_POOL \ | $JQ -r ".[].stor_pools[] | .free_space.free_capacity / 1024 > ${SIZE}" ) if [ "$NODE_HAS_STORAGE_POOL" = "true" ]; then linstor_exec_and_log \ diff --git a/tm/linstor_un/monitor b/tm/linstor_un/monitor index 3e398b6..73dbe29 100755 --- a/tm/linstor_un/monitor +++ b/tm/linstor_un/monitor @@ -70,7 +70,7 @@ if [ -z "$STORAGE_POOL" ]; then exit -1 fi STORAGE_POOL=$($LINSTOR -m --output-version v0 resource-group list -r "$RESOURCE_GROUP" \ - | $JQ -r ".[][].select_filter.storage_pool") + | $JQ -r '.[][].select_filter.storage_pool_list // [] | join(" ")') if [ -z "$STORAGE_POOL" ]; then error_message "Resource group missing 'StoragePool' attribute." exit -1 @@ -80,7 +80,7 @@ fi # ------------ Compute datastore usage ------------- MONITOR_SCRIPT=$(cat <