fix: updating to the smarter client
This commit is contained in:
@@ -21,7 +21,6 @@ import (
|
|||||||
"github.com/docker/docker/api/types"
|
"github.com/docker/docker/api/types"
|
||||||
//"github.com/docker/docker/api/types/container"
|
//"github.com/docker/docker/api/types/container"
|
||||||
"github.com/docker/docker/api/types/image"
|
"github.com/docker/docker/api/types/image"
|
||||||
"github.com/docker/docker/client"
|
|
||||||
newdockerclient "github.com/fsouza/go-dockerclient"
|
newdockerclient "github.com/fsouza/go-dockerclient"
|
||||||
"github.com/go-git/go-billy/v5"
|
"github.com/go-git/go-billy/v5"
|
||||||
|
|
||||||
@@ -35,12 +34,13 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"time"
|
||||||
|
|
||||||
batchv1 "k8s.io/api/batch/v1"
|
batchv1 "k8s.io/api/batch/v1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
"time"
|
|
||||||
// "k8s.io/client-go/tools/clientcmd"
|
// "k8s.io/client-go/tools/clientcmd"
|
||||||
// "k8s.io/client-go/util/homedir"
|
// "k8s.io/client-go/util/homedir"
|
||||||
)
|
)
|
||||||
@@ -206,7 +206,8 @@ func fixTags(tags []string) []string {
|
|||||||
// Custom Docker image builder wrapper in memory
|
// Custom Docker image builder wrapper in memory
|
||||||
func buildImageMemory(fs billy.Filesystem, tags []string, dockerfileFolder string, downloadIfFail bool) error {
|
func buildImageMemory(fs billy.Filesystem, tags []string, dockerfileFolder string, downloadIfFail bool) error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
client, err := client.NewEnvClient()
|
// client, err := client.NewEnvClient()
|
||||||
|
client, _, err := shuffle.GetDockerClient()
|
||||||
defer client.Close()
|
defer client.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to create docker client: %s", err)
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
@@ -474,7 +475,8 @@ func buildImage(tags []string, dockerfileLocation string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
client, err := client.NewEnvClient()
|
// client, err := client.NewEnvClient()
|
||||||
|
client, _, err := shuffle.GetDockerClient()
|
||||||
defer client.Close()
|
defer client.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to create docker client: %s", err)
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
@@ -562,7 +564,8 @@ func imageCheckBuilder(images []string) error {
|
|||||||
return nil
|
return nil
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
client, err := client.NewEnvClient()
|
// client, err := client.NewEnvClient()
|
||||||
|
client, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to create docker client: %s", err)
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
return err
|
return err
|
||||||
@@ -651,7 +654,7 @@ func getDockerImage(resp http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//log.Printf("[DEBUG] Image to load: %s", version.Name)
|
//log.Printf("[DEBUG] Image to load: %s", version.Name)
|
||||||
dockercli, err := client.NewEnvClient()
|
dockercli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[WARNING] Unable to create docker client: %s", err)
|
log.Printf("[WARNING] Unable to create docker client: %s", err)
|
||||||
resp.WriteHeader(422)
|
resp.WriteHeader(422)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
uuid "github.com/satori/go.uuid"
|
uuid "github.com/satori/go.uuid"
|
||||||
"github.com/shuffle/shuffle-shared"
|
"github.com/shuffle/shuffle-shared"
|
||||||
"github.com/shuffle/singul/pkg"
|
singul "github.com/shuffle/singul/pkg"
|
||||||
|
|
||||||
"net/http/pprof"
|
"net/http/pprof"
|
||||||
|
|
||||||
@@ -44,11 +44,12 @@ import (
|
|||||||
"github.com/go-git/go-git/v5/storage/memory"
|
"github.com/go-git/go-git/v5/storage/memory"
|
||||||
|
|
||||||
// Random
|
// Random
|
||||||
|
"sort"
|
||||||
|
|
||||||
xj "github.com/basgys/goxml2json"
|
xj "github.com/basgys/goxml2json"
|
||||||
newscheduler "github.com/carlescere/scheduler"
|
newscheduler "github.com/carlescere/scheduler"
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
"sort"
|
|
||||||
|
|
||||||
// Web
|
// Web
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@@ -5433,7 +5434,7 @@ func initHandlers() {
|
|||||||
r.HandleFunc("/api/v1/users/getsettings", shuffle.HandleSettings).Methods("GET", "OPTIONS")
|
r.HandleFunc("/api/v1/users/getsettings", shuffle.HandleSettings).Methods("GET", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/getusers", shuffle.HandleGetUsers).Methods("GET", "OPTIONS")
|
r.HandleFunc("/api/v1/users/getusers", shuffle.HandleGetUsers).Methods("GET", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/updateuser", shuffle.HandleUpdateUser).Methods("PUT", "OPTIONS")
|
r.HandleFunc("/api/v1/users/updateuser", shuffle.HandleUpdateUser).Methods("PUT", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/{userID}/remove", shuffle.HandleDeleteUsersAccount).Methods("DELETE", "OPTIONS")
|
// r.HandleFunc("/api/v1/users/{userID}/remove", shuffle.HandleDeleteUsersAccount).Methods("DELETE", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/{user}", shuffle.DeleteUser).Methods("DELETE", "OPTIONS")
|
r.HandleFunc("/api/v1/users/{user}", shuffle.DeleteUser).Methods("DELETE", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/passwordchange", shuffle.HandlePasswordChange).Methods("POST", "OPTIONS")
|
r.HandleFunc("/api/v1/users/passwordchange", shuffle.HandlePasswordChange).Methods("POST", "OPTIONS")
|
||||||
r.HandleFunc("/api/v1/users/{key}/get2fa", shuffle.HandleGet2fa).Methods("GET", "OPTIONS")
|
r.HandleFunc("/api/v1/users/{key}/get2fa", shuffle.HandleGet2fa).Methods("GET", "OPTIONS")
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
//"math/rand"
|
//"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
@@ -21,7 +22,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types/image"
|
"github.com/docker/docker/api/types/image"
|
||||||
dockerclient "github.com/docker/docker/client"
|
|
||||||
"github.com/h2non/filetype"
|
"github.com/h2non/filetype"
|
||||||
uuid "github.com/satori/go.uuid"
|
uuid "github.com/satori/go.uuid"
|
||||||
|
|
||||||
@@ -3527,7 +3527,8 @@ func LoadSpecificApps(resp http.ResponseWriter, request *http.Request) {
|
|||||||
|
|
||||||
// As it's not even Docker
|
// As it's not even Docker
|
||||||
if tmpBody.ForceUpdate {
|
if tmpBody.ForceUpdate {
|
||||||
dockercli, err := dockerclient.NewEnvClient()
|
// dockercli, err := dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err := shuffle.GetDockerClient()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
||||||
appSdk := os.Getenv("SHUFFLE_APP_SDK_VERSION")
|
appSdk := os.Getenv("SHUFFLE_APP_SDK_VERSION")
|
||||||
|
|||||||
@@ -136,7 +136,8 @@ var window = shuffle.NewTimeWindow(1 * time.Minute)
|
|||||||
func init() {
|
func init() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
dockercli, err = dockerclient.NewEnvClient()
|
// dockercli, err = dockerclient.NewEnvClient()
|
||||||
|
dockercli, dockerApiVersion, err = shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to create docker client: %s", err)
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1246,7 +1246,8 @@ func DeployContainer(ctx context.Context, cli *dockerclient.Client, config *cont
|
|||||||
func removeContainer(containername string) error {
|
func removeContainer(containername string) error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
cli, err := dockerclient.NewEnvClient()
|
// cli, err := dockerclient.NewEnvClient()
|
||||||
|
cli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[DEBUG] Unable to create docker client: %s", err)
|
log.Printf("[DEBUG] Unable to create docker client: %s", err)
|
||||||
return err
|
return err
|
||||||
@@ -1344,7 +1345,8 @@ func getWorkerURLs() ([]string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new Docker client
|
// Create a new Docker client
|
||||||
cli, err := dockerclient.NewEnvClient()
|
// cli, err := dockerclient.NewEnvClient()
|
||||||
|
cli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("[ERROR] Failed to create Docker client:", err)
|
log.Println("[ERROR] Failed to create Docker client:", err)
|
||||||
return workerUrls, err
|
return workerUrls, err
|
||||||
@@ -1461,7 +1463,8 @@ func handleExecutionResult(workflowExecution shuffle.WorkflowExecution) {
|
|||||||
var err error
|
var err error
|
||||||
|
|
||||||
if isKubernetes != "true" {
|
if isKubernetes != "true" {
|
||||||
dockercli, err = dockerclient.NewEnvClient()
|
// dockercli, err = dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err = shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (3): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (3): %s", err)
|
||||||
return
|
return
|
||||||
@@ -3581,7 +3584,8 @@ func findAppInfo(image, name string, redeploy bool) (int, error) {
|
|||||||
|
|
||||||
//Filters:
|
//Filters:
|
||||||
if exposedPort == -1 || redeploy {
|
if exposedPort == -1 || redeploy {
|
||||||
dockercli, err := dockerclient.NewEnvClient()
|
// dockercli, err := dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
||||||
return -1, err
|
return -1, err
|
||||||
@@ -3693,7 +3697,8 @@ func findAppInfo(image, name string, redeploy bool) (int, error) {
|
|||||||
if exposedPort >= 0 {
|
if exposedPort >= 0 {
|
||||||
//log.Printf("[INFO] Found service %s on port %d - no need to deploy another", name, exposedPort)
|
//log.Printf("[INFO] Found service %s on port %d - no need to deploy another", name, exposedPort)
|
||||||
} else {
|
} else {
|
||||||
dockercli, err := dockerclient.NewEnvClient()
|
// dockercli, err := dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
||||||
return -1, err
|
return -1, err
|
||||||
@@ -3771,7 +3776,8 @@ func findAppInfoKubernetes(image, name string, env []string) error {
|
|||||||
// Backups in case networks are removed
|
// Backups in case networks are removed
|
||||||
func initSwarmNetwork() error {
|
func initSwarmNetwork() error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
dockercli, err := dockerclient.NewEnvClient()
|
// dockercli, err := dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (2): %s", err)
|
||||||
return err
|
return err
|
||||||
@@ -4077,7 +4083,8 @@ func baseDeploy() {
|
|||||||
//var err error
|
//var err error
|
||||||
|
|
||||||
if isKubernetes != "true" {
|
if isKubernetes != "true" {
|
||||||
cli, err := dockerclient.NewEnvClient()
|
// cli, err := dockerclient.NewEnvClient()
|
||||||
|
cli, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (3): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (3): %s", err)
|
||||||
return
|
return
|
||||||
@@ -4818,7 +4825,8 @@ func handleDownloadImage(resp http.ResponseWriter, request *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
client, err := dockerclient.NewEnvClient()
|
// client, err := dockerclient.NewEnvClient()
|
||||||
|
client, _, err := shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (4): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (4): %s", err)
|
||||||
resp.WriteHeader(401)
|
resp.WriteHeader(401)
|
||||||
@@ -4982,7 +4990,13 @@ func AutoScaleApps(ctx context.Context, client *dockerclient.Client, maxExecutio
|
|||||||
}
|
}
|
||||||
|
|
||||||
func scaleApps(ctx context.Context, client *dockerclient.Client, replicas uint64) error {
|
func scaleApps(ctx context.Context, client *dockerclient.Client, replicas uint64) error {
|
||||||
client, err := dockerclient.NewEnvClient()
|
// client, err := dockerclient.NewEnvClient()
|
||||||
|
client, _, err := shuffle.GetDockerClient()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("[ERROR] Unable to create docker client (scaleApps): %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
services, err := client.ServiceList(ctx, types.ServiceListOptions{})
|
services, err := client.ServiceList(ctx, types.ServiceListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Failed to find services in the swarm: %s", err)
|
log.Printf("[ERROR] Failed to find services in the swarm: %s", err)
|
||||||
@@ -5060,7 +5074,8 @@ func numberOfApps(ctx context.Context, dockercli *dockerclient.Client) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if dockercli == nil {
|
if dockercli == nil {
|
||||||
dockercli, err = dockerclient.NewEnvClient()
|
// dockercli, err = dockerclient.NewEnvClient()
|
||||||
|
dockercli, _, err = shuffle.GetDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Unable to create docker client (5): %s", err)
|
log.Printf("[ERROR] Unable to create docker client (5): %s", err)
|
||||||
return 0
|
return 0
|
||||||
@@ -5147,7 +5162,13 @@ func IsServiceRunning(ctx context.Context, cli *dockerclient.Client) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func numberOfWorkers(ctx context.Context, cli *dockerclient.Client) int {
|
func numberOfWorkers(ctx context.Context, cli *dockerclient.Client) int {
|
||||||
cli, err := dockerclient.NewEnvClient()
|
// cli, err := dockerclient.NewEnvClient()
|
||||||
|
cli, _, err := shuffle.GetDockerClient()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("[ERROR] Unable to create docker client (5): %s", err)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
service, _, err := cli.ServiceInspectWithRaw(ctx, "shuffle-workers", types.ServiceInspectOptions{})
|
service, _, err := cli.ServiceInspectWithRaw(ctx, "shuffle-workers", types.ServiceInspectOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user