Skip to content

Commit

Permalink
make validate a shared helper
Browse files Browse the repository at this point in the history
  • Loading branch information
tedim52 committed Apr 25, 2024
1 parent 5bdb1fd commit 4176358
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/enclave_plan_persistence"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/enclave_structure"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/interpretation_time_value_store"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_instruction/shared_helpers"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework/builtin_argument"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework/kurtosis_plan_instruction"
Expand Down Expand Up @@ -140,7 +141,7 @@ func (builtin *AddServiceCapabilities) Interpret(locatorOfModuleInWhichThisBuilt
return nil, startosis_errors.NewInterpretationError("Unable to extract image attribute off of service config.")
}
builtin.imageVal = rawImageVal
apiServiceConfig, readyCondition, interpretationErr := ValidateAndConvertConfigAndReadyCondition(
apiServiceConfig, readyCondition, interpretationErr := shared_helpers.ValidateAndConvertConfigAndReadyCondition(
builtin.serviceNetwork,
serviceConfig,
locatorOfModuleInWhichThisBuiltInIsBeingCalled,
Expand Down Expand Up @@ -323,35 +324,3 @@ func (builtin *AddServiceCapabilities) UpdatePlan(planYaml *plan_yaml.PlanYaml)
func (builtin *AddServiceCapabilities) Description() string {
return builtin.description
}

func ValidateAndConvertConfigAndReadyCondition(
serviceNetwork service_network.ServiceNetwork,
rawConfig starlark.Value,
locatorOfModuleInWhichThisBuiltInIsBeingCalled string,
packageId string,
packageContentProvider startosis_packages.PackageContentProvider,
packageReplaceOptions map[string]string,
imageDownloadMode image_download_mode.ImageDownloadMode,
) (*service.ServiceConfig, *service_config.ReadyCondition, *startosis_errors.InterpretationError) {
config, ok := rawConfig.(*service_config.ServiceConfig)
if !ok {
return nil, nil, startosis_errors.NewInterpretationError("The '%s' argument is not a ServiceConfig (was '%s').", ConfigsArgName, reflect.TypeOf(rawConfig))
}
apiServiceConfig, interpretationErr := config.ToKurtosisType(
serviceNetwork,
locatorOfModuleInWhichThisBuiltInIsBeingCalled,
packageId,
packageContentProvider,
packageReplaceOptions,
imageDownloadMode)
if interpretationErr != nil {
return nil, nil, interpretationErr
}

readyCondition, interpretationErr := config.GetReadyCondition()
if interpretationErr != nil {
return nil, nil, interpretationErr
}

return apiServiceConfig, readyCondition, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/enclave_plan_persistence"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/enclave_structure"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/interpretation_time_value_store"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_instruction/add_service"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_instruction/shared_helpers"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework/builtin_argument"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework/kurtosis_plan_instruction"
Expand Down Expand Up @@ -125,7 +125,7 @@ func (builtin *SetServiceCapabilities) Interpret(locatorOfModuleInWhichThisBuilt
return nil, startosis_errors.NewInterpretationError("Unable to extract image attribute off of service config.")
}
builtin.imageVal = rawImageVal
apiServiceConfigOverride, _, interpretationErr := add_service.ValidateAndConvertConfigAndReadyCondition(
apiServiceConfigOverride, _, interpretationErr := shared_helpers.ValidateAndConvertConfigAndReadyCondition(
builtin.serviceNetwork,
serviceConfigOverride,
locatorOfModuleInWhichThisBuiltInIsBeingCalled,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@ package shared_helpers

import (
"context"
"github.com/kurtosis-tech/kurtosis/container-engine-lib/lib/backend_interface/objects/image_download_mode"
"github.com/kurtosis-tech/kurtosis/container-engine-lib/lib/backend_interface/objects/service"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/service_network"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_instruction/add_service"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_instruction/verify"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_types"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_types/service_config"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/recipe"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/runtime_value_store"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/startosis_errors"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/startosis_packages"
"github.com/kurtosis-tech/stacktrace"
"go.starlark.net/starlark"
"reflect"
"time"
)

Expand Down Expand Up @@ -147,3 +153,35 @@ func executeServiceAssertionWithRecipeWithTicker(
}
}
}

func ValidateAndConvertConfigAndReadyCondition(
serviceNetwork service_network.ServiceNetwork,
rawConfig starlark.Value,
locatorOfModuleInWhichThisBuiltInIsBeingCalled string,
packageId string,
packageContentProvider startosis_packages.PackageContentProvider,
packageReplaceOptions map[string]string,
imageDownloadMode image_download_mode.ImageDownloadMode,
) (*service.ServiceConfig, *service_config.ReadyCondition, *startosis_errors.InterpretationError) {
config, ok := rawConfig.(*service_config.ServiceConfig)
if !ok {
return nil, nil, startosis_errors.NewInterpretationError("The '%s' argument is not a ServiceConfig (was '%s').", add_service.ConfigsArgName, reflect.TypeOf(rawConfig))
}
apiServiceConfig, interpretationErr := config.ToKurtosisType(
serviceNetwork,
locatorOfModuleInWhichThisBuiltInIsBeingCalled,
packageId,
packageContentProvider,
packageReplaceOptions,
imageDownloadMode)
if interpretationErr != nil {
return nil, nil, interpretationErr
}

readyCondition, interpretationErr := config.GetReadyCondition()
if interpretationErr != nil {
return nil, nil, interpretationErr
}

return apiServiceConfig, readyCondition, nil
}

0 comments on commit 4176358

Please sign in to comment.