@@ -49,30 +49,28 @@ func UpdateAPI(apiConfig *userconfig.API, projectID string, force bool) (*spec.A
4949 api := getAPISpec (apiConfig , projectID , deploymentID )
5050
5151 if prevDeployment == nil {
52- err = config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key )
53- if err != nil {
52+ if err := config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key ); err != nil {
5453 return nil , "" , errors .Wrap (err , "upload api spec" )
5554 }
56- if err = applyK8sResources (api , prevDeployment , prevService , prevVirtualService ); err != nil {
55+ if err : = applyK8sResources (api , prevDeployment , prevService , prevVirtualService ); err != nil {
5756 go deleteK8sResources (api .Name )
5857 return nil , "" , err
5958 }
6059 return api , fmt .Sprintf ("creating %s api" , api .Name ), nil
6160 }
6261
63- if ! areDeploymentsEqual (prevDeployment , deploymentSpec (api , prevDeployment )) {
62+ if ! areAPIsEqual (prevDeployment , deploymentSpec (api , prevDeployment )) {
6463 isUpdating , err := isAPIUpdating (prevDeployment )
6564 if err != nil {
6665 return nil , "" , err
6766 }
6867 if isUpdating && ! force {
6968 return nil , "" , errors .New (fmt .Sprintf ("%s api is updating (override with --force)" , api .Name ))
7069 }
71- err = config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key )
72- if err != nil {
70+ if err := config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key ); err != nil {
7371 return nil , "" , errors .Wrap (err , "upload api spec" )
7472 }
75- if err = applyK8sResources (api , prevDeployment , prevService , prevVirtualService ); err != nil {
73+ if err : = applyK8sResources (api , prevDeployment , prevService , prevVirtualService ); err != nil {
7674 return nil , "" , err
7775 }
7876 return api , fmt .Sprintf ("updating %s api" , api .Name ), nil
@@ -101,6 +99,7 @@ func RefreshAPI(apiName string, force bool) (string, error) {
10199 if err != nil {
102100 return "" , err
103101 }
102+
104103 if isUpdating && ! force {
105104 return "" , errors .New (fmt .Sprintf ("%s api is updating (override with --force)" , apiName ))
106105 }
@@ -117,8 +116,7 @@ func RefreshAPI(apiName string, force bool) (string, error) {
117116
118117 api = getAPISpec (api .API , api .ProjectID , k8s .RandomName ())
119118
120- err = config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key )
121- if err != nil {
119+ if err := config .AWS .UploadMsgpackToS3 (api , * config .Cluster .Bucket , api .Key ); err != nil {
122120 return "" , errors .Wrap (err , "upload api spec" )
123121 }
124122
@@ -149,11 +147,7 @@ func DeleteAPI(apiName string, keepCache bool) error {
149147 return nil
150148}
151149
152- func getAPISpec (
153- apiConfig * userconfig.API ,
154- projectID string ,
155- deploymentID string ,
156- ) * spec.API {
150+ func getAPISpec (apiConfig * userconfig.API , projectID string , deploymentID string ) * spec.API {
157151 var buf bytes.Buffer
158152 buf .WriteString (apiConfig .Name )
159153 buf .WriteString (* apiConfig .Endpoint )
@@ -175,13 +169,7 @@ func getAPISpec(
175169 }
176170}
177171
178- func getK8sResources (apiConfig * userconfig.API ) (
179- * kapps.Deployment ,
180- * kcore.Service ,
181- * kunstructured.Unstructured ,
182- error ,
183- ) {
184-
172+ func getK8sResources (apiConfig * userconfig.API ) (* kapps.Deployment , * kcore.Service , * kunstructured.Unstructured , error ) {
185173 var deployment * kapps.Deployment
186174 var service * kcore.Service
187175 var virtualService * kunstructured.Unstructured
@@ -207,13 +195,7 @@ func getK8sResources(apiConfig *userconfig.API) (
207195 return deployment , service , virtualService , err
208196}
209197
210- func applyK8sResources (
211- api * spec.API ,
212- prevDeployment * kapps.Deployment ,
213- prevService * kcore.Service ,
214- prevVirtualService * kunstructured.Unstructured ,
215- ) error {
216-
198+ func applyK8sResources (api * spec.API , prevDeployment * kapps.Deployment , prevService * kcore.Service , prevVirtualService * kunstructured.Unstructured ) error {
217199 return parallel .RunFirstErr (
218200 func () error {
219201 return applyK8sDeployment (api , prevDeployment )
@@ -307,6 +289,7 @@ func isAPIUpdating(deployment *kapps.Deployment) (bool, error) {
307289 if err != nil {
308290 return false , err
309291 }
292+
310293 replicaCounts := getReplicaCounts (deployment , pods )
311294
312295 minReplicas , ok := s .ParseInt32 (deployment .Labels ["minReplicas" ])
@@ -321,24 +304,16 @@ func isAPIUpdating(deployment *kapps.Deployment) (bool, error) {
321304 return false , nil
322305}
323306
324- func areDeploymentsEqual (d1 , d2 * kapps.Deployment ) bool {
325- return deploymentsMatch (d1 , d2 ) &&
326- k8s .PodComputesEqual (& d1 .Spec .Template .Spec , & d2 .Spec .Template .Spec )
327- }
328-
329307func isPodSpecLatest (deployment * kapps.Deployment , pod * kcore.Pod ) bool {
330- return podLabelsEqual (deployment .Spec .Template .Labels , pod .Labels ) &&
331- k8s .PodComputesEqual (& deployment .Spec .Template .Spec , & pod .Spec )
332- }
333-
334- func podLabelsEqual (labels1 , labels2 map [string ]string ) bool {
335- return labels1 ["apiName" ] == labels2 ["apiName" ] &&
336- labels1 ["apiID" ] == labels2 ["apiID" ] &&
337- labels1 ["deploymentID" ] == labels2 ["deploymentID" ]
308+ return k8s .PodComputesEqual (& deployment .Spec .Template .Spec , & pod .Spec ) &&
309+ deployment .Spec .Template .Labels ["apiName" ] == pod .Labels ["apiName" ] &&
310+ deployment .Spec .Template .Labels ["apiID" ] == pod .Labels ["apiID" ] &&
311+ deployment .Spec .Template .Labels ["deploymentID" ] == pod .Labels ["deploymentID" ]
338312}
339313
340- func deploymentsMatch (d1 , d2 * kapps.Deployment ) bool {
341- return k8s .DeploymentStrategiesMatch (d1 .Spec .Strategy , d2 .Spec .Strategy ) &&
314+ func areAPIsEqual (d1 , d2 * kapps.Deployment ) bool {
315+ return k8s .PodComputesEqual (& d1 .Spec .Template .Spec , & d2 .Spec .Template .Spec ) &&
316+ k8s .DeploymentStrategiesMatch (d1 .Spec .Strategy , d2 .Spec .Strategy ) &&
342317 d1 .Labels ["apiName" ] == d2 .Labels ["apiName" ] &&
343318 d1 .Labels ["apiID" ] == d2 .Labels ["apiID" ] &&
344319 d1 .Labels ["deploymentID" ] == d2 .Labels ["deploymentID" ] &&
0 commit comments