From 29a42ee47f4272f2b9a4be3fe8086997851bbd3b Mon Sep 17 00:00:00 2001 From: Max McAdam Date: Fri, 7 Jun 2024 11:24:18 -0700 Subject: [PATCH] Agent cancels agreement after built-in property change Signed-off-by: Max McAdam --- agreement/agreement.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/agreement/agreement.go b/agreement/agreement.go index 986f932f0..c329ef409 100644 --- a/agreement/agreement.go +++ b/agreement/agreement.go @@ -648,9 +648,11 @@ func (w *AgreementWorker) syncOnInit() error { } else if proposal, err := w.producerPH[ag.AgreementProtocol].AgreementProtocolHandler("", "", "").DemarshalProposal(ag.Proposal); err != nil { glog.Errorf(logString(fmt.Sprintf("unable to demarshal proposal for agreement %v, error %v", ag.CurrentAgreementId, err))) - } else if pol, err := policy.DemarshalPolicy(proposal.ProducerPolicy()); err != nil { - glog.Errorf(logString(fmt.Sprintf("unable to demarshal policy for agreement %v, error %v", ag.CurrentAgreementId, err))) + } else if nodePol, err := persistence.FindNodePolicy(w.db); err != nil { + glog.Errorf(logString(fmt.Sprintf("unable to read node policy from the local database. %v", err))) + } else if pol, err := policy.GenPolicyFromExternalPolicy(nodePol.GetDeploymentPolicy(), policy.MakeExternalPolicyHeaderName(w.GetExchangeId())); err != nil { + glog.Errorf(logString(fmt.Sprintf("Failed to convert node policy to policy file format: %v", err))) } else if policies, err := w.pm.GetPolicyList(exchange.GetOrg(w.GetExchangeId()), pol); err != nil { glog.Errorf(logString(fmt.Sprintf("unable to get policy list for producer policy in agreement %v, error: %v", ag.CurrentAgreementId, err))) w.Messages() <- events.NewInitAgreementCancelationMessage(events.AGREEMENT_ENDED, w.producerPH[ag.AgreementProtocol].GetTerminationCode(producer.TERM_REASON_POLICY_CHANGED), ag.AgreementProtocol, ag.CurrentAgreementId, ag.GetDeploymentConfig())