Implemented the provision / activate ont workflow
Change-Id: Ife684f41e54e176879332922ad86f517358f15e7
diff --git a/models/abstract/port.go b/models/abstract/port.go
index c23249a..5dfa195 100644
--- a/models/abstract/port.go
+++ b/models/abstract/port.go
@@ -16,7 +16,11 @@
package abstract
-import "gerrit.opencord.org/abstract-olt/models/physical"
+import (
+ "fmt"
+
+ "gerrit.opencord.org/abstract-olt/models/physical"
+)
/*
Port represents a single PON port on the OLT chassis
@@ -28,3 +32,26 @@
PhysPort *physical.PONPort
Parent *Slot `json:"-"`
}
+
+type UnprovisonedPortError struct {
+ oltNum int
+ clli string
+ portNum int
+}
+
+func (e *UnprovisonedPortError) Error() string {
+ return fmt.Sprintf("Port %d for olt %d on AbstractChasis %s is not provisioned", e.portNum, e.oltNum, e.clli)
+}
+func (port *Port) provisionOnt(ontNumber int, serialNumber string) error {
+ if port.PhysPort == nil {
+ slot := port.Parent
+ chassis := slot.Parent
+ err := UnprovisonedPortError{oltNum: slot.Number, clli: chassis.CLLI, portNum: port.Number}
+ return &err
+ }
+
+ phyPort := port.PhysPort
+ ont := port.Onts[ontNumber-1]
+ phyPort.ActivateOnt(ontNumber, ont.Svlan, ont.Cvlan, serialNumber)
+ return nil
+}