github.com/fafucoder/cilium@v1.6.11/cilium/cmd/service_delete.go (about) 1 // Copyright 2017 Authors of Cilium 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package cmd 16 17 import ( 18 "fmt" 19 "strconv" 20 21 "github.com/cilium/cilium/pkg/logging/logfields" 22 "github.com/spf13/cobra" 23 ) 24 25 var deleteAll bool 26 27 // serviceDeleteCmd represents the service_delete command 28 var serviceDeleteCmd = &cobra.Command{ 29 Use: "delete { <service id> | --all }", 30 Short: "Delete a service", 31 Run: func(cmd *cobra.Command, args []string) { 32 if deleteAll { 33 list, err := client.GetServices() 34 if err != nil { 35 Fatalf("Cannot get list of services: %s", err) 36 } 37 38 for _, svc := range list { 39 if svc.Status == nil || svc.Status.Realized == nil { 40 log.Error("Skipping service due to empty state") 41 continue 42 } 43 44 if err := client.DeleteServiceID(svc.Status.Realized.ID); err != nil { 45 log.WithError(err).WithField(logfields.ServiceID, svc.Status.Realized.ID).Error("Cannot delete service") 46 } 47 } 48 49 return 50 } 51 52 requireServiceID(cmd, args) 53 if id, err := strconv.ParseInt(args[0], 0, 64); err != nil { 54 Fatalf("%s", err) 55 } else { 56 if err := client.DeleteServiceID(id); err != nil { 57 Fatalf("%s", err) 58 } 59 60 fmt.Printf("Service %d deleted successfully\n", id) 61 } 62 }, 63 } 64 65 func init() { 66 serviceCmd.AddCommand(serviceDeleteCmd) 67 serviceDeleteCmd.Flags().BoolVarP(&deleteAll, "all", "", false, "Delete all services") 68 }