functionTable

package
v0.1.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Confirm

func Confirm(ctx *cli.Context, function *structureSpec.Function, prompt string) bool

func List

func List(functions []*structureSpec.Function)
Example
package main

import (
	structureSpec "github.com/taubyte/go-specs/structure"
	functionTable "github.com/taubyte/tau-cli/table/function"
)

func main() {
	functions := []*structureSpec.Function{
		{
			Id:   "QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH",
			Name: "someFunction1",
			Call: "ping",
		},
		{
			Id:   "QmbUIDhRosp5BaXDASEWSCtpkQCgQCPdRVhnxjiSHfXdC0",
			Name: "someFunction2",
			Call: "testlib.ping",
		},
	}

	functionTable.List(functions)

}
Output:

┌─────────────────┬───────────────┬──────────────┐
│ ID              │ NAME          │ CALL         │
├─────────────────┼───────────────┼──────────────┤
│ QmbAA8...HfXdWH │ someFunction1 │ ping         │
├─────────────────┼───────────────┼──────────────┤
│ QmbUID...HfXdC0 │ someFunction2 │ testlib.ping │
└─────────────────┴───────────────┴──────────────┘

func Query

func Query(function *structureSpec.Function)
Example (Http)
package main

import (
	"time"

	"github.com/alecthomas/units"
	structureSpec "github.com/taubyte/go-specs/structure"
	"github.com/taubyte/tau-cli/common"

	functionTable "github.com/taubyte/tau-cli/table/function"
)

func getDefaultFunction() *structureSpec.Function {
	return &structureSpec.Function{
		Id:      "QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH",
		Name:    "someProject",
		Tags:    []string{"function_tag_1", "function_tag_2"},
		Timeout: uint64(20 * time.Second),
		Memory:  uint64(32 * units.GB),
		Call:    "ping",
		Source:  ".",
	}
}

func main() {
	function := getDefaultFunction()
	function.Description = "an http function for a simple ping"
	function.Type = common.FunctionTypeHttp
	function.Domains = []string{"test_domain1"}
	function.Method = "get"
	function.Paths = []string{"/ping"}

	functionTable.Query(function)

}
Output:

┌─────────────┬────────────────────────────────────────────────┐
│ ID          │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │
├─────────────┼────────────────────────────────────────────────┤
│ Name        │ someProject                                    │
├─────────────┼────────────────────────────────────────────────┤
│ Description │ an http function for a simple ping             │
├─────────────┼────────────────────────────────────────────────┤
│ Tags        │ function_tag_1, function_tag_2                 │
├─────────────┼────────────────────────────────────────────────┤
│ Type        │ http                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Timeout     │ 20s                                            │
├─────────────┼────────────────────────────────────────────────┤
│ Memory      │ 32GB                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Method      │ get                                            │
├─────────────┼────────────────────────────────────────────────┤
│ Domains     │ test_domain1                                   │
├─────────────┼────────────────────────────────────────────────┤
│ Paths       │ /ping                                          │
├─────────────┼────────────────────────────────────────────────┤
│ Source      │ .                                              │
├─────────────┼────────────────────────────────────────────────┤
│ Call        │ ping                                           │
└─────────────┴────────────────────────────────────────────────┘
Example (P2p)
package main

import (
	"time"

	"github.com/alecthomas/units"
	structureSpec "github.com/taubyte/go-specs/structure"
	"github.com/taubyte/tau-cli/common"

	functionTable "github.com/taubyte/tau-cli/table/function"
)

func getDefaultFunction() *structureSpec.Function {
	return &structureSpec.Function{
		Id:      "QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH",
		Name:    "someProject",
		Tags:    []string{"function_tag_1", "function_tag_2"},
		Timeout: uint64(20 * time.Second),
		Memory:  uint64(32 * units.GB),
		Call:    "ping",
		Source:  ".",
	}
}

func main() {
	function := getDefaultFunction()
	function.Description = "a p2p function for a simple ping"
	function.Type = common.FunctionTypeP2P
	function.Protocol = "/test/v1"
	function.Command = "ping"
	function.Local = true

	functionTable.Query(function)

}
Output:

┌─────────────┬────────────────────────────────────────────────┐
│ ID          │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │
├─────────────┼────────────────────────────────────────────────┤
│ Name        │ someProject                                    │
├─────────────┼────────────────────────────────────────────────┤
│ Description │ a p2p function for a simple ping               │
├─────────────┼────────────────────────────────────────────────┤
│ Tags        │ function_tag_1, function_tag_2                 │
├─────────────┼────────────────────────────────────────────────┤
│ Type        │ p2p                                            │
├─────────────┼────────────────────────────────────────────────┤
│ Timeout     │ 20s                                            │
├─────────────┼────────────────────────────────────────────────┤
│ Memory      │ 32GB                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Protocol    │ /test/v1                                       │
├─────────────┼────────────────────────────────────────────────┤
│ Command     │ ping                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Local       │ true                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Source      │ .                                              │
├─────────────┼────────────────────────────────────────────────┤
│ Call        │ ping                                           │
└─────────────┴────────────────────────────────────────────────┘
Example (Pubsub)
package main

import (
	"time"

	"github.com/alecthomas/units"
	structureSpec "github.com/taubyte/go-specs/structure"
	"github.com/taubyte/tau-cli/common"

	functionTable "github.com/taubyte/tau-cli/table/function"
)

func getDefaultFunction() *structureSpec.Function {
	return &structureSpec.Function{
		Id:      "QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH",
		Name:    "someProject",
		Tags:    []string{"function_tag_1", "function_tag_2"},
		Timeout: uint64(20 * time.Second),
		Memory:  uint64(32 * units.GB),
		Call:    "ping",
		Source:  ".",
	}
}

func main() {
	function := getDefaultFunction()
	function.Description = "a pubsub function for a simple ping"
	function.Type = common.FunctionTypePubSub
	function.Channel = "test_channel"

	functionTable.Query(function)

}
Output:

┌─────────────┬────────────────────────────────────────────────┐
│ ID          │ QmbAA8hRosp5BaXFXikADCtpkQCgQCPdRVhnxjiSHfXdWH │
├─────────────┼────────────────────────────────────────────────┤
│ Name        │ someProject                                    │
├─────────────┼────────────────────────────────────────────────┤
│ Description │ a pubsub function for a simple ping            │
├─────────────┼────────────────────────────────────────────────┤
│ Tags        │ function_tag_1, function_tag_2                 │
├─────────────┼────────────────────────────────────────────────┤
│ Type        │ pubsub                                         │
├─────────────┼────────────────────────────────────────────────┤
│ Timeout     │ 20s                                            │
├─────────────┼────────────────────────────────────────────────┤
│ Memory      │ 32GB                                           │
├─────────────┼────────────────────────────────────────────────┤
│ Channel     │ test_channel                                   │
├─────────────┼────────────────────────────────────────────────┤
│ Local       │ false                                          │
├─────────────┼────────────────────────────────────────────────┤
│ Source      │ .                                              │
├─────────────┼────────────────────────────────────────────────┤
│ Call        │ ping                                           │
└─────────────┴────────────────────────────────────────────────┘

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL