Skip to content

Commit eee516c

Browse files
committed
changes
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent f112ba9 commit eee516c

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,7 +1163,7 @@ protected void updateVmMetadataManufacturerAndProduct(VirtualMachineTO vmTO, VMI
11631163
vmTO.setMetadataProductName(metadataProduct);
11641164
}
11651165

1166-
protected void updateExternalVm(VirtualMachineTO vmTO, VirtualMachineTO updatedTO) {
1166+
protected void updateExternalVmPrepareAnswer(VirtualMachineTO vmTO, VirtualMachineTO updatedTO) {
11671167
if (updatedTO == null) {
11681168
return;
11691169
}
@@ -1224,7 +1224,7 @@ protected void processPrepareExternalProvisioning(Host host, VirtualMachineTO vi
12241224
return;
12251225
}
12261226
PrepareExternalProvisioningAnswer prepareAnswer = (PrepareExternalProvisioningAnswer)answer;
1227-
updateExternalVm(virtualMachineTO, prepareAnswer.getVirtualMachineTO());
1227+
updateExternalVmPrepareAnswer(virtualMachineTO, prepareAnswer.getVirtualMachineTO());
12281228
}
12291229

12301230
@Override

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
import com.cloud.vm.VmDetailConstants;
8484
import com.cloud.vm.dao.UserVmDao;
8585
import com.cloud.vm.dao.VMInstanceDao;
86+
import com.google.gson.JsonSyntaxException;
8687

8788
public class SimpleExternalProvisioner extends ManagerBase implements ExternalProvisioner, PluggableService {
8889

@@ -267,13 +268,13 @@ public PrepareExternalProvisioningAnswer prepareExternalProvisioning(String host
267268
if (StringUtils.isEmpty(output)) {
268269
return new PrepareExternalProvisioningAnswer(cmd, true, "");
269270
}
270-
Map<String, String> resultMap = null;
271+
VirtualMachineTO virtualMachineTO = null;
271272
try {
272-
resultMap = StringUtils.parseJsonToMap(output);
273-
} catch (CloudRuntimeException e) {
273+
virtualMachineTO = GsonHelper.getGson().fromJson(output, VirtualMachineTO.class);
274+
} catch (JsonSyntaxException e) {
274275
logger.warn("Failed to parse the output from preparing external provisioning operation as part of VM deployment");
275276
}
276-
return new PrepareExternalProvisioningAnswer(cmd, resultMap, null, null);
277+
return new PrepareExternalProvisioningAnswer(cmd, null, virtualMachineTO, null);
277278
}
278279

279280
@Override

scripts/vm/hypervisor/external/simpleExternalProvisioner/provisioner.sh

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,18 @@ prepare() {
3333
mac_address=$(generate_random_mac)
3434

3535
local response
36-
response=$(jq -n --arg mac "$mac_address" \
37-
'{status: "success", mac_address: $mac}')
38-
36+
$response='{"nics":['
37+
first=1
38+
while read -r uuid; do
39+
new_mac=$(generate_random_mac)
40+
if [ $first -eq 1 ]; then
41+
first=0
42+
else
43+
$response+=','
44+
fi
45+
$response+='{"uuid":"'"$uuid"'","mac":"'"$new_mac"'"}'
46+
done <<< "$nics_json"
47+
$response+=']}'
3948
echo "$response"
4049
}
4150

0 commit comments

Comments
 (0)