function API: status for functions (#229)

This commit is contained in:
Janos Dobronszki
2021-10-12 15:35:29 +01:00
committed by GitHub
parent 1caf019cda
commit c4af6d043a
6 changed files with 62 additions and 27 deletions

View File

@@ -250,6 +250,22 @@ func (e *Function) List(ctx context.Context, req *function.ListRequest, rsp *fun
}
log.Info(readRsp.Records)
multitenantPrefix := strings.Replace(tenantId, "/", "-", -1)
cmd := exec.Command("gcloud", "functions", "list", "--project", e.project, "--filter", "name~"+multitenantPrefix+"*")
outp, err := cmd.CombinedOutput()
if err != nil {
log.Error(fmt.Errorf(string(outp)))
}
lines := strings.Split(string(outp), "\n")
statuses := map[string]string{}
for _, line := range lines {
fields := strings.Fields(line)
if len(fields) < 2 {
continue
}
statuses[fields[0]] = fields[1]
}
rsp.Functions = []*function.Func{}
for _, record := range readRsp.Records {
m := record.AsMap()
@@ -259,6 +275,7 @@ func (e *Function) List(ctx context.Context, req *function.ListRequest, rsp *fun
if err != nil {
return err
}
f.Status = statuses[multitenantPrefix+"-"+f.Name]
rsp.Functions = append(rsp.Functions, f)
}
return nil