go-concourse: Reduce overall diff of PR

Made ATC in loginAtcServer capital.

Moved FindTeam() into the teams.go file where other similar commands
live.

Fixed a test that wasn't mocking the API properly.

Signed-off-by: Taylor Silva <tsilva@pivotal.io>
Co-authored-by: Muntasir Chowdhury <mchowdhury@pivotal.io>
This commit is contained in:
Taylor Silva 2020-02-20 13:49:47 -05:00
parent fa36fd6f70
commit 587483424a
5 changed files with 117 additions and 122 deletions

View File

@ -18,7 +18,7 @@ import (
)
var _ = Describe("login -k Command", func() {
var loginAtcServer *ghttp.Server
var loginATCServer *ghttp.Server
Describe("login", func() {
var (
@ -27,23 +27,23 @@ var _ = Describe("login -k Command", func() {
)
BeforeEach(func() {
l := log.New(GinkgoWriter, "TLSServer", 0)
loginAtcServer = ghttp.NewUnstartedServer()
loginAtcServer.HTTPTestServer.Config.ErrorLog = l
loginAtcServer.HTTPTestServer.StartTLS()
loginATCServer = ghttp.NewUnstartedServer()
loginATCServer.HTTPTestServer.Config.ErrorLog = l
loginATCServer.HTTPTestServer.StartTLS()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
Context("to new target with invalid SSL with -k", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-k", "-u", "some_user", "-p", "some_pass")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-k", "-u", "some_user", "-p", "some_pass")
var err error
stdin, err = flyCmd.StdinPipe()
@ -68,7 +68,7 @@ var _ = Describe("login -k Command", func() {
Context("login to existing target", func() {
var otherCmd *exec.Cmd
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -118,7 +118,7 @@ var _ = Describe("login -k Command", func() {
Context("to new target with invalid SSL without -k", func() {
Context("without --ca-cert", func() {
BeforeEach(func() {
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-u", "some_user", "-p", "some_pass")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-u", "some_user", "-p", "some_pass")
var err error
stdin, err = flyCmd.StdinPipe()
@ -147,7 +147,7 @@ var _ = Describe("login -k Command", func() {
BeforeEach(func() {
sslCert = string(pem.EncodeToMemory(&pem.Block{
Type: "CERTIFICATE",
Bytes: loginAtcServer.HTTPTestServer.TLS.Certificates[0].Certificate[0],
Bytes: loginATCServer.HTTPTestServer.TLS.Certificates[0].Certificate[0],
}))
caCertFile, err := ioutil.TempFile("", "ca_cert.pem")
@ -156,9 +156,9 @@ var _ = Describe("login -k Command", func() {
_, err = caCertFile.WriteString(sslCert)
Expect(err).NotTo(HaveOccurred())
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "--ca-cert", caCertFile.Name(), "-u", "some_user", "-p", "some_pass")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "--ca-cert", caCertFile.Name(), "-u", "some_user", "-p", "some_pass")
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -194,7 +194,7 @@ var _ = Describe("login -k Command", func() {
BeforeEach(func() {
flyrcContents := `targets:
some-target:
api: ` + loginAtcServer.URL() + `
api: ` + loginATCServer.URL() + `
team: main
ca_cert: some-ca-cert
token:
@ -205,7 +205,7 @@ var _ = Describe("login -k Command", func() {
Context("with -k", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)

View File

@ -24,7 +24,7 @@ import (
var _ = Describe("login Command", func() {
var (
loginAtcServer *ghttp.Server
loginATCServer *ghttp.Server
tmpDir string
)
@ -46,15 +46,15 @@ var _ = Describe("login Command", func() {
)
BeforeEach(func() {
loginAtcServer = ghttp.NewServer()
loginAtcServer.AppendHandlers(
loginATCServer = ghttp.NewServer()
loginATCServer.AppendHandlers(
infoHandler(),
)
flyCmd = exec.Command(flyPath, "login", "-c", loginAtcServer.URL())
flyCmd = exec.Command(flyPath, "login", "-c", loginATCServer.URL())
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
It("instructs the user to specify --target", func() {
@ -70,20 +70,20 @@ var _ = Describe("login Command", func() {
Context("with no team name", func() {
BeforeEach(func() {
loginAtcServer = ghttp.NewServer()
loginATCServer = ghttp.NewServer()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
It("falls back to atc.DefaultTeamName team", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-u", "user", "-p", "pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-u", "user", "-p", "pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -96,18 +96,18 @@ var _ = Describe("login Command", func() {
Context("when already logged in as different team", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
err := setupFlyCmd.Run()
Expect(err).NotTo(HaveOccurred())
})
It("uses the saved team name", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -126,16 +126,16 @@ var _ = Describe("login Command", func() {
Context("with no specified flag but extra arguments ", func() {
BeforeEach(func() {
loginAtcServer = ghttp.NewServer()
loginATCServer = ghttp.NewServer()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
It("return error indicating login failed with unknown arguments", func() {
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "unknown-argument", "blah")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "unknown-argument", "blah")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -148,7 +148,7 @@ var _ = Describe("login Command", func() {
Context("with a team name", func() {
flyLogin := func() *gexec.Session {
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "dummy-user", "-p", "dummy-pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "dummy-user", "-p", "dummy-pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -159,20 +159,20 @@ var _ = Describe("login Command", func() {
}
BeforeEach(func() {
loginAtcServer = ghttp.NewServer()
loginATCServer = ghttp.NewServer()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
It("uses specified team", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -189,7 +189,7 @@ var _ = Describe("login Command", func() {
JustBeforeEach(func() {
Expect(encodedString).NotTo(Equal(""))
encodedToken := base64.StdEncoding.WithPadding(base64.NoPadding).EncodeToString([]byte(encodedString))
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
ghttp.CombineHandlers(
ghttp.VerifyRequest("POST", "/sky/token"),
@ -280,7 +280,7 @@ var _ = Describe("login Command", func() {
})
It("fails", func() {
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "dummy-user", "-p", "dummy-pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "dummy-user", "-p", "dummy-pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -297,12 +297,12 @@ var _ = Describe("login Command", func() {
Context("when tracing is not enabled", func() {
It("does not print out API calls", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -317,12 +317,12 @@ var _ = Describe("login Command", func() {
Context("when tracing is enabled", func() {
It("prints out API calls", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
flyCmd := exec.Command(flyPath, "--verbose", "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
flyCmd := exec.Command(flyPath, "--verbose", "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -336,18 +336,18 @@ var _ = Describe("login Command", func() {
Context("when already logged in as different team", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "-u", "user", "-p", "pass")
err := setupFlyCmd.Run()
Expect(err).NotTo(HaveOccurred())
})
It("passes provided team name", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -365,25 +365,25 @@ var _ = Describe("login Command", func() {
Describe("with ca cert", func() {
BeforeEach(func() {
loginAtcServer = ghttp.NewUnstartedServer()
loginATCServer = ghttp.NewUnstartedServer()
cert, err := tls.X509KeyPair([]byte(serverCert), []byte(serverKey))
Expect(err).NotTo(HaveOccurred())
loginAtcServer.HTTPTestServer.TLS = &tls.Config{
loginATCServer.HTTPTestServer.TLS = &tls.Config{
Certificates: []tls.Certificate{cert},
}
loginAtcServer.HTTPTestServer.StartTLS()
loginATCServer.HTTPTestServer.StartTLS()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
Context("when already logged in with ca cert", func() {
var caCertFilePath string
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -395,7 +395,7 @@ var _ = Describe("login Command", func() {
err = ioutil.WriteFile(caCertFilePath, []byte(serverCert), os.ModePerm)
Expect(err).NotTo(HaveOccurred())
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "some-team", "--ca-cert", caCertFilePath, "-u", "user", "-p", "pass")
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "some-team", "--ca-cert", caCertFilePath, "-u", "user", "-p", "pass")
sess, err := gexec.Start(setupFlyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -409,7 +409,7 @@ var _ = Describe("login Command", func() {
Context("when ca cert is not provided", func() {
It("is using saved ca cert", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -432,22 +432,22 @@ var _ = Describe("login Command", func() {
)
BeforeEach(func() {
loginAtcServer = ghttp.NewServer()
loginATCServer = ghttp.NewServer()
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
Context("with authorization_code grant", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
)
})
It("instructs the user to visit the top-level login endpoint with fly port", func() {
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL())
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL())
stdin, err := flyCmd.StdinPipe()
Expect(err).NotTo(HaveOccurred())
@ -475,7 +475,7 @@ var _ = Describe("login Command", func() {
var sess *gexec.Session
BeforeEach(func() {
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL())
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL())
_, err := flyCmd.StdinPipe()
Expect(err).NotTo(HaveOccurred())
sess, err = gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
@ -497,7 +497,7 @@ var _ = Describe("login Command", func() {
})
JustBeforeEach(func() {
loginAtcServer.AppendHandlers(ghttp.CombineHandlers(
loginATCServer.AppendHandlers(ghttp.CombineHandlers(
ghttp.VerifyRequest("GET", "/fly_success"),
ghttp.RespondWith(200, ""),
))
@ -515,7 +515,7 @@ var _ = Describe("login Command", func() {
It("sets a CORS header for the ATC being logged in to", func() {
corsHeader := resp.Header.Get("Access-Control-Allow-Origin")
Expect(corsHeader).To(Equal(loginAtcServer.URL()))
Expect(corsHeader).To(Equal(loginATCServer.URL()))
})
It("responds successfully", func() {
@ -530,7 +530,7 @@ var _ = Describe("login Command", func() {
It("redirects back to noop fly success page", func() {
Expect(resp.StatusCode).To(Equal(http.StatusFound))
locationHeader := resp.Header.Get("Location")
Expect(locationHeader).To(Equal(fmt.Sprintf("%s/fly_success?noop=true", loginAtcServer.URL())))
Expect(locationHeader).To(Equal(fmt.Sprintf("%s/fly_success?noop=true", loginATCServer.URL())))
})
})
})
@ -539,7 +539,7 @@ var _ = Describe("login Command", func() {
Context("with password grant", func() {
BeforeEach(func() {
credentials := base64.StdEncoding.EncodeToString([]byte("fly:Zmx5"))
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
ghttp.CombineHandlers(
ghttp.VerifyRequest("POST", "/sky/token"),
@ -558,7 +558,7 @@ var _ = Describe("login Command", func() {
})
It("takes username and password as cli arguments", func() {
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-u", "some_username", "-p", "some_password")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-u", "some_username", "-p", "some_password")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -572,7 +572,7 @@ var _ = Describe("login Command", func() {
Context("after logging in succeeds", func() {
BeforeEach(func() {
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-u", "some_username", "-p", "some_password")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-u", "some_username", "-p", "some_password")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -592,7 +592,7 @@ var _ = Describe("login Command", func() {
Describe("running other commands", func() {
BeforeEach(func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
ghttp.CombineHandlers(
ghttp.VerifyRequest("GET", "/api/v1/teams/main/pipelines"),
@ -622,7 +622,7 @@ var _ = Describe("login Command", func() {
BeforeEach(func() {
credentials := base64.StdEncoding.EncodeToString([]byte("fly:Zmx5"))
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
ghttp.CombineHandlers(
ghttp.VerifyRequest("POST", "/sky/token"),
@ -689,9 +689,9 @@ var _ = Describe("login Command", func() {
"-ldflags", fmt.Sprintf("-X github.com/concourse/concourse.Version=%s", flyVersion),
)
Expect(err).NotTo(HaveOccurred())
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-u", "user", "-p", "pass")
flyCmd = exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-u", "user", "-p", "pass")
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
tokenHandler(),
)
@ -756,14 +756,14 @@ var _ = Describe("login Command", func() {
},
}
loginAtcServer = ghttp.NewServer()
loginAtcServer.AppendHandlers(
loginATCServer = ghttp.NewServer()
loginATCServer.AppendHandlers(
infoHandler(),
adminTokenHandler(),
teamHandler(teams),
)
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "main", "-u", "user", "-p", "pass")
flyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "main", "-u", "user", "-p", "pass")
sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -776,12 +776,12 @@ var _ = Describe("login Command", func() {
})
AfterEach(func() {
loginAtcServer.Close()
loginATCServer.Close()
})
Context("with the ATC Url unspecified", func() {
It("User logs in to any team", func() {
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
adminTokenHandler(),
teamHandler(teams),
@ -802,18 +802,18 @@ var _ = Describe("login Command", func() {
Context("when the CACert is provided", func() {
var caCertFilePath string
var loginAtcServer *ghttp.Server
var loginATCServer *ghttp.Server
BeforeEach(func() {
loginAtcServer = ghttp.NewUnstartedServer()
loginATCServer = ghttp.NewUnstartedServer()
cert, err := tls.X509KeyPair([]byte(serverCert), []byte(serverKey))
Expect(err).NotTo(HaveOccurred())
loginAtcServer.HTTPTestServer.TLS = &tls.Config{
loginATCServer.HTTPTestServer.TLS = &tls.Config{
Certificates: []tls.Certificate{cert},
}
loginAtcServer.HTTPTestServer.StartTLS()
loginATCServer.HTTPTestServer.StartTLS()
loginAtcServer.AppendHandlers(
loginATCServer.AppendHandlers(
infoHandler(),
adminTokenHandler(),
teamHandler(teams),
@ -825,7 +825,7 @@ var _ = Describe("login Command", func() {
err = ioutil.WriteFile(caCertFilePath, []byte(serverCert), os.ModePerm)
Expect(err).NotTo(HaveOccurred())
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginAtcServer.URL(), "-n", "main", "--ca-cert", caCertFilePath, "-u", "user", "-p", "pass")
setupFlyCmd := exec.Command(flyPath, "-t", "some-target", "login", "-c", loginATCServer.URL(), "-n", "main", "--ca-cert", caCertFilePath, "-u", "user", "-p", "pass")
sess, err := gexec.Start(setupFlyCmd, GinkgoWriter, GinkgoWriter)
Expect(err).NotTo(HaveOccurred())
@ -835,12 +835,12 @@ var _ = Describe("login Command", func() {
AfterEach(func() {
os.RemoveAll(caCertFilePath)
loginAtcServer.Close()
loginATCServer.Close()
})
Context("when ca cert is not provided this time", func() {
It("is using saved ca cert", func() {
loginAtcServer.AppendHandlers(
oginATCServer.AppendHandlers(
infoHandler(),
adminTokenHandler(),
teamHandler(teams),

View File

@ -1,16 +1,12 @@
package concourse
import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"net/http"
"time"
"github.com/concourse/concourse/atc"
"github.com/concourse/concourse/go-concourse/concourse/internal"
"github.com/tedsuo/rata"
)
//go:generate counterfeiter . Client
@ -59,42 +55,3 @@ func (client *client) URL() string {
func (client *client) HTTPClient() *http.Client {
return client.connection.HTTPClient()
}
func (client *client) FindTeam(teamName string) (Team, error) {
var atcTeam atc.Team
resp, err := client.httpAgent.Send(internal.Request{
RequestName: atc.GetTeam,
Params: rata.Params{"team_name": teamName},
})
if err != nil {
return nil, err
}
switch resp.StatusCode {
case http.StatusOK:
err = json.NewDecoder(resp.Body).Decode(&atcTeam)
if err != nil {
return nil, err
}
return &team{
name: atcTeam.Name,
connection: client.connection,
httpAgent: client.httpAgent,
auth: atcTeam.Auth,
}, nil
case http.StatusForbidden:
return nil, fmt.Errorf("you do not have a role on team '%s'", teamName)
case http.StatusNotFound:
return nil, fmt.Errorf("team '%s' does not exist", teamName)
default:
body, _ := ioutil.ReadAll(resp.Body)
return nil, internal.UnexpectedResponseError{
StatusCode: resp.StatusCode,
Status: resp.Status,
Body: string(body),
}
}
}

View File

@ -5,6 +5,7 @@ import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"net/http"
"github.com/concourse/concourse/atc"
@ -106,3 +107,40 @@ func (client *client) ListTeams() ([]atc.Team, error) {
return teams, err
}
func (client *client) FindTeam(teamName string) (Team, error) {
var atcTeam atc.Team
resp, err := client.httpAgent.Send(internal.Request{
RequestName: atc.GetTeam,
Params: rata.Params{"team_name": teamName},
})
if err != nil {
return nil, err
}
switch resp.StatusCode {
case http.StatusOK:
err = json.NewDecoder(resp.Body).Decode(&atcTeam)
if err != nil {
return nil, err
}
return &team{
name: atcTeam.Name,
connection: client.connection,
httpAgent: client.httpAgent,
auth: atcTeam.Auth,
}, nil
case http.StatusForbidden:
return nil, fmt.Errorf("you do not have a role on team '%s'", teamName)
case http.StatusNotFound:
return nil, fmt.Errorf("team '%s' does not exist", teamName)
default:
body, _ := ioutil.ReadAll(resp.Body)
return nil, internal.UnexpectedResponseError{
StatusCode: resp.StatusCode,
Status: resp.Status,
Body: string(body),
}
}
}

View File

@ -67,7 +67,7 @@ var _ = Describe("ATC Handler Teams", func() {
atcServer.AppendHandlers(
ghttp.CombineHandlers(
ghttp.VerifyRequest("GET", expectedURL),
ghttp.RespondWith(http.StatusUnauthorized, ""),
ghttp.RespondWith(http.StatusNotFound, ""),
),
)
})