Skip to content

Commit 65c3a41

Browse files
committed
base changes for checkhealthcommand handling
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent 0174a13 commit 65c3a41

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

engine/components-api/src/main/java/com/cloud/hypervisor/ExternalProvisioner.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import java.util.Map;
2020

21+
import com.cloud.agent.api.Answer;
22+
import com.cloud.agent.api.CheckHealthCommand;
2123
import com.cloud.agent.api.HostVmStateReportEntry;
2224
import com.cloud.agent.api.PostExternalProvisioningAnswer;
2325
import com.cloud.agent.api.PostExternalProvisioningCommand;
@@ -65,4 +67,6 @@ public interface ExternalProvisioner extends Manager {
6567
RunCustomActionAnswer runCustomAction(String extensionName, RunCustomActionCommand cmd);
6668

6769
void prepareScripts(String extensionName);
70+
71+
Answer checkHealth(String extensionName, CheckHealthCommand cmd);
6872
}

plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/provisioner/simpleprovisioner/SimpleExternalProvisioner.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import org.apache.commons.collections.CollectionUtils;
4040

4141
import com.cloud.agent.AgentManager;
42+
import com.cloud.agent.api.Answer;
43+
import com.cloud.agent.api.CheckHealthCommand;
4244
import com.cloud.agent.api.HostVmStateReportEntry;
4345
import com.cloud.agent.api.PostExternalProvisioningAnswer;
4446
import com.cloud.agent.api.PostExternalProvisioningCommand;
@@ -531,6 +533,16 @@ public Pair<Boolean, String> executeExternalCommand(String filename, String acti
531533
}
532534
}
533535

536+
@Override
537+
public Answer checkHealth(String extensionName, CheckHealthCommand cmd) {
538+
String extensionPath = getExtensionCheckedScriptPath(extensionName);
539+
if (StringUtils.isEmpty(extensionPath)) {
540+
return new Answer(cmd, false, "Extension not configured");
541+
}
542+
// ToDo: should we check with provisioner script?
543+
return new Answer(cmd);
544+
}
545+
534546
private String prepareParameters(Map<String, String> details) throws JsonProcessingException {
535547
ObjectMapper objectMapper = new ObjectMapper();
536548
return objectMapper.writeValueAsString(details);

plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/resource/ExternalResourceBase.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
import com.cloud.agent.IAgentControl;
3232
import com.cloud.agent.api.Answer;
33+
import com.cloud.agent.api.CheckHealthCommand;
3334
import com.cloud.agent.api.CheckNetworkAnswer;
3435
import com.cloud.agent.api.CheckNetworkCommand;
3536
import com.cloud.agent.api.Command;
@@ -155,6 +156,8 @@ public Answer executeRequest(Command cmd) {
155156
return execute((PingTestCommand) cmd);
156157
} else if (cmd instanceof MaintainCommand) {
157158
return execute((MaintainCommand) cmd);
159+
} else if (cmd instanceof CheckHealthCommand) {
160+
return execute((CheckHealthCommand) cmd);
158161
} else if (cmd instanceof RunCustomActionCommand) {
159162
return execute((RunCustomActionCommand) cmd);
160163
} else {
@@ -212,6 +215,10 @@ public StartAnswer execute(StartCommand cmd) {
212215
return externalProvisioner.startInstance(_extensionName, cmd);
213216
}
214217

218+
private Answer execute(CheckHealthCommand cmd) {
219+
return externalProvisioner.checkHealth(_extensionName, cmd);
220+
}
221+
215222
@Override
216223
public void disconnected() {
217224

0 commit comments

Comments
 (0)