Support for time-to-live
[ric-plt/alarm-go.git] / alarm / alarm.go
index d097c73..f8d909a 100755 (executable)
@@ -55,8 +55,10 @@ func InitAlarm(mo, id string) (*RICAlarm, error) {
                r.managerUrl = os.Getenv("ALARM_MANAGER_URL")
        }
 
-       if os.Getenv("ALARM_IF_RMR") != "" {
-               go InitRMR(r)
+       if os.Getenv("ALARM_IF_RMR") == "" {
+               go InitRMR(r, "")
+       } else {
+               go InitRMR(r, ALARM_MANAGER_RMR_URL)
        }
 
        return r, nil
@@ -136,6 +138,7 @@ func (r *RICAlarm) AlarmString(a AlarmMessage) string {
 }
 
 func (r *RICAlarm) sendAlarmUpdateReq(a AlarmMessage) error {
+
        payload, err := json.Marshal(a)
        if err != nil {
                log.Println("json.Marshal failed with error: ", err)
@@ -162,6 +165,7 @@ func (r *RICAlarm) sendAlarmUpdateReq(a AlarmMessage) error {
                log.Println("rmrSend failed with error: ", state)
                return errors.New(fmt.Sprintf("rmrSend failed with error: %d", state))
        }
+
        return nil
 }
 
@@ -176,13 +180,14 @@ func (r *RICAlarm) ReceiveMessage(cb func(AlarmMessage)) error {
        return errors.New("rmrRcv failed!")
 }
 
-func InitRMR(r *RICAlarm) error {
+func InitRMR(r *RICAlarm, endpoint string) error {
        // Setup static RT for alarm system
-       endpoint := ALARM_MANAGER_RMR_URL
-       if r.moId == "my-pod" {
-               endpoint = "127.0.0.1:4560"
-       } else if r.moId == "my-pod-lib" {
-               endpoint = "127.0.0.1:4588"
+       if endpoint == "" {
+               if r.moId == "my-pod" {
+                       endpoint = "127.0.0.1:4560"
+               } else if r.moId == "my-pod-lib" {
+                       endpoint = "127.0.0.1:4588"
+               }
        }
 
        alarmRT := fmt.Sprintf("newrt|start\nrte|13111|%s\nnewrt|end\n", endpoint)
@@ -204,3 +209,7 @@ func InitRMR(r *RICAlarm) error {
 
        return errors.New("rmrInit failed!")
 }
+
+func (r *RICAlarm) IsRMRReady() bool {
+       return r.rmrReady
+}