summaryrefslogtreecommitdiffstats
path: root/saltstack-adapter/saltstack-adapter-provider
diff options
context:
space:
mode:
Diffstat (limited to 'saltstack-adapter/saltstack-adapter-provider')
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/ConnectionBuilder.java26
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java102
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SshConnection.java14
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackMessageParser.java42
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackServerEmulator.java41
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestConnectionBuilder.java (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestConnectionBuilder.java)13
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterImpl.java)119
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java)7
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestJsonParser.java (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestJsonParser.java)2
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestSaltstackAdapter.java (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestSaltstackAdapter.java)6
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/resources/config.sls2
-rw-r--r--saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/ccsdk/default.properties (renamed from saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/appc/default.properties)0
12 files changed, 233 insertions, 141 deletions
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/ConnectionBuilder.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/ConnectionBuilder.java
index 65ab598dd..3469103b5 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/ConnectionBuilder.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/ConnectionBuilder.java
@@ -84,8 +84,8 @@ public class ConnectionBuilder {
* @param cmd Commands to execute
* @return command execution status
*/
- public SaltstackResult connectNExecute(String cmd) {
- return connectNExecute(cmd, -1, -1);
+ public SaltstackResult connectNExecute(String cmd, long execTimeout) throws IOException {
+ return connectNExecute(cmd, -1, -1, execTimeout);
}
/**
@@ -98,9 +98,16 @@ public class ConnectionBuilder {
* @param retryCount number of count retry to make a SSH connection.
* @return command execution status
*/
- public SaltstackResult connectNExecute(String cmd, int retryCount, int retryDelay) {
+ public SaltstackResult connectNExecute(String cmd, int retryCount, int retryDelay, long execTimeout)
+ throws IOException{
SaltstackResult result = new SaltstackResult();
+ OutputStream out = null;
+ OutputStream errs = null;
+ if (execTimeout >= 0) {
+ sshConnection.setExecTimeout(execTimeout);
+ }
+
try {
if (retryCount != -1) {
result = sshConnection.connectWithRetry(retryCount, retryDelay);
@@ -112,12 +119,10 @@ public class ConnectionBuilder {
}
String outFilePath = "/tmp/" + RandomStringUtils.random(5, true, true);
String errFilePath = "/tmp/" + RandomStringUtils.random(5, true, true);
- OutputStream out = new FileOutputStream(outFilePath);
- OutputStream errs = new FileOutputStream(errFilePath);
- result = sshConnection.execCommand(cmd, out, errs);
+ out = new FileOutputStream(outFilePath);
+ errs = new FileOutputStream(errFilePath);
+ result = sshConnection.execCommand(cmd, out, errs, result);
sshConnection.disconnect();
- out.close();
- errs.close();
if (result.getSshExitStatus() != 0) {
return sortExitStatus(result.getSshExitStatus(), errFilePath, cmd);
}
@@ -130,6 +135,11 @@ public class ConnectionBuilder {
logger.error("Caught Exception", io);
result.setStatusCode(SaltstackResultCodes.UNKNOWN_EXCEPTION.getValue());
result.setStatusMessage(io.getMessage());
+ } finally {
+ if( out != null )
+ out.close();
+ if( errs != null )
+ errs.close();
}
return result;
}
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
index 84e5d4f19..e4bceb5ba 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SaltstackAdapterImpl.java
@@ -81,7 +81,7 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
private static final String SS_SERVER_HOSTNAME = "org.onap.appc.adapter.saltstack.host";
private static final String SS_SERVER_PORT = "org.onap.appc.adapter.saltstack.port";
private static final String SS_SERVER_USERNAME = "org.onap.appc.adapter.saltstack.userName";
- private static final String SS_SERVER_PASSWORD = "org.onap.appc.adapter.saltstack.userPasswd";
+ private static final String SS_SERVER_PASSWD = "org.onap.appc.adapter.saltstack.userPasswd";
private static final String SS_SERVER_SSH_KEY = "org.onap.appc.adapter.saltstack.sshKey";
/**
* The logger to be used
@@ -186,7 +186,7 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
String sshHost = props.getProperty(SS_SERVER_HOSTNAME);
String sshPort = props.getProperty(SS_SERVER_PORT);
String sshUserName = props.getProperty(SS_SERVER_USERNAME);
- String sshPassword = props.getProperty(SS_SERVER_PASSWORD);
+ String sshPassword = props.getProperty(SS_SERVER_PASSWD);
sshClient = new ConnectionBuilder(sshHost, sshPort, sshUserName, sshPassword);
} else if ("SSH_CERT".equalsIgnoreCase(clientType)) {
// set path to keystore file
@@ -200,13 +200,10 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
String sshKey = props.getProperty(SS_SERVER_SSH_KEY);
String sshHost = props.getProperty(SS_SERVER_HOSTNAME);
String sshUserName = props.getProperty(SS_SERVER_USERNAME);
- String sshPassword = props.getProperty(SS_SERVER_PASSWORD);
+ String sshPassword = props.getProperty(SS_SERVER_PASSWD);
String sshPort = props.getProperty(SS_SERVER_PORT);
logger.info("Creating ssh client with ssh KEY from " + sshKey);
sshClient = new ConnectionBuilder(sshHost, sshPort, sshUserName, sshPassword, sshKey);
- } else if ("NONE".equalsIgnoreCase(clientType)) {
- logger.info("No saltstack-adapter.properties defined so reading from DG props");
- sshClient = null;
} else {
logger.info("No saltstack-adapter.properties defined so reading from DG props");
sshClient = null;
@@ -317,12 +314,17 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
boolean slsExec;
SaltstackResult testResult;
setSSHClient(params);
- reqID = messageProcessor.reqId(params);
- String commandToExecute = messageProcessor.reqCmd(params);
- slsExec = messageProcessor.reqIsSLSExec(params);
- testResult = execCommand(params, commandToExecute);
- testResult = messageProcessor.parseResponse(ctx, reqID, testResult, slsExec);
- checkResponseStatus(testResult, ctx, reqID, slsExec);
+ try {
+ reqID = messageProcessor.reqId(params);
+ String commandToExecute = messageProcessor.reqCmd(params);
+ slsExec = messageProcessor.reqIsSLSExec(params);
+ testResult = execCommand(ctx, params, commandToExecute, -1);
+ testResult = messageProcessor.parseResponse(ctx, reqID, testResult, slsExec);
+ checkResponseStatus(testResult, ctx, reqID, slsExec);
+ } catch (IOException e) {
+ doFailure(ctx, SaltstackResultCodes.IO_EXCEPTION.getValue(),
+ "IOException in file stream : "+ e.getMessage());
+ }
}
/**
@@ -338,13 +340,19 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
String reqID;
SaltstackResult testResult;
setSSHClient(params);
- reqID = messageProcessor.reqId(params);
- String slsName = messageProcessor.reqSlsName(params);
- String applyTo = messageProcessor.reqApplyToDevices(params);
- String commandToExecute = putToCommands(slsName, applyTo);
- testResult = execCommand(params, commandToExecute);
- testResult = messageProcessor.parseResponse(ctx, reqID, testResult, true);
- checkResponseStatus(testResult, ctx, reqID, true);
+ try {
+ reqID = messageProcessor.reqId(params);
+ String slsName = messageProcessor.reqSlsName(params);
+ String applyTo = messageProcessor.reqApplyToDevices(params);
+ long execTimeout = messageProcessor.reqExecTimeout(params);
+ String commandToExecute = putToCommands(slsName, applyTo);
+ testResult = execCommand(ctx, params, commandToExecute, execTimeout);
+ testResult = messageProcessor.parseResponse(ctx, reqID, testResult, true);
+ checkResponseStatus(testResult, ctx, reqID, true);
+ } catch (IOException e) {
+ doFailure(ctx, SaltstackResultCodes.IO_EXCEPTION.getValue(),
+ "IOException in file stream : "+ e.getMessage());
+ }
}
/**
@@ -360,13 +368,19 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
String reqID;
SaltstackResult testResult;
setSSHClient(params);
- reqID = messageProcessor.reqId(params);
- String slsFile = messageProcessor.reqSlsFile(params);
- String applyTo = messageProcessor.reqApplyToDevices(params);
- String commandToExecute = putToCommands(ctx, slsFile, applyTo);
- testResult = execCommand(params, commandToExecute);
- testResult = messageProcessor.parseResponse(ctx, reqID, testResult, true);
- checkResponseStatus(testResult, ctx, reqID, true);
+ try {
+ reqID = messageProcessor.reqId(params);
+ String slsFile = messageProcessor.reqSlsFile(params);
+ String applyTo = messageProcessor.reqApplyToDevices(params);
+ long execTimeout = messageProcessor.reqExecTimeout(params);
+ String commandToExecute = putToCommands(ctx, slsFile, applyTo);
+ testResult = execCommand(ctx, params, commandToExecute, execTimeout);
+ testResult = messageProcessor.parseResponse(ctx, reqID, testResult, true);
+ checkResponseStatus(testResult, ctx, reqID, true);
+ } catch (IOException e) {
+ doFailure(ctx, SaltstackResultCodes.IO_EXCEPTION.getValue(),
+ "IOException in file stream : "+ e.getMessage());
+ }
}
/**
@@ -382,22 +396,30 @@ public class SaltstackAdapterImpl implements SaltstackAdapter {
}
- public SaltstackResult execCommand(Map<String, String> params, String commandToExecute) {
- SaltstackResult testResult;
- if (params.get(CONNECTION_RETRY_DELAY) != null && params.get(CONNECTION_RETRY_COUNT) != null) {
- int retryDelay = Integer.parseInt(params.get(CONNECTION_RETRY_DELAY));
- int retryCount = Integer.parseInt(params.get(CONNECTION_RETRY_COUNT));
- if (!testMode) {
- testResult = sshClient.connectNExecute(commandToExecute, retryCount, retryDelay);
- } else {
- testResult = testServer.MockReqExec(params);
- }
- } else {
- if (!testMode) {
- testResult = sshClient.connectNExecute(commandToExecute);
+ public SaltstackResult execCommand(SvcLogicContext ctx, Map<String, String> params, String commandToExecute,
+ long execTimeout)
+ throws SvcLogicException{
+
+ SaltstackResult testResult = new SaltstackResult();
+ try {
+ if (params.get(CONNECTION_RETRY_DELAY) != null && params.get(CONNECTION_RETRY_COUNT) != null) {
+ int retryDelay = Integer.parseInt(params.get(CONNECTION_RETRY_DELAY));
+ int retryCount = Integer.parseInt(params.get(CONNECTION_RETRY_COUNT));
+ if (!testMode) {
+ testResult = sshClient.connectNExecute(commandToExecute, retryCount, retryDelay, execTimeout);
+ } else {
+ testResult = testServer.mockReqExec(params);
+ }
} else {
- testResult = testServer.MockReqExec(params);
+ if (!testMode) {
+ testResult = sshClient.connectNExecute(commandToExecute, execTimeout);
+ } else {
+ testResult = testServer.mockReqExec(params);
+ }
}
+ } catch (IOException e) {
+ doFailure(ctx, SaltstackResultCodes.IO_EXCEPTION.getValue(),
+ "IOException in file stream : "+ e.getMessage());
}
return testResult;
}
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SshConnection.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SshConnection.java
index 96ed7d2d6..fd66eb100 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SshConnection.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/impl/SshConnection.java
@@ -50,6 +50,7 @@ class SshConnection {
public static final int DEFAULT_CONNECTION_RETRY_COUNT = 5;
private static final EELFLogger logger = EELFManager.getInstance().getApplicationLogger();
private static final long AUTH_TIMEOUT = 60000;
+ //TODO : change back to 120000
private static final long EXEC_TIMEOUT = 120000;
private String host;
private int port;
@@ -165,16 +166,17 @@ class SshConnection {
this.timeout = timeout;
}
- public SaltstackResult execCommand(String cmd, OutputStream out, OutputStream err) {
- return execCommand(cmd, out, err, false);
+ public SaltstackResult execCommand(String cmd, OutputStream out, OutputStream err, SaltstackResult result ) {
+ return execCommand(cmd, out, err, false, result);
}
- public SaltstackResult execCommandWithPty(String cmd, OutputStream out) {
- return execCommand(cmd, out, out, true);
+ public SaltstackResult execCommandWithPty(String cmd, OutputStream out, SaltstackResult result ) {
+ return execCommand(cmd, out, out, true, result);
}
- private SaltstackResult execCommand(String cmd, OutputStream out, OutputStream err, boolean usePty) {
- SaltstackResult result = new SaltstackResult();
+ private SaltstackResult execCommand(String cmd, OutputStream out, OutputStream err,
+ boolean usePty, SaltstackResult result ) {
+
try {
if (logger.isDebugEnabled()) {
logger.debug("SSH: executing command");
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackMessageParser.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackMessageParser.java
index f282a3381..16ab8dca4 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackMessageParser.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackMessageParser.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.HashSet;
@@ -71,6 +72,7 @@ public class SaltstackMessageParser {
private static final String SLS_FILE_LOCATION = "slsFile";
private static final String SLS_NAME = "slsName";
private static final String MINION_TO_APPLY = "applyTo";
+ private static final String EXEC_TIMEOUT_TO_APPLY = "execTimeout";
private static final String LOCAL_PARAMETERS_OPT_KEY = "LocalParameters";
private static final String FILE_PARAMETERS_OPT_KEY = "FileParameters";
@@ -239,6 +241,21 @@ public class SaltstackMessageParser {
/**
* Method that validates that the Map has enough information
* to query Saltstack server for a result. If so, it returns
+ * the appropriate minions/vnfc to execute the SLS file to.
+ */
+ public long reqExecTimeout(Map<String, String> params) {
+
+ if (params.get(SaltstackMessageParser.EXEC_TIMEOUT_TO_APPLY) == null) {
+ return -1;
+ } else if (params.get(SaltstackMessageParser.EXEC_TIMEOUT_TO_APPLY).equalsIgnoreCase("")) {
+ return -1;
+ }
+ return Long.parseLong(params.get(SaltstackMessageParser.EXEC_TIMEOUT_TO_APPLY));
+ }
+
+ /**
+ * Method that validates that the Map has enough information
+ * to query Saltstack server for a result. If so, it returns
* the appropriate IsSLSExec true or false.
*/
public boolean reqIsSLSExec(Map<String, String> params) throws SvcLogicException {
@@ -289,15 +306,16 @@ public class SaltstackMessageParser {
* and returns an SaltstackResult object.
*/
public SaltstackResult parseResponse(SvcLogicContext ctx, String pfx,
- SaltstackResult saltstackResult, boolean slsExec) {
+ SaltstackResult saltstackResult, boolean slsExec) throws IOException{
int code = saltstackResult.getStatusCode();
+ InputStream in = null;
boolean executionStatus = true, retCodeFound = false;
if (code != SaltstackResultCodes.SUCCESS.getValue()) {
return saltstackResult;
}
try {
File file = new File(saltstackResult.getOutputFileName());
- InputStream in = new FileInputStream(file);
+ in = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
in.read(data);
String str = new String(data, "UTF-8");
@@ -324,23 +342,28 @@ public class SaltstackMessageParser {
} catch (Exception e) {
return new SaltstackResult(SaltstackResultCodes.INVALID_RESPONSE_FILE.getValue(), "error parsing response file "
+ saltstackResult.getOutputFileName() + " : " + e.getMessage());
+ } finally {
+ if( in != null )
+ in.close();
}
if (slsExec) {
if (!retCodeFound)
return new SaltstackResult(SaltstackResultCodes.COMMAND_EXEC_FAILED_STATUS.getValue(),
- "error in parsing response Json after SLS file execution in server");
+ "error in executing configuration at the server");
if (!executionStatus)
return new SaltstackResult(SaltstackResultCodes.COMMAND_EXEC_FAILED_STATUS.getValue(),
- "error in parsing response Json after SLS file execution in server");
+ "error in executing configuration at the server");
}
saltstackResult.setStatusCode(SaltstackResultCodes.FINAL_SUCCESS.getValue());
return saltstackResult;
}
- public SaltstackResult putToProperties(SvcLogicContext ctx, String pfx, SaltstackResult saltstackResult) {
+ public SaltstackResult putToProperties(SvcLogicContext ctx, String pfx,
+ SaltstackResult saltstackResult) throws IOException{
+ InputStream in = null;
try {
File file = new File(saltstackResult.getOutputFileName());
- InputStream in = new FileInputStream(file);
+ in = new FileInputStream(file);
Properties prop = new Properties();
prop.load(in);
ctx.setAttribute(pfx + "completeResult", prop.toString());
@@ -348,13 +371,16 @@ public class SaltstackMessageParser {
String name = (String) key;
String value = prop.getProperty(name);
if (value != null && value.trim().length() > 0) {
- ctx.setAttribute(pfx + name, value.trim());
- LOGGER.info("+++ " + pfx + name + ": [" + value + "]");
+ ctx.setAttribute(pfx + "." + name, value.trim());
+ LOGGER.info("+++ " + pfx + "." + name + ": [" + value + "]");
}
}
} catch (Exception e) {
saltstackResult = new SaltstackResult(SaltstackResultCodes.INVALID_RESPONSE_FILE.getValue(), "Error parsing response file = "
+ saltstackResult.getOutputFileName() + ". Error = " + e.getMessage());
+ } finally {
+ if( in != null )
+ in.close();
}
saltstackResult.setStatusCode(SaltstackResultCodes.FINAL_SUCCESS.getValue());
return saltstackResult;
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackServerEmulator.java b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackServerEmulator.java
index ecb36fb83..adbf9bd9a 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackServerEmulator.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/main/java/org/onap/ccsdk/sli/adaptors/saltstack/model/SaltstackServerEmulator.java
@@ -55,7 +55,7 @@ public class SaltstackServerEmulator {
* Returns an saltstack object result. The response code is always the ssh code 200 (i.e connection successful)
* payload is json string as would be sent back by Saltstack Server
**/
- public SaltstackResult MockReqExec(Map<String, String> params) {
+ public SaltstackResult mockReqExec(Map<String, String> params) {
SaltstackResult result = new SaltstackResult();
try {
@@ -75,45 +75,6 @@ public class SaltstackServerEmulator {
return result;
}
- /**
- * Method to emulate response from an Saltstack
- * Server when presented with a GET request
- * Returns an saltstack object result. The response code is always the ssh code 200 (i.e connection successful)
- * payload is json string as would be sent back by Saltstack Server
- **/
- public SaltstackResult Execute(String agentUrl) {
-
- Pattern pattern = Pattern.compile(".*?\\?Id=(.*?)&Type.*");
- Matcher matcher = pattern.matcher(agentUrl);
- String id = StringUtils.EMPTY;
- String vmAddress = "192.168.1.10";
-
- if (matcher.find()) {
- id = matcher.group(1);
- }
-
- SaltstackResult getResult = new SaltstackResult();
-
- JSONObject response = new JSONObject();
- response.put(STATUS_CODE, 200);
- response.put(STATUS_MESSAGE, "FINISHED");
-
- JSONObject results = new JSONObject();
-
- JSONObject vmResults = new JSONObject();
- vmResults.put(STATUS_CODE, 200);
- vmResults.put(STATUS_MESSAGE, "SUCCESS");
- vmResults.put("Id", id);
- results.put(vmAddress, vmResults);
-
- response.put("Results", results);
-
- getResult.setStatusCode(200);
- getResult.setStatusMessage(response.toString());
-
- return getResult;
- }
-
private SaltstackResult rejectRequest(SaltstackResult result, String Message) {
result.setStatusCode(SaltstackResultCodes.REJECTED.getValue());
result.setStatusMessage("Rejected");
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestConnectionBuilder.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestConnectionBuilder.java
index d9a384141..933f3fcf7 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestConnectionBuilder.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestConnectionBuilder.java
@@ -22,7 +22,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.appc.adapter.impl;
+package org.onap.ccsdk.adapter.impl;
import org.junit.After;
import org.junit.Before;
@@ -41,21 +41,12 @@ import static org.junit.Assert.fail;
public class TestConnectionBuilder {
- private final String PENDING = "100";
- private final String SUCCESS = "400";
- private String message = "{\"Results\":{\"192.168.1.10\":{\"Id\":\"101\",\"StatusCode\":200,\"StatusMessage\":\"SUCCESS\"}},\"StatusCode\":200,\"StatusMessage\":\"FINISHED\"}";
-
private ConnectionBuilder connBuilder;
- private String TestId;
- private boolean testMode = true;
private Map<String, String> params;
- private SvcLogicContext svcContext;
@Before
public void setup() throws IllegalArgumentException {
- testMode = true;
- svcContext = new SvcLogicContext();
String HostName = "test";
String Port = "10";
String User = "test";
@@ -70,10 +61,8 @@ public class TestConnectionBuilder {
@After
public void tearDown() {
- testMode = false;
connBuilder = null;
params = null;
- svcContext = null;
}
@Test
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterImpl.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
index d60059e40..48f5c20b8 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterImpl.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterImpl.java
@@ -22,7 +22,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.appc.adapter.impl;
+package org.onap.ccsdk.adapter.impl;
import org.junit.After;
import org.junit.Before;
@@ -40,10 +40,6 @@ import static org.junit.Assert.fail;
public class TestSaltstackAdapterImpl {
- private final String PENDING = "100";
- private final String SUCCESS = "400";
- private String message = "{\"Results\":{\"192.168.1.10\":{\"Id\":\"101\",\"StatusCode\":200,\"StatusMessage\":\"SUCCESS\"}},\"StatusCode\":200,\"StatusMessage\":\"FINISHED\"}";
-
private SaltstackAdapterImpl adapter;
private String TestId;
private boolean testMode = true;
@@ -457,7 +453,6 @@ public class TestSaltstackAdapterImpl {
params.put("Id", "test1");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -476,7 +471,6 @@ public class TestSaltstackAdapterImpl {
params.put("Id", "test1");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -495,7 +489,6 @@ public class TestSaltstackAdapterImpl {
params.put("Id", "test1");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -559,7 +552,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "minion1");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -579,7 +571,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "minion1");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -621,7 +612,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "*");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -641,7 +631,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "*");
adapter.reqExecSLSFile(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -703,7 +692,6 @@ public class TestSaltstackAdapterImpl {
params.put("Id", "test1");
adapter.reqExecSLS(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -747,7 +735,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "minion1");
adapter.reqExecSLS(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -790,7 +777,6 @@ public class TestSaltstackAdapterImpl {
params.put("applyTo", "*");
adapter.reqExecSLS(params, svcContext);
- String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
assertEquals(TestId, "test1");
}
@@ -813,4 +799,107 @@ public class TestSaltstackAdapterImpl {
fail(e.getMessage() + " Unknown exception encountered ");
}
}
+
+ @Test
+ public void reqExecCommand_shouldSetSuccessReal() throws SvcLogicException,
+ IllegalStateException, IllegalArgumentException {
+
+ params.put("HostName", "127.0.0.1");
+ params.put("Port", "22");
+ params.put("User", "sdn");
+ params.put("Password", "foo");
+ params.put("Id", "test1");
+ params.put("cmd", "ls -l");
+ params.put("slsExec", "false");
+ params.put("execTimeout", "12000");
+ adapter = new SaltstackAdapterImpl();
+ try {
+ adapter.reqExecCommand(params, svcContext);
+ String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
+ TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
+ assertEquals("250", status);
+ assertEquals(TestId, "test1");
+ } catch (Exception e){
+ //if local ssh is not enabled
+ return;
+ }
+ }
+
+ @Test
+ public void reqExecCommand_shouldSetSuccessRealCommand() throws SvcLogicException,
+ IllegalStateException, IllegalArgumentException {
+
+ params.put("HostName", "<IP>");
+ params.put("Port", "2222");
+ params.put("User", "root");
+ params.put("Password", "vagrant");
+ params.put("Id", "test1");
+ params.put("cmd", "cd /srv/salt/; salt '*' state.apply vim --out=json --static");
+ params.put("slsExec", "true");
+ params.put("execTimeout", "12000");
+
+ adapter = new SaltstackAdapterImpl();
+ try {
+ adapter.reqExecCommand(params, svcContext);
+ String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
+ TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
+ assertEquals("200", status);
+ assertEquals(TestId, "test1");
+ } catch (Exception e){
+ //if saltstack ssh IP is not enabled
+ return;
+ }
+ }
+
+ @Test
+ public void reqExecCommand_shouldSetSuccessRealSSL() throws SvcLogicException,
+ IllegalStateException, IllegalArgumentException {
+
+ params.put("HostName", "10.251.92.17");
+ params.put("Port", "2222");
+ params.put("User", "root");
+ params.put("Password", "vagrant");
+ params.put("Id", "test1");
+ params.put("slsName", "vim");
+ params.put("execTimeout", "12000");
+ params.put("applyTo", "minion1");
+
+ adapter = new SaltstackAdapterImpl();
+ try {
+ adapter.reqExecSLS(params, svcContext);
+ String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
+ TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
+ assertEquals("200", status);
+ assertEquals(TestId, "test1");
+ } catch (Exception e){
+ //if saltstack ssh IP is not enabled
+ return;
+ }
+ }
+
+ @Test
+ public void reqExecCommand_shouldSetSuccessSSLFile() throws SvcLogicException,
+ IllegalStateException, IllegalArgumentException {
+
+ params.put("HostName", "10.251.92.17");
+ params.put("Port", "2222");
+ params.put("User", "root");
+ params.put("Password", "vagrant");
+ params.put("Id", "test1");
+ params.put("execTimeout", "12000");
+ params.put("applyTo", "minion1");
+ params.put("slsFile", "src/test/resources/config.sls");
+
+ adapter = new SaltstackAdapterImpl();
+ try {
+ adapter.reqExecSLSFile(params, svcContext);
+ String status = svcContext.getAttribute("org.onap.appc.adapter.saltstack.result.code");
+ TestId = svcContext.getAttribute("org.onap.appc.adapter.saltstack.Id");
+ assertEquals("200", status);
+ assertEquals(TestId, "test1");
+ } catch (Exception e){
+ //if saltstack ssh IP is not enabled
+ return;
+ }
+ }
}
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java
index 927591830..094e78c79 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/impl/TestSaltstackAdapterPropertiesProviderImpl.java
@@ -22,7 +22,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.appc.adapter.impl;
+package org.onap.ccsdk.adapter.impl;
import org.junit.After;
import org.junit.Before;
@@ -37,13 +37,9 @@ import java.util.Properties;
import static org.junit.Assert.assertEquals;
public class TestSaltstackAdapterPropertiesProviderImpl {
- private final String PENDING = "100";
- private final String SUCCESS = "400";
- private String message = "{\"Results\":{\"192.168.1.10\":{\"Id\":\"101\",\"StatusCode\":200,\"StatusMessage\":\"SUCCESS\"}},\"StatusCode\":200,\"StatusMessage\":\"FINISHED\"}";
private SaltstackAdapterImpl adapter;
private Properties params;
- private SvcLogicContext svcContext;
@Before
@@ -55,7 +51,6 @@ public class TestSaltstackAdapterPropertiesProviderImpl {
public void tearDown() {
adapter = null;
params = null;
- svcContext = null;
}
@Test(expected = SvcLogicException.class)
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestJsonParser.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestJsonParser.java
index ae13da6c8..74e7ed0c4 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestJsonParser.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestJsonParser.java
@@ -19,7 +19,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.appc.adapter.model;
+package org.onap.ccsdk.adapter.model;
import org.codehaus.jettison.json.JSONException;
import org.junit.Test;
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestSaltstackAdapter.java b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestSaltstackAdapter.java
index 37b6502ca..0caaf3320 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/appc/adapter/model/TestSaltstackAdapter.java
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/java/org/onap/ccsdk/adapter/model/TestSaltstackAdapter.java
@@ -21,7 +21,7 @@
* ECOMP is a trademark and service mark of AT&T Intellectual Property.
* ============LICENSE_END=========================================================
*/
-package org.onap.appc.adapter.model;
+package org.onap.ccsdk.adapter.model;
import org.junit.Test;
import org.onap.ccsdk.sli.adaptors.saltstack.model.SaltstackMessageParser;
@@ -39,7 +39,6 @@ public class TestSaltstackAdapter {
private Class[] parameterTypes;
private SaltstackMessageParser saltstackMessageParser;
private Method m;
- private String name;
@Test
public void callPrivateConstructorsMethodsForCodeCoverage() throws SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {
@@ -48,21 +47,18 @@ public class TestSaltstackAdapter {
Class<?>[] classesOne = {SaltstackMessageParser.class};
for(Class<?> clazz : classesOne) {
Constructor<?> constructor = clazz.getDeclaredConstructor();
- name = constructor.getName();
constructor.setAccessible(true);
assertNotNull(constructor.newInstance());
}
Class<?>[] classesTwo = {SaltstackServerEmulator.class};
for(Class<?> clazz : classesTwo) {
Constructor<?> constructor = clazz.getDeclaredConstructor();
- name = constructor.getName();
constructor.setAccessible(true);
assertNotNull(constructor.newInstance());
}
Class<?>[] classesThree = {SaltstackResult.class};
for(Class<?> clazz : classesThree) {
Constructor<?> constructor = clazz.getDeclaredConstructor();
- name = constructor.getName();
constructor.setAccessible(true);
assertNotNull(constructor.newInstance());
}
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/resources/config.sls b/saltstack-adapter/saltstack-adapter-provider/src/test/resources/config.sls
new file mode 100644
index 000000000..aff05939b
--- /dev/null
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/resources/config.sls
@@ -0,0 +1,2 @@
+vim:
+ pkg.installed
diff --git a/saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/appc/default.properties b/saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/ccsdk/default.properties
index 2f8fb4585..2f8fb4585 100644
--- a/saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/appc/default.properties
+++ b/saltstack-adapter/saltstack-adapter-provider/src/test/resources/org/onap/ccsdk/default.properties