}
func (rh *Resthook) GetA1Health() bool {
- data, _ := rh.db.GetAll(a1MediatorNs)
- if data != nil {
- a1.Logger.Debug("Database connected and A1 is healthy")
- return true
+ _, err := rh.db.GetAll("A1m_ns")
+ if err != nil {
+ a1.Logger.Error("error in connecting to the database. err: %v", err)
+ return false
}
- return false
+ a1.Logger.Debug("A1 is healthy")
+ return true
}
func (rh *Resthook) GetAllPolicyType() []models.PolicyTypeID {
a1.Logger.Error("error : %v", err)
return err
}
- isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1PolicyRequest)
+ isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1PolicyRequest, int(policyTypeId))
if isSent {
a1.Logger.Debug("rmrSendToXapp : message sent")
} else {
return instanceMetadataMap, nil
}
+func (rh *Resthook) getPolicyInstanceStatus(policyTypeId models.PolicyTypeID, policyInstanceID models.PolicyInstanceID) (bool, error) {
+ instancehandlerKey := a1HandlerPrefix + strconv.FormatInt((int64(policyTypeId)), 10) + "." + string(policyInstanceID)
+ var keys [1]string
+ keys[0] = instancehandlerKey
+ resp, err := rh.db.Get(a1MediatorNs, keys[:])
+ if err != nil {
+ a1.Logger.Error("error1 :%+v", err)
+ return false, err
+ }
+ for _, key := range resp {
+ if key == "OK" {
+ return true, nil
+ }
+ }
+ return false, nil
+}
+
func (rh *Resthook) GetPolicyInstanceStatus(policyTypeId models.PolicyTypeID, policyInstanceID models.PolicyInstanceID) (*a1_mediator.A1ControllerGetPolicyInstanceStatusOKBody, error) {
err := rh.instanceValidity(policyTypeId, policyInstanceID)
policyInstanceStatus := a1_mediator.A1ControllerGetPolicyInstanceStatusOKBody{}
+ policyInstanceStatus.InstanceStatus = "NOT IN EFFECT"
if err != nil && err == policyInstanceNotFoundError || err == policyTypeNotFoundError {
- policyInstanceStatus.InstanceStatus = "NOT IN EFFECT"
return &policyInstanceStatus, err
}
metadata, err := rh.getMetaData(policyTypeId, policyInstanceID)
a1.Logger.Debug(" metadata %v", metadata)
if err != nil {
a1.Logger.Error("policy instance error : %v", err)
- policyInstanceStatus.InstanceStatus = "NOT IN EFFECT"
return &policyInstanceStatus, err
}
jsonbody, err := json.Marshal(metadata)
//this error maps to 503 error but can be mapped to 500: internal error
return &policyInstanceStatus, err
}
- if policyInstanceStatus.HasBeenDeleted == false {
+ resp, err := rh.getPolicyInstanceStatus(policyTypeId, policyInstanceID)
+ if err != nil || (err == nil && resp == false) {
+ a1.Logger.Error("marshal error : %v", err)
+ return &policyInstanceStatus, err
+ } else if policyInstanceStatus.HasBeenDeleted == true {
policyInstanceStatus.InstanceStatus = "IN EFFECT"
- } else {
- policyInstanceStatus.InstanceStatus = "NOT IN EFFECT"
}
return &policyInstanceStatus, nil
}
instanceMetadataKey := a1InstanceMetadataPrefix + strconv.FormatInt((int64(policyTypeId)), 10) + "." + string(policyInstanceID)
creation_metadata := createdmetadata[instanceMetadataKey]
var metadata map[string]interface{}
- if err = json.Unmarshal([]byte(creation_metadata.(string)), &metadata); err != nil {
+ creation_metadata_string := creation_metadata.(string)
+ creation_metadata_string = strings.TrimRight(creation_metadata_string, "]")
+ creation_metadata_string = strings.TrimLeft(creation_metadata_string, "[")
+ if err = json.Unmarshal([]byte(creation_metadata_string), &metadata); err != nil {
a1.Logger.Error("unmarshal error : %v", err)
return err
}
a1.Logger.Error("error : %v", err1)
return err1
}
- isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1PolicyRequest)
+ isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1PolicyRequest, int(policyTypeId))
if isSent {
a1.Logger.Debug("rmrSendToXapp : message sent")
} else {
return err
}
a1.Logger.Debug("rmrSendToXapp :rmrMessage %+v", rmrMessage)
- isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1EIDataDelivery)
+ isSent := rh.iRmrSenderInst.RmrSendToXapp(rmrMessage, a1EIDataDelivery, rmr.DefaultSubId)
if isSent {
a1.Logger.Debug("rmrSendToXapp : message sent")
} else {