OSDN Git Service

Add validate
authorkeisuke fukawa <keisuke@karesansui-project.info>
Tue, 29 Jun 2010 06:53:39 +0000 (15:53 +0900)
committerkeisuke fukawa <keisuke@karesansui-project.info>
Tue, 29 Jun 2010 06:53:39 +0000 (15:53 +0900)
karesansui/gadget/hostby1storagepool.py

index 3d07cd1..31935b5 100644 (file)
@@ -58,13 +58,11 @@ def validates_pool_dir(obj, now_pools):
         check = False
         checker.add_error(_('"%s" is required.') %_('Storage Pool Name'))
 
-
     if is_param(obj.input, 'pool_target_path'):
         check = checker.check_directory(_('Directory Path'),
                                         obj.input.pool_target_path,
                                         CHECK_EMPTY | CHECK_STARTROOT | CHECK_NOTROOT
                                         ) and check
-
         try:
             kvc = KaresansuiVirtConnection()
 
@@ -105,13 +103,25 @@ def validates_pool_iscsi(obj, now_pools):
         check = False
         checker.add_error(_('"%s" is required.') %_('Storage Pool Name'))
 
-
     if is_param(obj.input, 'pool_target_iscsi'):
         check = checker.check_string(_('iSCSI Target'),
                                         obj.input.pool_target_iscsi,
                                         CHECK_EMPTY | CHECK_ONLYSPACE,
                                         None,
                                         ) and check
+        try:
+            kvc = KaresansuiVirtConnection()
+
+            for pool_name in now_pools:
+                pool_iqn = kvc.get_storage_pool_sourcedevicepath(pool)
+                if obj.input.pool_target_iscsi == pool_iqn:
+                    check = False
+                    # TRANSLATORS:
+                    #  ストレージプールのiSCSIターゲットIQN"%s"はすでに使われています。
+                    checker.add_error(_('Storagepool iSCSI target IQN "%s" is already being used.') % (obj.input.pool_target_iscsi))
+        finally:
+            kvc.close()
+
     else:
         check = False
         checker.add_error(_('"%s" is required.') %_('iSCSI Target'))