mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Fixing testModifySshKeysCommand in the LibvirtComputingResourceTest class
- The test was okay, but when running in an environment where a /root/.ssh/id_rsa existed, it would return true then fail - We now mock the calls to methods that return the key paths, instead of relying in the static variables
This commit is contained in:
parent
b284b84192
commit
f575206ad4
@ -38,21 +38,28 @@ public final class LibvirtModifySshKeysCommandWrapper extends CommandWrapper<Mod
|
||||
|
||||
@Override
|
||||
public Answer execute(final ModifySshKeysCommand command, final LibvirtComputingResource libvirtComputingResource) {
|
||||
final File sshKeysDir = new File(LibvirtComputingResource.SSHKEYSPATH);
|
||||
|
||||
final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
|
||||
|
||||
final String sshkeyspath = libvirtUtilitiesHelper.retrieveSshKeysPath();
|
||||
final String sshpubkeypath = libvirtUtilitiesHelper.retrieveSshPubKeyPath();
|
||||
final String sshprvkeypath = libvirtUtilitiesHelper.retrieveSshPrvKeyPath();
|
||||
|
||||
final File sshKeysDir = new File(sshkeyspath);
|
||||
String result = null;
|
||||
if (!sshKeysDir.exists()) {
|
||||
// Change permissions for the 700
|
||||
final Script script = new Script("mkdir", libvirtComputingResource.getTimeout(), s_logger);
|
||||
script.add("-m", "700");
|
||||
script.add(LibvirtComputingResource.SSHKEYSPATH);
|
||||
script.add(sshkeyspath);
|
||||
script.execute();
|
||||
|
||||
if (!sshKeysDir.exists()) {
|
||||
s_logger.debug("failed to create directory " + LibvirtComputingResource.SSHKEYSPATH);
|
||||
s_logger.debug("failed to create directory " + sshkeyspath);
|
||||
}
|
||||
}
|
||||
|
||||
final File pubKeyFile = new File(LibvirtComputingResource.SSHPUBKEYPATH);
|
||||
final File pubKeyFile = new File(sshpubkeypath);
|
||||
if (!pubKeyFile.exists()) {
|
||||
try {
|
||||
pubKeyFile.createNewFile();
|
||||
@ -66,16 +73,16 @@ public final class LibvirtModifySshKeysCommandWrapper extends CommandWrapper<Mod
|
||||
try (FileOutputStream pubkStream = new FileOutputStream(pubKeyFile)) {
|
||||
pubkStream.write(command.getPubKey().getBytes());
|
||||
} catch (final FileNotFoundException e) {
|
||||
result = "File" + LibvirtComputingResource.SSHPUBKEYPATH + "is not found:"
|
||||
result = "File" + sshpubkeypath + "is not found:"
|
||||
+ e.toString();
|
||||
s_logger.debug(result);
|
||||
} catch (final IOException e) {
|
||||
result = "Write file " + LibvirtComputingResource.SSHPUBKEYPATH + ":" + e.toString();
|
||||
result = "Write file " + sshpubkeypath + ":" + e.toString();
|
||||
s_logger.debug(result);
|
||||
}
|
||||
}
|
||||
|
||||
final File prvKeyFile = new File(LibvirtComputingResource.SSHPRVKEYPATH);
|
||||
final File prvKeyFile = new File(sshprvkeypath);
|
||||
if (!prvKeyFile.exists()) {
|
||||
try {
|
||||
prvKeyFile.createNewFile();
|
||||
@ -92,14 +99,14 @@ public final class LibvirtModifySshKeysCommandWrapper extends CommandWrapper<Mod
|
||||
prvKStream.write(prvKey.getBytes());
|
||||
}
|
||||
} catch (final FileNotFoundException e) {
|
||||
result = "File" + LibvirtComputingResource.SSHPRVKEYPATH + "is not found:" + e.toString();
|
||||
result = "File" + sshprvkeypath + "is not found:" + e.toString();
|
||||
s_logger.debug(result);
|
||||
} catch (final IOException e) {
|
||||
result = "Write file " + LibvirtComputingResource.SSHPRVKEYPATH + ":" + e.toString();
|
||||
result = "Write file " + sshprvkeypath + ":" + e.toString();
|
||||
s_logger.debug(result);
|
||||
}
|
||||
final Script script = new Script("chmod", libvirtComputingResource.getTimeout(), s_logger);
|
||||
script.add("600", LibvirtComputingResource.SSHPRVKEYPATH);
|
||||
script.add("600", sshprvkeypath);
|
||||
script.execute();
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ import javax.naming.ConfigurationException;
|
||||
import org.libvirt.Connect;
|
||||
import org.libvirt.LibvirtException;
|
||||
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
|
||||
import com.cloud.storage.StorageLayer;
|
||||
import com.cloud.storage.template.Processor;
|
||||
@ -69,4 +70,16 @@ public class LibvirtUtilitiesHelper {
|
||||
public Connect getConnectionByType(final String hvsType) throws LibvirtException {
|
||||
return LibvirtConnection.getConnectionByType(hvsType);
|
||||
}
|
||||
|
||||
public String retrieveSshKeysPath() {
|
||||
return LibvirtComputingResource.SSHKEYSPATH;
|
||||
}
|
||||
|
||||
public String retrieveSshPubKeyPath() {
|
||||
return LibvirtComputingResource.SSHPUBKEYPATH;
|
||||
}
|
||||
|
||||
public String retrieveSshPrvKeyPath() {
|
||||
return LibvirtComputingResource.SSHPRVKEYPATH;
|
||||
}
|
||||
}
|
||||
@ -1711,6 +1711,13 @@ public class LibvirtComputingResourceTest {
|
||||
public void testModifySshKeysCommand() {
|
||||
final ModifySshKeysCommand command = new ModifySshKeysCommand("", "");
|
||||
|
||||
final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
|
||||
when(libvirtComputingResource.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper);
|
||||
|
||||
when(libvirtUtilitiesHelper.retrieveSshKeysPath()).thenReturn("/path/keys");
|
||||
when(libvirtUtilitiesHelper.retrieveSshPubKeyPath()).thenReturn("/path/pub/keys");
|
||||
when(libvirtUtilitiesHelper.retrieveSshPrvKeyPath()).thenReturn("/path/pvt/keys");
|
||||
|
||||
when(libvirtComputingResource.getTimeout()).thenReturn(0);
|
||||
|
||||
final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user