[node-patches] Change in ovirt-node[master]: valid: Add NFSAddress validator
mburns at redhat.com
mburns at redhat.com
Thu May 23 19:49:07 UTC 2013
Hello Fabian Deutsch,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/15041
to review the following change.
Change subject: valid: Add NFSAddress validator
......................................................................
valid: Add NFSAddress validator
rhbz#917485
Change-Id: I0a80f18981b6ffc683c17499dca418d2cbd739c1
Signed-off-by: Fabian Deutsch <fabiand at fedoraproject.org>
---
M src/ovirt/node/config/defaults.py
M src/ovirt/node/setup/kdump_page.py
M src/ovirt/node/valid.py
3 files changed, 49 insertions(+), 4 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/41/15041/1
diff --git a/src/ovirt/node/config/defaults.py b/src/ovirt/node/config/defaults.py
index 39f7fcf..c6068ef 100644
--- a/src/ovirt/node/config/defaults.py
+++ b/src/ovirt/node/config/defaults.py
@@ -793,7 +793,7 @@
@NodeConfigFileSection.map_and_update_defaults_decorator
def update(self, nfs, ssh, local):
- (valid.Empty(or_none=True) | valid.FQDNOrIPAddress())(nfs)
+ (valid.Empty(or_none=True) | valid.NFSAddress())(nfs)
(valid.Empty(or_none=True) | valid.URL())(ssh)
(valid.Empty(or_none=True) | valid.Boolean())(local)
return {"OVIRT_KDUMP_LOCAL": "true" if local else None
diff --git a/src/ovirt/node/setup/kdump_page.py b/src/ovirt/node/setup/kdump_page.py
index e19f9f3..3017520 100644
--- a/src/ovirt/node/setup/kdump_page.py
+++ b/src/ovirt/node/setup/kdump_page.py
@@ -68,8 +68,8 @@
"""
# FIXME improve validation for ssh and nfs
return {"kdump.type": valid.Options(dict(self._types).keys()),
- "kdump.ssh_location": valid.Empty() | valid.NoSpaces(),
- "kdump.nfs_location": valid.Empty() | valid.NoSpaces(),
+ "kdump.ssh_location": valid.Empty() | valid.URL(),
+ "kdump.nfs_location": valid.Empty() | valid.NFSAddress(),
}
def ui_content(self):
diff --git a/src/ovirt/node/valid.py b/src/ovirt/node/valid.py
index 14288b7..d9928b0 100644
--- a/src/ovirt/node/valid.py
+++ b/src/ovirt/node/valid.py
@@ -259,7 +259,7 @@
class FQDN(RegexValidator):
- """Matches a FQDN
+ """Matches a FQDN or a simple hostname
>>> FQDN()("example.com")
True
@@ -452,3 +452,48 @@
except:
is_valid = False
return is_valid
+
+
+class NFSAddress(Validator):
+ """Validate an NFS Address
+
+ >>> NFSAddress().validate("1.2.3.4:/var/nfsserver")
+ True
+ >>> NFSAddress().validate("1::4:/var/nfsserver")
+ True
+
+ >>> NFSAddress().validate("")
+ False
+ >>> NFSAddress().validate("1234")
+ False
+ >>> NFSAddress().validate("1.2.3.4")
+ False
+ >>> NFSAddress().validate("1.2.3.4:")
+ False
+ >>> NFSAddress().validate("1.2.3.4/var/nfsserver")
+ False
+ >>> NFSAddress().validate("1.2.3.4:var/nfsserver")
+ False
+ >>> NFSAddress().validate("1::4")
+ False
+ >>> NFSAddress().validate("1:2:3:4")
+ False
+ >>> NFSAddress().validate(":/var/nfsserver")
+ False
+ >>> NFSAddress().validate("/var/nfsserver")
+ False
+ """
+ description = "a valid NFS address"
+
+ def validate(self, value):
+ is_valid = False
+ try:
+ # Addr can be IPv6 or IPv4, therefor a bit more cplx
+ parts = value.split(":")
+ addr, path = ":".join(parts[:-1]), parts[-1]
+ FQDNOrIPAddress()(addr)
+ is_valid = path.startswith("/")
+ except:
+ is_valid = False
+
+ return is_valid
--
To view, visit http://gerrit.ovirt.org/15041
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0a80f18981b6ffc683c17499dca418d2cbd739c1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-node
Gerrit-Branch: master
Gerrit-Owner: Michael Burns <mburns at redhat.com>
Gerrit-Reviewer: Fabian Deutsch <fabiand at fedoraproject.org>
More information about the node-patches
mailing list