commands: add implementations for create, use, rm, stop

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi
2019-04-12 16:39:06 -07:00
parent 0e72bf0049
commit bd3d5cd19e
20 changed files with 1695 additions and 101 deletions

32
store/util.go Normal file
View File

@ -0,0 +1,32 @@
package store
import (
"os"
"strings"
"github.com/docker/docker/pkg/namesgenerator"
"github.com/pkg/errors"
)
func ValidateName(s string) (string, error) {
if !namePattern.MatchString(s) {
return "", errors.Errorf("invalid name %s, name needs to start with a letter and may not contain symbols, except ._-", s)
}
return strings.ToLower(s), nil
}
func GenerateName(txn *Txn) (string, error) {
var name string
for i := 0; i < 6; i++ {
name = namesgenerator.GetRandomName(i)
if _, err := txn.NodeGroupByName(name); err != nil {
if !os.IsNotExist(errors.Cause(err)) {
return "", err
}
} else {
continue
}
return name, nil
}
return "", errors.Errorf("failed to generate random name")
}