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