@@ -430,7 +430,7 @@ func osSchema() *schema.Schema {
430430 Type : schema .TypeList ,
431431 Optional : true ,
432432 MaxItems : 1 ,
433- Description : "Definition of OS boot and type for the Virtual Machine" ,
433+ Description : "Definition of OS parameters for the Virtual Machine" ,
434434 Elem : & schema.Resource {
435435 Schema : map [string ]* schema.Schema {
436436 "arch" : {
@@ -441,6 +441,59 @@ func osSchema() *schema.Schema {
441441 Type : schema .TypeString ,
442442 Required : true ,
443443 },
444+ "machine" : {
445+ Type : schema .TypeString ,
446+ Optional : true ,
447+ },
448+ "kernel" : {
449+ Type : schema .TypeString ,
450+ Optional : true ,
451+ ConflictsWith : []string {"os.0.kernel_ds" },
452+ },
453+ "kernel_ds" : {
454+ Type : schema .TypeString ,
455+ Optional : true ,
456+ ConflictsWith : []string {"os.0.kernel" },
457+ },
458+ "initrd" : {
459+ Type : schema .TypeString ,
460+ Optional : true ,
461+ ConflictsWith : []string {"os.0.initrd_ds" },
462+ },
463+ "initrd_ds" : {
464+ Type : schema .TypeString ,
465+ Optional : true ,
466+ ConflictsWith : []string {"os.0.initrd" },
467+ },
468+ "root" : {
469+ Type : schema .TypeString ,
470+ Optional : true ,
471+ },
472+ "kernel_cmd" : {
473+ Type : schema .TypeString ,
474+ Optional : true ,
475+ },
476+ "bootloader" : {
477+ Type : schema .TypeString ,
478+ Optional : true ,
479+ },
480+ "sd_disk_bus" : {
481+ Type : schema .TypeString ,
482+ Optional : true ,
483+ },
484+ "uuid" : {
485+ Type : schema .TypeString ,
486+ Optional : true ,
487+ Computed : true ,
488+ },
489+ "firmware" : {
490+ Type : schema .TypeString ,
491+ Optional : true ,
492+ },
493+ "firmware_secure" : {
494+ Type : schema .TypeBool ,
495+ Optional : true ,
496+ },
444497 },
445498 },
446499 }
@@ -646,7 +699,19 @@ func addOS(tpl *vm.Template, os []interface{}) {
646699 if os [i ] != nil {
647700 osconfig := os [i ].(map [string ]interface {})
648701 tpl .AddOS (vmk .Arch , osconfig ["arch" ].(string ))
702+ tpl .AddOS (vmk .Machine , osconfig ["machine" ].(string ))
703+ tpl .AddOS (vmk .Kernel , osconfig ["kernel" ].(string ))
704+ tpl .AddOS (vmk .KernelDS , osconfig ["kernel_ds" ].(string ))
705+ tpl .AddOS (vmk .Initrd , osconfig ["initrd" ].(string ))
706+ tpl .AddOS (vmk .InitrdDS , osconfig ["initrd_ds" ].(string ))
707+ tpl .AddOS (vmk .Root , osconfig ["root" ].(string ))
708+ tpl .AddOS (vmk .KernelCmd , osconfig ["kernel_cmd" ].(string ))
709+ tpl .AddOS (vmk .Bootloader , osconfig ["bootloader" ].(string ))
649710 tpl .AddOS (vmk .Boot , osconfig ["boot" ].(string ))
711+ tpl .AddOS (vmk .SDDiskBus , osconfig ["sd_disk_bus" ].(string ))
712+ tpl .AddOS (vmk .UUID , osconfig ["uuid" ].(string ))
713+ tpl .AddOS (vmk .Firmware , osconfig ["firmware" ].(string ))
714+ tpl .AddOS (vmk .FirmwareSecure , osconfig ["firmware_secure" ].(bool ))
650715 }
651716 }
652717
@@ -992,7 +1057,19 @@ func flattenTemplate(d *schema.ResourceData, inheritedVectors map[string]interfa
9921057 // OS
9931058 osMap := make ([]map [string ]interface {}, 0 , 1 )
9941059 arch , _ := vmTemplate .GetOS (vmk .Arch )
1060+ machine , _ := vmTemplate .GetOS (vmk .Machine )
1061+ kernel , _ := vmTemplate .GetOS (vmk .Kernel )
1062+ kernelDS , _ := vmTemplate .GetOS (vmk .KernelDS )
1063+ initrd , _ := vmTemplate .GetOS (vmk .Initrd )
1064+ initrdDS , _ := vmTemplate .GetOS (vmk .InitrdDS )
1065+ root , _ := vmTemplate .GetOS (vmk .Root )
1066+ kernelCmd , _ := vmTemplate .GetOS (vmk .KernelCmd )
1067+ bootloader , _ := vmTemplate .GetOS (vmk .Bootloader )
9951068 boot , _ := vmTemplate .GetOS (vmk .Boot )
1069+ sdDiskBus , _ := vmTemplate .GetOS (vmk .SDDiskBus )
1070+ uuid , _ := vmTemplate .GetOS (vmk .UUID )
1071+ firmware , _ := vmTemplate .GetOS (vmk .Firmware )
1072+ firmwareSecure , firmwareSecureErr := vmTemplate .GetOS (vmk .FirmwareSecure )
9961073 // CPU Model
9971074 cpumodelMap := make ([]map [string ]interface {}, 0 , 1 )
9981075 cpumodel , _ := vmTemplate .GetCPUModel (vmk .Model )
@@ -1049,9 +1126,26 @@ func flattenTemplate(d *schema.ResourceData, inheritedVectors map[string]interfa
10491126
10501127 // Set OS to resource
10511128 if arch != "" {
1129+ firmwareSecureBool := false
1130+ if firmwareSecureErr == nil && firmwareSecure == "true" {
1131+ firmwareSecureBool = true
1132+ }
1133+
10521134 osMap = append (osMap , map [string ]interface {}{
1053- "arch" : arch ,
1054- "boot" : boot ,
1135+ "arch" : arch ,
1136+ "machine" : machine ,
1137+ "kernel" : kernel ,
1138+ "kernel_ds" : kernelDS ,
1139+ "initrd" : initrd ,
1140+ "initrd_ds" : initrdDS ,
1141+ "root" : root ,
1142+ "kernel_cmd" : kernelCmd ,
1143+ "bootloader" : bootloader ,
1144+ "boot" : boot ,
1145+ "sd_disk_bus" : sdDiskBus ,
1146+ "uuid" : uuid ,
1147+ "firmware" : firmware ,
1148+ "firmware_secure" : firmwareSecureBool ,
10551149 })
10561150 _ , inherited := inheritedVectors ["OS" ]
10571151 if ! inherited {
0 commit comments