1 package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6 import java.io.UnsupportedEncodingException;
7 import java.net.ConnectException;
8 import java.util.AbstractMap;
9 import java.util.ArrayList;
10 import java.util.List;
13 import org.apache.http.HttpResponse;
14 import org.apache.http.NameValuePair;
15 import org.apache.http.NoHttpResponseException;
16 import org.apache.http.auth.AuthScope;
17 import org.apache.http.auth.UsernamePasswordCredentials;
18 import org.apache.http.client.ClientProtocolException;
19 import org.apache.http.client.CredentialsProvider;
20 import org.apache.http.client.HttpClient;
21 import org.apache.http.client.methods.HttpPost;
22 import org.apache.http.entity.ContentType;
23 import org.apache.http.entity.StringEntity;
24 import org.apache.http.impl.client.BasicCredentialsProvider;
25 import org.apache.http.impl.client.DefaultHttpClient;
26 import org.apache.http.impl.client.HttpClientBuilder;
27 import org.apache.http.message.BasicNameValuePair;
28 import org.json.JSONObject;
30 public class NemoClient {
31 private static final String COMMAND_PROMPT = "";
32 private static final String COMMAND_EXIT = "exit";
34 private static final String URI_PATH_USER = "user";
35 // private static final String URI_PATH_NEMO = "nemo";
37 private static final String JSON_KEY_USERNAME = "username";
38 private static final String JSON_KEY_PASSWORD = "password";
39 // private static final String JSON_KEY_USERROLE = "UserRole";
40 private static final String JSON_KEY_NEMO = "NEMO";
42 private static final String INFO_PROMPT_INFO = "Info: ";
43 private static final String INFO_PROMPT_ERROR = "Error: ";
45 private static final String RESPONSE_CONTENT_USER_SUCCEEDED = "User Creation Succeeded!";
46 private static final String RESPONSE_CONTENT_USER_NOT_EXIST = "User Does Not Exists!";
47 private static final String RESPONSE_CONTENT_USER_PWD_WRONG = "User Pwd Error!";
48 private static final String RESPONSE_CONTENT_NEMO_SUCCEEDED = "NEMO Executation Succeeded!";
49 private static final String RESPONSE_CONTENT_UNKNOWN_EXCEPTION = "<html>";
51 public static String generateBaseURIOfNEMOEngine(String ipAddrOfNEMOEngine) {
52 return "http://" + ipAddrOfNEMOEngine + ":10081/hyp/vn";
55 private static HttpPost generateHttpPostRequest_User(
56 String baseURIOfNEMOEngine, String username, String password,
58 HttpPost httpPost = new HttpPost(baseURIOfNEMOEngine + URI_PATH_USER);
59 JSONObject jsonObject = new JSONObject();
61 jsonObject.put(JSON_KEY_USERNAME, username);
62 jsonObject.put(JSON_KEY_PASSWORD, password);
63 // jsonObject.put(JSON_KEY_USERROLE, userRole);
66 httpPost.setHeader("Content-type", "application/json");
67 httpPost.setEntity(new StringEntity(jsonObject.toString()));
68 } catch (UnsupportedEncodingException exception) {
76 public static String send(String url, String content) {
78 DefaultHttpClient httpClient = new DefaultHttpClient();
79 AuthScope authScope = new AuthScope(AuthScope.ANY_HOST,
81 UsernamePasswordCredentials usernamePasswordCredentials = new UsernamePasswordCredentials(
83 CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
84 credentialsProvider.setCredentials(authScope,
85 usernamePasswordCredentials);
86 httpClient.setCredentialsProvider(credentialsProvider);
87 HttpPost post = new HttpPost(url);
88 post.setHeader("Content-type", "application/json");
90 post.setEntity(new StringEntity(content, ContentType
91 .create("application/json")));
93 BufferedReader reader;
95 HttpResponse response = httpClient.execute(post);
97 reader = new BufferedReader(new InputStreamReader(response
98 .getEntity().getContent()));
99 return reader.readLine();
100 } catch (UnsupportedEncodingException e1) {
101 // TODO Auto-generated catch block
102 e1.printStackTrace();
103 } catch (IllegalStateException e) {
104 // TODO Auto-generated catch block
106 } catch (ClientProtocolException e) {
107 // TODO Auto-generated catch block
109 } catch (IOException e) {
110 // TODO Auto-generated catch block
113 return "Exception while send : " + url + "\r\n" + content;