re base code
[sdc.git] / utils / webseal-simulator / src / main / java / org / openecomp / sdc / webseal / simulator / RequestsClient.java
1 package org.openecomp.sdc.webseal.simulator;
2
3 import org.apache.commons.io.IOUtils;
4 import org.openecomp.sdc.webseal.simulator.conf.Conf;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServlet;
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10 import java.io.*;
11 import java.net.HttpURLConnection;
12 import java.net.URL;
13 import java.util.HashMap;
14 import java.util.Map;
15 import java.util.Map.Entry;
16
17 public class RequestsClient extends HttpServlet {
18
19         private static final long serialVersionUID = 1L;
20
21         @Override
22         protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
23
24                 String adminId = request.getParameter("adminId") != null ? request.getParameter("adminId") : "jh0003";
25                 String createAll = request.getParameter("all");
26                 String url = Conf.getInstance().getFeHost() + "/sdc1/feProxy/rest/v1/user";
27
28                 PrintWriter writer = response.getWriter();
29                 
30                 int resultCode;
31                 
32                 if ("true".equals(createAll)) {
33                         Map<String, User> users = Conf.getInstance().getUsers();
34                         for (User user : users.values()) {
35                                 resultCode = createUser(response, user.getUserId(), user.getRole().toUpperCase(), user.getFirstName(), user.getLastName(), user.getEmail(), url, adminId);
36                                 writer.println("User "+ user.getFirstName() + " " + user.getLastName() + getResultMessage(resultCode) + "<br>");
37                         }
38                 } else {
39                         String userId = request.getParameter("userId");
40                         String role = request.getParameter("role").toUpperCase();
41                         String firstName = request.getParameter("firstName");
42                         String lastName = request.getParameter("lastName");
43                         String email = request.getParameter("email");
44                                                 
45                         resultCode = createUser(response, userId, role, firstName, lastName, email, url, adminId);
46                         
47                         writer.println("User "+ firstName + " " + lastName +getResultMessage(resultCode));      
48                 }
49
50                 
51
52         }
53         
54         private String getResultMessage(int resultCode){
55                 return 201 == resultCode? " created successfuly":" not created ("+ resultCode +")";
56         }
57
58         private int createUser(final HttpServletResponse response, String userId, String role, String firstName, String lastName, String email, String url, String adminId) throws IOException {
59                 response.setContentType("text/html");
60
61                 String body = "{\"firstName\":\"" + firstName + "\", \"lastName\":\"" + lastName + "\", \"userId\":\"" + userId + "\", \"email\":\"" + email + "\",\"role\":\"" + role + "\"}";
62
63                 HashMap<String, String> headers = new HashMap<String, String>();
64                 headers.put("Content-Type", "application/json");
65                 headers.put("USER_ID", adminId);
66                 return sendHttpPost(url, body, headers);
67         }
68
69         private int sendHttpPost(String url, String body, Map<String, String> headers) throws IOException {
70
71                 String responseString = "";
72                 URL obj = new URL(url);
73                 HttpURLConnection con = (HttpURLConnection) obj.openConnection();
74
75                 // add request method
76                 con.setRequestMethod("POST");
77
78                 // add request headers
79                 if (headers != null) {
80                         for (Entry<String, String> header : headers.entrySet()) {
81                                 String key = header.getKey();
82                                 String value = header.getValue();
83                                 con.setRequestProperty(key, value);
84                         }
85                 }
86
87                 // Send post request
88                 if (body != null) {
89                         con.setDoOutput(true);
90                         DataOutputStream wr = new DataOutputStream(con.getOutputStream());
91                         wr.writeBytes(body);
92                         wr.flush();
93                         wr.close();
94                 }
95
96                 int responseCode = con.getResponseCode();
97                 // logger.debug("Send POST http request, url: {}", url);
98                 // logger.debug("Response Code: {}", responseCode);
99
100                 StringBuffer response = new StringBuffer();
101                 try {
102                         BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
103                         String inputLine;
104                         while ((inputLine = in.readLine()) != null) {
105                                 response.append(inputLine);
106                         }
107                         in.close();
108                 } catch (Exception e) {
109                         // logger.debug("response body is null");
110                 }
111
112                 String result;
113
114                 try {
115                         result = IOUtils.toString(con.getErrorStream());
116                         response.append(result);
117
118                 } catch (Exception e2) {
119                         result = null;
120                 }
121                 // logger.debug("Response body: {}", response);
122
123                 if (response != null) {
124                         responseString = response.toString();
125                 }
126
127                 // Map<String, List<String>> headerFields = con.getHeaderFields();
128                 // String responseMessage = con.getResponseMessage();
129
130                 con.disconnect();
131                 return responseCode;
132
133         }
134
135 }