Something
This commit is contained in:
62
docker/cleanup.go
Normal file
62
docker/cleanup.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package docker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"github.com/moby/moby/client"
|
||||
)
|
||||
|
||||
func cleanup(w http.ResponseWriter, r *http.Request){
|
||||
if r.Method != http.MethodPost{
|
||||
w.WriteHeader(http.StatusMethodNotAllowed);
|
||||
fmt.Fprint(w, "Method Not Allowed");
|
||||
return;
|
||||
}
|
||||
|
||||
if !bearerAuth(w, r) {return;}
|
||||
|
||||
rawBody, err := io.ReadAll(r.Body);
|
||||
if err != nil {
|
||||
panic("Failed to read body!");
|
||||
}
|
||||
|
||||
var bodyDecoded struct{
|
||||
ServiceId string `json:"serviceId"`
|
||||
};
|
||||
|
||||
err = json.Unmarshal(rawBody, &bodyDecoded);
|
||||
if err != nil {
|
||||
panic("Failed to unmarshal json."+ err.Error());
|
||||
}
|
||||
|
||||
scaleUp(bodyDecoded.ServiceId);
|
||||
|
||||
listResoult, err := ApiClient.ServiceList(context.Background(), client.ServiceListOptions{});
|
||||
if err != nil {
|
||||
panic("Failed to list services."+ err.Error());
|
||||
}
|
||||
|
||||
var helperServiceId string;
|
||||
|
||||
for _, service := range listResoult.Items {
|
||||
if service.Spec.Labels["blazena.helper"] != "true" {
|
||||
continue;
|
||||
}
|
||||
helperServiceId = service.ID;
|
||||
break;
|
||||
}
|
||||
|
||||
if helperServiceId == ""{
|
||||
panic("Helper service not found!");
|
||||
}
|
||||
|
||||
_, err = ApiClient.ServiceRemove(context.Background(), helperServiceId, client.ServiceRemoveOptions{});
|
||||
if err != nil {
|
||||
panic("Failed to remove helper service."+ err.Error());
|
||||
}
|
||||
fmt.Fprint(w, bodyDecoded.ServiceId);
|
||||
}
|
||||
Reference in New Issue
Block a user