Add validate the input mac address on docker run command

Signed-off-by: Lei Jitang <leijitang@huawei.com>
This commit is contained in:
Lei Jitang 2015-02-27 07:27:12 -08:00 committed by Vincent Demeester
parent 473eb9a2c5
commit 8972795de7
2 changed files with 23 additions and 0 deletions

View File

@ -188,6 +188,15 @@ func ValidateIPAddress(val string) (string, error) {
return "", fmt.Errorf("%s is not an ip address", val) return "", fmt.Errorf("%s is not an ip address", val)
} }
func ValidateMACAddress(val string) (string, error) {
_, err := net.ParseMAC(strings.TrimSpace(val))
if err != nil {
return "", err
} else {
return val, nil
}
}
// Validates domain for resolvconf search configuration. // Validates domain for resolvconf search configuration.
// A zero length domain is represented by . // A zero length domain is represented by .
func ValidateDnsSearch(val string) (string, error) { func ValidateDnsSearch(val string) (string, error) {

View File

@ -28,6 +28,20 @@ func TestValidateIPAddress(t *testing.T) {
} }
func TestValidateMACAddress(t *testing.T) {
if _, err := ValidateMACAddress(`92:d0:c6:0a:29:33`); err != nil {
t.Fatalf("ValidateMACAddress(`92:d0:c6:0a:29:33`) got %s", err)
}
if _, err := ValidateMACAddress(`92:d0:c6:0a:33`); err == nil {
t.Fatalf("ValidateMACAddress(`92:d0:c6:0a:33`) succeeded; expected failure on invalid MAC")
}
if _, err := ValidateMACAddress(`random invalid string`); err == nil {
t.Fatalf("ValidateMACAddress(`random invalid string`) succeeded; expected failure on invalid MAC")
}
}
func TestListOpts(t *testing.T) { func TestListOpts(t *testing.T) {
o := NewListOpts(nil) o := NewListOpts(nil)
o.Set("foo") o.Set("foo")