Checkstyle fixes for prov eelf and utils
[dmaap/datarouter.git] / datarouter-prov / src / main / java / org / onap / dmaap / datarouter / provisioning / utils / URLUtilities.java
1 /*******************************************************************************\r
2  * ============LICENSE_START==================================================\r
3  * * org.onap.dmaap\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * ===========================================================================\r
7  * * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * * you may not use this file except in compliance with the License.\r
9  * * You may obtain a copy of the License at\r
10  * *\r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * *\r
13  *  * Unless required by applicable law or agreed to in writing, software\r
14  * * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * * See the License for the specific language governing permissions and\r
17  * * limitations under the License.\r
18  * * ============LICENSE_END====================================================\r
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 \r
24 \r
25 package org.onap.dmaap.datarouter.provisioning.utils;\r
26 \r
27 import com.att.eelf.configuration.EELFLogger;\r
28 import com.att.eelf.configuration.EELFManager;\r
29 import java.net.InetAddress;\r
30 import java.net.UnknownHostException;\r
31 \r
32 import org.onap.dmaap.datarouter.provisioning.BaseServlet;\r
33 \r
34 /**\r
35  * Utility functions used to generate the different URLs used by the Data Router.\r
36  *\r
37  * @author Robert Eby\r
38  * @version $Id: URLUtilities.java,v 1.2 2014/03/12 19:45:41 eby Exp $\r
39  */\r
40 public class URLUtilities {\r
41 \r
42 \r
43     private static final EELFLogger utilsLogger = EELFManager.getInstance().getLogger("UtilsLog");\r
44     private static final String HTTPS = "https://";\r
45     private static String otherPod;\r
46 \r
47     private URLUtilities() {\r
48     }\r
49 \r
50     /**\r
51      * Generate the URL used to access a feed.\r
52      *\r
53      * @param feedid the feed id\r
54      * @return the URL\r
55      */\r
56     public static String generateFeedURL(int feedid) {\r
57         return HTTPS + BaseServlet.getProvName() + "/feed/" + feedid;\r
58     }\r
59 \r
60     /**\r
61      * Generate the URL used to publish to a feed.\r
62      *\r
63      * @param feedid the feed id\r
64      * @return the URL\r
65      */\r
66     public static String generatePublishURL(int feedid) {\r
67         return HTTPS + BaseServlet.getProvName() + "/publish/" + feedid;\r
68     }\r
69 \r
70     /**\r
71      * Generate the URL used to subscribe to a feed.\r
72      *\r
73      * @param feedid the feed id\r
74      * @return the URL\r
75      */\r
76     public static String generateSubscribeURL(int feedid) {\r
77         return HTTPS + BaseServlet.getProvName() + "/subscribe/" + feedid;\r
78     }\r
79 \r
80     /**\r
81      * Generate the URL used to access a feed's logs.\r
82      *\r
83      * @param feedid the feed id\r
84      * @return the URL\r
85      */\r
86     public static String generateFeedLogURL(int feedid) {\r
87         return HTTPS + BaseServlet.getProvName() + "/feedlog/" + feedid;\r
88     }\r
89 \r
90     /**\r
91      * Generate the URL used to access a subscription.\r
92      *\r
93      * @param subid the subscription id\r
94      * @return the URL\r
95      */\r
96     public static String generateSubscriptionURL(int subid) {\r
97         return HTTPS + BaseServlet.getProvName() + "/subs/" + subid;\r
98     }\r
99 \r
100     /**\r
101      * Generate the URL used to access a subscription's logs.\r
102      *\r
103      * @param subid the subscription id\r
104      * @return the URL\r
105      */\r
106     public static String generateSubLogURL(int subid) {\r
107         return HTTPS + BaseServlet.getProvName() + "/sublog/" + subid;\r
108     }\r
109 \r
110     /**\r
111      * Generate the URL used to access the provisioning data on the peer POD.\r
112      *\r
113      * @return the URL\r
114      */\r
115     public static String generatePeerProvURL() {\r
116         return HTTPS + getPeerPodName() + "/internal/prov";\r
117     }\r
118 \r
119     /**\r
120      * Generate the URL used to access the logfile data on the peer POD.\r
121      *\r
122      * @return the URL\r
123      */\r
124     public static String generatePeerLogsURL() {\r
125         //Fixes for Itrack ticket - DATARTR-4#Fixing if only one Prov is configured, not to give exception to fill logs.\r
126         String peerPodUrl = getPeerPodName();\r
127         if (peerPodUrl == null || "".equals(peerPodUrl)) {\r
128             return "";\r
129         }\r
130 \r
131         return HTTPS + peerPodUrl + "/internal/drlogs/";\r
132     }\r
133 \r
134     /**\r
135      * Return the real (non CNAME) version of the peer POD's DNS name.\r
136      *\r
137      * @return the name\r
138      */\r
139     public static String getPeerPodName() {\r
140         if (otherPod == null) {\r
141             String thisPod;\r
142             try {\r
143                 thisPod = InetAddress.getLocalHost().getHostName();\r
144             } catch (UnknownHostException e) {\r
145                 utilsLogger.trace("UnkownHostException: " + e.getMessage(), e);\r
146                 thisPod = "";\r
147             }\r
148             for (String pod : BaseServlet.getPods()) {\r
149                 if (!pod.equals(thisPod)) {\r
150                     otherPod = pod;\r
151                 }\r
152             }\r
153         }\r
154         return otherPod;\r
155     }\r
156 \r
157 }\r