[libvirt] [PATCH v2 2/5] storage: vstorage empty backend
Olga Krishtal
okrishtal at virtuozzo.com
Thu Jan 19 14:27:34 UTC 2017
On 19/01/17 00:00, John Ferlan wrote:
>
> On 01/17/2017 09:10 AM, Olga Krishtal wrote:
>> Added general defenitions for vstorage pool backend
> definitions
>
>> Signed-off-by: Olga Krishtal <okrishtal at virtuozzo.com>
>> ---
>> include/libvirt/libvirt-storage.h | 1 +
>> po/POTFILES.in | 1 +
>> src/Makefile.am | 9 +++++++++
>> src/conf/storage_conf.c | 17 ++++++++++++++++-
>> src/conf/storage_conf.h | 1 +
>> src/storage/storage_backend.c | 6 ++++++
>> src/storage/storage_backend_vstorage.c | 16 ++++++++++++++++
>> src/storage/storage_backend_vstorage.h | 28 ++++++++++++++++++++++++++++
>> src/storage/storage_driver.c | 2 ++
>> tools/virsh-pool.c | 3 +++
>> tools/virsh.c | 3 +++
>> 11 files changed, 86 insertions(+), 1 deletion(-)
>> create mode 100644 src/storage/storage_backend_vstorage.c
>> create mode 100644 src/storage/storage_backend_vstorage.h
>>
> FWIW: The could be conflicts w/ pkrempa's series to move the bulk of
> storage_backend.c into src/util/storage_util.c. I'm watching both and
> can make appropriate adjustments
>
>
>> diff --git a/include/libvirt/libvirt-storage.h b/include/libvirt/libvirt-storage.h
>> index 8a861e4..45ec720 100644
>> --- a/include/libvirt/libvirt-storage.h
>> +++ b/include/libvirt/libvirt-storage.h
>> @@ -240,6 +240,7 @@ typedef enum {
>> VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG = 1 << 15,
>> VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER = 1 << 16,
>> VIR_CONNECT_LIST_STORAGE_POOLS_ZFS = 1 << 17,
>> + VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE = 1 << 18,
>> } virConnectListAllStoragePoolsFlags;
>>
>> int virConnectListAllStoragePools(virConnectPtr conn,
>> diff --git a/po/POTFILES.in b/po/POTFILES.in
>> index 59efd91..b4fac0e 100644
>> --- a/po/POTFILES.in
>> +++ b/po/POTFILES.in
>> @@ -175,6 +175,7 @@ src/storage/storage_backend_mpath.c
>> src/storage/storage_backend_rbd.c
>> src/storage/storage_backend_scsi.c
>> src/storage/storage_backend_sheepdog.c
>> +src/storage/storage_backend_vstorage.c
>> src/storage/storage_backend_zfs.c
>> src/storage/storage_driver.c
>> src/test/test_driver.c
> This causes a syntax-check failure for *this* patch because there's
> nothing to translate in it yet, it belongs in the next patch... Causes
> syntax-check failure.
>
> I will adjust before pushing
>
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index 21a78e0..78e64f2 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -1005,6 +1005,10 @@ STORAGE_DRIVER_GLUSTER_SOURCES = \
>> STORAGE_DRIVER_ZFS_SOURCES = \
>> storage/storage_backend_zfs.h storage/storage_backend_zfs.c
>>
>> +STORAGE_DRIVER_VSTORAGE_SOURCES = \
>> + storage/storage_backend_vstorage.h \
>> + storage/storage_backend_vstorage.c
>> +
> It seems the \ should be aligned as they are for others (uses <tabs> too
> - I usually just cut-n-paste the previous line and alter the name).
>
> I will adjust before pushing.
>
>
>> STORAGE_HELPER_DISK_SOURCES = \
>> storage/parthelper.c
>>
>> @@ -1712,6 +1716,10 @@ if WITH_STORAGE_ZFS
>> libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_ZFS_SOURCES)
>> endif WITH_STORAGE_ZFS
>>
>> +if WITH_STORAGE_VSTORAGE
>> +libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_VSTORAGE_SOURCES)
>> +endif WITH_STORAGE_VSTORAGE
>> +
>> if WITH_NODE_DEVICES
>> # Needed to keep automake quiet about conditionals
>> if WITH_DRIVER_MODULES
>> @@ -1923,6 +1931,7 @@ EXTRA_DIST += \
>> $(STORAGE_DRIVER_SHEEPDOG_SOURCES) \
>> $(STORAGE_DRIVER_GLUSTER_SOURCES) \
>> $(STORAGE_DRIVER_ZFS_SOURCES) \
>> + $(STORAGE_DRIVER_VSTORAGE_SOURCES) \
> Again more alignment stuff. Make it all look similar. I can change. Use
> of <tabs> too
>
> The remainder seems OK
>
> ACK w/ adjustments and I'll push once pkrempa's series is in.
>
> John
>
>> $(NODE_DEVICE_DRIVER_SOURCES) \
>> $(NODE_DEVICE_DRIVER_HAL_SOURCES) \
>> $(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
>> diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
>> index c53f080..c9b93aa 100644
>> --- a/src/conf/storage_conf.c
>> +++ b/src/conf/storage_conf.c
>> @@ -60,7 +60,8 @@ VIR_ENUM_IMPL(virStoragePool,
>> "dir", "fs", "netfs",
>> "logical", "disk", "iscsi",
>> "scsi", "mpath", "rbd",
>> - "sheepdog", "gluster", "zfs")
>> + "sheepdog", "gluster", "zfs",
>> + "vstorage")
>>
>> VIR_ENUM_IMPL(virStoragePoolFormatFileSystem,
>> VIR_STORAGE_POOL_FS_LAST,
>> @@ -274,6 +275,16 @@ static virStoragePoolTypeInfo poolTypeInfo[] = {
>> .defaultFormat = VIR_STORAGE_FILE_RAW,
>> },
>> },
>> + {.poolType = VIR_STORAGE_POOL_VSTORAGE,
>> + .poolOptions = {
>> + .flags = VIR_STORAGE_POOL_SOURCE_NAME,
>> + },
>> + .volOptions = {
>> + .defaultFormat = VIR_STORAGE_FILE_RAW,
>> + .formatFromString = virStorageVolumeFormatFromString,
>> + .formatToString = virStorageFileFormatTypeToString,
>> + },
>> + },
>> };
>>
>>
>> @@ -2611,6 +2622,10 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
>> /* Only one mpath pool is valid per host */
>> matchpool = pool;
>> break;
>> + case VIR_STORAGE_POOL_VSTORAGE:
>> + if (STREQ(pool->def->source.name, def->source.name))
>> + matchpool = pool;
>> + break;
>> case VIR_STORAGE_POOL_RBD:
>> case VIR_STORAGE_POOL_LAST:
>> break;
>> diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
>> index b35471d..e952f5f 100644
>> --- a/src/conf/storage_conf.h
>> +++ b/src/conf/storage_conf.h
>> @@ -95,6 +95,7 @@ typedef enum {
>> VIR_STORAGE_POOL_SHEEPDOG, /* Sheepdog device */
>> VIR_STORAGE_POOL_GLUSTER, /* Gluster device */
>> VIR_STORAGE_POOL_ZFS, /* ZFS */
>> + VIR_STORAGE_POOL_VSTORAGE, /* Virtuozzo Storage */
>>
>> VIR_STORAGE_POOL_LAST,
>> } virStoragePoolType;
>> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
>> index 18433e9..207a534 100644
>> --- a/src/storage/storage_backend.c
>> +++ b/src/storage/storage_backend.c
>> @@ -103,6 +103,9 @@
>> #if WITH_STORAGE_ZFS
>> # include "storage_backend_zfs.h"
>> #endif
>> +#if WITH_STORAGE_VSTORAGE
>> +# include "storage_backend_vstorage.h"
>> +#endif
>>
>> #define VIR_FROM_THIS VIR_FROM_STORAGE
>>
>> @@ -143,6 +146,9 @@ static virStorageBackendPtr backends[] = {
>> #if WITH_STORAGE_ZFS
>> &virStorageBackendZFS,
>> #endif
>> +#if WITH_STORAGE_VSTORAGE
>> + &virStorageBackendVstorage,
>> +#endif
>> NULL
>> };
>>
>> diff --git a/src/storage/storage_backend_vstorage.c b/src/storage/storage_backend_vstorage.c
>> new file mode 100644
>> index 0000000..3a57385
>> --- /dev/null
>> +++ b/src/storage/storage_backend_vstorage.c
>> @@ -0,0 +1,16 @@
>> +#include <config.h>
>> +
>> +#include "viralloc.h"
>> +#include "virerror.h"
>> +#include "virfile.h"
>> +#include "storage_backend_vstorage.h"
>> +#include "virlog.h"
>> +#include "virstring.h"
>> +
>> +#define VIR_FROM_THIS VIR_FROM_STORAGE
>> +
>> +VIR_LOG_INIT("storage.storage_backend_vstorage");
>> +
>> +virStorageBackend virStorageBackendVstorage = {
>> + .type = VIR_STORAGE_POOL_VSTORAGE,
>> +};
>> diff --git a/src/storage/storage_backend_vstorage.h b/src/storage/storage_backend_vstorage.h
>> new file mode 100644
>> index 0000000..262e454
>> --- /dev/null
>> +++ b/src/storage/storage_backend_vstorage.h
>> @@ -0,0 +1,28 @@
>> +/*
>> + * storage_backend_vstorage.h: storage backend for Virtuozzo storage
>> + * handling
>> + *
>> + * This library is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU Lesser General Public
>> + * License as published by the Free Software Foundation; either
>> + * version 2.1 of the License, or (at your option) any later version.
>> + *
>> + * This library is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>> + * Lesser General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU Lesser General Public
>> + * License along with this library. If not, see
>> + * <http://www.gnu.org/licenses/>.
>> + *
>> + */
>> +
>> +#ifndef __VIR_STORAGE_BACKEND_VSTORAGE_H__
>> +# define __VIR_STORAGE_BACKEND_VSTORAGE_H__
>> +
>> +# include "storage_backend.h"
>> +
>> +extern virStorageBackend virStorageBackendVstorage;
>> +
>> +#endif /* __VIR_STORAGE_BACKEND_VSTORAGE_H__ */
>> diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
>> index 8f1d3f0..257af80 100644
>> --- a/src/storage/storage_driver.c
>> +++ b/src/storage/storage_driver.c
>> @@ -1618,6 +1618,7 @@ storageVolLookupByPath(virConnectPtr conn,
>> case VIR_STORAGE_POOL_ISCSI:
>> case VIR_STORAGE_POOL_SCSI:
>> case VIR_STORAGE_POOL_MPATH:
>> + case VIR_STORAGE_POOL_VSTORAGE:
>> stable_path = virStorageBackendStablePath(pool,
>> cleanpath,
>> false);
>> @@ -3501,6 +3502,7 @@ virStorageTranslateDiskSourcePool(virConnectPtr conn,
>> case VIR_STORAGE_POOL_DISK:
>> case VIR_STORAGE_POOL_SCSI:
>> case VIR_STORAGE_POOL_ZFS:
>> + case VIR_STORAGE_POOL_VSTORAGE:
>> if (!(def->src->path = virStorageVolGetPath(vol)))
>> goto cleanup;
>>
>> diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
>> index 6806b7a..f766be6 100644
>> --- a/tools/virsh-pool.c
>> +++ b/tools/virsh-pool.c
>> @@ -1166,6 +1166,9 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
>> case VIR_STORAGE_POOL_ZFS:
>> flags |= VIR_CONNECT_LIST_STORAGE_POOLS_ZFS;
>> break;
>> + case VIR_STORAGE_POOL_VSTORAGE:
>> + flags |= VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE;
>> + break;
>> case VIR_STORAGE_POOL_LAST:
>> break;
>> }
>> diff --git a/tools/virsh.c b/tools/virsh.c
>> index 1068447..7eb51ab 100644
>> --- a/tools/virsh.c
>> +++ b/tools/virsh.c
>> @@ -648,6 +648,9 @@ virshShowVersion(vshControl *ctl ATTRIBUTE_UNUSED)
>> #ifdef WITH_STORAGE_ZFS
>> vshPrint(ctl, " ZFS");
>> #endif
>> +#ifdef WITH_STORAGE_VSTORAGE
>> + vshPrint(ctl, "Virtuozzo Storage");
>> +#endif
>> vshPrint(ctl, "\n");
>>
>> vshPrint(ctl, "%s", _(" Miscellaneous:"));
>>
Ok
--
Best regards,
Olga
More information about the libvir-list
mailing list