25b5ad230340a8581f549deb39284e80418e5204
[holmes/rule-management.git] / rulemgt / src / main / java / org / openo / holmes / rulemgt / bolt / enginebolt / EngineWrapper.java
1 /**\r
2  * Copyright 2017 ZTE Corporation.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 package org.openo.holmes.rulemgt.bolt.enginebolt;\r
17 \r
18 import java.io.IOException;\r
19 import javax.inject.Inject;\r
20 import lombok.extern.slf4j.Slf4j;\r
21 import net.sf.json.JSONObject;\r
22 import org.apache.http.HttpResponse;\r
23 import org.apache.http.util.EntityUtils;\r
24 import org.jvnet.hk2.annotations.Service;\r
25 import org.openo.holmes.common.exception.CorrelationException;\r
26 import org.openo.holmes.common.utils.I18nProxy;\r
27 import org.openo.holmes.rulemgt.bean.request.CorrelationCheckRule4Engine;\r
28 import org.openo.holmes.rulemgt.bean.request.CorrelationDeployRule4Engine;\r
29 import org.openo.holmes.rulemgt.constant.RuleMgtConstant;\r
30 \r
31 @Service\r
32 @Slf4j\r
33 public class EngineWrapper {\r
34 \r
35     @Inject\r
36     private EngineService engineService;\r
37 \r
38     public String deployEngine(CorrelationDeployRule4Engine correlationRule) throws CorrelationException {\r
39         HttpResponse httpResponse;\r
40         try {\r
41             httpResponse = engineService.deploy(correlationRule);\r
42         } catch (Exception e) {\r
43             throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_CALL_DEPLOY_RULE_REST_FAILED, e);\r
44         }\r
45         if (httpResponse.getStatusLine().getStatusCode() == RuleMgtConstant.RESPONSE_STATUS_OK) {\r
46             log.info("Call deploy rule rest interface in engine successfully.");\r
47             String content = engineService.getResponseContent(httpResponse);\r
48             try {\r
49                 JSONObject json = JSONObject.fromObject(content);\r
50                 return json.get(RuleMgtConstant.PACKAGE).toString();\r
51             } catch (Exception e) {\r
52                 throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_PARSE_DEPLOY_RESULT_ERROR, e);\r
53             }\r
54         } else {\r
55             throw new CorrelationException(I18nProxy.ENGINE_DEPLOY_RULE_FAILED);\r
56         }\r
57     }\r
58 \r
59     public boolean deleteRuleFromEngine(String packageName) throws CorrelationException {\r
60         HttpResponse httpResponse;\r
61         try {\r
62             httpResponse = engineService.delete(packageName);\r
63         } catch (Exception e) {\r
64             throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_CALL_DELETE_RULE_REST_FAILED, e);\r
65         }\r
66         if (httpResponse.getStatusLine().getStatusCode() == RuleMgtConstant.RESPONSE_STATUS_OK) {\r
67             log.info("Call delete rule rest interface in engine successfully.");\r
68             return true;\r
69         } else {\r
70             throw new CorrelationException(I18nProxy.ENGINE_DELETE_RULE_FAILED);\r
71         }\r
72     }\r
73 \r
74     public boolean checkRuleFromEngine(CorrelationCheckRule4Engine correlationCheckRule4Engine)\r
75             throws CorrelationException {\r
76         log.info("content:" + correlationCheckRule4Engine.getContent());\r
77         HttpResponse httpResponse;\r
78         try {\r
79             httpResponse = engineService.check(correlationCheckRule4Engine);\r
80         } catch (Exception e) {\r
81             throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_CALL_CHECK_RULE_REST_FAILED, e);\r
82         }\r
83         if (httpResponse.getStatusLine().getStatusCode() == RuleMgtConstant.RESPONSE_STATUS_OK) {\r
84             log.info("Call check rule rest interface in engine successfully.");\r
85             return true;\r
86         } else {\r
87             try {\r
88                 log.info(httpResponse.getStatusLine().getStatusCode() + "," + EntityUtils\r
89                         .toString(httpResponse.getEntity()));\r
90                 throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_CHECK_NO_PASS);\r
91             } catch (IOException e) {\r
92                 throw new CorrelationException(I18nProxy.RULE_MANAGEMENT_CHECK_NO_PASS, e);\r
93             }\r
94         }\r
95     }\r
96 }\r