Skip to content

Commit

Permalink
adds support for custom port in ps command
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Hausenblas <hausenbl@amazon.com>
  • Loading branch information
mhausenblas committed Feb 28, 2020
1 parent 7d769bf commit 88d984b
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion cmdshandle.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ func hlaunch(line string) {
launchfail(line, err.Error())
return
}
dpt.addDProc(newDProc(dpid, DProcLongRunning, kubecontext, src, svcname, currentenv().name))
dpt.addDProc(newDProc(dpid, DProcLongRunning, kubecontext, src, svcname, currentenv().evt.get("SERVICE_PORT"), currentenv().name))
}
}

Expand Down
21 changes: 14 additions & 7 deletions dproc.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type DProc struct {
KubeContext string
Src string
ServiceName string
ServicePort string
Env string
}

Expand Down Expand Up @@ -82,12 +83,16 @@ func (dt *DProcTable) BuildDPT() error {
}
}
debug("env:" + env + " id: " + id + " source: " + src)
svcname, err := kubectl(true, "get", "services", "--selector=gen=kubed-sh,"+strings.Replace(src, ":", "=", -1),
"-o=custom-columns=:metadata.name", "--no-headers")
svcnameport, err := kubectl(true, "get", "services", "--selector=gen=kubed-sh,"+strings.Replace(src, ":", "=", -1),
"-o=jsonpath=\"{.metadata.name},{.spec.ports[0].port}\"", "--no-headers")
if err != nil {
return fmt.Errorf("Failed to gather distributed processes due to:\n%s", err)
}
dt.addDProc(newDProc(id, DProcLongRunning, kubecontext, src, svcname, env))
// svcnameport now looks something like "testlr-3,8080"
svcnameport = strings.Trim(svcnameport, "\"")
svcname, svcport := strings.Split(svcnameport, ",")[0],
strings.Split(svcnameport, ",")[0]
dt.addDProc(newDProc(id, DProcLongRunning, kubecontext, src, svcname, svcport, env))
}
return nil
}
Expand All @@ -103,17 +108,17 @@ func (dt *DProcTable) DumpDPT(kubecontext string) string {
for _, dproc := range dt.lt {
switch dproc.Env {
case globalEnv:
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t", dproc.ID, "global", dproc.KubeContext, strings.Split(dproc.Src, ":")[1], dproc.ServiceName))
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t", dproc.ID, "global", dproc.KubeContext, strings.Split(dproc.Src, ":")[1], dproc.ServiceName+":"+dproc.ServicePort))
default:
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t", dproc.ID, dproc.Env, dproc.KubeContext, strings.Split(dproc.Src, ":")[1], dproc.ServiceName))
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t", dproc.ID, dproc.Env, dproc.KubeContext, strings.Split(dproc.Src, ":")[1], dproc.ServiceName+":"+dproc.ServicePort))
}

}
default:
fmt.Fprintln(tw, "DPID\tSOURCE\tURL")
for _, dproc := range dt.lt {
if dproc.KubeContext == kubecontext && dproc.Env == currentenv().name {
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t", dproc.ID, strings.Split(dproc.Src, ":")[1], dproc.ServiceName))
fmt.Fprintln(tw, fmt.Sprintf("%s\t%s\t%s\t", dproc.ID, strings.Split(dproc.Src, ":")[1], dproc.ServiceName+":"+dproc.ServicePort))
}
}
}
Expand All @@ -123,13 +128,15 @@ func (dt *DProcTable) DumpDPT(kubecontext string) string {
}

// newDProc creates a distributed process entry.
func newDProc(dpid string, dptype DProcType, context, source, svcname, env string) DProc {
func newDProc(dpid string, dptype DProcType,
context, source, svcname, svcport, env string) DProc {
return DProc{
ID: dpid,
Type: dptype,
KubeContext: context,
Src: source,
ServiceName: svcname,
ServicePort: svcport,
Env: env,
}
}
Expand Down

0 comments on commit 88d984b

Please sign in to comment.