mirror of
https://github.com/ultravioletrs/cocos.git
synced 2026-08-07 15:26:26 +00:00
ecad6514f3
* new agent structure Signed-off-by: Sammy Oina <sammyoina@gmail.com> * minor fixes and testing Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix lint Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix tests Signed-off-by: Sammy Oina <sammyoina@gmail.com> * cvm tests fix Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix test Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix cli test Signed-off-by: Sammy Oina <sammyoina@gmail.com> * rename Signed-off-by: Sammy Oina <sammyoina@gmail.com> * rename cvm to cvms plural Signed-off-by: Sammy Oina <sammyoina@gmail.com> * rename service Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix tests Signed-off-by: Sammy Oina <sammyoina@gmail.com> * remove context Signed-off-by: Sammy Oina <sammyoina@gmail.com> * refactor: reorder parameters in NewAlgorithm functions and update CVMClient to CVMSClient Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix(tests): update SendEvent mock to include an additional parameter Signed-off-by: Sammy Oina <sammyoina@gmail.com> * move expectations Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix(tests): move event initialization to the correct scope in service tests Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix(tests): update SendEvent mock to use EXPECT instead of On in service tests Signed-off-by: Sammy Oina <sammyoina@gmail.com> --------- Signed-off-by: Sammy Oina <sammyoina@gmail.com>
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
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"
|
|
AlgoTypeDocker AlgorithType = "docker"
|
|
AlgoTypeKey = "algo_type"
|
|
AlgoArgsKey = "algo_args"
|
|
|
|
ResultsDir = "results"
|
|
DatasetsDir = "datasets"
|
|
AlgoWorkingDir = "/cocos"
|
|
)
|
|
|
|
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]
|
|
}
|
|
|
|
func AlgorithmArgsToContext(ctx context.Context, algoArgs []string) context.Context {
|
|
for _, arg := range algoArgs {
|
|
ctx = metadata.AppendToOutgoingContext(ctx, AlgoArgsKey, arg)
|
|
}
|
|
return ctx
|
|
}
|
|
|
|
func AlgorithmArgsFromContext(ctx context.Context) []string {
|
|
return metadata.ValueFromIncomingContext(ctx, AlgoArgsKey)
|
|
}
|
|
|
|
// Algorithm is an interface that specifies the API for an algorithm.
|
|
type Algorithm interface {
|
|
// Run executes the algorithm and returns the result.
|
|
Run() error
|
|
|
|
// Stop stops the algorithm.
|
|
Stop() error
|
|
}
|