add pool stub, start blowing out deployment struct
This commit is contained in:
parent
5d1d80310e
commit
362474421d
|
@ -0,0 +1,42 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
//"github.com/dballard/warren/cmd/warrend/conf"
|
||||||
|
"github.com/dballard/warren/lib/warren"
|
||||||
|
"net"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var poolUsage = `
|
||||||
|
pool [NAME] [LOW HIGH]
|
||||||
|
`
|
||||||
|
|
||||||
|
var poolCmd = &SockCommand{
|
||||||
|
Command: warren.Command{
|
||||||
|
Name: "pool",
|
||||||
|
Usage: poolUsage,
|
||||||
|
Summary: "Get/Set port pool range for deployment",
|
||||||
|
},
|
||||||
|
Run: poolRun,
|
||||||
|
}
|
||||||
|
|
||||||
|
// pool [name] -- get
|
||||||
|
// pool [name] [low] [high] -- set
|
||||||
|
func poolRun(cmd *SockCommand, c net.Conn, path string, args ...string) {
|
||||||
|
if len(args) > 0 && args[0] == "help" {
|
||||||
|
warren.WriteStringz(c, cmd.Usage)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET
|
||||||
|
if len(args) == 1 {
|
||||||
|
warren.WriteStringz(c, "Pool GET " + strings.Join(args, ", ") + "\n")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(args) == 3 {
|
||||||
|
warren.WriteStringz(c, "Pool SET\n")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
warren.WriteStringz(c, cmd.Usage)
|
||||||
|
return
|
||||||
|
}
|
|
@ -32,14 +32,24 @@ func (m *Msg) Call() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Conf package - thread safe conf
|
// Conf package - thread safe conf
|
||||||
// All write ops are public API functions
|
// All write ops are public API functions ( Msg.Call() )
|
||||||
// that internall use channels to thread safely queue writes
|
// that internall use channels to thread safely queue writes
|
||||||
// all write ops cause FS conf writes so that state is preserved
|
// all write ops cause FS conf writes so that state is preserved
|
||||||
// Reads return copies of data
|
// Reads return copies of data
|
||||||
|
|
||||||
|
type Pool struct {
|
||||||
|
High int
|
||||||
|
Low int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Deployment struct {
|
||||||
|
Path string
|
||||||
|
Pool Pool
|
||||||
|
}
|
||||||
|
|
||||||
type Conf struct {
|
type Conf struct {
|
||||||
// name : path
|
// name : path
|
||||||
Deployments map[string]string
|
Deployments map[string]Deployment
|
||||||
}
|
}
|
||||||
|
|
||||||
var conf *Conf = nil
|
var conf *Conf = nil
|
||||||
|
@ -63,11 +73,11 @@ func loadConf() {
|
||||||
fmt.Println("Error parsing ", warren.WarrendConf, ": ", err)
|
fmt.Println("Error parsing ", warren.WarrendConf, ": ", err)
|
||||||
}
|
}
|
||||||
if conf.Deployments == nil {
|
if conf.Deployments == nil {
|
||||||
conf.Deployments = make(map[string]string)
|
conf.Deployments = make(map[string]Deployment)
|
||||||
}
|
}
|
||||||
// populate reverse map
|
// populate reverse map
|
||||||
for nick, dir := range conf.Deployments {
|
for nick, dep := range conf.Deployments {
|
||||||
dirToNick[dir] = nick
|
dirToNick[dep.Path] = nick
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,6 +100,7 @@ func saveConf() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: return copies
|
||||||
func GetConf() Conf {
|
func GetConf() Conf {
|
||||||
return *conf
|
return *conf
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,6 @@ import (
|
||||||
// reverse look up map
|
// reverse look up map
|
||||||
var dirToNick map[string]string = make(map[string]string)
|
var dirToNick map[string]string = make(map[string]string)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// given a valid deployment, add it
|
// given a valid deployment, add it
|
||||||
// internal, thread unsafe
|
// internal, thread unsafe
|
||||||
func addDeployment(d *Msg) error {
|
func addDeployment(d *Msg) error {
|
||||||
|
@ -47,7 +45,6 @@ func rmDeployment(d *Msg) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate a deployment is ok to insert
|
// Validate a deployment is ok to insert
|
||||||
// internal thread unsafe
|
|
||||||
func validateDeployment(d *Msg) error {
|
func validateDeployment(d *Msg) error {
|
||||||
// check if exists
|
// check if exists
|
||||||
if _, ok := conf.Deployments[d.Args["Name"]]; ok {
|
if _, ok := conf.Deployments[d.Args["Name"]]; ok {
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
package conf
|
|
@ -133,6 +133,7 @@ func main() {
|
||||||
warren.RegisterCommand(listCmd)
|
warren.RegisterCommand(listCmd)
|
||||||
warren.RegisterCommand(regCmd)
|
warren.RegisterCommand(regCmd)
|
||||||
warren.RegisterCommand(unregCmd)
|
warren.RegisterCommand(unregCmd)
|
||||||
|
warren.RegisterCommand(poolCmd)
|
||||||
|
|
||||||
// Handle signals
|
// Handle signals
|
||||||
c := make(chan os.Signal, 1)
|
c := make(chan os.Signal, 1)
|
||||||
|
|
Loading…
Reference in New Issue