Device.go 941 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package nmcli
  2. import (
  3. "AudioPlayer/nmcli/model"
  4. "context"
  5. nmcli_go "github.com/KunMengcode/nmcli-go"
  6. "github.com/KunMengcode/nmcli-go/device"
  7. "net/rpc"
  8. )
  9. type DeviceInterface interface {
  10. Status(Request model.EmptyRequest, Reply *[]device.Status) error
  11. register() error
  12. }
  13. type Device struct {
  14. nmcli *nmcli_go.NMCli
  15. }
  16. func NewDevice(nmcli *nmcli_go.NMCli) DeviceInterface {
  17. return &Device{nmcli: nmcli}
  18. }
  19. func (receiver *Device) Status(Request model.EmptyRequest, Reply *[]device.Status) (err error) {
  20. var State []device.Status
  21. var FiltrationState []device.Status
  22. State, err = receiver.nmcli.Device.Status(context.Background())
  23. for _, v := range State {
  24. if v.Device == "lo" {
  25. continue
  26. }
  27. FiltrationState = append(FiltrationState, v)
  28. }
  29. *Reply = FiltrationState
  30. if err != nil {
  31. return err
  32. }
  33. return nil
  34. }
  35. func (receiver *Device) register() error {
  36. return rpc.RegisterName("NetworkManager.Device", receiver)
  37. }