@@ -32,21 +32,22 @@ import (
3232 istioclientnetworking "istio.io/client-go/pkg/apis/networking/v1beta1"
3333)
3434
35- func UpdateAPI (apiConfig * userconfig.API , force bool ) (* spec.API , string , error ) {
35+ // UpdateAPI creates or updates a traffic splitter API kind
36+ func UpdateAPI (apiConfig * userconfig.API ) (* spec.API , string , error ) {
3637 prevVirtualService , err := config .K8s .GetVirtualService (operator .K8sName (apiConfig .Name ))
3738 if err != nil {
3839 return nil , "" , err
3940 }
4041
4142 api := spec .GetAPISpec (apiConfig , "" , "" , config .ClusterName ())
4243 if prevVirtualService == nil {
43- if err := config .AWS . UploadJSONToS3 (api , config . CoreConfig . Bucket , api .Key ); err != nil {
44- return nil , "" , errors .Wrap (err , "upload api spec" )
44+ if err := config .UploadJSONToBucket (api , api .Key ); err != nil {
45+ return nil , "" , errors .Wrap (err , "failed to upload api spec" )
4546 }
4647
4748 if err := applyK8sVirtualService (api , prevVirtualService ); err != nil {
4849 routines .RunWithPanicHandler (func () {
49- deleteK8sResources (api .Name )
50+ _ = deleteK8sResources (api .Name )
5051 })
5152 return nil , "" , err
5253 }
@@ -55,8 +56,8 @@ func UpdateAPI(apiConfig *userconfig.API, force bool) (*spec.API, string, error)
5556 }
5657
5758 if prevVirtualService .Labels ["specID" ] != api .SpecID {
58- if err := config .AWS . UploadJSONToS3 (api , config . CoreConfig . Bucket , api .Key ); err != nil {
59- return nil , "" , errors .Wrap (err , "upload api spec" )
59+ if err := config .UploadJSONToBucket (api , api .Key ); err != nil {
60+ return nil , "" , errors .Wrap (err , "failed to upload api spec" )
6061 }
6162
6263 if err := applyK8sVirtualService (api , prevVirtualService ); err != nil {
@@ -69,6 +70,7 @@ func UpdateAPI(apiConfig *userconfig.API, force bool) (*spec.API, string, error)
6970 return api , fmt .Sprintf ("%s is up to date" , api .Resource .UserString ()), nil
7071}
7172
73+ // DeleteAPI deletes all the resources related to a given traffic splitter API
7274func DeleteAPI (apiName string , keepCache bool ) error {
7375 err := parallel .RunFirstErr (
7476 func () error {
@@ -79,7 +81,7 @@ func DeleteAPI(apiName string, keepCache bool) error {
7981 return nil
8082 }
8183 // best effort deletion
82- deleteS3Resources (apiName )
84+ _ = deleteS3Resources (apiName )
8385 return nil
8486 },
8587 )
@@ -115,10 +117,13 @@ func getTrafficSplitterDestinations(trafficSplitter *spec.API) []k8s.Destination
115117 return destinations
116118}
117119
120+ // GetAllAPIs returns a list of metadata, in the form of schema.APIResponse, about all the created traffic splitter APIs
118121func GetAllAPIs (virtualServices []istioclientnetworking.VirtualService ) ([]schema.APIResponse , error ) {
119- apiNames := []string {}
120- apiIDs := []string {}
121- trafficSplitters := []schema.APIResponse {}
122+ var (
123+ apiNames []string
124+ apiIDs []string
125+ trafficSplitters []schema.APIResponse
126+ )
122127
123128 for _ , virtualService := range virtualServices {
124129 if virtualService .Labels ["apiKind" ] == userconfig .TrafficSplitterKind .String () {
@@ -147,6 +152,7 @@ func GetAllAPIs(virtualServices []istioclientnetworking.VirtualService) ([]schem
147152 return trafficSplitters , nil
148153}
149154
155+ // GetAPIByName retrieves the metadata, in the form of schema.APIResponse, of a single traffic splitter API
150156func GetAPIByName (deployedResource * operator.DeployedResource ) ([]schema.APIResponse , error ) {
151157 api , err := operator .DownloadAPISpec (deployedResource .Name , deployedResource .VirtualService .Labels ["apiID" ])
152158 if err != nil {
@@ -173,5 +179,5 @@ func deleteK8sResources(apiName string) error {
173179
174180func deleteS3Resources (apiName string ) error {
175181 prefix := filepath .Join (config .ClusterName (), "apis" , apiName )
176- return config .AWS . DeleteS3Dir ( config . CoreConfig . Bucket , prefix , true )
182+ return config .DeleteBucketDir ( prefix , true )
177183}
0 commit comments