Skip to content

Commit e233d34

Browse files
ref(settings): manage username and limits in settings (#103)
1 parent c8f10b8 commit e233d34

20 files changed

Lines changed: 259 additions & 237 deletions

cmd/apps.go

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ import (
1818

1919
// AppCreate creates an app.
2020
func AppCreate(id string, buildpack string, remote string, noRemote bool) error {
21-
c, err := settings.Load()
21+
s, err := settings.Load()
2222
if err != nil {
2323
return err
2424
}
2525

2626
fmt.Print("Creating Application... ")
2727
quit := progress()
28-
app, err := apps.New(c, id)
28+
app, err := apps.New(s.Client, id)
2929

3030
quit <- true
3131
<-quit
3232

33-
if checkAPICompatibility(c, err) != nil {
33+
if checkAPICompatibility(s.Client, err) != nil {
3434
return err
3535
}
3636

@@ -42,13 +42,13 @@ func AppCreate(id string, buildpack string, remote string, noRemote bool) error
4242
"BUILDPACK_URL": buildpack,
4343
},
4444
}
45-
if _, err = config.Set(c, app.ID, configValues); checkAPICompatibility(c, err) != nil {
45+
if _, err = config.Set(s.Client, app.ID, configValues); checkAPICompatibility(s.Client, err) != nil {
4646
return err
4747
}
4848
}
4949

5050
if !noRemote {
51-
if err = git.CreateRemote(c.ControllerURL.Host, remote, app.ID); err != nil {
51+
if err = git.CreateRemote(s.Client.ControllerURL.Host, remote, app.ID); err != nil {
5252
if err.Error() == "exit status 128" {
5353
fmt.Println("To replace the existing git remote entry, run:")
5454
fmt.Printf(" git remote rename deis deis.old && deis git:remote -a %s\n", app.ID)
@@ -60,26 +60,26 @@ func AppCreate(id string, buildpack string, remote string, noRemote bool) error
6060
if noRemote {
6161
fmt.Printf("If you want to add a git remote for this app later, use `deis git:remote -a %s`\n", app.ID)
6262
} else {
63-
fmt.Println("remote available at", git.RemoteURL(c.ControllerURL.Host, app.ID))
63+
fmt.Println("remote available at", git.RemoteURL(s.Client.ControllerURL.Host, app.ID))
6464
}
6565

6666
return nil
6767
}
6868

6969
// AppsList lists apps on the Deis controller.
7070
func AppsList(results int) error {
71-
c, err := settings.Load()
71+
s, err := settings.Load()
7272

7373
if err != nil {
7474
return err
7575
}
7676

7777
if results == defaultLimit {
78-
results = c.ResponseLimit
78+
results = s.Limit
7979
}
8080

81-
apps, count, err := apps.List(c, results)
82-
if checkAPICompatibility(c, err) != nil {
81+
apps, count, err := apps.List(s.Client, results)
82+
if checkAPICompatibility(s.Client, err) != nil {
8383
return err
8484
}
8585

@@ -93,14 +93,14 @@ func AppsList(results int) error {
9393

9494
// AppInfo prints info about app.
9595
func AppInfo(appID string) error {
96-
c, appID, err := load(appID)
96+
s, appID, err := load(appID)
9797

9898
if err != nil {
9999
return err
100100
}
101101

102-
app, err := apps.Get(c, appID)
103-
if checkAPICompatibility(c, err) != nil {
102+
app, err := apps.Get(s.Client, appID)
103+
if checkAPICompatibility(s.Client, err) != nil {
104104
return err
105105
}
106106

@@ -131,14 +131,14 @@ func AppInfo(appID string) error {
131131

132132
// AppOpen opens an app in the default webbrowser.
133133
func AppOpen(appID string) error {
134-
c, appID, err := load(appID)
134+
s, appID, err := load(appID)
135135

136136
if err != nil {
137137
return err
138138
}
139139

140-
app, err := apps.Get(c, appID)
141-
if checkAPICompatibility(c, err) != nil {
140+
app, err := apps.Get(s.Client, appID)
141+
if checkAPICompatibility(s.Client, err) != nil {
142142
return err
143143
}
144144

@@ -152,14 +152,14 @@ func AppOpen(appID string) error {
152152

153153
// AppLogs returns the logs from an app.
154154
func AppLogs(appID string, lines int) error {
155-
c, appID, err := load(appID)
155+
s, appID, err := load(appID)
156156

157157
if err != nil {
158158
return err
159159
}
160160

161-
logs, err := apps.Logs(c, appID, lines)
162-
if checkAPICompatibility(c, err) != nil {
161+
logs, err := apps.Logs(s.Client, appID, lines)
162+
if checkAPICompatibility(s.Client, err) != nil {
163163
return err
164164
}
165165

@@ -184,16 +184,16 @@ func printLogs(logs string) error {
184184

185185
// AppRun runs a one time command in the app.
186186
func AppRun(appID, command string) error {
187-
c, appID, err := load(appID)
187+
s, appID, err := load(appID)
188188

189189
if err != nil {
190190
return err
191191
}
192192

193193
fmt.Printf("Running '%s'...\n", command)
194194

195-
out, err := apps.Run(c, appID, command)
196-
if checkAPICompatibility(c, err) != nil {
195+
out, err := apps.Run(s.Client, appID, command)
196+
if checkAPICompatibility(s.Client, err) != nil {
197197
return err
198198
}
199199

@@ -211,14 +211,14 @@ func AppRun(appID, command string) error {
211211
func AppDestroy(appID, confirm string) error {
212212
gitSession := false
213213

214-
c, err := settings.Load()
214+
s, err := settings.Load()
215215

216216
if err != nil {
217217
return err
218218
}
219219

220220
if appID == "" {
221-
appID, err = git.DetectAppName(c.ControllerURL.Host)
221+
appID, err = git.DetectAppName(s.Client.ControllerURL.Host)
222222

223223
if err != nil {
224224
return err
@@ -244,7 +244,7 @@ func AppDestroy(appID, confirm string) error {
244244
startTime := time.Now()
245245
fmt.Printf("Destroying %s...\n", appID)
246246

247-
if err = apps.Delete(c, appID); checkAPICompatibility(c, err) != nil {
247+
if err = apps.Delete(s.Client, appID); checkAPICompatibility(s.Client, err) != nil {
248248
return err
249249
}
250250

@@ -259,16 +259,16 @@ func AppDestroy(appID, confirm string) error {
259259

260260
// AppTransfer transfers app ownership to another user.
261261
func AppTransfer(appID, username string) error {
262-
c, appID, err := load(appID)
262+
s, appID, err := load(appID)
263263

264264
if err != nil {
265265
return err
266266
}
267267

268268
fmt.Printf("Transferring %s to %s... ", appID, username)
269269

270-
err = apps.Transfer(c, appID, username)
271-
if checkAPICompatibility(c, err) != nil {
270+
err = apps.Transfer(s.Client, appID, username)
271+
if checkAPICompatibility(s.Client, err) != nil {
272272
return err
273273
}
274274

cmd/auth.go

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ import (
1717
func Register(controller string, username string, password string, email string,
1818
sslVerify bool) error {
1919

20-
c, err := deis.New(sslVerify, controller, "", "")
20+
c, err := deis.New(sslVerify, controller, "")
2121

2222
if err != nil {
2323
return err
2424
}
2525

26-
tempClient, err := settings.Load()
26+
tempSettings, err := settings.Load()
2727

28-
if err == nil && tempClient.ControllerURL.Host == c.ControllerURL.Host {
29-
c.Token = tempClient.Token
28+
if err == nil && tempSettings.Client.ControllerURL.Host == c.ControllerURL.Host {
29+
c.Token = tempSettings.Client.Token
3030
}
3131

3232
// Set user agent for temporary client.
@@ -72,19 +72,21 @@ func Register(controller string, username string, password string, email string,
7272
}
7373

7474
fmt.Printf("Registered %s\n", username)
75-
return doLogin(c, username, password)
75+
76+
s := settings.Settings{Client: c}
77+
return doLogin(s, username, password)
7678
}
7779

78-
func doLogin(c *deis.Client, username, password string) error {
79-
token, err := auth.Login(c, username, password)
80-
if checkAPICompatibility(c, err) != nil {
80+
func doLogin(s settings.Settings, username, password string) error {
81+
token, err := auth.Login(s.Client, username, password)
82+
if checkAPICompatibility(s.Client, err) != nil {
8183
return err
8284
}
8385

84-
c.Token = token
85-
c.Username = username
86+
s.Client.Token = token
87+
s.Username = username
8688

87-
err = settings.Save(c)
89+
err = s.Save()
8890

8991
if err != nil {
9092
return nil
@@ -96,7 +98,7 @@ func doLogin(c *deis.Client, username, password string) error {
9698

9799
// Login to a Deis controller.
98100
func Login(controller string, username string, password string, sslVerify bool) error {
99-
c, err := deis.New(sslVerify, controller, "", "")
101+
c, err := deis.New(sslVerify, controller, "")
100102

101103
if err != nil {
102104
return err
@@ -124,7 +126,8 @@ func Login(controller string, username string, password string, sslVerify bool)
124126
}
125127
}
126128

127-
return doLogin(c, username, password)
129+
s := settings.Settings{Client: c}
130+
return doLogin(s, username, password)
128131
}
129132

130133
// Logout from a Deis controller.
@@ -139,7 +142,7 @@ func Logout() error {
139142

140143
// Passwd changes a user's password.
141144
func Passwd(username string, password string, newPassword string) error {
142-
c, err := settings.Load()
145+
s, err := settings.Load()
143146

144147
if err != nil {
145148
return err
@@ -172,8 +175,8 @@ func Passwd(username string, password string, newPassword string) error {
172175
}
173176
}
174177

175-
err = auth.Passwd(c, username, password, newPassword)
176-
if checkAPICompatibility(c, err) != nil {
178+
err = auth.Passwd(s.Client, username, password, newPassword)
179+
if checkAPICompatibility(s.Client, err) != nil {
177180
fmt.Fprint(os.Stderr, "Password change failed: ")
178181
return err
179182
}
@@ -184,7 +187,7 @@ func Passwd(username string, password string, newPassword string) error {
184187

185188
// Cancel deletes a user's account.
186189
func Cancel(username string, password string, yes bool) error {
187-
c, err := settings.Load()
190+
s, err := settings.Load()
188191

189192
if err != nil {
190193
return err
@@ -193,15 +196,15 @@ func Cancel(username string, password string, yes bool) error {
193196
if username == "" || password != "" {
194197
fmt.Println("Please log in again in order to cancel this account")
195198

196-
if err = Login(c.ControllerURL.String(), username, password, c.VerifySSL); err != nil {
199+
if err = Login(s.Client.ControllerURL.String(), username, password, s.Client.VerifySSL); err != nil {
197200
return err
198201
}
199202
}
200203

201204
if yes == false {
202205
confirm := ""
203206

204-
c, err = settings.Load()
207+
s, err = settings.Load()
205208

206209
if err != nil {
207210
return err
@@ -210,10 +213,10 @@ func Cancel(username string, password string, yes bool) error {
210213
deletedUser := username
211214

212215
if deletedUser == "" {
213-
deletedUser = c.Username
216+
deletedUser = s.Username
214217
}
215218

216-
fmt.Printf("cancel account %s at %s? (y/N): ", deletedUser, c.ControllerURL.String())
219+
fmt.Printf("cancel account %s at %s? (y/N): ", deletedUser, s.Client.ControllerURL.String())
217220
fmt.Scanln(&confirm)
218221

219222
if strings.ToLower(confirm) == "y" {
@@ -226,15 +229,15 @@ func Cancel(username string, password string, yes bool) error {
226229
return nil
227230
}
228231

229-
err = auth.Delete(c, username)
232+
err = auth.Delete(s.Client, username)
230233
if err == deis.ErrConflict {
231234
return fmt.Errorf("%s still has applications associated with it. Transfer ownership or delete them first", username)
232-
} else if checkAPICompatibility(c, err) != nil {
235+
} else if checkAPICompatibility(s.Client, err) != nil {
233236
return err
234237
}
235238

236239
// If user targets themselves, logout.
237-
if username == "" || c.Username == username {
240+
if username == "" || s.Username == username {
238241
if err := settings.Delete(); err != nil {
239242
return err
240243
}
@@ -246,33 +249,33 @@ func Cancel(username string, password string, yes bool) error {
246249

247250
// Whoami prints the logged in user.
248251
func Whoami() error {
249-
c, err := settings.Load()
252+
s, err := settings.Load()
250253

251254
if err != nil {
252255
return err
253256
}
254257

255-
fmt.Printf("You are %s at %s\n", c.Username, c.ControllerURL.String())
258+
fmt.Printf("You are %s at %s\n", s.Username, s.Client.ControllerURL.String())
256259
return nil
257260
}
258261

259262
// Regenerate regenenerates a user's token.
260263
func Regenerate(username string, all bool) error {
261-
c, err := settings.Load()
264+
s, err := settings.Load()
262265

263266
if err != nil {
264267
return err
265268
}
266269

267-
token, err := auth.Regenerate(c, username, all)
268-
if checkAPICompatibility(c, err) != nil {
270+
token, err := auth.Regenerate(s.Client, username, all)
271+
if checkAPICompatibility(s.Client, err) != nil {
269272
return err
270273
}
271274

272275
if username == "" && all == false {
273-
c.Token = token
276+
s.Client.Token = token
274277

275-
err = settings.Save(c)
278+
err = s.Save()
276279

277280
if err != nil {
278281
return err

0 commit comments

Comments
 (0)