import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse;\r
import org.onap.holmes.rulemgt.bolt.enginebolt.EngineWrapper;\r
import org.onap.holmes.rulemgt.db.CorrelationRuleQueryDao;\r
+import org.onap.holmes.rulemgt.send.Ip4AddingRule;\r
\r
\r
@Service\r
@Slf4j\r
public class RuleMgtWrapper {\r
\r
+ @Inject\r
+ private Ip4AddingRule ip4AddingRule;\r
+\r
+ @Inject\r
+ private RuleQueryWrapper ruleQueryWrapper;\r
+\r
@Inject\r
private CorrelationRuleQueryDao correlationRuleQueryDao;\r
@Inject\r
if (ruleTemp != null) {\r
throw new CorrelationException("A rule with the same name already exists.");\r
}\r
- correlationRule.setPackageName(deployRule2Engine(correlationRule));\r
- CorrelationRule result = correlationRuleDao.saveRule(correlationRule);\r
+ String ip ="";\r
+ try{\r
+ ip = ip4AddingRule.getEngineIp4AddRule();\r
+ }catch(Exception e){\r
+ log.error("When adding rules, can not get engine instance ip");\r
+ }\r
+ String packageName = deployRule2Engine(correlationRule, ip);\r
+ correlationRule.setPackageName(packageName);\r
+ correlationRule.setEngineInstance(ip);\r
+ CorrelationRule result = null;\r
+ try {\r
+ result = correlationRuleDao.saveRule(correlationRule);\r
+ } catch (CorrelationException e) {\r
+ engineWarpper.deleteRuleFromEngine(packageName, ip);\r
+ throw new CorrelationException(e.getMessage(), e);\r
+ }\r
RuleAddAndUpdateResponse ruleAddAndUpdateResponse = new RuleAddAndUpdateResponse();\r
ruleAddAndUpdateResponse.setRuleId(result.getRid());\r
return ruleAddAndUpdateResponse;\r
if (oldCorrelationRule == null) {\r
throw new CorrelationException("You're trying to update a rule which does not exist in the system.");\r
}\r
+ String updateIp = "";\r
+ updateIp = oldCorrelationRule.getEngineInstance();\r
CorrelationRule newCorrelationRule = convertRuleUpdateRequest2CorrelationRule(modifier,\r
ruleUpdateRequest, oldCorrelationRule.getName());\r
+ newCorrelationRule.setEngineInstance(updateIp);\r
checkCorrelation(newCorrelationRule);\r
RuleAddAndUpdateResponse ruleChangeResponse = new RuleAddAndUpdateResponse();\r
ruleChangeResponse.setRuleId(newCorrelationRule.getRid());\r
+\r
if (!haveChange(newCorrelationRule, oldCorrelationRule)) {\r
return ruleChangeResponse;\r
}\r
if (oldCorrelationRule.getEnabled() == RuleMgtConstant.STATUS_RULE_OPEN) {\r
- engineWarpper.deleteRuleFromEngine(oldCorrelationRule.getPackageName());\r
+ String oldRuleEngineInstance = oldCorrelationRule.getEngineInstance();\r
+ engineWarpper.deleteRuleFromEngine(oldCorrelationRule.getPackageName(), oldRuleEngineInstance);\r
}\r
- newCorrelationRule.setPackageName(deployRule2Engine(newCorrelationRule));\r
+ newCorrelationRule.setPackageName(deployRule2Engine(newCorrelationRule, updateIp));\r
correlationRuleDao.updateRule(newCorrelationRule);\r
return ruleChangeResponse;\r
}\r
int oldEnabled = oldCorrelationRule.getEnabled();\r
String newDes = newCorrelationRule.getDescription();\r
String oldDes = oldCorrelationRule.getDescription();\r
- if (newContent.equals(oldContent) && newEnabled == oldEnabled && newDes.equals(oldDes)) {\r
+ String oldControlLoop = oldCorrelationRule.getClosedControlLoopName();\r
+ String newControlLoop = newCorrelationRule.getClosedControlLoopName();\r
+ if (newContent.equals(oldContent) && newEnabled == oldEnabled\r
+ && newDes.equals(oldDes) && newControlLoop.equals(oldControlLoop)) {\r
return false;\r
}\r
return true;\r
throw new CorrelationException("You're trying to delete a rule which does not exist in the system.");\r
}\r
if (correlationRule.getEnabled() == RuleMgtConstant.STATUS_RULE_OPEN) {\r
- engineWarpper.deleteRuleFromEngine(correlationRule.getPackageName());\r
+ String ip = correlationRule.getEngineInstance();\r
+ engineWarpper.deleteRuleFromEngine(correlationRule.getPackageName(), ip);\r
}\r
correlationRuleDao.deleteRule(correlationRule);\r
}\r
correlationRule.setCreator(userName);\r
correlationRule.setModifier(userName);\r
correlationRule.setEnabled(ruleCreateRequest.getEnabled());\r
+ correlationRule.setClosedControlLoopName(ruleCreateRequest.getLoopControlName());\r
return correlationRule;\r
}\r
\r
correlationRule.setUpdateTime(new Date());\r
correlationRule.setModifier(modifier);\r
correlationRule.setName(ruleName);\r
+ correlationRule.setClosedControlLoopName(ruleUpdateRequest.getLoopControlName());\r
return correlationRule;\r
}\r
\r
- private String deployRule2Engine(CorrelationRule correlationRule)\r
+ public String deployRule2Engine(CorrelationRule correlationRule, String ip)\r
throws CorrelationException {\r
- if (engineWarpper.checkRuleFromEngine(correlationRules2CheckRule(correlationRule)) && (\r
+ if (engineWarpper.checkRuleFromEngine(correlationRules2CheckRule(correlationRule), ip) && (\r
correlationRule.getEnabled() == RuleMgtConstant.STATUS_RULE_OPEN)) {\r
- return engineWarpper.deployEngine(correlationRules2DeployRule(correlationRule));\r
+ return engineWarpper.deployEngine(correlationRules2DeployRule(correlationRule), ip);\r
}\r
return "";\r
}\r
ruleResult4API.setUpdateTime(correlationRule.getUpdateTime());\r
ruleResult4API.setModifier(correlationRule.getModifier());\r
ruleResult4API.setEnabled(correlationRule.getEnabled());\r
+ ruleResult4API.setLoopControlName(correlationRule.getClosedControlLoopName());\r
ruleResult4APIs.add(ruleResult4API);\r
}\r
return ruleResult4APIs;\r
CorrelationDeployRule4Engine correlationDeployRule4Engine = new CorrelationDeployRule4Engine();\r
correlationDeployRule4Engine.setContent(correlationRule.getContent());\r
correlationDeployRule4Engine.setEngineId(correlationRule.getEngineID());\r
+ correlationDeployRule4Engine.setLoopControlName(correlationRule.getClosedControlLoopName());\r
return correlationDeployRule4Engine;\r
}\r
\r