The OpenOLT adapter connects the VOLTHA core to an OLT device running the OpenOLT agent.
The Makefile
contains many commands that are useful in development:
% make help
build : Alias for 'docker build'
clean : Removes any local filesystem artifacts generated by a build
distclean : Removes any local filesystem artifacts generated by a build or test run
docker-build-profile : Build openolt adapter docker image with profiling enabled
docker-build : Build openolt adapter docker image
docker-kind-load : Load docker images into a KinD cluster
docker-push : Push the docker images to an external repository
help : Print help for each Makefile target
lint-dockerfile : Perform static analysis on Dockerfile
lint-mod : Verify the Go dependencies
lint : Run all lint targets
local-lib-go : Copies a local version of the voltha-lib-go dependency into the vendor directory
local-protos : Copies a local version of the voltha-protos dependency into the vendor directory
mod-update : Update go mod files
sca : Runs static code analysis with the golangci-lint tool
test : Run unit tests
Some highlights:
-
It's recommended that you run the
lint
,sca
, andtest
targets before submitting code changes. -
The
docker-*
targets for building and pushing Docker images depend on the variablesDOCKER_REGISTRY
,DOCKER_REPOSITORY
, andDOCKER_TAG
as described in the CORD documentation -
If you make changes the dependencies in the
go.mod
file, you will need to runmake mod-update
to update thego.sum
andvendor
directory.
If you want to build/test using a local copy of the voltha-protos
or
voltha-lib-go
libraries 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.:
export LOCAL_PROTOS=/path/to/voltha-protos
export LOCAL_LIB_GO=/path/to/voltha-lib-go
Then run make local-protos
and/or make local-lib-go
as is appropriate to
copy them into the vendor
directory.
NOTE: That the files in the
vendor
directory are no longer what is in the most recent commit, and it will take manualgit
intervention to put the original files back.