VOL-4077: Improve storage usage on etcd
- the onu adapter will now receive the tp instance on the
  inter-container kafka message and need not reach the etcd store
  to fetch it.
- on reconcile, the onu adapter need to go to the kv store to
  fetch the tp instance, but request the tp instance via a new
  API towards openolt adapter which in-turn will fetch from the
  cache.
- re-org the code in onu-metrics-manager to restore pm-data
  on reconcile to avoid panics by accessing uninitialzed data
  if ani-fsm were to try adding gem port for monitoring
  before pm-data is initialized properly.

Change-Id: I82a6de2772155f6e08390b671fe26d692dd02c99
89 files changed
tree: d74750d16d497aa777bb7140b47d40330c298caa
  1. .gitignore
  2. .gitreview
  3. .golangci.yml
  4. Makefile
  5. ONU_Upgrade_Notes.md
  6. PM_Notes.md
  7. README.md
  8. VERSION
  9. cmd/
  10. docker/
  11. go.mod
  12. go.sum
  13. internal/
  14. pkg/
  15. templates/
  16. vendor/
README.md

How to Build the Golang based OpenONU Adapter

NOTE that this is a work in progress. A functional version is yet to come.

Working with Go Dependencies

This project uses Go Modules https://github.com/golang/go/wiki/Modules to manage dependencies. As a local best pratice this project also vendors the dependencies. If you need to update dependencies please follow the Go Modules best practices and also perform the following steps before committing a patch:

go mod tidy
go mod verify
go mod vendor

Building with a Local Copy of voltha-protos or voltha-lib-go

If you want to build/test using a local copy or voltha-protos or voltha-lib-go this can be accomplished by using the environment variables LOCAL_PROTOS and LOCAL_LIB_GO. These environment variables should be set to the filesystem path where the local source is located, e.g.

LOCAL\_PROTOS=$HOME/src/voltha-protos
LOCAL\_LIB\_GO=$HOME/src/voltha-lib-go

When these environment variables are set the vendored versions of these packages will be removed from the vendor directory and replaced by coping the files from the specified locations to the vendor directory. NOTE: this means that the files in the vendor directory are no longer what is in the git repository and it will take manual git intervention to put the original files back.