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

Function RefreshAPI

pkg/operator/resources/realtimeapi/api.go:112–155  ·  view source on GitHub ↗
(apiName string, force bool)

Source from the content-addressed store, hash-verified

110}
111
112func RefreshAPI(apiName string, force bool) (string, error) {
113 prevDeployment, prevService, prevVirtualService, err := getK8sResources(apiName)
114 if err != nil {
115 return "", err
116 } else if prevDeployment == nil || prevVirtualService == nil {
117 return "", errors.ErrorUnexpected("unable to find deployment", apiName)
118 }
119
120 isUpdating, err := isAPIUpdating(prevDeployment)
121 if err != nil {
122 return "", err
123 }
124
125 if isUpdating && !force {
126 return "", ErrorAPIUpdating(apiName)
127 }
128
129 apiID, err := k8s.GetLabel(prevDeployment, "apiID")
130 if err != nil {
131 return "", err
132 }
133
134 api, err := operator.DownloadAPISpec(apiName, apiID)
135 if err != nil {
136 return "", err
137 }
138
139 initialDeploymentTime, err := k8s.ParseInt64Label(prevVirtualService, "initialDeploymentTime")
140 if err != nil {
141 return "", err
142 }
143
144 api = spec.GetAPISpec(api.API, initialDeploymentTime, generateDeploymentID(), config.ClusterConfig.ClusterUID)
145
146 if err := config.AWS.UploadJSONToS3(api, config.ClusterConfig.Bucket, api.Key); err != nil {
147 return "", errors.Wrap(err, "upload api spec")
148 }
149
150 if err := applyK8sResources(api, prevDeployment, prevService, prevVirtualService); err != nil {
151 return "", err
152 }
153
154 return fmt.Sprintf("updating %s", api.Resource.UserString()), nil
155}
156
157func DeleteAPI(apiName string, keepCache bool) error {
158 err := parallel.RunFirstErr(

Callers 1

RefreshAPIFunction · 0.92

Calls 13

ErrorUnexpectedFunction · 0.92
GetLabelFunction · 0.92
DownloadAPISpecFunction · 0.92
ParseInt64LabelFunction · 0.92
GetAPISpecFunction · 0.92
WrapFunction · 0.92
UploadJSONToS3Method · 0.80
getK8sResourcesFunction · 0.70
isAPIUpdatingFunction · 0.70
ErrorAPIUpdatingFunction · 0.70
generateDeploymentIDFunction · 0.70
applyK8sResourcesFunction · 0.70

Tested by

no test coverage detected