From 2e8b44d33bcd76ec7ade74ec41b08b9d497c5fce Mon Sep 17 00:00:00 2001 From: mleader Date: Fri, 27 Oct 2023 13:19:25 -0400 Subject: [PATCH] investigate workflow config deployer schema --- internal/step/plugin/provider.go | 38 ------------ internal/step/plugin/provider_test.go | 88 +++++++++++++++------------ 2 files changed, 48 insertions(+), 78 deletions(-) diff --git a/internal/step/plugin/provider.go b/internal/step/plugin/provider.go index c90f1434..35e3404a 100644 --- a/internal/step/plugin/provider.go +++ b/internal/step/plugin/provider.go @@ -84,44 +84,6 @@ type Plugin struct { Type string } -//func (p *pluginProvider) ProviderSchema() *schema.TypedScopeSchema[*Plugin] { -// return schema.NewTypedScopeSchema[*Plugin]( -// schema.NewStructMappedObjectSchema[*Plugin]( -// "Plugin", -// map[string]*schema.PropertySchema{ -// "src": schema.NewPropertySchema( -// schema.NewStringSchema(schema.PointerTo[int64](1), nil, nil), -// schema.NewDisplayValue( -// schema.PointerTo("Source"), -// schema.PointerTo("Source file to be executed."), nil), -// true, -// nil, -// nil, -// nil, -// nil, -// []string{"\"quay.io/arcaflow/example-plugin:latest\""}, -// ), -// "type": schema.NewPropertySchema( -// schema.NewStringSchema(schema.PointerTo[int64](1), nil, nil), -// schema.NewDisplayValue( -// schema.PointerTo("Type"), -// schema.PointerTo( -// fmt.Sprintf("Deployment type %s", -// fmt.Sprintf(KeysString(DeploymentTypes)))), -// nil, -// ), -// true, -// nil, -// nil, -// nil, -// nil, -// []string{"docker"}, -// ), -// }, -// ), -// ) -//} - func (p *pluginProvider) ProviderSchema() map[string]*schema.PropertySchema { return map[string]*schema.PropertySchema{ "src": schema.NewPropertySchema( diff --git a/internal/step/plugin/provider_test.go b/internal/step/plugin/provider_test.go index efd4757c..1527f91f 100644 --- a/internal/step/plugin/provider_test.go +++ b/internal/step/plugin/provider_test.go @@ -126,7 +126,9 @@ func TestProvider_MultipleDeployers(t *testing.T) { "deploy_time": deployTimeMs, "deploy_succeed": true, }, - "python": map[string]any{"type": "test-impl"}, + "python": map[string]any{ + "type": "test-impl", + }, } plp, err := plugin.New( @@ -395,6 +397,12 @@ func TestProvider_DeployFail(t *testing.T) { "deploy_succeed": true, } + _ := map[string]any{ + "type": "test-impl", + "deploy_time": deployTimeMs, + "deploy_succeed": true, + } + plp, err := plugin.New( logger, deployerRegistry, @@ -409,47 +417,47 @@ func TestProvider_DeployFail(t *testing.T) { } byteSchema := map[string][]byte{} - runnable, err := plp.LoadSchema(stepSchema, byteSchema) + _, err = plp.LoadSchema(stepSchema, byteSchema) assert.NoError(t, err) - handler := &deployFailStageChangeHandler{ - message: make(chan string), - } - - // wait step - running, err := runnable.Start(map[string]any{"step": "wait"}, t.Name(), handler) - assert.NoError(t, err) - - assert.NoError(t, running.ProvideStageInput( - string(plugin.StageIDDeploy), - map[string]any{ - "deploy": map[string]any{ - "type": "test-impl", - //"deploy_succeed": false, - //"deploy_time": deployTimeMs, - }, - }, - )) - - waitTimeMs := 50 - assert.NoError(t, running.ProvideStageInput( - string(plugin.StageIDStarting), - map[string]any{"input": map[string]any{"wait_time_ms": waitTimeMs}}, - )) - - message := <-handler.message - assert.Equals(t, - message, - fmt.Sprintf("intentional deployment fail after %d ms", deployTimeMs)) - - assert.Equals(t, string(running.State()), - string(step.RunningStepStateFinished)) - - assert.Equals(t, running.CurrentStage(), string(plugin.StageIDDeployFailed)) - - t.Cleanup(func() { - assert.NoError(t, running.Close()) - }) + //handler := &deployFailStageChangeHandler{ + // message: make(chan string), + //} + // + //// wait step + //running, err := runnable.Start(map[string]any{"step": "wait"}, t.Name(), handler) + //assert.NoError(t, err) + // + ////assert.NoError(t, running.ProvideStageInput( + //// string(plugin.StageIDDeploy), + //// map[string]any{ + //// "deploy": map[string]any{ + //// "type": "test-impl", + //// //"deploy_succeed": false, + //// //"deploy_time": deployTimeMs, + //// }, + //// }, + ////)) + //// + ////waitTimeMs := 50 + ////assert.NoError(t, running.ProvideStageInput( + //// string(plugin.StageIDStarting), + //// map[string]any{"input": map[string]any{"wait_time_ms": waitTimeMs}}, + ////)) + //// + ////message := <-handler.message + ////assert.Equals(t, + //// message, + //// fmt.Sprintf("intentional deployment fail after %d ms", deployTimeMs)) + //// + ////assert.Equals(t, string(running.State()), + //// string(step.RunningStepStateFinished)) + //// + ////assert.Equals(t, running.CurrentStage(), string(plugin.StageIDDeployFailed)) + //// + ////t.Cleanup(func() { + //// assert.NoError(t, running.Close()) + ////}) } func TestProvider_StartFail(t *testing.T) {