Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v11] Add app_server support to tctl get/rm commands #23137

Merged
merged 1 commit into from
Mar 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/services/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,8 @@ func ParseShortcut(in string) (string, error) {
return types.KindDatabase, nil
case types.KindApp, "apps":
return types.KindApp, nil
case types.KindAppServer, "app_servers":
return types.KindAppServer, nil
case types.KindWindowsDesktopService, "windows_service", "win_desktop_service", "win_service":
return types.KindWindowsDesktopService, nil
case types.KindWindowsDesktop, "win_desktop":
Expand Down
12 changes: 8 additions & 4 deletions tool/tctl/common/collection.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ func (r *roleCollection) writeText(w io.Writer) error {
r.GetMetadata().Name,
strings.Join(r.GetLogins(types.Allow), ","),
printNodeLabels(r.GetNodeLabels(types.Allow)),
printActions(r.GetRules(types.Allow))})
printActions(r.GetRules(types.Allow)),
})
}

headers := []string{"Role", "Allowed to login as", "Node Labels", "Access to resources"}
Expand Down Expand Up @@ -359,7 +360,8 @@ func (c *trustedClusterCollection) resources() (r []types.Resource) {

func (c *trustedClusterCollection) writeText(w io.Writer) error {
t := asciitable.MakeTable([]string{
"Name", "Enabled", "Token", "Proxy Address", "Reverse Tunnel Address", "Role Map"})
"Name", "Enabled", "Token", "Proxy Address", "Reverse Tunnel Address", "Role Map",
})
for _, tc := range c.trustedClusters {
t.AddRow([]string{
tc.GetName(),
Expand Down Expand Up @@ -482,7 +484,8 @@ func (a *appServerCollection) writeText(w io.Writer) error {
app := server.GetApp()
labels := stripInternalTeleportLabels(a.verbose, app.GetAllLabels())
rows = append(rows, []string{
server.GetHostname(), app.GetName(), app.GetProtocol(), app.GetPublicAddr(), app.GetURI(), labels, server.GetTeleportVersion()})
server.GetHostname(), app.GetName(), app.GetProtocol(), app.GetPublicAddr(), app.GetURI(), labels, server.GetTeleportVersion(),
})
}
var t asciitable.Table
headers := []string{"Host", "Name", "Type", "Public Address", "URI", "Labels", "Version"}
Expand Down Expand Up @@ -521,7 +524,8 @@ func (c *appCollection) writeText(w io.Writer) error {
for _, app := range c.apps {
labels := stripInternalTeleportLabels(c.verbose, app.GetAllLabels())
rows = append(rows, []string{
app.GetName(), app.GetDescription(), app.GetURI(), app.GetPublicAddr(), labels, app.GetVersion()})
app.GetName(), app.GetDescription(), app.GetURI(), app.GetPublicAddr(), labels, app.GetVersion(),
})
}
headers := []string{"Name", "Description", "URI", "Public Address", "Labels", "Version"}
var t asciitable.Table
Expand Down
39 changes: 38 additions & 1 deletion tool/tctl/common/resource_command.go
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,24 @@ func (rc *ResourceCommand) Delete(ctx context.Context, client auth.ClientI) (err
return trail.FromGRPC(err)
}
fmt.Printf("login rule %q has been deleted\n", rc.ref.Name)

case types.KindAppServer:
appServers, err := client.GetApplicationServers(ctx, rc.namespace)
if err != nil {
return trace.Wrap(err)
}
deleted := false
for _, server := range appServers {
if server.GetName() == rc.ref.Name {
if err := client.DeleteApplicationServer(ctx, server.GetNamespace(), server.GetHostID(), server.GetName()); err != nil {
return trace.Wrap(err)
}
deleted = true
}
}
if !deleted {
return trace.NotFound("application server %q not found", rc.ref.Name)
}
fmt.Printf("application server %q has been deleted\n", rc.ref.Name)
default:
return trace.BadParameter("deleting resources of type %q is not supported", rc.ref.Kind)
}
Expand Down Expand Up @@ -1290,6 +1307,26 @@ func (rc *ResourceCommand) getCollection(ctx context.Context, client auth.Client
return nil, trace.NotFound("kubernetes server %q not found", rc.ref.Name)
}
return &kubeServerCollection{servers: out}, nil

case types.KindAppServer:
servers, err := client.GetApplicationServers(ctx, rc.namespace)
if err != nil {
return nil, trace.Wrap(err)
}
if rc.ref.Name == "" {
return &appServerCollection{servers: servers}, nil
}

var out []types.AppServer
for _, server := range servers {
if server.GetName() == rc.ref.Name || server.GetHostname() == rc.ref.Name {
out = append(out, server)
}
}
if len(out) == 0 {
return nil, trace.NotFound("application server %q not found", rc.ref.Name)
}
return &appServerCollection{servers: out}, nil
case types.KindNetworkRestrictions:
nr, err := client.GetNetworkRestrictions(ctx)
if err != nil {
Expand Down