Allow disabling access to the DB and the Teams API.

Command-line options --nodatabaseaccess and --noteamsapi disable all
teams api interaction and access to the Postgres database. This is
useful for debugging purposes when the operator runs out of cluster
(with --outofcluster flag).

The same effect can be achieved by setting enable_db_access and/or
enable_teams_api to false.
This commit is contained in:
Oleksii Kliukin
2017-05-12 17:40:48 +02:00
parent fb007b1622
commit 03064637f1
7 changed files with 40 additions and 14 deletions
+7 -1
View File
@@ -42,13 +42,15 @@ type TeamsAPI struct {
httpClient *http.Client
logger *logrus.Entry
RefreshTokenAction func() (string, error)
enabled bool
}
func NewTeamsAPI(url string, log *logrus.Logger) *TeamsAPI {
func NewTeamsAPI(url string, log *logrus.Logger, enabled bool) *TeamsAPI {
t := TeamsAPI{
url: strings.TrimRight(url, "/"),
httpClient: &http.Client{},
logger: log.WithField("pkg", "teamsapi"),
enabled: enabled,
}
return &t
@@ -56,6 +58,10 @@ func NewTeamsAPI(url string, log *logrus.Logger) *TeamsAPI {
func (t *TeamsAPI) TeamInfo(teamId string) (*Team, error) {
// TODO: avoid getting a new token on every call to the Teams API.
if !t.enabled {
t.logger.Debug("Team API is disabled, returning empty list of members")
return &Team{}, nil
}
token, err := t.RefreshTokenAction()
if err != nil {
return nil, err