Esempio n. 1
0
// RefreshWhitelist updates the whitelist, re-getting the list of committers.
func (config *SubmitQueueConfig) RefreshWhitelist() sets.String {
	if config.additionalUserWhitelist == nil {
		users, err := loadWhitelist(config.Whitelist)
		if err != nil {
			glog.Fatalf("error loading user whitelist: %v", err)
		}
		config.additionalUserWhitelist = &users
	}

	if config.committerList == nil {
		committerList, err := loadWhitelist(config.Committers)
		if err != nil {
			glog.Fatalf("error loading committers whitelist: %v", err)
		}
		config.committerList = &committerList
	}

	allUsers := sets.String{}

	// We must use the values on disk in case it has users which don't have
	// explicit "pull" permission in the API
	allUsers = allUsers.Union(*config.additionalUserWhitelist)

	if pushUsers, pullUsers, err := config.UsersWithAccess(); err != nil {
		glog.Info("Falling back to static committers list.")
		allUsers = allUsers.Union(*config.committerList)
	} else {
		allUsers = allUsers.Union(pushUsers)
		allUsers = allUsers.Union(pullUsers)
	}
	config.userWhitelist = &allUsers
	return allUsers
}