Creating one channel per ONU
Using state machine for OperState in OLT, NNI, PON
Using state machien ONU OperState and added gRPC API to list ONUs with
statuses
Change-Id: I663133510ef4a672e3807cd7e0db9eca8b7ab0d2
diff --git a/internal/bbsim/grpc_api_server.go b/internal/bbsim/grpc_api_server.go
index f47dc03..5d92f70 100644
--- a/internal/bbsim/grpc_api_server.go
+++ b/internal/bbsim/grpc_api_server.go
@@ -2,7 +2,6 @@
import (
"context"
- "fmt"
"gerrit.opencord.org/bbsim/api/bbsim"
"gerrit.opencord.org/bbsim/internal/bbsim/devices"
log "github.com/sirupsen/logrus"
@@ -40,7 +39,7 @@
for _, nni := range olt.Nnis {
n := bbsim.NNIPort{
ID: int32(nni.ID),
- OperState: fmt.Sprintf("%s", nni.OperState),
+ OperState: nni.OperState.Current(),
}
nnis = append(nnis, &n)
}
@@ -48,16 +47,38 @@
for _, pon := range olt.Pons {
p := bbsim.PONPort{
ID: int32(pon.ID),
- OperState: fmt.Sprintf("%s", pon.OperState),
+ OperState: pon.OperState.Current(),
}
pons = append(pons, &p)
}
res := bbsim.Olt{
ID: int32(olt.ID),
- OperState: fmt.Sprintf("%s", olt.OperState),
+ OperState: olt.OperState.Current(),
+ InternalState: olt.InternalState.Current(),
NNIPorts: nnis,
PONPorts: pons,
}
return &res, nil
+}
+
+func (s BBSimServer) GetONUs(ctx context.Context, req *bbsim.Empty) (*bbsim.ONUs, error){
+ olt := devices.GetOLT()
+ onus := bbsim.ONUs{
+ Items: []*bbsim.ONU{},
+ }
+
+ for _, pon := range olt.Pons {
+ for _, o := range pon.Onus {
+ onu := bbsim.ONU{
+ ID: int32(o.ID),
+ SerialNumber: o.SerialNumber.String(),
+ OperState: o.OperState.Current(),
+ InternalState: o.InternalState.Current(),
+ PonPortID: int32(o.PonPortID),
+ }
+ onus.Items = append(onus.Items, &onu)
+ }
+ }
+ return &onus, nil
}
\ No newline at end of file