[et-mgmt-tools] [PATCH 01 of 11] Modify VM name validation

john.levon at sun.com john.levon at sun.com
Thu Jul 10 13:48:31 UTC 2008


# HG changeset patch
# User john.levon at sun.com
# Date 1215697436 25200
# Node ID 8f7a10cd096ad71cf5e7d414958a0db6c1b90e63
# Parent  0482bf130febcf585e1ac33dc8a3042c111b8587
Modify VM name validation

There are .vmx files with dots in the VM names. Make the restrictions somewhat
looser, and fix virt-image output to replace bad characters such as space.

Signed-off-by: John Levon <john.levon at sun.com>

diff --git a/doc/image.rng b/doc/image.rng
--- a/doc/image.rng
+++ b/doc/image.rng
@@ -236,7 +236,7 @@
   </define>
   <define name='genericName'>
     <data type='string'>
-      <param name="pattern">[a-zA-Z0-9_\+\-]+</param>
+      <param name="pattern">[A-Za-z0-9_.:/+-]+</param>
     </data>
   </define>
   <define name='fileName'>
diff --git a/virtconv/parsers/virtimage.py b/virtconv/parsers/virtimage.py
--- a/virtconv/parsers/virtimage.py
+++ b/virtconv/parsers/virtimage.py
@@ -22,6 +22,8 @@
 import virtconv.formats as formats
 import virtconv.vmcfg as vmcfg
 import virtconv.diskcfg as diskcfg
+
+import re
 
 pv_boot_template = """
   <boot type="xen">
@@ -108,6 +110,9 @@
         if not vm.memory:
             raise ValueError("VM must have a memory setting")
 
+        # xend wants the name to match r'^[A-Za-z0-9_\-\.\:\/\+]+$'
+        vmname = re.sub(r'[^A-Za-z0-9_.:/+-]+',  '_', vm.name)
+
         pv_disks = []
         hvm_disks = []
         storage_disks = []
@@ -140,7 +145,7 @@
 
         out = image_template % {
             "boot_template": boot_xml,
-            "name" : vm.name,
+            "name" : vmname,
             "description" : vm.description,
             "nr_vcpus" : vm.nr_vcpus,
             # Mb to Kb




More information about the et-mgmt-tools mailing list