nfsense/internal/api/network/interfaces.go

43 lines
1 KiB
Go

package network
import (
"context"
"fmt"
"nfsense.net/nfsense/internal/definitions"
"nfsense.net/nfsense/internal/interfaces"
)
type GetInterfacesParameters struct {
}
type GetInterfacesResult struct {
Interfaces map[string]definitions.Interface
}
func (f *Network) GetInterfaces(ctx context.Context, params GetInterfacesParameters) (GetInterfacesResult, error) {
return GetInterfacesResult{
Interfaces: f.Conf.Network.Interfaces,
}, nil
}
type ApplyInterfacesParameters struct {
}
type ApplyInterfacesResult struct {
Log string
}
func (f *Network) ApplyInterfaces(ctx context.Context, params ApplyInterfacesParameters) (ApplyInterfacesResult, error) {
data, err := interfaces.GenerateInterfacesFile(*f.Conf)
if err != nil {
return ApplyInterfacesResult{}, fmt.Errorf("Generating Interfaces File: %w", err)
}
log, err := interfaces.ApplyInterfacesFile(data)
if err != nil {
return ApplyInterfacesResult{}, fmt.Errorf("Applying Interfaces File: %w", err)
}
return ApplyInterfacesResult{
Log: log,
}, nil
}