@@ -13,6 +13,7 @@ import (
1313
1414var (
1515 ec2METAENDPOINT = "http://169.254.169.254/"
16+ ecsMETAENDPOINT = "http://100.100.100.200/"
1617 containerLogsLocation = "/var/modaemon/containerlogs"
1718)
1819
@@ -36,42 +37,44 @@ func FetchContainerState() string {
3637 return strings .TrimSpace (string (dat ))
3738}
3839
39- func GetServerID (s ... string ) (string , error ) {
40- var sid string
41-
42- if len (s ) == 0 {
43- s = append (s , "aws" )
44- }
45-
46- switch s [0 ] {
47- case "aws" :
48- sid = getServerIDforEC2 ()
49- default :
50- return sid , errors .New ("Provider `" + s [0 ] + "` is not supported." )
40+ func GetServerID (s string ) (string , error ) {
41+ sid , err := getServerID (s )
42+ if err != nil {
43+ return "" , err
5144 }
5245
5346 return sid , nil
5447}
5548
56- func getServerIDforEC2 () string {
49+ func getServerID ( provider string ) ( string , error ) {
5750 timeout := time .Duration (5 * time .Second )
5851 client := http.Client {
5952 Timeout : timeout ,
6053 }
6154
62- resp , err := client .Get (ec2METAENDPOINT + "/latest/meta-data/instance-id" )
55+ var endpoint string
56+ switch provider {
57+ case "aws" :
58+ endpoint = ec2METAENDPOINT + "/latest/meta-data/instance-id"
59+ case "alicloud" :
60+ endpoint = ecsMETAENDPOINT + "/latest/meta-data/instance-id"
61+ default :
62+ return "" , errors .New ("Provider `" + provider + "` is not supported." )
63+ }
64+
65+ resp , err := client .Get (endpoint )
6366 if err != nil {
6467 log .Warnf ("%#v" , err )
65- return ""
68+ return "" , errors . New ( "Failed to get ServerID" )
6669 }
6770
6871 defer resp .Body .Close ()
6972
7073 body , err := ioutil .ReadAll (resp .Body )
7174 if err != nil {
7275 log .Warnf ("%#v" , err )
73- return ""
76+ return "" , errors . New ( "Failed to get ServerID" )
7477 }
7578
76- return string (body )
79+ return string (body ), nil
7780}
0 commit comments