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
|
@Override
|
||||||
public Answer execute(final ModifySshKeysCommand command, final LibvirtComputingResource libvirtComputingResource) {
|
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;
|
String result = null;
|
||||||
if (!sshKeysDir.exists()) {
|
if (!sshKeysDir.exists()) {
|
||||||
// Change permissions for the 700
|
// Change permissions for the 700
|
||||||
final Script script = new Script("mkdir", libvirtComputingResource.getTimeout(), s_logger);
|
final Script script = new Script("mkdir", libvirtComputingResource.getTimeout(), s_logger);
|
||||||
script.add("-m", "700");
|
script.add("-m", "700");
|
||||||
script.add(LibvirtComputingResource.SSHKEYSPATH);
|
script.add(sshkeyspath);
|
||||||
script.execute();
|
script.execute();
|
||||||
|
|
||||||
if (!sshKeysDir.exists()) {
|
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()) {
|
if (!pubKeyFile.exists()) {
|
||||||
try {
|
try {
|
||||||
pubKeyFile.createNewFile();
|
pubKeyFile.createNewFile();
|
||||||
@ -66,16 +73,16 @@ public final class LibvirtModifySshKeysCommandWrapper extends CommandWrapper<Mod
|
|||||||
try (FileOutputStream pubkStream = new FileOutputStream(pubKeyFile)) {
|
try (FileOutputStream pubkStream = new FileOutputStream(pubKeyFile)) {
|
||||||
pubkStream.write(command.getPubKey().getBytes());
|
pubkStream.write(command.getPubKey().getBytes());
|
||||||
} catch (final FileNotFoundException e) {
|
} catch (final FileNotFoundException e) {
|
||||||
result = "File" + LibvirtComputingResource.SSHPUBKEYPATH + "is not found:"
|
result = "File" + sshpubkeypath + "is not found:"
|
||||||
+ e.toString();
|
+ e.toString();
|
||||||
s_logger.debug(result);
|
s_logger.debug(result);
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
result = "Write file " + LibvirtComputingResource.SSHPUBKEYPATH + ":" + e.toString();
|
result = "Write file " + sshpubkeypath + ":" + e.toString();
|
||||||
s_logger.debug(result);
|
s_logger.debug(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final File prvKeyFile = new File(LibvirtComputingResource.SSHPRVKEYPATH);
|
final File prvKeyFile = new File(sshprvkeypath);
|
||||||
if (!prvKeyFile.exists()) {
|
if (!prvKeyFile.exists()) {
|
||||||
try {
|
try {
|
||||||
prvKeyFile.createNewFile();
|
prvKeyFile.createNewFile();
|
||||||
@ -92,14 +99,14 @@ public final class LibvirtModifySshKeysCommandWrapper extends CommandWrapper<Mod
|
|||||||
prvKStream.write(prvKey.getBytes());
|
prvKStream.write(prvKey.getBytes());
|
||||||
}
|
}
|
||||||
} catch (final FileNotFoundException e) {
|
} 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);
|
s_logger.debug(result);
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
result = "Write file " + LibvirtComputingResource.SSHPRVKEYPATH + ":" + e.toString();
|
result = "Write file " + sshprvkeypath + ":" + e.toString();
|
||||||
s_logger.debug(result);
|
s_logger.debug(result);
|
||||||
}
|
}
|
||||||
final Script script = new Script("chmod", libvirtComputingResource.getTimeout(), s_logger);
|
final Script script = new Script("chmod", libvirtComputingResource.getTimeout(), s_logger);
|
||||||
script.add("600", LibvirtComputingResource.SSHPRVKEYPATH);
|
script.add("600", sshprvkeypath);
|
||||||
script.execute();
|
script.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import javax.naming.ConfigurationException;
|
|||||||
import org.libvirt.Connect;
|
import org.libvirt.Connect;
|
||||||
import org.libvirt.LibvirtException;
|
import org.libvirt.LibvirtException;
|
||||||
|
|
||||||
|
import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
|
||||||
import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
|
import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
|
||||||
import com.cloud.storage.StorageLayer;
|
import com.cloud.storage.StorageLayer;
|
||||||
import com.cloud.storage.template.Processor;
|
import com.cloud.storage.template.Processor;
|
||||||
@ -69,4 +70,16 @@ public class LibvirtUtilitiesHelper {
|
|||||||
public Connect getConnectionByType(final String hvsType) throws LibvirtException {
|
public Connect getConnectionByType(final String hvsType) throws LibvirtException {
|
||||||
return LibvirtConnection.getConnectionByType(hvsType);
|
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() {
|
public void testModifySshKeysCommand() {
|
||||||
final ModifySshKeysCommand command = new ModifySshKeysCommand("", "");
|
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);
|
when(libvirtComputingResource.getTimeout()).thenReturn(0);
|
||||||
|
|
||||||
final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance();
|
final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user