Commit 6a7e8284 by Adi Amir

support cisco login and parking

parent 4d6225d0
mde:
environment:
IPG_ENV_PARAMS: "-Dds.IpAddress=172.16.1.151:8012#\
-Dredis.host=172.16.1.151"
-Dredis.host=172.16.1.151#\
-Dmde.cisco.username=devoperator11@cdp.com#\
-Dmde.cisco.password=z9E+H=9$J#\
-Dmde.cisco.clientId=a27b18484c3c4e08a7c193e42c639347#\
-Dmde.cisco.clientSecret=b863de8f453c4a05A88126F45B958CF1"
USE_DEBUG: "yes"
image: 172.16.1.212:5050/mcx/mde
ports:
......
package logic;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.NullNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.gdata.util.common.base.PercentEscaper;
import http.simpleHttpClient.SimpleHttpClient;
import http.simpleHttpClient.SimpleHttpRequest;
import http.simpleHttpClient.SimpleHttpResponse;
import microservice.MicroserviceClient;
import microservice.RequestContext;
import microservice.io.iface.ILogger;
import microservice.params.RestClientParams;
import microservice.types.BaseRestResponse;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* Created by gil on 01/03/17.
*/
public class CiscoManager {
// consts
public static String CISCO_DOMAIN = "10.10.20.6";
public static String API_URI = "/apigw/devnetlabapi/cdp/v1/";
public static String API_TOKEN_URI = "/apigw/devnetlabtokenapi/";
//tools
private static PercentEscaper pes = new PercentEscaper("-_.!~*\'()@:$,;/?:", false);
// members
private ILogger logger;
private ObjectMapper objMapper = new ObjectMapper(); private SimpleHttpClient httpClient = null;
private MicroserviceClient geClient = null;
private RestClientParams geClientParams = null;
private LoginInfo loginInfo = new LoginInfo();
// private types
private class LoginInfo {
Boolean loginSuccessfull = false;
String clientId = null;
String clientSecret = null;
String username = null;
String password = null;
String appAccessToken = null;
String apiAccessToken = null;
String appRefreshToken = null;
String userId = null;
String parentUserId = null;
}
public CiscoManager(ILogger logger) throws Exception {
this.logger = logger;
initHttpClient();
LoadLoginInfo();
}
private void initHttpClient() {
httpClient = new SimpleHttpClient();
httpClient.Initialize(100);
httpClient.addMimeType("video/mp4");
}
private void LoadLoginInfo() {
loginInfo.username = System.getProperty("mde.cisco.username", "");
loginInfo.password = System.getProperty("mde.cisco.password", "");
loginInfo.clientId = System.getProperty("mde.cisco.clientId", "");
loginInfo.clientSecret = System.getProperty("mde.cisco.clientSecret", "");
}
public BaseRestResponse executeRequest(String serviceId, String[] apiIdAsParams, RequestContext requestContext) {
String error = null;
BaseRestResponse brr = new BaseRestResponse(false,null);
long tStart = System.currentTimeMillis();
logger.info("cisco.executeRequest() started: " + getApiIdString(apiIdAsParams));
// login for the first time
//if (loginInfo.loginSuccessfull == false) {
brr = login(loginInfo);
if (brr.success == false)
return brr;
//}
if (apiIdAsParams.length == 1 && apiIdAsParams[0].equals("traffic-lanes")) {
brr = getTrafficLanes();
} else if (apiIdAsParams.length == 1 && apiIdAsParams[0].equals("spots")) {
brr = getParkingSpots();
}
else {
String err = "cisco.executeRequest() failed. Unknown api: " + getApiIdString(apiIdAsParams);
brr = errorResponse(err);
}
// if the request failed due to invalid token - fetch a new one & try again
if (isAccessDenied(brr)) {
logger.info("cisco.executeRequest() - access denied. fetch a new token & try again");
brr = reLogin(loginInfo);
if (brr.success) {
brr = executeRequest(serviceId, apiIdAsParams, requestContext);
}
else {
brr = errorResponse("cisco.executeRequest() failed to obtain access token");
}
}
long tEnd = System.currentTimeMillis();
double elapsedTime = ((double)(tEnd - tStart)) / 1000.0;
logger.info("cisco.executeRequest finished. time= " + elapsedTime + " success=" + brr.success + " api=" + getApiIdString(apiIdAsParams));
return brr;
}
/*** A P I ***/
private BaseRestResponse login(LoginInfo loginInfo) {
SimpleHttpRequest req = null;
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(true, null);
StringBuilder sb = new StringBuilder("cisco.login() - login for the first time. ");
sb.append("clientId=").append(loginInfo.clientId)
.append("clientSecret=").append(loginInfo.clientSecret)
.append("username=").append(loginInfo.username)
.append("password=").append(loginInfo.password);
logger.info(sb.toString());
try {
// step 1 - login ...
req = buildLoginRequest();
httpResp = httpClient.processRequest(req);
if(httpResp.getStatusCode() == 200)
brr = parseLoginResp(httpResp);
else {
logHttpError("cisco.login/login", httpResp);
return errorHttpResponse(httpResp);
}
// step 2 - user info
req = buildUserInfoRequest();
httpResp = httpClient.processRequest(req);
if(httpResp.getStatusCode() == 200)
brr = parseUserInfoResp(httpResp);
else {
logHttpError("cisco.login/userInfo", httpResp);
return errorHttpResponse(httpResp);
}
} catch (Exception e) {
String err = "cisco.login failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
if (brr.success)
loginInfo.loginSuccessfull = true;
return brr;
}
// e.g: http://10.10.20.6/apigw/devnetlabapi/cdp/v1/devices/parking?UserKey=500111&SensorCustomerKey=500050&AppKey=CDP-App
private BaseRestResponse getParkingSpots() {
SimpleHttpRequest req = null;
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(true, null);
logger.info("cisco.getParkingSpots() activated");
try {
// get parking
req = buildParkingSpotsRequest();
httpResp = httpClient.processRequest(req);
if(httpResp.getStatusCode() == 200)
brr = parseParkingSpotsResp(httpResp);
else {
logHttpError("getParkingSpots", httpResp);
return errorHttpResponse(httpResp);
}
} catch (Exception e) {
String err = "ge.getCameraList() failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
return brr;
}
private BaseRestResponse reLogin(LoginInfo loginInfo) {
return null;
}
private BaseRestResponse getTrafficLanes() {
return null;
}
/*** H E L P E R S ***/
private SimpleHttpRequest buildLoginRequest() {
SimpleHttpRequest request = new SimpleHttpRequest();
request.setProtocol("https");
request.setDomain(CISCO_DOMAIN);
request.setProtocol("http");
request.setPort(80);
request.setMethod(SimpleHttpRequest.Method.POST);
// path
String path = API_TOKEN_URI + "login";
request.setPath(path);
// content
StringBuilder sb = new StringBuilder();
sb.append("username=").append(pes.escape(loginInfo.username)).append("&")
.append("password=").append(pes.escape(loginInfo.password)).append("&")
.append("client_id=").append(pes.escape(loginInfo.clientId)).append("&")
.append("client_secret=").append(pes.escape(loginInfo.clientSecret)).append("&")
.append("grant_type=client_credentials");
String content = sb.toString();
request.setContent(content);
// headers
request.addHeader("Content-Type", "application/x-www-form-urlencoded");
request.addHeader("Cache-Control", "no-cache");
return request;
}
// {
// "scope": "default",
// "token_type": "bearer",
// "app_access_token": "b746d143ba4f9fae868b1e7efa533161",
// "app_refresh_token": "57de744cb5f932dc480887f426b63a0",
// "app_expires_in": 3600,
// "api_access_token": "LuGy7w5FvQTRULXEEtCgWFnXZjPl",
// "api_expires_in": 3599
// }
private BaseRestResponse parseLoginResp(SimpleHttpResponse httpResp) {
try {
JsonNode contentObj = objMapper.readTree(httpResp.getContent());
loginInfo.appAccessToken = contentObj.get("app_access_token").asText();
loginInfo.apiAccessToken = contentObj.get("api_access_token").asText();
loginInfo.appRefreshToken = contentObj.get("app_refresh_token").asText();
return successResponse(null);
} catch (Exception e) {
String err = "parseLoginResp failed with exception. e: " + e.toString();
return errorResponse(err);
}
}
private SimpleHttpRequest buildUserInfoRequest() {
SimpleHttpRequest request = new SimpleHttpRequest();
request.setProtocol("https");
request.setDomain(CISCO_DOMAIN);
request.setProtocol("http");
request.setPort(80);
request.setMethod(SimpleHttpRequest.Method.GET);
// path
String path = API_URI + "accounts/username";
request.setPath(path);
// query string
String queryString = "loginName=" + loginInfo.username;
request.setQueryString(queryString);
// headers
// WSO2-Authorization
String WSO2_Authorization = "oAuth Bearer " + loginInfo.appAccessToken;
request.addHeader("WSO2-Authorization", WSO2_Authorization);
// Authorization
String Authorization = "Bearer " + loginInfo.apiAccessToken;
request.addHeader("Authorization", Authorization);
// accept
String Accept = "application/json";
request.addHeader("Accept", Accept);
return request;
}
private BaseRestResponse parseUserInfoResp(SimpleHttpResponse httpResp) {
try {
JsonNode contentObj = objMapper.readTree(httpResp.getContent());
loginInfo.userId = contentObj.get("id").asText();
loginInfo.parentUserId = contentObj.at("/parentInfo/id").asText();
return successResponse(null);
} catch (Exception e) {
String err = "parseUserInfoResp failed with exception. e: " + e.toString();
return errorResponse(err);
}
}
private SimpleHttpRequest buildParkingSpotsRequest() {
SimpleHttpRequest request = new SimpleHttpRequest();
request.setProtocol("https");
request.setDomain(CISCO_DOMAIN);
request.setProtocol("http");
request.setPort(80);
request.setMethod(SimpleHttpRequest.Method.POST);
// path
String path = API_URI + "devices/parking";
request.setPath(path);
// query string
StringBuilder sb = new StringBuilder();
sb.append("UserKey=").append(loginInfo.userId).append("&")
.append("SensorCustomerKey=").append(loginInfo.parentUserId).append("&")
.append("AppKey=CDP-App");
String queryString = sb.toString();
request.setQueryString(queryString);
// content
String content = "{\"Query\":{\"Find\": {\"ParkingSpot\": {\"sid\": {\"ne\": \"\" }}}}}";
request.setContent(content);
// headers
// WSO2-Authorization
String WSO2_Authorization = "oAuth Bearer " + loginInfo.appAccessToken;
request.addHeader("WSO2-Authorization", WSO2_Authorization);
// Authorization
String Authorization = "Bearer " + loginInfo.apiAccessToken;
request.addHeader("Authorization", Authorization);
// accept
String Accept = "application/json";
request.addHeader("Accept", Accept);
// Content-Type
String Content_Type = "application/json";
request.addHeader("Content-Type", Content_Type);
return request;
}
private BaseRestResponse parseParkingSpotsResp(SimpleHttpResponse httpResp) {
try {
JsonNode contentObj = objMapper.readTree(httpResp.getContent());
ArrayNode csParkingSpots = (ArrayNode)contentObj.at("/Find/Result");
ArrayNode parkingSpotsResult = objMapper.createArrayNode();
for (JsonNode csParkingSpot: csParkingSpots) {
ObjectNode ps = objMapper.createObjectNode();
// location uid
ps.put("location-uid", csParkingSpot.at("/ParkingSpot/parkingSpaceId").asText());
// coordinates
JsonNode csCoordinates = csParkingSpot.at("/ParkingSpot/geocoordinates");
String p1Loc = csCoordinates.at("/latitude").asText() + "," + csCoordinates.at("/longitude").asText();
ObjectNode p1 = objMapper.createObjectNode();
p1.put("P1", p1Loc);
ps.put("coordinates", p1);
// properties
ObjectNode properties = objMapper.createObjectNode();
ObjectNode availability = objMapper.createObjectNode();
availability.put("timestamp", 0);
availability.put("mde-key", csParkingSpot.at("/ParkingSpot/sid").asText());
String occupied = csParkingSpot.at("/ParkingSpot/state/occupied").asText();
availability.put("value", occupied);
properties.put("availability", availability);
ps.put("properties", properties);
parkingSpotsResult.add(ps);
}
return successResponse(parkingSpotsResult);
} catch (Exception e) {
String err = "parseUserInfoResp failed with exception. e: " + e.toString();
return errorResponse(err);
}
}
private Boolean parseLoginRequestParameters(RequestContext requestContext) {
return true;
}
private BaseRestResponse testGetImage(RequestContext requestContext, String[] apiIds) {
try {
// init http client
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.Jdk14Logger");
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
registry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
ThreadSafeClientConnManager connManager = new ThreadSafeClientConnManager(registry);
connManager.setDefaultMaxPerRoute(100);
connManager.setMaxTotal(100);
DefaultHttpClient defaulthttpClient = new DefaultHttpClient(connManager);
CookieStore cookieStore = defaulthttpClient.getCookieStore();
String uri = "https://ie-cities-media.run.asv-pr-pub.ice.predix.io/v2/file/CAMERA-STG-HYP1052-CAM-L_1487807853000_0_IMAGE.JPG";
HttpGet getRequest = new HttpGet(uri);
getRequest.addHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImxlZ2FjeS10b2tlbi1rZXkiLCJ0eXAiOiJKV1QifQ.eyJqdGkiOiI4MDdlMzQxMTk5MzY0MDVlOTkyNTk1YTA5ZjhhMTExYyIsInN1YiI6ImlwZ2FsbGVyeSIsInNjb3BlIjpbImllLWN1cnJlbnQuaWNzLUlFLVBVQkxJQy1TQUZFVFkuSUUtUFVCTElDLVNBRkVUWS5MSU1JVEVELkRFVkVMT1AiLCJ1YWEucmVzb3VyY2UiLCJpZS1jdXJyZW50Lmljcy1JRS1FTlZJUk9OTUVOVEFMLklFLUVOVklST05NRU5UQUwuRlJFRS5ERVZFTE9QIiwiaWUtY3VycmVudC5pY3MtSUUtUEFSS0lORy5JRS1QQVJLSU5HLkxJTUlURUQuREVWRUxPUCIsImllLWN1cnJlbnQuaWNzLUlFLVRSQUZGSUMuSUUtVFJBRkZJQy5MSU1JVEVELkRFVkVMT1AiLCJpZS1jdXJyZW50Lmljcy1JRS1QRURFU1RSSUFOLklFLVBFREVTVFJJQU4uTElNSVRFRC5ERVZFTE9QIl0sImNsaWVudF9pZCI6ImlwZ2FsbGVyeSIsImNpZCI6ImlwZ2FsbGVyeSIsImF6cCI6ImlwZ2FsbGVyeSIsImdyYW50X3R5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJyZXZfc2lnIjoiZDBmMjJiMTciLCJpYXQiOjE0ODg3MDE1NjksImV4cCI6MTQ4OTMwNjM2OSwiaXNzIjoiaHR0cHM6Ly84NTUzNDgyYy0xZDMyLTRkMzgtODU5Ny0yZTU2YWI2NDJkZDMucHJlZGl4LXVhYS5ydW4uYXN2LXByLmljZS5wcmVkaXguaW8vb2F1dGgvdG9rZW4iLCJ6aWQiOiI4NTUzNDgyYy0xZDMyLTRkMzgtODU5Ny0yZTU2YWI2NDJkZDMiLCJhdWQiOlsidWFhIiwiaWUtY3VycmVudC5pY3MtSUUtUEFSS0lORy5JRS1QQVJLSU5HLkxJTUlURUQiLCJpZS1jdXJyZW50Lmljcy1JRS1UUkFGRklDLklFLVRSQUZGSUMuTElNSVRFRCIsImllLWN1cnJlbnQuaWNzLUlFLVBFREVTVFJJQU4uSUUtUEVERVNUUklBTi5MSU1JVEVEIiwiaXBnYWxsZXJ5IiwiaWUtY3VycmVudC5pY3MtSUUtRU5WSVJPTk1FTlRBTC5JRS1FTlZJUk9OTUVOVEFMLkZSRUUiLCJpZS1jdXJyZW50Lmljcy1JRS1QVUJMSUMtU0FGRVRZLklFLVBVQkxJQy1TQUZFVFkuTElNSVRFRCJdfQ.tbz0Xp1ie4m5yp--bgfNW8F0SXUf1EsIJHKM6jemBI9kNKzSBIj5ef1BmyBrXPQg6Eia_553_RlobTV8UJx2tDJaiRmHnin3NxCEOTdWYicjrBFLDmP31EMhr8gTGw3xx-a540JQDp1voMysQCqGx1eUj7oIfMbD__vCYko7MRLlPtOssVkvsqUu3DVpo3lof6M2vhbwlcnXCaG6O0ScFP-lpkapzEewnvH8wWjLelntbzlE2c5IS6rhXqNlFBykwyVa6drFUxVhZf8bYwrIrfHuKrfbX0_r9AnhOoh_TGj4S8AniF8gXxS8GWg0LkXWaiqDaxmfCKvIHwiJS8LQwA");
getRequest.addHeader("Predix-Zone-Id", "ics-IE-PUBLIC-SAFETY");
HttpResponse resp = defaulthttpClient.execute(getRequest);
InputStream is = resp.getEntity().getContent();
byte[] baContent = IOUtils.toByteArray(is);
// write to file
String fileName = "/opt/mcx/config/test1.jpeg";
Path file = Paths.get(fileName);
Files.write(file, baContent);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private String getApiIdString(String[] apiIdAsParams) {
String apiString = "";
for (String p: apiIdAsParams)
apiString += p + "/";
return apiString;
}
private BaseRestResponse errorHttpResponse(SimpleHttpResponse httpResp) {
BaseRestResponse errResp = new BaseRestResponse(false, null);
ObjectNode objectNode = objMapper.createObjectNode();
objectNode.put("statusCode", httpResp.getStatusCode());
objectNode.put("content", httpResp.getContent());
errResp.objectNode = objectNode;
return errResp;
}
private BaseRestResponse errorResponse(String error) {
BaseRestResponse errResp = new BaseRestResponse(false, error);
return errResp;
}
private BaseRestResponse successResponse(JsonNode objectNode) {
BaseRestResponse successResp = new BaseRestResponse(true, null);
successResp.objectNode = objectNode;
return successResp;
}
private Boolean isAccessDenied(BaseRestResponse brr) {
if (brr.success == false && brr.objectNode != null) {
int statusCode = brr.objectNode.get("statusCode").asInt();
Boolean bAccessDenied = (statusCode == 403 ||statusCode == 401);
return bAccessDenied;
}
else
return false;
}
private void logHttpError(String funcName, SimpleHttpResponse httpResp) {
logger.error(funcName + " failed:" + " statusCode=" + httpResp.getStatusCode() + " content=" + httpResp.getContent());
}
}
......@@ -77,7 +77,7 @@ public class GEManager {
BaseRestResponse brr = new BaseRestResponse(false,null);
long tStart = System.currentTimeMillis();
logger.info("executeRequest() started: " + getApiIdString(apiIdAsParams));
logger.info("ge.executeRequest() started: " + getApiIdString(apiIdAsParams));
if (apiIdAsParams.length == 1 && apiIdAsParams[0].equals("cameras")) {
brr = getCameraList(requestContext);
......@@ -98,24 +98,24 @@ public class GEManager {
brr = getSensorLatestEvent(apiIdAsParams[1]/*sensorId*/, requestContext);
}
else {
String err = "executeRequest() failed. Unknown api: " + getApiIdString(apiIdAsParams);
String err = "ge.executeRequest() failed. Unknown api: " + getApiIdString(apiIdAsParams);
brr = errorResponse(err);
}
// if the request failed due to invalid token - fetch a new one & try again
if (isAccessDenied(brr)) {
logger.info("executeRequest() - access denied. fetch a new token & try again");
logger.info("ge.executeRequest() - access denied. fetch a new token & try again");
if (getNewAccessToken() == true) {
brr = executeRequest(serviceId, apiIdAsParams, requestContext);
}
else {
brr = errorResponse("executeRequest() failed to obtain access token");
brr = errorResponse("ge.executeRequest() failed to obtain access token");
}
}
long tEnd = System.currentTimeMillis();
double elapsedTime = ((double)(tEnd - tStart)) / 1000.0;
logger.info("executeRequest finished. time= " + elapsedTime + " success=" + brr.success + " api=" + getApiIdString(apiIdAsParams));
logger.info("ge.executeRequest finished. time= " + elapsedTime + " success=" + brr.success + " api=" + getApiIdString(apiIdAsParams));
return brr;
}
......@@ -129,7 +129,7 @@ public class GEManager {
BaseRestResponse brr = null;
JsonNode contentObj = null;
logger.info("getLatestMediaFile() activated. camId=" + camId);
logger.info("ge.getLatestMediaFile() activated. camId=" + camId);
// execute the request
// example: ie-cities-media.run.asv-pr-pub.ice.predix.io/assets/{camId}/media/latest?mediaType=IMAGE
......@@ -139,7 +139,7 @@ public class GEManager {
SimpleHttpRequest httpRequest = buildLatestMediaFileUrlRequest(camId, mediaType);
SimpleHttpResponse httpFileUrlResp = httpClient.processRequest(httpRequest);
if (httpFileUrlResp.getStatusCode() != 200) {
logHttpError("getLatestMediaFile/getLatestMediaURL", httpFileUrlResp);
logHttpError("ge.getLatestMediaFile/getLatestMediaURL", httpFileUrlResp);
return errorHttpResponse(httpFileUrlResp);
}
contentObj = objMapper.readTree(httpFileUrlResp.getContent());
......@@ -150,7 +150,7 @@ public class GEManager {
httpRequest = buildDownloadLatestMediaFileRequest(url);
SimpleHttpResponse httpFileDataResp = httpClient.processRequest(httpRequest);
if (httpFileDataResp.getStatusCode() != 200) {
logHttpError("getLatestMediaFile/downloadLatestMediaFile", httpFileDataResp);
logHttpError("ge.getLatestMediaFile/downloadLatestMediaFile", httpFileDataResp);
return errorHttpResponse(httpFileDataResp);
}
String fileData = httpFileDataResp.getContent();
......@@ -169,7 +169,7 @@ public class GEManager {
brr = buildLatestMediaFileResp(fileData, url);
} catch (Exception e) {
String err = "getLatestMediaFile() failed with exception. camId=" + camId + " e=" + e.toString();
String err = "ge.getLatestMediaFile() failed with exception. camId=" + camId + " e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
......@@ -182,7 +182,7 @@ public class GEManager {
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(false,null);
logger.info("getCamerasList() activated.");
logger.info("ge.getCamerasList() activated.");
// execute the request ...
req = buildCameraListRequest(requestContext);
......@@ -196,7 +196,7 @@ public class GEManager {
}
} catch (Exception e) {
String err = "getCameraList() failed with exception. e=" + e.toString();
String err = "ge.getCameraList() failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
......@@ -208,7 +208,7 @@ public class GEManager {
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(false,null);
logger.info("getCameraDetails() activated. camId=" + cameraId);
logger.info("ge.getCameraDetails() activated. camId=" + cameraId);
// execute the request ...
req = buildCameraDetailsRequest(cameraId);
......@@ -217,17 +217,17 @@ public class GEManager {
if(httpResp.getStatusCode() == 200)
brr = buildCameraDetailsResp(httpResp);
else {
logHttpError("getCameraDetails", httpResp);
logHttpError("ge.getCameraDetails", httpResp);
return errorHttpResponse(httpResp);
}
} catch (Exception e) {
String err = "getCameraDetails() failed with exception. e=" + e.toString();
String err = "ge.getCameraDetails() failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
logger.info("getCameraDetails() successfull. camId=" + cameraId);
logger.info("ge.getCameraDetails() successfull. camId=" + cameraId);
return brr;
}
private BaseRestResponse getSensorLatestEvent(String sensorId, RequestContext requestContext) {
......@@ -235,7 +235,7 @@ public class GEManager {
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(false,null);
logger.info("getSensorLatestEvent() activated. camId=" + sensorId);
logger.info("ge.getSensorLatestEvent() activated. camId=" + sensorId);
// execute the request ...
// envType
......@@ -264,12 +264,12 @@ public class GEManager {
}
} catch (Exception e) {
String err = "getSensorLatestEvent() failed with exception. e=" + e.toString();
String err = "ge.getSensorLatestEvent() failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
logger.info("getSensorLatestEvent() successfull. camId=" + sensorId);
logger.info("ge.getSensorLatestEvent() successfull. camId=" + sensorId);
return brr;
}
......@@ -318,7 +318,7 @@ public class GEManager {
SimpleHttpRequest req = null;
SimpleHttpResponse httpResp = null;
logger.info("getNewAccessToken() activated.");
logger.info("ge.getNewAccessToken() activated.");
req = buildGetTokenRequest();
try {
......@@ -331,11 +331,11 @@ public class GEManager {
return true;
}
else {
logHttpError("getNewAccessToken", httpResp);
logHttpError("ge.getNewAccessToken", httpResp);
return false;
}
} catch(Exception e){
logger.error("getNewAccessToken() failed with exception. e: " + e.toString());
logger.error("ge.getNewAccessToken() failed with exception. e: " + e.toString());
return false;
}
......@@ -346,7 +346,7 @@ public class GEManager {
SimpleHttpResponse httpResp = null;
BaseRestResponse brr = new BaseRestResponse(false,null);
logger.info("getSensorList() activated.");
logger.info("ge.getSensorList() activated.");
// execute the request ...
req = buildSensorListRequest(requestContext);
......@@ -360,7 +360,7 @@ public class GEManager {
}
} catch (Exception e) {
String err = "getSensorList() failed with exception. e=" + e.toString();
String err = "ge.getSensorList() failed with exception. e=" + e.toString();
logger.error(err);
return errorResponse(err);
}
......@@ -398,7 +398,7 @@ public class GEManager {
// String[3]: fileName
String[] urlParts = getMediaFileName(url, "latest");
if (urlParts == null) {
String err = "buildLatestMediaFileResp() - failed to parse file url: " + url;
String err = "ge.buildLatestMediaFileResp() - failed to parse file url: " + url;
logger.error(err);
return new BaseRestResponse(false, err);
}
......@@ -410,7 +410,7 @@ public class GEManager {
brr.objectNode = dataObj;
} catch (Exception e) {
String err = "buildLatestMediaFileResp() failed with exception. e: " + e.toString();
String err = "ge.buildLatestMediaFileResp() failed with exception. e: " + e.toString();
logger.error(err);
return new BaseRestResponse(false, err);
}
......
......@@ -36,6 +36,7 @@ public class MdeManager {
private ServicesRepository servicesRepository;
private GEManager geManager = null;
private CiscoManager ciscoManager = null;
public MdeManager(ILogger logger) throws Exception {
......@@ -45,6 +46,7 @@ public class MdeManager {
this.logger = logger;
geManager = new GEManager(logger);
ciscoManager = new CiscoManager(logger);
LoadServices(logger);
loadAdapters(logger);
ValidityCheck();
......@@ -76,13 +78,15 @@ public class MdeManager {
serviceId = getServiceId(requestContext, offset);
String[] apiIdAsParams = getApiIdAsParams(requestContext,offset);
String ver = serviceId.split("\\.")[0];
if (ver.equals("v2"))
String[] idTokens = serviceId.split("\\.");
String verAndTenant = idTokens[0] + "." + idTokens[1];
if (verAndTenant.equals("v2.ge"))
brr = geManager.executeRequest(serviceId,apiIdAsParams,requestContext);
else if (verAndTenant.equals("v1.cisco"))
brr = ciscoManager.executeRequest(serviceId,apiIdAsParams,requestContext);
else
brr = executeRequest(serviceId,apiIdAsParams,requestContext,null,isMaintenanceRequest);
return brr;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment