@@ -6,38 +6,41 @@ import (
66 "strings"
77)
88
9- func runAzCommand (cmd string , args ... string ) string {
9+ func runAzCommand (cmd string , args ... string ) ( string , error ) {
1010 out , err := exec .Command (cmd , args ... ).CombinedOutput ()
1111 if err != nil {
12- panic ( fmt .Sprintf ( "Failed to run %s %v: %s" , cmd , args , string (out ) ))
12+ return "" , fmt .Errorf ( "failed to run %s %v: %w \n Output: % s" , cmd , args , err , string (out ))
1313 }
14- return strings .TrimSpace (string (out ))
14+ return strings .TrimSpace (string (out )), nil
1515}
1616
17- func GetVnetGUID (rg , vnet string ) string {
17+ func GetVnetGUID (rg , vnet string ) ( string , error ) {
1818 return runAzCommand ("az" , "network" , "vnet" , "show" , "--resource-group" , rg , "--name" , vnet , "--query" , "resourceGuid" , "-o" , "tsv" )
1919}
2020
21- func GetSubnetARMID (rg , vnet , subnet string ) string {
21+ func GetSubnetARMID (rg , vnet , subnet string ) ( string , error ) {
2222 return runAzCommand ("az" , "network" , "vnet" , "subnet" , "show" , "--resource-group" , rg , "--vnet-name" , vnet , "--name" , subnet , "--query" , "id" , "-o" , "tsv" )
2323}
2424
25- func GetSubnetGUID (rg , vnet , subnet string ) string {
26- subnetID := GetSubnetARMID (rg , vnet , subnet )
25+ func GetSubnetGUID (rg , vnet , subnet string ) (string , error ) {
26+ subnetID , err := GetSubnetARMID (rg , vnet , subnet )
27+ if err != nil {
28+ return "" , err
29+ }
2730 return runAzCommand ("az" , "resource" , "show" , "--ids" , subnetID , "--api-version" , "2023-09-01" , "--query" , "properties.serviceAssociationLinks[0].properties.subnetId" , "-o" , "tsv" )
2831}
2932
30- func GetSubnetToken (rg , vnet , subnet string ) string {
33+ func GetSubnetToken (rg , vnet , subnet string ) ( string , error ) {
3134 // Optionally implement if you use subnet token override
32- return ""
35+ return "" , nil
3336}
3437
3538// GetClusterNodes returns a slice of node names from a cluster using the given kubeconfig
36- func GetClusterNodes (kubeconfig string ) []string {
39+ func GetClusterNodes (kubeconfig string ) ( []string , error ) {
3740 cmd := exec .Command ("kubectl" , "--kubeconfig" , kubeconfig , "get" , "nodes" , "-o" , "name" )
3841 out , err := cmd .CombinedOutput ()
3942 if err != nil {
40- panic ( fmt .Sprintf ( "Failed to get nodes using kubeconfig %s: %s \n %s" , kubeconfig , err , string (out ) ))
43+ return nil , fmt .Errorf ( "failed to get nodes using kubeconfig %s: %w \n Output: %s" , kubeconfig , err , string (out ))
4144 }
4245
4346 lines := strings .Split (strings .TrimSpace (string (out )), "\n " )
@@ -49,7 +52,7 @@ func GetClusterNodes(kubeconfig string) []string {
4952 nodes = append (nodes , strings .TrimPrefix (line , "node/" ))
5053 }
5154 }
52- return nodes
55+ return nodes , nil
5356}
5457
5558// EnsureNamespaceExists checks if a namespace exists and creates it if it doesn't
0 commit comments