libct/specconv: nits

1. Decapitalize errors.
2. Rename isValidName to checkPropertyName.
3. Make it return a specific error.

Suggested-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
Kir Kolyshkin
2021-11-17 17:30:03 -08:00
parent 20e928875a
commit 643f8a2b40
2 changed files with 15 additions and 15 deletions
+11 -11
View File
@@ -273,7 +273,7 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) {
} }
spec := opts.Spec spec := opts.Spec
if spec.Root == nil { if spec.Root == nil {
return nil, errors.New("Root must be specified") return nil, errors.New("root must be specified")
} }
rootfsPath := spec.Root.Path rootfsPath := spec.Root.Path
if !filepath.IsAbs(rootfsPath) { if !filepath.IsAbs(rootfsPath) {
@@ -410,20 +410,20 @@ func createLibcontainerMount(cwd string, m specs.Mount) (*configs.Mount, error)
return mnt, nil return mnt, nil
} }
// isValidName checks if systemd property name is valid. It should consists // checkPropertyName checks if systemd property name is valid. A valid name
// of latin letters only, and have least 3 of them. // should consist of latin letters only, and have least 3 of them.
func isValidName(s string) bool { func checkPropertyName(s string) error {
if len(s) < 3 { if len(s) < 3 {
return false return errors.New("too short")
} }
// Check ASCII characters rather than Unicode runes. // Check ASCII characters rather than Unicode runes.
for _, ch := range s { for _, ch := range s {
if (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') { if (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') {
continue continue
} }
return false return errors.New("contains non-alphabetic character")
} }
return true return nil
} }
// Some systemd properties are documented as having "Sec" suffix // Some systemd properties are documented as having "Sec" suffix
@@ -465,12 +465,12 @@ func initSystemdProps(spec *specs.Spec) ([]systemdDbus.Property, error) {
if len(name) == len(k) { // prefix not there if len(name) == len(k) { // prefix not there
continue continue
} }
if !isValidName(name) { if err := checkPropertyName(name); err != nil {
return nil, fmt.Errorf("Annotation %s name incorrect: %s", k, name) return nil, fmt.Errorf("annotation %s name incorrect: %w", k, err)
} }
value, err := dbus.ParseVariant(v, dbus.Signature{}) value, err := dbus.ParseVariant(v, dbus.Signature{})
if err != nil { if err != nil {
return nil, fmt.Errorf("Annotation %s=%s value parse error: %w", k, v, err) return nil, fmt.Errorf("annotation %s=%s value parse error: %w", k, v, err)
} }
// Check for Sec suffix. // Check for Sec suffix.
if trimName := strings.TrimSuffix(name, "Sec"); len(trimName) < len(name) { if trimName := strings.TrimSuffix(name, "Sec"); len(trimName) < len(name) {
@@ -480,7 +480,7 @@ func initSystemdProps(spec *specs.Spec) ([]systemdDbus.Property, error) {
name = trimName + "USec" name = trimName + "USec"
value, err = convertSecToUSec(value) value, err = convertSecToUSec(value)
if err != nil { if err != nil {
return nil, fmt.Errorf("Annotation %s=%s value parse error: %w", k, v, err) return nil, fmt.Errorf("annotation %s=%s value parse error: %w", k, v, err)
} }
} }
} }
+4 -4
View File
@@ -780,9 +780,9 @@ func TestIsValidName(t *testing.T) {
} }
for _, tc := range testCases { for _, tc := range testCases {
valid := isValidName(tc.in) err := checkPropertyName(tc.in)
if valid != tc.valid { if (err == nil) != tc.valid {
t.Errorf("case %q: expected %v, got %v", tc.in, tc.valid, valid) t.Errorf("case %q: expected valid: %v, got error: %v", tc.in, tc.valid, err)
} }
} }
} }
@@ -790,7 +790,7 @@ func TestIsValidName(t *testing.T) {
func BenchmarkIsValidName(b *testing.B) { func BenchmarkIsValidName(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
for _, s := range []string{"", "xx", "xxx", "someValidName", "A name", "Кир", "მადლობა", "合い言葉"} { for _, s := range []string{"", "xx", "xxx", "someValidName", "A name", "Кир", "მადლობა", "合い言葉"} {
_ = isValidName(s) _ = checkPropertyName(s)
} }
} }
} }