Skip to content

Commit 982d39b

Browse files
committed
Fixup
1 parent 9d59c87 commit 982d39b

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilder.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static com.cloud.network.NetworkModel.CONFIGDATA_FILE;
2323
import static com.cloud.network.NetworkModel.PASSWORD_FILE;
2424
import static com.cloud.network.NetworkModel.USERDATA_FILE;
25+
import static com.cloud.network.NetworkService.DEFAULT_MTU;
2526

2627
import java.io.File;
2728
import java.io.IOException;
@@ -274,41 +275,51 @@ static JsonObject createJsonObjectWithNic(NicProfile nic) {
274275
if (StringUtils.isNotBlank(nic.getMacAddress())) {
275276
JsonObject link = new JsonObject();
276277
link.addProperty("ethernet_mac_address", nic.getMacAddress());
277-
link.addProperty("id", "eth0");
278-
link.addProperty("mtu", 1500);
278+
link.addProperty("id", String.format("eth%d", nic.getDeviceId()));
279+
link.addProperty("mtu", nic.getMtu() != null ? nic.getMtu() : DEFAULT_MTU);
279280
link.addProperty("type", "phy");
280281
links.add(link);
281282
}
282283

283284
if (StringUtils.isNotBlank(nic.getIPv4Address())) {
284285
JsonObject ipv4Network = new JsonObject();
285-
ipv4Network.addProperty("id", nic.getIPv4Address());
286+
ipv4Network.addProperty("id", String.format("eth%d", nic.getDeviceId()));
286287
ipv4Network.addProperty("ip_address", nic.getIPv4Address());
287-
ipv4Network.addProperty("link", "eth0");
288+
ipv4Network.addProperty("link", String.format("eth%d", nic.getDeviceId()));
288289
ipv4Network.addProperty("netmask", nic.getIPv4Netmask());
289-
ipv4Network.addProperty("network_id", nic.getNetworkId());
290+
ipv4Network.addProperty("network_id", nic.getUuid());
290291
ipv4Network.addProperty("type", "ipv4");
291292

293+
JsonArray ipv4RouteArray = new JsonArray();
292294
JsonObject ipv4Route = new JsonObject();
293295
ipv4Route.addProperty("gateway", nic.getIPv4Gateway());
294296
ipv4Route.addProperty("netmask", "0.0.0.0");
295297
ipv4Route.addProperty("network", "0.0.0.0");
298+
ipv4RouteArray.add(ipv4Route);
299+
300+
ipv4Network.add("routes", ipv4RouteArray);
301+
296302
networks.add(ipv4Network);
297303
}
298304

299305
if (StringUtils.isNotBlank(nic.getIPv6Address())) {
300306
JsonObject ipv6Network = new JsonObject();
301-
ipv6Network.addProperty("id", nic.getIPv6Address());
307+
ipv6Network.addProperty("id", String.format("eth%d", nic.getDeviceId()));
302308
ipv6Network.addProperty("ip_address", nic.getIPv6Address());
303-
ipv6Network.addProperty("link", "eth0");
309+
ipv6Network.addProperty("link", String.format("eth%d", nic.getDeviceId()));
304310
ipv6Network.addProperty("netmask", IPv6Network.fromString(nic.getIPv6Cidr()).getNetmask().toString());
305311
ipv6Network.addProperty("network_id", nic.getNetworkId());
306312
ipv6Network.addProperty("type", "ipv6");
307313

314+
JsonArray ipv6RouteArray = new JsonArray();
308315
JsonObject ipv6Route = new JsonObject();
309316
ipv6Route.addProperty("gateway", nic.getIPv6Gateway());
310317
ipv6Route.addProperty("netmask", "0");
311318
ipv6Route.addProperty("network", "::");
319+
ipv6RouteArray.add(ipv6Route);
320+
321+
ipv6Network.add("routes", ipv6RouteArray);
322+
312323
networks.add(ipv6Network);
313324
}
314325

@@ -328,6 +339,10 @@ static JsonObject createJsonObjectWithNic(NicProfile nic) {
328339
services.add(getDnsServiceObject(nic.getIPv6Dns2()));
329340
}
330341

342+
networkData.add("links", links);
343+
networkData.add("networks", networks);
344+
networkData.add("services", services);
345+
331346
return networkData;
332347
}
333348

server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ public Map<Service, Map<Capability, String>> getCapabilities() {
198198
private static Map<Service, Map<Capability, String>> setCapabilities() {
199199
Map<Service, Map<Capability, String>> capabilities = new HashMap<>();
200200
capabilities.put(Service.UserData, null);
201-
capabilities.put(Service.Dhcp, null);
202-
capabilities.put(Service.Dns, null);
201+
capabilities.put(Service.Dhcp, new HashMap<>());
202+
capabilities.put(Service.Dns, new HashMap<>());
203203
return capabilities;
204204
}
205205

@@ -227,8 +227,7 @@ private String getSshKey(VirtualMachineProfile profile) {
227227
public boolean addPasswordAndUserdata(Network network, NicProfile nic, VirtualMachineProfile profile, DeployDestination dest, ReservationContext context)
228228
throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
229229
return (canHandle(network.getTrafficType())
230-
&& configureConfigDriveData(profile, nic, dest))
231-
&& createConfigDriveIso(nic, profile, dest, null);
230+
&& configureConfigDriveData(profile, nic, dest));
232231
}
233232

234233
@Override

0 commit comments

Comments
 (0)