2222import static com .cloud .network .NetworkModel .CONFIGDATA_FILE ;
2323import static com .cloud .network .NetworkModel .PASSWORD_FILE ;
2424import static com .cloud .network .NetworkModel .USERDATA_FILE ;
25+ import static com .cloud .network .NetworkService .DEFAULT_MTU ;
2526
2627import java .io .File ;
2728import 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
0 commit comments