diff --git a/agent/README.md b/agent/README.md deleted file mode 100644 index cc26fd445..000000000 --- a/agent/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Agent [![GoDoc](https://godoc.org/github.com/ligato/cn-infra/agent?status.svg)](https://godoc.org/github.com/ligato/cn-infra/agent) - -The **agent** package provides the life-cycle management agent for plugins. -It is intended to be used as a base point of an application used in main package. - -```go -func main() { - plugin := myplugin.NewPlugin() - - a := agent.NewAgent( - agent.Plugins(plugin), - ) - if err := a.Run(); err != nil { - log.Fatal(err) - } -} -``` - -## Agent options - -There are various options available to customize agent: - -- `Version(ver, date, id)` sets version of the program -- `QuitOnClose(chan)` sets signal used to quit the running agent when closed -- `QuitSignals(signals)` sets signals used to quit the running agent (default: SIGINT, SIGTERM) -- `StartTimeout(dur)/StopTimeout(dur)` sets start/stop timeout (defaults: 15s/5s) - -Add plugins to list of plugins managed by agent using: -- `Plugins(...)` adds just single plugins -- `AllPlugins(...)` adds plugin along with all of its plugin deps - -See all options [here](https://godoc.org/github.com/ligato/cn-infra/agent#Option). diff --git a/agent/agent.go b/agent/agent.go index f92d5b042..f3c077d93 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -24,12 +24,13 @@ import ( "sync" "time" + "github.com/namsral/flag" + "github.com/ligato/cn-infra/config" "github.com/ligato/cn-infra/infra" "github.com/ligato/cn-infra/logging" "github.com/ligato/cn-infra/logging/measure" "github.com/ligato/cn-infra/utils/once" - "github.com/namsral/flag" ) var agentLogger = logging.DefaultRegistry.NewLogger("agent") diff --git a/agent/doc.go b/agent/doc.go new file mode 100644 index 000000000..5cd9a3826 --- /dev/null +++ b/agent/doc.go @@ -0,0 +1,48 @@ +// Copyright (c) 2019 Cisco and/or its affiliates. +// +// 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 agent provides the life-cycle management agent for plugins. It is +intended to be used as a base point of an application used in main package. + +Here is a common example usage: + + func main() { + plugin := myplugin.NewPlugin() + + a := agent.NewAgent( + agent.Plugins(plugin), + ) + if err := a.Run(); err != nil { + log.Fatal(err) + } + } + +Options + +There are various options available to customize agent: + + Version(ver, date, id) - sets version of the program + QuitOnClose(chan) - sets signal used to quit the running agent when closed + QuitSignals(signals) - sets signals used to quit the running agent (default: SIGINT, SIGTERM) + StartTimeout(dur) - sets start timeout (default: 15s) + StopTimeout(dur) - sets stop timeout (default: 5s) + +There are two options for adding plugins to the agent: + + Plugins(...) - adds just single plugins without lookup + AllPlugins(...) - adds plugin along with all of its plugin deps + +*/ +package agent diff --git a/infra/infra.go b/infra/infra.go index 2bd5019e2..93309f51d 100644 --- a/infra/infra.go +++ b/infra/infra.go @@ -1,3 +1,18 @@ +// Copyright (c) 2019 Cisco and/or its affiliates. +// +// 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 infra provides Plugin interface and related utilities. package infra import (