@@ -422,23 +422,29 @@ func setBootDevices(d *schema.ResourceData, domainDef *libvirtxml.Domain) {
422
422
}
423
423
}
424
424
425
- func setConsoles (d * schema.ResourceData , domainDef * libvirtxml.Domain ) {
425
+ func setConsoles (d * schema.ResourceData , domainDef * libvirtxml.Domain ) error {
426
426
for i := 0 ; i < d .Get ("console.#" ).(int ); i ++ {
427
427
console := libvirtxml.DomainConsole {}
428
428
prefix := fmt .Sprintf ("console.%d" , i )
429
- consoleTargetPortInt , err := strconv .Atoi (d .Get (prefix + ".target_port" ).(string ))
430
- if err == nil {
431
- consoleTargetPort := uint (consoleTargetPortInt )
429
+
430
+ portStr := d .Get (prefix + ".target_port" ).(string )
431
+ consoleTargetPortUint16 , err := strconv .ParseUint (portStr , 10 , 16 )
432
+ if err != nil {
433
+ return fmt .Errorf ("invalid port when parsing %s: %w" , strconv .Quote (portStr ), err )
434
+ } else {
435
+ consoleTargetPort := uint (consoleTargetPortUint16 )
432
436
console .Target = & libvirtxml.DomainConsoleTarget {
433
437
Port : & consoleTargetPort ,
434
438
}
435
439
}
440
+
436
441
if targetType , ok := d .GetOk (prefix + ".target_type" ); ok {
437
442
if console .Target == nil {
438
443
console .Target = & libvirtxml.DomainConsoleTarget {}
439
444
}
440
445
console .Target .Type = targetType .(string )
441
446
}
447
+
442
448
switch d .Get (prefix + ".type" ).(string ) {
443
449
case "tcp" :
444
450
sourceHost := d .Get (prefix + ".source_host" )
@@ -472,6 +478,7 @@ func setConsoles(d *schema.ResourceData, domainDef *libvirtxml.Domain) {
472
478
}
473
479
domainDef .Devices .Consoles = append (domainDef .Devices .Consoles , console )
474
480
}
481
+ return nil
475
482
}
476
483
477
484
func setDisks (d * schema.ResourceData , domainDef * libvirtxml.Domain , virConn * libvirt.Libvirt ) error {
0 commit comments