@@ -182,34 +182,34 @@ func networkCreateAction(cmd *cobra.Command, args []string) error {
182182 if intf == "" {
183183 return fmt .Errorf ("network mode %q requires specifying interface" , mode )
184184 }
185+ yq := fmt .Sprintf (`.networks.%q = {"mode":%q,"interface":%q}` , name , mode , intf )
186+ return networkApplyYQ (yq )
185187 default :
186188 if gateway == "" {
187189 return fmt .Errorf ("network mode %q requires specifying gateway" , mode )
188190 }
189191 if intf != "" {
190192 return fmt .Errorf ("network mode %q does not support specifying interface" , mode )
191193 }
192- }
194+ if ! strings .Contains (gateway , "/" ) {
195+ gateway += "/24"
196+ }
197+ gwIP , gwMask , err := net .ParseCIDR (gateway )
198+ if err != nil {
199+ return fmt .Errorf ("failed to parse CIDR %q: %w" , gateway , err )
200+ }
201+ if gwIP .IsUnspecified () || gwIP .IsLoopback () {
202+ return fmt .Errorf ("invalid IP address: %v" , gwIP )
203+ }
204+ gwMaskStr := "255.255.255.0"
205+ if gwMask != nil {
206+ gwMaskStr = net .IP (gwMask .Mask ).String ()
207+ }
208+ // TODO: check IP range collision
193209
194- if ! strings .Contains (gateway , "/" ) {
195- gateway += "/24"
196- }
197- gwIP , gwMask , err := net .ParseCIDR (gateway )
198- if err != nil {
199- return fmt .Errorf ("failed to parse CIDR %q: %w" , gateway , err )
200- }
201- if gwIP .IsUnspecified () || gwIP .IsLoopback () {
202- return fmt .Errorf ("invalid IP address: %v" , gwIP )
203- }
204- gwMaskStr := "255.255.255.0"
205- if gwMask != nil {
206- gwMaskStr = net .IP (gwMask .Mask ).String ()
210+ yq := fmt .Sprintf (`.networks.%q = {"mode":%q,"gateway":%q,"netmask":%q,"interface":%q}` , name , mode , gwIP .String (), gwMaskStr , intf )
211+ return networkApplyYQ (yq )
207212 }
208- // TODO: check IP range collision
209-
210- yq := fmt .Sprintf (`.networks.%q = {"mode":%q,"gateway":%q,"netmask":%q,"interface":%q}` , name , mode , gwIP .String (), gwMaskStr , intf )
211-
212- return networkApplyYQ (yq )
213213}
214214
215215func networkApplyYQ (yq string ) error {
0 commit comments