@@ -27,39 +27,39 @@ const ActivityPause = 300
27
27
const ServiceManagerPause = 30
28
28
const CandidateExpiry = 30
29
29
30
+ func wardenLog (s string ) {
31
+ fmt .Printf ("warden: %s\n " , s )
32
+ } // WardenLog
33
+
30
34
// Start will run both the registrar and manager co-routines.
31
35
func (warden * Warden ) Start () {
32
- fmt . Println ( "Warden starting..." )
36
+ wardenLog ( " starting..." )
33
37
34
38
// fetch some runtime constants:
35
39
// get instance ID
36
40
// get current availability zone
37
- warden .region , warden .availabilityZone , warden .instanceId = warden .getInstanceIdentity (func (s string ) { fmt .Printf ("warden: %s\n " , s ) })
38
-
39
- panic (warden .instanceId )
40
-
41
- serviceManagementRedisAddress := "localhost:6379"
42
- var serviceManagementRedisDatabaseNumber int64 = 11
43
- nginxRedisAddress := "localhost:6379"
44
- var nginxRedisDatabaseNumber int64 = 15
41
+ warden .region , warden .availabilityZone , warden .instanceId = warden .getInstanceIdentity (wardenLog )
45
42
46
- var serviceDescriptionReaderConfig = "services.json"
43
+ wardenLog ( fmt . Sprintf ( "region is %s \n availability zone is %s \n instance ID is %s" , warden . region , warden . availabilityZone , warden . instanceId ))
47
44
45
+ configReader := NewConfigurationReader ("config.json" )
46
+ configuration := configReader .Read ()
47
+
48
48
var serviceDescriptionReader ServiceDescriptionReader
49
- serviceDescriptionReader = NewFileServiceDescriptionReader (serviceDescriptionReaderConfig )
49
+ serviceDescriptionReader = NewFileServiceDescriptionReader (configuration . ServiceDescriptionFilename )
50
50
51
51
warden .services = (serviceDescriptionReader ).Read ()
52
52
53
53
warden .redisServiceManagement = redis .NewClient (& redis.Options {
54
- Addr : serviceManagementRedisAddress ,
54
+ Addr : configuration . ServiceManagementRedisAddress ,
55
55
Password : "" ,
56
- DB : serviceManagementRedisDatabaseNumber ,
56
+ DB : configuration . ServiceManagementRedisDatabaseNumber ,
57
57
})
58
58
59
59
warden .redisLocal = redis .NewClient (& redis.Options {
60
- Addr : nginxRedisAddress ,
60
+ Addr : configuration . NginxRedisAddress ,
61
61
Password : "" ,
62
- DB : nginxRedisDatabaseNumber ,
62
+ DB : configuration . NginxRedisDatabaseNumber ,
63
63
})
64
64
65
65
// start registrar coroutine
@@ -70,8 +70,6 @@ func (warden *Warden) Start() {
70
70
fmt .Println ("Warden finishing..." )
71
71
} // main
72
72
73
-
74
-
75
73
func (warden * Warden ) ourAvailabilityZoneIsActive (logger func (s string )) bool {
76
74
return warden .availabilityZoneIsActive (logger , warden .availabilityZone )
77
75
} // ourAvailabilityZoneIsActive
@@ -103,28 +101,15 @@ func (warden *Warden) getInstanceIdentity(logger func(s string)) (string, string
103
101
return doc .Region , doc .AvailabilityZone , doc .InstanceID
104
102
} // getInstanceIdentity
105
103
106
- func (warden * Warden ) getAvailabilityZone (logger func (s string )) string {
107
- logger ("getting availability zone" )
108
- m := ec2metadata .New (session .New ())
109
- doc , err := m .GetInstanceIdentityDocument ()
110
- if err != nil {
111
- panic (err )
112
- }
113
- return doc .AvailabilityZone
114
- } // getAvailabilityZone
115
-
116
- func (warden * Warden ) getInstanceId (logger func (s string )) string {
117
- logger ("getting instance Id" )
104
+ func (warden * Warden ) availabilityZoneIsActive (logger func (s string ), z string ) bool {
105
+ // get list of active availability zones
106
+ activeZones := warden .getActiveAvailabilityZones (logger )
118
107
119
- return "def1"
120
- } // getInstanceId
121
-
122
- func (warden * Warden ) getRegion (logger func (s string )) string {
123
- logger ("getting region" )
124
- m := ec2metadata .New (session .New ())
125
- region , err := m .Region ()
126
- if err != nil {
127
- panic (err )
108
+ for _ , v := range activeZones {
109
+ if v == z {
110
+ return true
111
+ }
128
112
}
129
- return region
130
- } // getRegion
113
+
114
+ return false
115
+ } // availabilityZoneIsActive
0 commit comments