seba-321 implemented reflow logic
Change-Id: I4a67a38104dbcb9bbfa830b38fc4fc21c42c2dbd
diff --git a/internal/pkg/impl/reflow.go b/internal/pkg/impl/reflow.go
new file mode 100644
index 0000000..e178054
--- /dev/null
+++ b/internal/pkg/impl/reflow.go
@@ -0,0 +1,50 @@
+/*
+ Copyright 2017 the original author or authors.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+package impl
+
+import "gerrit.opencord.org/abstract-olt/models"
+
+/*
+Reflow - takes internal config and resends to xos
+*/
+func Reflow() (bool, error) {
+ myChan := getSyncChannel()
+ <-myChan
+ defer done(myChan, true)
+ chassisMap := models.GetChassisMap()
+ for _, chassisHolder := range *chassisMap {
+ physical := chassisHolder.PhysicalChassis
+ for index := range physical.Linecards {
+ olt := physical.Linecards[index]
+ physical.SendOltTosca(olt)
+ for portIndex := range olt.Ports {
+ port := olt.Ports[portIndex]
+ for ontIndex := range port.Onts {
+ ont := port.Onts[ontIndex]
+ if ont.Active {
+ physical.SendOntTosca(ont)
+ physical.SendSubscriberTosca(ont)
+
+ }
+
+ }
+
+ }
+ }
+ }
+ return true, nil
+ //TODO lots of this could throw errors
+}