func validateDataBagName(name string, dbi bool) util.Gerror { item := "name" if dbi { item = "id" } _ = item // may want this later if !util.ValidateDBagName(name) { err := util.Errorf("Field '%s' invalid", item) err.SetStatus(http.StatusBadRequest) return err } return nil }
// New makes a new node. func New(name string) (*Node, util.Gerror) { /* check for an existing node with this name */ if !util.ValidateDBagName(name) { err := util.Errorf("Field 'name' invalid") return nil, err } var found bool if config.UsingDB() { // will need redone if orgs ever get implemented var err error found, err = checkForNodeSQL(datastore.Dbh, name) if err != nil { gerr := util.Errorf(err.Error()) gerr.SetStatus(http.StatusInternalServerError) return nil, gerr } } else { ds := datastore.New() _, found = ds.Get("node", name) } if found { err := util.Errorf("Node %s already exists", name) err.SetStatus(http.StatusConflict) return nil, err } /* No node, we make a new one */ node := &Node{ Name: name, ChefEnvironment: "_default", ChefType: "node", JSONClass: "Chef::Node", RunList: []string{}, Automatic: map[string]interface{}{}, Normal: map[string]interface{}{}, Default: map[string]interface{}{}, Override: map[string]interface{}{}, } return node, nil }
// New creates a new role. func New(name string) (*Role, util.Gerror) { var found bool if config.UsingDB() { var err error found, err = checkForRoleSQL(datastore.Dbh, name) if err != nil { gerr := util.Errorf(err.Error()) gerr.SetStatus(http.StatusInternalServerError) return nil, gerr } } else { ds := datastore.New() _, found = ds.Get("role", name) } if found { err := util.Errorf("Role %s already exists", name) err.SetStatus(http.StatusConflict) return nil, err } if !util.ValidateDBagName(name) { err := util.Errorf("Field 'name' invalid") err.SetStatus(http.StatusBadRequest) return nil, err } role := &Role{ Name: name, ChefType: "role", JSONClass: "Chef::Role", RunList: []string{}, EnvRunLists: map[string][]string{}, Default: map[string]interface{}{}, Override: map[string]interface{}{}, } return role, nil }