func TeamShow(c *cli.Context, log logging.Logger, _ string) (int, error) { t := epteam.Used() if err := t.Valid(); err != nil { fmt.Fprintln(os.Stderr, `You are not currently logged in to any team. Please log in first with "kd auth login".`) return 1, err } if c.Bool("json") { enc := json.NewEncoder(os.Stdout) enc.SetIndent("", "\t") enc.Encode(t) } else { fmt.Fprintln(os.Stderr, "You are currently logged in to the following team:", t.Name) } return 0, nil }
func (c *Client) Create(opts *CreateOptions) (*stack.ImportResponse, error) { if err := opts.Valid(); err != nil { return nil, err } data, err := c.jsonReencode(opts.Template) if err != nil { return nil, fmt.Errorf("stack: template encoding error: %s", err) } providers, err := kloudstack.ReadProviders(data) if err != nil { return nil, fmt.Errorf("stack: unable to read providers: %s", err) } if len(providers) == 0 { return nil, errors.New("stack: unable to read providers") } req := &stack.ImportRequest{ Template: data, Team: opts.Team, Title: opts.Title, Credentials: make(map[string][]string), } if req.Team == "" { req.Team = team.Used().Name } var resp stack.ImportResponse for _, identifier := range opts.Credentials { provider, err := c.credential().Provider(identifier) if err != nil { return nil, fmt.Errorf("stack: unable to read provider of %q: %s", identifier, err) } req.Credentials[provider] = append(req.Credentials[provider], identifier) } used := c.credential().Used() for _, provider := range providers { if _, ok := req.Credentials[provider]; ok { continue } identifier, ok := used[provider] if !ok || identifier == "" { return nil, fmt.Errorf("stack: missing credential for %q provider", provider) } req.Credentials[provider] = []string{identifier} } if err := c.kloud().Call("import", req, &resp); err != nil { return nil, fmt.Errorf("stack: unable to communicate with Kloud: %s", err) } return &resp, nil }