Working with packages and allowed IPs.
giredorectl now able to interact with giredored about: * Setting package data. There is no such thing as "create" or "update", just set. * Deleting package data. * Setting allowed IP addresses. This is the only authorization method ATM, more may come in future.
This commit is contained in:
38
domains/client/v1/config.go
Normal file
38
domains/client/v1/config.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package clientv1
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"strings"
|
||||
|
||||
// local
|
||||
"sources.dev.pztrn.name/pztrn/giredore/internal/requester"
|
||||
"sources.dev.pztrn.name/pztrn/giredore/internal/structs"
|
||||
)
|
||||
|
||||
func GetConfiguration(options map[string]string) {
|
||||
url := "http://" + options["server"] + "/_api/configuration"
|
||||
log.Info().Msg("Getting configuration from giredore server...")
|
||||
|
||||
data, err := requester.Get(url)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to get configuration from giredore server!")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
||||
|
||||
func SetAllowedIPs(args []string, options map[string]string) {
|
||||
url := "http://" + options["server"] + "/_api/configuration/allowedips"
|
||||
log.Info().Str("allowed IPs", args[0]).Msg("Setting allowed IPs for API interaction...")
|
||||
|
||||
req := &structs.AllowedIPsSetRequest{
|
||||
AllowedIPs: strings.Split(args[0], ","),
|
||||
}
|
||||
|
||||
data, err := requester.Post(url, req)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to set allowed IPs in giredore server configuration!")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
package clientv1
|
||||
|
||||
import (
|
||||
// local
|
||||
"sources.dev.pztrn.name/pztrn/giredore/internal/requester"
|
||||
)
|
||||
|
||||
func GetConfiguration(options map[string]string) {
|
||||
url := "http://" + options["server"] + "/_api/configuration"
|
||||
log.Info().Msg("Getting configuration from giredore server...")
|
||||
|
||||
data, err := requester.Get(url)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to get configuration from giredore server!")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
66
domains/client/v1/packages.go
Normal file
66
domains/client/v1/packages.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package clientv1
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"strings"
|
||||
|
||||
// local
|
||||
"sources.dev.pztrn.name/pztrn/giredore/internal/requester"
|
||||
"sources.dev.pztrn.name/pztrn/giredore/internal/structs"
|
||||
)
|
||||
|
||||
func DeletePackage(args []string, options map[string]string) {
|
||||
req := &structs.PackageDeleteRequest{
|
||||
OriginalPath: args[0],
|
||||
}
|
||||
|
||||
log.Info().Str("original path", req.OriginalPath).Msg("Sending package deletion request to giredored...")
|
||||
|
||||
url := "http://" + options["server"] + "/_api/packages"
|
||||
data, err := requester.Delete(url, req)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to send package deletion request to giredored")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
||||
|
||||
func GetPackages(args []string, options map[string]string) {
|
||||
pkgs := strings.Split(args[0], ",")
|
||||
|
||||
req := &structs.PackageGetRequest{}
|
||||
if pkgs[0] == "all" {
|
||||
req.All = true
|
||||
} else {
|
||||
req.PackageNames = pkgs
|
||||
}
|
||||
|
||||
url := "http://" + options["server"] + "/_api/packages"
|
||||
log.Info().Msg("Getting packages data from giredore server...")
|
||||
|
||||
data, err := requester.Post(url, req)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to get packages data from giredore server!")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
||||
|
||||
func SetPackage(args []string, options map[string]string) {
|
||||
pkg := &structs.Package{
|
||||
Description: args[0],
|
||||
OriginalPath: args[1],
|
||||
RealPath: args[2],
|
||||
VCS: args[3],
|
||||
}
|
||||
|
||||
log.Info().Str("description", pkg.Description).Str("original path", pkg.OriginalPath).Str("real path", pkg.RealPath).Str("VCS", pkg.VCS).Msg("Sending set/update request to giredored...")
|
||||
|
||||
url := "http://" + options["server"] + "/_api/packages"
|
||||
data, err := requester.Put(url, pkg)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to send package update/set request to giredored")
|
||||
}
|
||||
|
||||
log.Debug().Msg("Got data: " + string(data))
|
||||
}
|
Reference in New Issue
Block a user