package hcs import ( "context" "encoding/json" hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2" "github.com/Microsoft/hcsshim/internal/vmcompute" ) // GetServiceProperties returns properties of the host compute service. func GetServiceProperties(ctx context.Context, q hcsschema.PropertyQuery) (*hcsschema.ServiceProperties, error) { operation := "hcs::GetServiceProperties" queryb, err := json.Marshal(q) if err != nil { return nil, err } propertiesJSON, resultJSON, err := vmcompute.HcsGetServiceProperties(ctx, string(queryb)) events := processHcsResult(ctx, resultJSON) if err != nil { return nil, &HcsError{Op: operation, Err: err, Events: events} } if propertiesJSON == "" { return nil, ErrUnexpectedValue } properties := &hcsschema.ServiceProperties{} if err := json.Unmarshal([]byte(propertiesJSON), properties); err != nil { return nil, err } return properties, nil } // ModifyServiceSettings modifies settings of the host compute service. func ModifyServiceSettings(ctx context.Context, settings hcsschema.ModificationRequest) error { operation := "hcs::ModifyServiceSettings" settingsJSON, err := json.Marshal(settings) if err != nil { return err } resultJSON, err := vmcompute.HcsModifyServiceSettings(ctx, string(settingsJSON)) events := processHcsResult(ctx, resultJSON) if err != nil { return &HcsError{Op: operation, Err: err, Events: events} } return nil }