Re: [PATCH v2 2/5] storage: vstorage empty backend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx>
---
  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

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux