"gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/a1"
"gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/models"
+ "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/rmr"
"gerrit.o-ran-sc.org/r/ric-plt/sdlgo"
"github.com/santhosh-tekuri/jsonschema/v5"
"gopkg.in/yaml.v2"
var invalidJsonSchema = errors.New("Invalid Json ")
var policyInstanceNotFoundError = errors.New("Policy Instance Not Found")
var policyTypeNotFoundError = errors.New("Policy Type Not Found")
+var policyTypeCanNotBeDeletedError = errors.New("tried to delete a type that isn't empty")
+
+func (rh *Resthook) CanPolicyTypeBeDeleted(err error) bool {
+ return err == policyTypeCanNotBeDeletedError
+}
func (rh *Resthook) IsPolicyTypePresent(err error) bool {
return err == policyTypeNotFoundError
return err == invalidJsonSchema
}
func NewResthook() *Resthook {
- return createResthook(sdlgo.NewSyncStorage())
+ return createResthook(sdlgo.NewSyncStorage(), rmr.NewRMRSender())
}
-func createResthook(sdlInst iSdl) *Resthook {
+func createResthook(sdlInst iSdl, rmrSenderInst rmr.IRmrSender) *Resthook {
return &Resthook{
- db: sdlInst,
+ db: sdlInst,
+ iRmrSenderInst: rmrSenderInst,
}
}
if iscreated {
a1.Logger.Debug("policy instance metadata created")
}
+ isSent := rh.iRmrSenderInst.RmrSendToXapp(httpBodyString)
+ if isSent {
+ a1.Logger.Debug("rmrSendToXapp : message sent")
+ } else {
+ a1.Logger.Debug("rmrSendToXapp : message not sent")
+ }
+
} else {
a1.Logger.Error("%+v", invalidJsonSchema)
return invalidJsonSchema
a1.Logger.Debug("return : %+v", policyTypeInstances)
return policyTypeInstances, nil
}
+
+func (rh *Resthook) DeletePolicyType(policyTypeId models.PolicyTypeID) error {
+ a1.Logger.Debug("DeletePolicyType")
+
+ policyinstances, err := rh.GetAllPolicyInstance(policyTypeId)
+ if err != nil {
+ a1.Logger.Error("error in retrieving policy. err: %v", err)
+ return err
+ }
+
+ var keys [1]string
+ key := a1PolicyPrefix + strconv.FormatInt((int64(policyTypeId)), 10)
+ keys[0] = key
+ if len(policyinstances) == 0 {
+ err := rh.db.Remove(a1MediatorNs, keys[:])
+ if err != nil {
+ a1.Logger.Error("error in deleting policy type err: %v", err)
+ return err
+ }
+ } else {
+ a1.Logger.Error("tried to delete a type that isn't empty")
+ return policyTypeCanNotBeDeletedError
+ }
+ return nil
+}