Skip to content

Commit f1db139

Browse files
committed
Use sudo only for non-root user
1 parent a200f85 commit f1db139

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

server/src/main/java/org/apache/cloudstack/ca/CAManagerImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,9 @@ private boolean provisionKvmHostViaSsh(Host host, String caProvider) {
323323

324324
provisionCertificateViaSsh(sshConnection, hostIp, host.getName(), caProvider);
325325

326-
SSHCmdHelper.sshExecuteCmd(sshConnection, "sudo systemctl restart libvirtd");
327-
SSHCmdHelper.sshExecuteCmd(sshConnection, "sudo systemctl restart cloudstack-agent");
326+
String sudoPrefix = "root".equals(username) ? "" : "sudo ";
327+
SSHCmdHelper.sshExecuteCmd(sshConnection, sudoPrefix + "systemctl restart libvirtd");
328+
SSHCmdHelper.sshExecuteCmd(sshConnection, sudoPrefix + "systemctl restart cloudstack-agent");
328329

329330
return true;
330331
} catch (Exception e) {

server/src/test/java/org/apache/cloudstack/ca/CAManagerImplTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ public void testProvisionKvmHostViaSsh() throws Exception {
290290

291291
Assert.assertTrue(result);
292292
Mockito.verify(caManager, Mockito.times(1)).provisionCertificateViaSsh(Mockito.any(Connection.class), Mockito.eq("192.168.1.1"), Mockito.eq("host1"), Mockito.eq("root"));
293-
sshCmdHelperMock.verify(() -> SSHCmdHelper.sshExecuteCmd(Mockito.any(Connection.class), Mockito.eq("sudo service libvirtd restart")), Mockito.times(1));
294-
sshCmdHelperMock.verify(() -> SSHCmdHelper.sshExecuteCmd(Mockito.any(Connection.class), Mockito.eq("sudo service cloudstack-agent restart")), Mockito.times(1));
293+
sshCmdHelperMock.verify(() -> SSHCmdHelper.sshExecuteCmd(Mockito.any(Connection.class), Mockito.eq("systemctl restart libvirtd")), Mockito.times(1));
294+
sshCmdHelperMock.verify(() -> SSHCmdHelper.sshExecuteCmd(Mockito.any(Connection.class), Mockito.eq("systemctl restart cloudstack-agent")), Mockito.times(1));
295295
}
296296
}
297297

0 commit comments

Comments
 (0)