MCPcopy
hub / github.com/cortexlabs/cortex / UpdateAPI

Function UpdateAPI

pkg/operator/resources/resources.go:122–167  ·  view source on GitHub ↗
(apiConfig *userconfig.API, force bool)

Source from the content-addressed store, hash-verified

120}
121
122func UpdateAPI(apiConfig *userconfig.API, force bool) (*schema.APIResponse, string, error) {
123 deployedResource, err := GetDeployedResourceByNameOrNil(apiConfig.Name)
124 if err != nil {
125 return nil, "", err
126 }
127
128 if deployedResource != nil && deployedResource.Kind != apiConfig.Kind {
129 return nil, "", ErrorCannotChangeKindOfDeployedAPI(apiConfig.Name, apiConfig.Kind, deployedResource.Kind)
130 }
131
132 telemetry.Event("operator.deploy", apiConfig.TelemetryEvent())
133
134 var api *spec.API
135 var msg string
136 switch apiConfig.Kind {
137 case userconfig.RealtimeAPIKind:
138 api, msg, err = realtimeapi.UpdateAPI(apiConfig, force)
139 case userconfig.BatchAPIKind:
140 api, msg, err = batchapi.UpdateAPI(apiConfig)
141 case userconfig.TaskAPIKind:
142 api, msg, err = taskapi.UpdateAPI(apiConfig)
143 case userconfig.AsyncAPIKind:
144 api, msg, err = asyncapi.UpdateAPI(*apiConfig, force)
145 case userconfig.TrafficSplitterKind:
146 api, msg, err = trafficsplitter.UpdateAPI(apiConfig)
147 default:
148 return nil, "", ErrorOperationIsOnlySupportedForKind(
149 *deployedResource, userconfig.RealtimeAPIKind,
150 userconfig.AsyncAPIKind,
151 userconfig.BatchAPIKind,
152 userconfig.TrafficSplitterKind,
153 userconfig.TaskAPIKind,
154 ) // unexpected
155 }
156
157 if err == nil && api != nil {
158 apiEndpoint, _ := operator.APIEndpoint(api)
159
160 return &schema.APIResponse{
161 Spec: api,
162 Endpoint: &apiEndpoint,
163 }, msg, nil
164 }
165
166 return nil, msg, err
167}
168
169func RefreshAPI(apiName string, force bool) (string, error) {
170 deployedResource, err := GetDeployedResourceByName(apiName)

Callers 1

DeployFunction · 0.70

Calls 11

EventFunction · 0.92
UpdateAPIFunction · 0.92
UpdateAPIFunction · 0.92
UpdateAPIFunction · 0.92
UpdateAPIFunction · 0.92
UpdateAPIFunction · 0.92
APIEndpointFunction · 0.92
TelemetryEventMethod · 0.45

Tested by

no test coverage detected