diff --git a/applications/rtdt-manager/data/gNMISubscriptions.txt b/applications/rtdt-manager/data/gNMISubscriptions.txt index 46b4f0456aff4350275a64c46efb1a4c6431f81d..56361a17f54806f87bdc86d8f2587d241785f2c2 100644 --- a/applications/rtdt-manager/data/gNMISubscriptions.txt +++ b/applications/rtdt-manager/data/gNMISubscriptions.txt @@ -1,2 +1 @@ -system/config/hostname system/config/domain-name diff --git a/applications/rtdt-manager/main.go b/applications/rtdt-manager/main.go index 298803804f7a43bfbd7abf021a5b7c792d6f6c55..8d7f92846e7e42065bc84c6f1631b389ee1e1840 100644 --- a/applications/rtdt-manager/main.go +++ b/applications/rtdt-manager/main.go @@ -70,7 +70,7 @@ func main() { // Do performance tests of realnet before starting twin if benchmark { fmt.Println("Now doing performance measurements of gosdn's propagation delay ") - rtdtMan.RunBenchmark() + rtdtMan.RunBenchmark0() } if withTwin { diff --git a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go index e25f216d0d22f226e114232341ef2dd25db9d63c..1f1cd17a379a4eeabd97af69cdc181fa5c507710 100644 --- a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go +++ b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go @@ -64,8 +64,26 @@ func (r *RtdtManager) LaunchTwin(twinSubnetIPv4, twinSubnetIPv6, twinName string return nil } +// Apply the changes from a twin back to realnet +func (r *RtdtManager) ApplyChanges(twinName string) error { + var twin *venv.VEnv + for _, tw := range r.rtdt_twins { + if tw.Name == twinName { + twin = tw + } + } + for _, change := range *twin.GetSavedChanges() { + mneid := change.Mneid + path := change.Path.String() + val := change.Value + //apiOp := change.ApiOp + r.realnet.SetGnmiPath(path, val.GetStringVal(), mneid, false) + } + return nil +} + // Performance benchmarks of realnet -func (r *RtdtManager) RunBenchmark() error { +func (r *RtdtManager) RunBenchmark0() error { var mneid string for _, node := range r.realnet.GetTopology().Nodes { if strings.HasPrefix(node.Name, "gnmi-target-switch0") { diff --git a/applications/rtdt-manager/rtdt-topology/rtdt-topology.go b/applications/rtdt-manager/rtdt-topology/rtdt-topology.go index d4123f10eab7eb6727cf7ba318c4cb7f19c3bc9c..933e58d3bb18ac8017c77158a7444fcee6c45806 100644 --- a/applications/rtdt-manager/rtdt-topology/rtdt-topology.go +++ b/applications/rtdt-manager/rtdt-topology/rtdt-topology.go @@ -39,7 +39,6 @@ type Topology struct { } func NewTopology() *Topology { - return &Topology{} } diff --git a/applications/rtdt-manager/venv/venv.go b/applications/rtdt-manager/venv/venv.go index 3e3afee16c676ca97b4b817a7eb74e6f8206c343..d55be3d38e9b8bb58a6febda2a53220ab57bd01b 100644 --- a/applications/rtdt-manager/venv/venv.go +++ b/applications/rtdt-manager/venv/venv.go @@ -38,7 +38,7 @@ type VEnv struct { waitGroup *sync.WaitGroup topology rtdt_topology.Topology containerRegistryURL string - savedChanges []*networkelement.ChangeRequest + savedChanges []*networkelement.ChangeRequest } // Accepts a yaml filename to deploy a container lab environment @@ -341,3 +341,6 @@ func (v *VEnv) GetWaitgroup() *sync.WaitGroup { func (v *VEnv) GetTopology() *rtdt_topology.Topology { return &v.topology } +func (v *VEnv) GetSavedChanges() *[]*networkelement.ChangeRequest { + return &v.savedChanges +} diff --git a/controller/configs/gNMISubscriptions.txt.example b/controller/configs/gNMISubscriptions.txt.example index 46b4f0456aff4350275a64c46efb1a4c6431f81d..56361a17f54806f87bdc86d8f2587d241785f2c2 100644 --- a/controller/configs/gNMISubscriptions.txt.example +++ b/controller/configs/gNMISubscriptions.txt.example @@ -1,2 +1 @@ -system/config/hostname system/config/domain-name