mirror of
https://github.com/ultravioletrs/cocos.git
synced 2026-08-07 15:26:26 +00:00
afc306a85b
* feat(algorithm): Add wasm as an algo type Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(algorithm): Use filesystem to store results Move from unix socket for results storage to filesystem * test: test new filesystem changes Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * refactor(files): rename resultFile to resultsFilePath * feat(wasm-runtime): change from wasmtime to wasmedge Wasmedge enables easier directory mapping to get results Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(algorithm): send results as zipped directory Create a new function to zip the results directory and send it back to the user * fix(wasm): runtime argument Fix the directory mapping for wasm runtime arguments Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(errors): provide useful error message * chore(gitignore): add results zip to gitignore * feat(filesystem): Enable storing results on filesystem for python algos * refactor: revert to upstream cocos repo Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix: remove AddDataset from algorithm interface * fix: agent to handle results zipping * test: test zipping directories * refactor(agent): Handle file operations from agent * test: run test inside eos Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * refactor(test): Document and test algos are running Document steps on running the 2 python exampls and ensure they are running on eos Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix: remove witheDataset option * test: test without dataset argument Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> --------- Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
36 lines
842 B
Go
36 lines
842 B
Go
// Copyright (c) Ultraviolet
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
package algorithm
|
|
|
|
import (
|
|
"context"
|
|
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
type AlgorithType string
|
|
|
|
const (
|
|
AlgoTypeBin AlgorithType = "bin"
|
|
AlgoTypePython AlgorithType = "python"
|
|
AlgoTypeWasm AlgorithType = "wasm"
|
|
AlgoTypeKey = "algo_type"
|
|
|
|
ResultsDir = "results"
|
|
DatasetsDir = "datasets"
|
|
)
|
|
|
|
func AlgorithmTypeToContext(ctx context.Context, algoType string) context.Context {
|
|
return metadata.AppendToOutgoingContext(ctx, AlgoTypeKey, algoType)
|
|
}
|
|
|
|
func AlgorithmTypeFromContext(ctx context.Context) string {
|
|
return metadata.ValueFromIncomingContext(ctx, AlgoTypeKey)[0]
|
|
}
|
|
|
|
// Algorithm is an interface that specifies the API for an algorithm.
|
|
type Algorithm interface {
|
|
// Run executes the algorithm and returns the result.
|
|
Run() error
|
|
}
|