//createSystemUser updates the running instance password as well as the user record in elastic func createSystemUser(s *ControlPlaneDao) error { user := userdomain.User{} err := s.GetUser(SYSTEM_USER_NAME, &user) if err != nil { glog.Warningf("%s", err) glog.V(0).Info("'default' user not found; creating...") // create the system user user := userdomain.User{} user.Name = SYSTEM_USER_NAME userName := SYSTEM_USER_NAME if err := s.AddUser(user, &userName); err != nil { return err } } // update the instance password password, err := utils.NewUUID36() if err != nil { return err } user.Name = SYSTEM_USER_NAME user.Password = password INSTANCE_PASSWORD = password unused := 0 return s.UpdateUser(user, &unused) }
//UpdateUser updates the user entry in elastic search. NOTE: It is assumed the //pasword is NOT hashed when updating the user record func (this *ControlPlaneDao) UpdateUser(user userdomain.User, unused *int) error { glog.V(2).Infof("ControlPlaneDao.UpdateUser: %+v", user) id := strings.TrimSpace(user.Name) if id == "" { return errors.New("empty User.Name not allowed") } user.Name = id user.Password = hashPassword(user.Password) store := userdomain.NewStore() return store.Put(datastore.Get(), userdomain.Key(user.Name), &user) }