mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
All of the changes for func logs
This commit is contained in:
@@ -19,11 +19,11 @@ import (
|
||||
)
|
||||
|
||||
type BoltDatastore struct {
|
||||
routesBucket []byte
|
||||
appsBucket []byte
|
||||
logsBucket []byte
|
||||
extrasBucket []byte
|
||||
callsBucket []byte
|
||||
routesBucket []byte
|
||||
appsBucket []byte
|
||||
logsBucket []byte
|
||||
extrasBucket []byte
|
||||
callsBucket []byte
|
||||
db *bolt.DB
|
||||
log logrus.FieldLogger
|
||||
}
|
||||
@@ -53,7 +53,8 @@ func New(url *url.URL) (models.Datastore, error) {
|
||||
extrasBucketName := []byte(bucketPrefix + "extras") // todo: think of a better name
|
||||
callsBucketName := []byte(bucketPrefix + "calls")
|
||||
err = db.Update(func(tx *bolt.Tx) error {
|
||||
for _, name := range [][]byte{routesBucketName, appsBucketName, logsBucketName, extrasBucketName, callsBucketName} {
|
||||
for _, name := range [][]byte{routesBucketName, appsBucketName, logsBucketName,
|
||||
extrasBucketName, callsBucketName} {
|
||||
_, err := tx.CreateBucketIfNotExists(name)
|
||||
if err != nil {
|
||||
log.WithError(err).WithFields(logrus.Fields{"name": name}).Error("create bucket")
|
||||
@@ -68,11 +69,11 @@ func New(url *url.URL) (models.Datastore, error) {
|
||||
}
|
||||
|
||||
ds := &BoltDatastore{
|
||||
routesBucket: routesBucketName,
|
||||
appsBucket: appsBucketName,
|
||||
logsBucket: logsBucketName,
|
||||
extrasBucket: extrasBucketName,
|
||||
callsBucket: callsBucketName,
|
||||
routesBucket: routesBucketName,
|
||||
appsBucket: appsBucketName,
|
||||
logsBucket: logsBucketName,
|
||||
extrasBucket: extrasBucketName,
|
||||
callsBucket: callsBucketName,
|
||||
db: db,
|
||||
log: log,
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ import (
|
||||
"gitlab-odx.oracle.com/odx/functions/api/models"
|
||||
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
@@ -30,14 +28,6 @@ func setLogBuffer() *bytes.Buffer {
|
||||
return &buf
|
||||
}
|
||||
|
||||
func GetContainerHostIP() string {
|
||||
dockerHost := os.Getenv("DOCKER_HOST")
|
||||
if dockerHost == "" {
|
||||
return "127.0.0.1"
|
||||
}
|
||||
parts, _ := url.Parse(dockerHost)
|
||||
return parts.Hostname()
|
||||
}
|
||||
|
||||
func Test(t *testing.T, ds models.Datastore) {
|
||||
buf := setLogBuffer()
|
||||
|
||||
@@ -15,6 +15,13 @@ type RowScanner interface {
|
||||
Scan(dest ...interface{}) error
|
||||
}
|
||||
|
||||
func ScanLog(scanner RowScanner, log *models.FnCallLog) error {
|
||||
return scanner.Scan(
|
||||
&log.CallID,
|
||||
&log.Log,
|
||||
)
|
||||
}
|
||||
|
||||
func ScanRoute(scanner RowScanner, route *models.Route) error {
|
||||
var headerStr string
|
||||
var configStr string
|
||||
|
||||
@@ -15,10 +15,10 @@ type mock struct {
|
||||
}
|
||||
|
||||
func NewMock() models.Datastore {
|
||||
return NewMockInit(nil, nil, nil)
|
||||
return NewMockInit(nil, nil, nil, nil)
|
||||
}
|
||||
|
||||
func NewMockInit(apps models.Apps, routes models.Routes, calls models.FnCalls) models.Datastore {
|
||||
func NewMockInit(apps models.Apps, routes models.Routes, calls models.FnCalls, logs []*models.FnCallLog) models.Datastore {
|
||||
if apps == nil {
|
||||
apps = models.Apps{}
|
||||
}
|
||||
@@ -28,6 +28,9 @@ func NewMockInit(apps models.Apps, routes models.Routes, calls models.FnCalls) m
|
||||
if calls == nil {
|
||||
calls = models.FnCalls{}
|
||||
}
|
||||
if logs == nil {
|
||||
logs = []*models.FnCallLog{}
|
||||
}
|
||||
return datastoreutil.NewValidator(&mock{apps, routes, calls, make(map[string][]byte)})
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,8 @@ type MySQLDatastore struct {
|
||||
New creates a new MySQL Datastore.
|
||||
*/
|
||||
func New(url *url.URL) (models.Datastore, error) {
|
||||
tables := []string{routesTableCreate, appsTableCreate, extrasTableCreate, callTableCreate}
|
||||
tables := []string{routesTableCreate, appsTableCreate,
|
||||
extrasTableCreate, callTableCreate}
|
||||
dialect := "mysql"
|
||||
sqlDatastore := &MySQLDatastore{}
|
||||
dataSourceName := fmt.Sprintf("%s@%s%s", url.User.String(), url.Host, url.Path)
|
||||
|
||||
@@ -53,6 +53,7 @@ const callsTableCreate = `CREATE TABLE IF NOT EXISTS calls (
|
||||
|
||||
const callSelector = `SELECT id, created_at, started_at, completed_at, status, app_name, path FROM calls`
|
||||
|
||||
|
||||
type PostgresDatastore struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
@@ -317,11 +317,6 @@ func applyCallFilter(call *models.FnCall, filter *models.CallFilter) bool {
|
||||
}
|
||||
|
||||
func (ds *RedisDataStore) InsertTask(ctx context.Context, task *models.Task) error {
|
||||
_, err := ds.conn.Do("HEXISTS", "calls", task.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
taskBytes, err := json.Marshal(task)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user