Skip to content
Snippets Groups Projects
pnd.go 1.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • package networkdomain
    
    import (
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	ppb "code.fbi.h-da.de/danet/api/go/gosdn/pnd"
    	tpb "code.fbi.h-da.de/danet/api/go/gosdn/transport"
    	"code.fbi.h-da.de/danet/gosdn/interfaces/change"
    	"code.fbi.h-da.de/danet/gosdn/interfaces/device"
    	"code.fbi.h-da.de/danet/gosdn/interfaces/southbound"
    	"code.fbi.h-da.de/danet/gosdn/interfaces/store"
    
    	"github.com/google/uuid"
    
    	"google.golang.org/protobuf/proto"
    
    )
    
    // NetworkDomain provides an interface for network domain implementations
    // like principal network domain or logical network domain.
    type NetworkDomain interface {
    	Destroy() error
    	AddSbi(s southbound.SouthboundInterface) error
    	RemoveSbi(uuid.UUID) error
    	AddDevice(name string, opts *tpb.TransportOption, sid uuid.UUID) error
    	GetDevice(identifier string) (device.Device, error)
    	RemoveDevice(uuid.UUID) error
    	Devices() []uuid.UUID
    
    	ChangeOND(uuid uuid.UUID, operation ppb.ApiOperation, path string, value ...string) (uuid.UUID, error)
    	Request(uuid.UUID, string) (proto.Message, error)
    
    	RequestAll(string) error
    	GetName() string
    	GetDescription() string
    	MarshalDevice(string) (string, error)
    	ContainsDevice(uuid.UUID) bool
    	GetSBIs() store.Store
    	ID() uuid.UUID
    	PendingChanges() []uuid.UUID
    	CommittedChanges() []uuid.UUID
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	GetChange(uuid.UUID) (change.Change, error)
    
    	Commit(uuid.UUID) error
    	Confirm(uuid.UUID) error
    }