mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-09 16:36:47 +00:00
Populate CreatedAt
Populates the CreatedAt value from the container's info field. Ref: https://github.com/openfaas/faas-provider/issues/59 Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
This commit is contained in:
parent
c7d9353991
commit
659f98cc0d
2
go.mod
2
go.mod
@ -30,7 +30,7 @@ require (
|
|||||||
github.com/opencontainers/runc v1.0.0-rc9 // indirect
|
github.com/opencontainers/runc v1.0.0-rc9 // indirect
|
||||||
github.com/opencontainers/runtime-spec v1.0.2
|
github.com/opencontainers/runtime-spec v1.0.2
|
||||||
github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
||||||
github.com/openfaas/faas-provider v0.17.1
|
github.com/openfaas/faas-provider v0.17.2
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/prometheus/procfs v0.2.0 // indirect
|
github.com/prometheus/procfs v0.2.0 // indirect
|
||||||
github.com/sethvargo/go-password v0.1.3
|
github.com/sethvargo/go-password v0.1.3
|
||||||
|
2
go.sum
2
go.sum
@ -185,6 +185,8 @@ github.com/openfaas/faas-provider v0.17.0 h1:4rT8CosKhI5xaAMqbyihEgR6KefO/ViJdF0
|
|||||||
github.com/openfaas/faas-provider v0.17.0/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
github.com/openfaas/faas-provider v0.17.0/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
github.com/openfaas/faas-provider v0.17.1 h1:P5xTLN+/08PLLh4auIlO/PaUD/J3BUTmaC3en8N5zbs=
|
github.com/openfaas/faas-provider v0.17.1 h1:P5xTLN+/08PLLh4auIlO/PaUD/J3BUTmaC3en8N5zbs=
|
||||||
github.com/openfaas/faas-provider v0.17.1/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
github.com/openfaas/faas-provider v0.17.1/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
|
github.com/openfaas/faas-provider v0.17.2 h1:jZ+Z83A/tyJoI1AnpyLN3o0B4K0UEsz1YJ3erASMu+s=
|
||||||
|
github.com/openfaas/faas-provider v0.17.2/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
@ -29,8 +29,8 @@ import (
|
|||||||
|
|
||||||
const annotationLabelPrefix = "com.openfaas.annotations."
|
const annotationLabelPrefix = "com.openfaas.annotations."
|
||||||
|
|
||||||
|
// MakeDeployHandler returns a handler to deploy a function
|
||||||
func MakeDeployHandler(client *containerd.Client, cni gocni.CNI, secretMountPath string, alwaysPull bool) func(w http.ResponseWriter, r *http.Request) {
|
func MakeDeployHandler(client *containerd.Client, cni gocni.CNI, secretMountPath string, alwaysPull bool) func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
if r.Body == nil {
|
if r.Body == nil {
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/opencontainers/runtime-spec/specs-go"
|
"github.com/opencontainers/runtime-spec/specs-go"
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ type Function struct {
|
|||||||
secrets []string
|
secrets []string
|
||||||
envVars map[string]string
|
envVars map[string]string
|
||||||
envProcess string
|
envProcess string
|
||||||
|
createdAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListFunctions returns a map of all functions with running tasks on namespace
|
// ListFunctions returns a map of all functions with running tasks on namespace
|
||||||
@ -81,6 +83,11 @@ func GetFunction(client *containerd.Client, name string) (Function, error) {
|
|||||||
return Function{}, fmt.Errorf("unable to load function spec for reading secrets: %s, error %s", name, err)
|
return Function{}, fmt.Errorf("unable to load function spec for reading secrets: %s, error %s", name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info, err := c.Info(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return Function{}, fmt.Errorf("can't load info for: %s, error %s", name, err)
|
||||||
|
}
|
||||||
|
|
||||||
envVars, envProcess := readEnvFromProcessEnv(spec.Process.Env)
|
envVars, envProcess := readEnvFromProcessEnv(spec.Process.Env)
|
||||||
secrets := readSecretsFromMounts(spec.Mounts)
|
secrets := readSecretsFromMounts(spec.Mounts)
|
||||||
|
|
||||||
@ -92,6 +99,7 @@ func GetFunction(client *containerd.Client, name string) (Function, error) {
|
|||||||
fn.secrets = secrets
|
fn.secrets = secrets
|
||||||
fn.envVars = envVars
|
fn.envVars = envVars
|
||||||
fn.envProcess = envProcess
|
fn.envProcess = envProcess
|
||||||
|
fn.createdAt = info.CreatedAt
|
||||||
|
|
||||||
replicas := 0
|
replicas := 0
|
||||||
task, err := c.Task(ctx, nil)
|
task, err := c.Task(ctx, nil)
|
||||||
|
@ -34,6 +34,7 @@ func MakeReadHandler(client *containerd.Client) func(w http.ResponseWriter, r *h
|
|||||||
Secrets: fn.secrets,
|
Secrets: fn.secrets,
|
||||||
EnvVars: fn.envVars,
|
EnvVars: fn.envVars,
|
||||||
EnvProcess: fn.envProcess,
|
EnvProcess: fn.envProcess,
|
||||||
|
CreatedAt: fn.createdAt,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,6 +42,5 @@ func MakeReadHandler(client *containerd.Client) func(w http.ResponseWriter, r *h
|
|||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
w.Write(body)
|
w.Write(body)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ func MakeReplicaReaderHandler(client *containerd.Client) func(w http.ResponseWri
|
|||||||
Secrets: f.secrets,
|
Secrets: f.secrets,
|
||||||
EnvVars: f.envVars,
|
EnvVars: f.envVars,
|
||||||
EnvProcess: f.envProcess,
|
EnvProcess: f.envProcess,
|
||||||
|
CreatedAt: f.createdAt,
|
||||||
}
|
}
|
||||||
|
|
||||||
functionBytes, _ := json.Marshal(found)
|
functionBytes, _ := json.Marshal(found)
|
||||||
|
10
vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
10
vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
@ -1,5 +1,7 @@
|
|||||||
package types
|
package types
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
// FunctionDeployment represents a request to create or update a Function.
|
// FunctionDeployment represents a request to create or update a Function.
|
||||||
type FunctionDeployment struct {
|
type FunctionDeployment struct {
|
||||||
|
|
||||||
@ -100,7 +102,9 @@ type FunctionStatus struct {
|
|||||||
// mount-point.
|
// mount-point.
|
||||||
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
|
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
|
||||||
|
|
||||||
// ** Status fields *8
|
// ================
|
||||||
|
// Fields for status
|
||||||
|
// ================
|
||||||
|
|
||||||
// InvocationCount count of invocations
|
// InvocationCount count of invocations
|
||||||
InvocationCount float64 `json:"invocationCount,omitempty"`
|
InvocationCount float64 `json:"invocationCount,omitempty"`
|
||||||
@ -111,4 +115,8 @@ type FunctionStatus struct {
|
|||||||
// AvailableReplicas is the count of replicas ready to receive
|
// AvailableReplicas is the count of replicas ready to receive
|
||||||
// invocations as reported by the faas-provider
|
// invocations as reported by the faas-provider
|
||||||
AvailableReplicas uint64 `json:"availableReplicas,omitempty"`
|
AvailableReplicas uint64 `json:"availableReplicas,omitempty"`
|
||||||
|
|
||||||
|
// CreatedAt is the time read back from the faas backend's
|
||||||
|
// data store for when the function or its container was created.
|
||||||
|
CreatedAt time.Time `json:"created_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
2
vendor/modules.txt
generated
vendored
2
vendor/modules.txt
generated
vendored
@ -195,7 +195,7 @@ github.com/opencontainers/runtime-spec/specs-go
|
|||||||
# github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
# github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
||||||
## explicit
|
## explicit
|
||||||
github.com/openfaas/faas/gateway/requests
|
github.com/openfaas/faas/gateway/requests
|
||||||
# github.com/openfaas/faas-provider v0.17.1
|
# github.com/openfaas/faas-provider v0.17.2
|
||||||
## explicit
|
## explicit
|
||||||
github.com/openfaas/faas-provider
|
github.com/openfaas/faas-provider
|
||||||
github.com/openfaas/faas-provider/auth
|
github.com/openfaas/faas-provider/auth
|
||||||
|
Loading…
x
Reference in New Issue
Block a user