From 490468ca6f753bf9d99058fa7395ac1284700ea7 Mon Sep 17 00:00:00 2001 From: Yann Stepienik Date: Wed, 21 Jun 2023 14:54:19 +0100 Subject: [PATCH] [release] v0.8.0-unstable11 --- client/src/pages/newInstall/newInstall.jsx | 15 ++-- package.json | 2 +- src/docker/api_blueprint.go | 80 +++++++++++----------- src/docker/bootstrap.go | 1 + src/docker/network.go | 19 ++--- 5 files changed, 58 insertions(+), 59 deletions(-) diff --git a/client/src/pages/newInstall/newInstall.jsx b/client/src/pages/newInstall/newInstall.jsx index a00f4a1..6cede60 100644 --- a/client/src/pages/newInstall/newInstall.jsx +++ b/client/src/pages/newInstall/newInstall.jsx @@ -152,9 +152,6 @@ const NewInstall = () => { }} onSubmit={async (values, { setErrors, setStatus, setSubmitting }) => { setSubmitting(true); - const submittingPromise = new Promise((resolve, reject) => { - setPullRequestOnSuccess(() => resolve); - }); setPullRequest(() => ((cb) => { API.newInstall({ @@ -164,7 +161,7 @@ const NewInstall = () => { }, cb) })); - return submittingPromise; + return new Promise(() => {}); }}> {(formik) => (
@@ -175,9 +172,11 @@ const NewInstall = () => { if(formik.values.DBMode === "DisableUserManagement") { setDatabaseEnable(false); } - formik.setStatus({ success: true }); - formik.setSubmitting(false); pullRequestOnSuccess(); + API.getStatus().then((res) => { + formik.setSubmitting(false); + formik.setStatus({ success: true }); + }); }} OnError={(error) => { formik.setStatus({ success: false }); @@ -239,9 +238,7 @@ const NewInstall = () => { /> - ) : (<>
- Rechecking Database Status... -
+ ) : (<>
)} diff --git a/package.json b/package.json index 054ea46..43cfdcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cosmos-server", - "version": "0.8.0-unstable10", + "version": "0.8.0-unstable11", "description": "", "main": "test-server.js", "bugs": { diff --git a/src/docker/api_blueprint.go b/src/docker/api_blueprint.go index d68a7a7..7d0bb9c 100644 --- a/src/docker/api_blueprint.go +++ b/src/docker/api_blueprint.go @@ -220,45 +220,6 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string) var rollbackActions []DockerServiceCreateRollback var err error - // check if services have the cosmos-force-network-secured label or - // if label cosmos-network-name is set ao auto, create a new network - for serviceName, service := range serviceRequest.Services { - utils.Log(fmt.Sprintf("Checking service %s...", serviceName)) - OnLog(fmt.Sprintf("Checking service %s...\n", serviceName)) - - if service.Labels["cosmos-force-network-secured"] == "true" || strings.ToLower(service.Labels["cosmos-network-name"]) == "auto" { - utils.Log(fmt.Sprintf("Forcing secure %s...", serviceName)) - OnLog(fmt.Sprintf("Forcing secure %s...\n", serviceName)) - - newNetwork, errNC := CreateCosmosNetwork() - if errNC != nil { - utils.Error("CreateService: Network", err) - OnLog(fmt.Sprintf("[ERROR] Network %s cant be created\n", newNetwork)) - Rollback(rollbackActions, OnLog) - return err - } - - service.Labels["cosmos-network-name"] = newNetwork - - AttachNetworkToCosmos(newNetwork) - - if service.Networks == nil { - service.Networks = make(map[string]ContainerCreateRequestServiceNetwork) - } - - service.Networks[newNetwork] = ContainerCreateRequestServiceNetwork{} - - rollbackActions = append(rollbackActions, DockerServiceCreateRollback{ - Action: "remove", - Type: "network", - Name: newNetwork, - }) - - utils.Log(fmt.Sprintf("Created secure network %s", newNetwork)) - OnLog(fmt.Sprintf("Created secure network %s\n", newNetwork)) - } - } - // Create networks for networkToCreateName, networkToCreate := range serviceRequest.Networks { utils.Log(fmt.Sprintf("Creating network %s...", networkToCreateName)) @@ -366,7 +327,42 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string) } // Create containers - for _, container := range serviceRequest.Services { + for serviceName, container := range serviceRequest.Services { + utils.Log(fmt.Sprintf("Checking service %s...", serviceName)) + OnLog(fmt.Sprintf("Checking service %s...\n", serviceName)) + + if container.Labels["cosmos-force-network-secured"] == "true" || strings.ToLower(container.Labels["cosmos-network-name"]) == "auto" { + utils.Log(fmt.Sprintf("Forcing secure %s...", serviceName)) + OnLog(fmt.Sprintf("Forcing secure %s...\n", serviceName)) + + newNetwork, errNC := CreateCosmosNetwork() + if errNC != nil { + utils.Error("CreateService: Network", err) + OnLog(fmt.Sprintf("[ERROR] Network %s cant be created\n", newNetwork)) + Rollback(rollbackActions, OnLog) + return err + } + + container.Labels["cosmos-network-name"] = newNetwork + + AttachNetworkToCosmos(newNetwork) + + if container.Networks == nil { + container.Networks = make(map[string]ContainerCreateRequestServiceNetwork) + } + + container.Networks[newNetwork] = ContainerCreateRequestServiceNetwork{} + + rollbackActions = append(rollbackActions, DockerServiceCreateRollback{ + Action: "remove", + Type: "network", + Name: newNetwork, + }) + + utils.Log(fmt.Sprintf("Created secure network %s", newNetwork)) + OnLog(fmt.Sprintf("Created secure network %s\n", newNetwork)) + } + utils.Log(fmt.Sprintf("Creating container %s...", container.Name)) OnLog(fmt.Sprintf("Creating container %s...\n", container.Name)) @@ -540,7 +536,6 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string) hostConfig.Devices = devices - networkingConfig := &network.NetworkingConfig{ EndpointsConfig: make(map[string]*network.EndpointSettings), } @@ -559,9 +554,12 @@ func CreateService(serviceRequest DockerServiceCreateRequest, OnLog func(string) Type: "container", Name: container.Name, }) + + utils.Debug(fmt.Sprintf("CACABOUDIN %v", container.Networks)) // connect to networks for netName, netConfig := range container.Networks { + utils.Log("CreateService: Connecting to network: " + netName) err = DockerClient.NetworkConnect(DockerContext, netName, container.Name, &network.EndpointSettings{ Aliases: netConfig.Aliases, IPAddress: netConfig.IPV4Address, diff --git a/src/docker/bootstrap.go b/src/docker/bootstrap.go index e82962e..43d14cb 100644 --- a/src/docker/bootstrap.go +++ b/src/docker/bootstrap.go @@ -94,6 +94,7 @@ func BootstrapContainerFromTags(containerID string) error { needsRestart := false var errCT error if !isCosmosCon { + utils.Debug(container.Name+": Not connected to a cosmos network") needsRestart, errCT = ConnectToSecureNetwork(container) if errCT != nil { utils.Warn("DockerContainerBootstrapConnectToSecureNetwork -- Cannot connect to network, removing force secure") diff --git a/src/docker/network.go b/src/docker/network.go index aed6768..1bc9546 100644 --- a/src/docker/network.go +++ b/src/docker/network.go @@ -169,13 +169,13 @@ func ConnectToSecureNetwork(containerConfig types.ContainerJSON) (bool, error) { RemoveLabels(containerConfig, []string{"cosmos-network-name"}) return ConnectToSecureNetwork(containerConfig) } - - // else check if already connected - if(IsConnectedToNetwork(containerConfig, netName)) { - return false, nil - } + + // else check if already connected + if(IsConnectedToNetwork(containerConfig, netName)) { + return false, nil + } } - + // at this point network is created and container is not connected to it errCo := ConnectToNetworkSync(netName, containerConfig.ID) @@ -211,14 +211,17 @@ func GetAllPorts(container types.ContainerJSON) []string { func IsConnectedToNetwork(containerConfig types.ContainerJSON, networkName string) bool { if(containerConfig.NetworkSettings == nil) { return false + utils.Debug("IsConnectedToNetwork - " + containerConfig.Name + ": has no settings") } for name, _ := range containerConfig.NetworkSettings.Networks { if name == networkName { return true + utils.Debug("IsConnectedToNetwork - " + containerConfig.Name + ": is connected to " + networkName) } } + utils.Debug("IsConnectedToNetwork - " + containerConfig.Name + ": is NOT connected to " + networkName) return false } @@ -263,8 +266,8 @@ func IsConnectedToASecureCosmosNetwork(self types.ContainerJSON, containerConfig utils.Warn("Container wasn't connected to the network it claimed, connecting it.") err := ConnectToNetworkSync(GetLabel(containerConfig, "cosmos-network-name"), containerConfig.ID) if err != nil { - utils.Error("ConnectToSecureNetworkConnect", err) - return true, err, false + utils.Error("ReConnectToSecureNetworkConnectFromLabel", err) + return false, err, false } }