mirror of
https://github.com/lxc/incus
synced 2026-08-02 05:26:46 +00:00
client: Make GetRawInstanceNVRAMGUIDVar return attributes
Signed-off-by: Benjamin Somers <benjamin.somers@imt-atlantique.fr>
This commit is contained in:
parent
cb3e751fb9
commit
fd63243512
@ -3385,17 +3385,27 @@ func (r *ProtocolIncus) GetInstanceNVRAMGUID(name string, guid string) (map[stri
|
||||
}
|
||||
|
||||
// GetRawInstanceNVRAMGUIDVar gets raw OVMF variables from an instance.
|
||||
func (r *ProtocolIncus) GetRawInstanceNVRAMGUIDVar(name string, guid string, varName string) ([]byte, error) {
|
||||
func (r *ProtocolIncus) GetRawInstanceNVRAMGUIDVar(name string, guid string, varName string) ([]byte, uint32, error) {
|
||||
if !r.HasExtension("instance_nvram") {
|
||||
return nil, errors.New(`The server is missing the required "instance_nvram" API extension`)
|
||||
return nil, 0, errors.New(`The server is missing the required "instance_nvram" API extension`)
|
||||
}
|
||||
|
||||
resp, err := r.getInstanceNVRAM(name, guid, varName, "application/octet-stream")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
return io.ReadAll(resp.Body)
|
||||
attributes, err := strconv.ParseUint(resp.Header.Get("X-Incus-attributes"), 10, 32)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
return data, uint32(attributes), err
|
||||
}
|
||||
|
||||
// GetInstanceNVRAMGUIDVar gets interpreted OVMF variables from an instance.
|
||||
|
||||
@ -181,7 +181,7 @@ type InstanceServer interface {
|
||||
RepairInstance(name string, repair api.InstanceDebugRepairPost) (err error)
|
||||
GetInstanceNVRAM(name string) (vars map[string]map[string]*api.InstanceNVRAMVariable, err error)
|
||||
GetInstanceNVRAMGUID(name string, guid string) (vars map[string]*api.InstanceNVRAMVariable, err error)
|
||||
GetRawInstanceNVRAMGUIDVar(name string, guid string, varName string) (resp []byte, err error)
|
||||
GetRawInstanceNVRAMGUIDVar(name string, guid string, varName string) (resp []byte, attributes uint32, err error)
|
||||
GetInstanceNVRAMGUIDVar(name string, guid string, varName string) (resp *api.InstanceNVRAMVariable, ETag string, err error)
|
||||
DeleteInstanceNVRAMGUIDVar(name string, guid string, varName string) error
|
||||
UpdateRawInstanceNVRAMGUIDVar(name string, guid string, varName string, data []byte, attributes uint32, timestamp int64) error
|
||||
|
||||
@ -623,7 +623,7 @@ func (c *cmdLowLevelNVRAMGet) run(cmd *cobra.Command, args []string) error {
|
||||
}
|
||||
|
||||
if c.flagRaw {
|
||||
resp, err := d.GetRawInstanceNVRAMGUIDVar(instanceName, guid, varName)
|
||||
resp, _, err := d.GetRawInstanceNVRAMGUIDVar(instanceName, guid, varName)
|
||||
if err != nil {
|
||||
return fmt.Errorf(i18n.G("Failed to get instance UEFI variable: %w"), err)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user