本文整理汇总了Golang中github.com/concourse/go-concourse/concourse.NewClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewClient函数的具体用法?Golang NewClient怎么用?Golang NewClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewClient函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Execute
func (command *DestroyPipelineCommand) Execute(args []string) error {
pipelineName := command.Pipeline
fmt.Printf("!!! this will remove all data for pipeline `%s`\n\n", pipelineName)
confirm := false
err := interact.NewInteraction("are you sure?").Resolve(&confirm)
if err != nil || !confirm {
fmt.Println("bailing out")
return err
}
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
return err
}
client := concourse.NewClient(connection)
found, err := client.DeletePipeline(pipelineName)
if err != nil {
return err
}
if !found {
fmt.Printf("`%s` does not exist\n", pipelineName)
} else {
fmt.Printf("`%s` deleted\n", pipelineName)
}
return nil
}
示例2: newConcourseClient
func newConcourseClient(atcUrl, username, password string) concourse.Client {
var transport http.RoundTripper
var tlsConfig *tls.Config
tlsConfig = &tls.Config{InsecureSkipVerify: getSkipSSLValidation()}
transport = &http.Transport{
TLSClientConfig: tlsConfig,
Dial: (&net.Dialer{
Timeout: 10 * time.Second,
}).Dial,
Proxy: http.ProxyFromEnvironment,
}
client := concourse.NewClient(
atcUrl,
&http.Client{
Transport: basicAuthTransport{
username: username,
password: password,
base: transport,
},
},
)
return client
}
示例3: Execute
func (command *SetPipelineCommand) Execute(args []string) error {
configPath := command.Config
templateVariablesFiles := command.VarsFrom
pipelineName := command.Pipeline
templateVariables := template.Variables{}
for _, v := range command.Var {
templateVariables[v.Name] = v.Value
}
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
return nil
}
client := concourse.NewClient(connection)
webRequestGenerator := rata.NewRequestGenerator(connection.URL(), web.Routes)
atcConfig := ATCConfig{
pipelineName: pipelineName,
webRequestGenerator: webRequestGenerator,
client: client,
}
atcConfig.Set(configPath, templateVariables, templateVariablesFiles)
return nil
}
示例4: Execute
func (command *WatchCommand) Execute(args []string) error {
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
return nil
}
client := concourse.NewClient(connection)
build, err := GetBuild(client, command.Job.JobName, command.Build, command.Job.PipelineName)
if err != nil {
log.Fatalln(err)
}
eventSource, err := client.BuildEvents(fmt.Sprintf("%d", build.ID))
if err != nil {
log.Println("failed to attach to stream:", err)
os.Exit(1)
}
exitCode := eventstream.Render(os.Stdout, eventSource)
eventSource.Close()
os.Exit(exitCode)
return nil
}
示例5: Execute
func (command *WorkersCommand) Execute([]string) error {
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
}
client := concourse.NewClient(connection)
workers, err := client.ListWorkers()
if err != nil {
log.Fatalln(err)
}
headers := ui.TableRow{
{Contents: "name", Color: color.New(color.Bold)},
{Contents: "containers", Color: color.New(color.Bold)},
{Contents: "platform", Color: color.New(color.Bold)},
{Contents: "tags", Color: color.New(color.Bold)},
}
if command.Details {
headers = append(headers,
ui.TableCell{Contents: "garden address", Color: color.New(color.Bold)},
ui.TableCell{Contents: "baggageclaim url", Color: color.New(color.Bold)},
ui.TableCell{Contents: "resource types", Color: color.New(color.Bold)},
)
}
table := ui.Table{Headers: headers}
sort.Sort(byWorkerName(workers))
for _, w := range workers {
row := ui.TableRow{
{Contents: w.Name},
{Contents: strconv.Itoa(w.ActiveContainers)},
{Contents: w.Platform},
stringOrNone(strings.Join(w.Tags, ", ")),
}
if command.Details {
var resourceTypes []string
for _, t := range w.ResourceTypes {
resourceTypes = append(resourceTypes, t.Type)
}
row = append(row, ui.TableCell{Contents: w.GardenAddr})
row = append(row, stringOrNone(w.BaggageclaimURL))
row = append(row, stringOrNone(strings.Join(resourceTypes, ", ")))
}
table.Data = append(table.Data, row)
}
return table.Render(os.Stdout)
}
示例6: Execute
func (command *LoginCommand) Execute(args []string) error {
var connection concourse.Connection
var err error
if command.ATCURL != "" {
connection, err = rc.NewConnection(command.ATCURL, command.Insecure)
} else {
connection, err = rc.CommandTargetConnection(Fly.Target, &command.Insecure)
}
if err != nil {
return err
}
client := concourse.NewClient(connection)
authMethods, err := client.ListAuthMethods()
if err != nil {
return err
}
var chosenMethod atc.AuthMethod
switch len(authMethods) {
case 0:
fmt.Println("no auth methods configured; updating target data")
err := rc.SaveTarget(
Fly.Target,
connection.URL(),
command.Insecure,
&rc.TargetToken{},
)
if err != nil {
return err
}
return nil
case 1:
chosenMethod = authMethods[0]
default:
choices := make([]interact.Choice, len(authMethods))
for i, method := range authMethods {
choices[i] = interact.Choice{
Display: method.DisplayName,
Value: method,
}
}
err = interact.NewInteraction("choose an auth method", choices...).Resolve(&chosenMethod)
if err != nil {
return err
}
}
return command.loginWith(chosenMethod, connection)
}
示例7: Build
func (cf *clientFactory) Build(r *http.Request) concourse.Client {
transport := authorizationTransport{
Authorization: r.Header.Get("Authorization"),
Base: &http.Transport{
// disable connection pooling
DisableKeepAlives: true,
},
}
httpClient := &http.Client{
Transport: transport,
}
return concourse.NewClient(cf.apiEndpoint, httpClient)
}
示例8: Execute
func (command *ContainersCommand) Execute([]string) error {
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
}
client := concourse.NewClient(connection)
containers, err := client.ListContainers(map[string]string{})
if err != nil {
log.Fatalln(err)
}
table := ui.Table{
Headers: ui.TableRow{
{Contents: "handle", Color: color.New(color.Bold)},
{Contents: "worker", Color: color.New(color.Bold)},
{Contents: "pipeline", Color: color.New(color.Bold)},
{Contents: "job", Color: color.New(color.Bold)},
{Contents: "build #", Color: color.New(color.Bold)},
{Contents: "build id", Color: color.New(color.Bold)},
{Contents: "type", Color: color.New(color.Bold)},
{Contents: "name", Color: color.New(color.Bold)},
{Contents: "attempt", Color: color.New(color.Bold)},
},
}
sort.Sort(containersByHandle(containers))
for _, c := range containers {
row := ui.TableRow{
{Contents: c.ID},
{Contents: c.WorkerName},
stringOrDefault(c.PipelineName),
stringOrDefault(c.JobName),
stringOrDefault(c.BuildName),
buildIDOrNone(c.BuildID),
stringOrDefault(c.StepType, "check"),
{Contents: (c.StepName + c.ResourceName)},
stringOrDefault(SliceItoa(c.Attempts), "n/a"),
}
table.Data = append(table.Data, row)
}
return table.Render(os.Stdout)
}
示例9: Execute
func (command *GetPipelineCommand) Execute(args []string) error {
asJSON := command.JSON
pipelineName := command.Pipeline
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
}
client := concourse.NewClient(connection)
config, _, _, err := client.PipelineConfig(pipelineName)
if err != nil {
log.Fatalln(err)
}
dump(config, asJSON)
return nil
}
示例10: Execute
func (command *ChecklistCommand) Execute([]string) error {
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
}
pipelineName := command.Pipeline
client := concourse.NewClient(connection)
config, _, _, err := client.PipelineConfig(pipelineName)
if err != nil {
log.Fatalln(err)
}
printCheckfile(pipelineName, config, connection.URL())
return nil
}
示例11: CommandTargetClient
func CommandTargetClient(selectedTarget TargetName, commandInsecure *bool) (concourse.Client, error) {
target, err := SelectTarget(selectedTarget)
if err != nil {
return nil, err
}
var token *oauth2.Token
if target.Token != nil {
token = &oauth2.Token{
TokenType: target.Token.Type,
AccessToken: target.Token.Value,
}
}
var tlsConfig *tls.Config
if commandInsecure != nil {
tlsConfig = &tls.Config{InsecureSkipVerify: *commandInsecure}
} else if target.Insecure {
tlsConfig = &tls.Config{InsecureSkipVerify: true}
}
var transport http.RoundTripper
transport = &http.Transport{
TLSClientConfig: tlsConfig,
Dial: (&net.Dialer{
Timeout: 10 * time.Second,
}).Dial,
Proxy: http.ProxyFromEnvironment,
}
if token != nil {
transport = &oauth2.Transport{
Source: oauth2.StaticTokenSource(token),
Base: transport,
}
}
httpClient := &http.Client{
Transport: transport,
}
return concourse.NewClient(target.API, httpClient), nil
}
示例12: Execute
func (command *ContainersCommand) Execute([]string) error {
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
}
client := concourse.NewClient(connection)
containers, err := client.ListContainers(map[string]string{})
if err != nil {
log.Fatalln(err)
}
table := ui.Table{
Headers: ui.TableRow{
{Contents: "handle", Color: color.New(color.Bold)},
{Contents: "name", Color: color.New(color.Bold)},
{Contents: "pipeline", Color: color.New(color.Bold)},
{Contents: "type", Color: color.New(color.Bold)},
{Contents: "build id", Color: color.New(color.Bold)},
{Contents: "worker", Color: color.New(color.Bold)},
},
}
sort.Sort(containersByHandle(containers))
for _, c := range containers {
row := ui.TableRow{
{Contents: c.ID},
{Contents: c.Name},
{Contents: c.PipelineName},
{Contents: c.Type},
buildIDOrNone(c.BuildID),
{Contents: c.WorkerName},
}
table.Data = append(table.Data, row)
}
return table.Render(os.Stdout)
}
示例13: Execute
func (command *UnpausePipelineCommand) Execute(args []string) error {
pipelineName := command.Pipeline
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln(err)
return nil
}
client := concourse.NewClient(connection)
found, err := client.UnpausePipeline(pipelineName)
if err != nil {
return err
}
if found {
fmt.Printf("unpaused '%s'\n", pipelineName)
} else {
failf("pipeline '%s' not found\n", pipelineName)
}
return nil
}
示例14: getContainerIDs
func getContainerIDs(c *HijackCommand) []atc.Container {
var pipelineName string
if c.Job.PipelineName != "" {
pipelineName = c.Job.PipelineName
} else {
pipelineName = c.Check.PipelineName
}
buildNameOrID := c.Build
stepName := c.StepName
jobName := c.Job.JobName
check := c.Check.ResourceName
attempt := c.Attempt
fingerprint := containerFingerprint{
pipelineName: pipelineName,
jobName: jobName,
buildNameOrID: buildNameOrID,
stepName: stepName,
checkName: check,
attempt: attempt,
}
connection, err := rc.TargetConnection(Fly.Target)
if err != nil {
log.Fatalln("failed to create client:", err)
}
client := concourse.NewClient(connection)
reqValues, err := locateContainer(client, fingerprint)
if err != nil {
log.Fatalln(err)
}
containers, err := client.ListContainers(reqValues)
if err != nil {
log.Fatalln("failed to get containers:", err)
}
return containers
}
示例15: NewUnauthenticatedClient
func NewUnauthenticatedClient(atcURL string, insecure bool) concourse.Client {
var tlsConfig *tls.Config
if insecure {
tlsConfig = &tls.Config{InsecureSkipVerify: insecure}
}
var transport http.RoundTripper
transport = &http.Transport{
TLSClientConfig: tlsConfig,
Dial: (&net.Dialer{
Timeout: 10 * time.Second,
}).Dial,
Proxy: http.ProxyFromEnvironment,
}
client := concourse.NewClient(atcURL, &http.Client{
Transport: transport,
})
return client
}