first working version

This commit is contained in:
ston1th 2021-04-09 22:38:03 +02:00
commit 6da132106f
18 changed files with 519 additions and 96 deletions

View file

@ -14,6 +14,7 @@ func New(kv cluster.KV) *DB {
const (
ipPrefix = "/ip/"
delPrefix = "/del/"
namePrefix = "/name/"
lbPrefix = "/lb/"
)
@ -28,30 +29,45 @@ func (db *DB) GetIPs() (ips []string, err error) {
}
return
}
func (db *DB) GetIP(ip string) (string, error) {
func (db *DB) GetDeletedIPs() (ips []string, err error) {
m, err := db.kv.GetPrefix(delPrefix)
if err != nil {
return
}
for k := range m {
ips = append(ips, k)
db.kv.Delete(delPrefix + k)
}
return
}
func (db *DB) GetName(ip string) (string, error) {
v, err := db.kv.Get(ipPrefix + ip)
return string(v), err
}
func (db *DB) IPExists(ip string) bool {
_, err := db.GetIP(ipPrefix + ip)
_, err := db.GetName(ip)
return err == nil
}
func (db *DB) SetIP(ip, name string) error {
func (db *DB) SetIPName(ip, name string) error {
err := db.kv.Set(ipPrefix+ip, []byte(name))
if err != nil {
return err
}
return db.kv.Set(namePrefix+name, []byte(ip))
}
func (db *DB) DeleteIP(ip, name string) error {
func (db *DB) DeleteIPName(ip, name string) error {
err := db.kv.Delete(ipPrefix + ip)
if err != nil {
return err
}
return db.kv.Delete(namePrefix + name)
err = db.kv.Delete(namePrefix + name)
if err != nil {
return err
}
return db.kv.Set(delPrefix+ip, nil)
}
func (db *DB) GetName(name string) (string, error) {
func (db *DB) GetIP(name string) (string, error) {
v, err := db.kv.Get(namePrefix + name)
return string(v), err
}
@ -77,6 +93,10 @@ func (db *DB) GetLBs(cl string) (lbs map[string][]byte, err error) {
func (db *DB) GetLB(name string) ([]byte, error) {
return db.kv.Get(lbPrefix + name)
}
func (db *DB) LBExists(name string) bool {
_, err := db.GetLB(name)
return err == nil
}
func (db *DB) SetLB(name string, lb []byte) error {
return db.kv.Set(lbPrefix+name, lb)
}