You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by lu...@apache.org on 2022/05/23 07:20:42 UTC

[skywalking-infra-e2e] branch main updated: Support shutdown service during setup phase in compose mode (#76)

This is an automated email from the ASF dual-hosted git repository.

lujiajing pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-infra-e2e.git


The following commit(s) were added to refs/heads/main by this push:
     new 1e522c3  Support shutdown service during setup phase in compose mode (#76)
1e522c3 is described below

commit 1e522c30ea4467d34dcfe34f14829a7b990932ea
Author: mrproliu <74...@qq.com>
AuthorDate: Mon May 23 15:20:37 2022 +0800

    Support shutdown service during setup phase in compose mode (#76)
---
 CHANGES.md                           |  1 +
 internal/components/setup/compose.go | 27 ++++++++++++++++++---------
 2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 3b86632..5b95254 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -6,6 +6,7 @@ Release Notes.
 ------------------
 #### Features
 * Expand kind file path with system environment.
+* Support shutdown service during setup phase in compose mode.
 
 #### Bug Fixes
 * Fix the problem of parsing `verify.retry.interval` without setting value.
diff --git a/internal/components/setup/compose.go b/internal/components/setup/compose.go
index f2dfec7..2bea353 100644
--- a/internal/components/setup/compose.go
+++ b/internal/components/setup/compose.go
@@ -135,20 +135,19 @@ func exposeComposeService(services []*ComposeService, cli *client.Client,
 
 	// find exported port and build env
 	for _, service := range services {
-		serviceName, num := getInstanceName(service.Name)
-		container, err := findContainer(cli, identity, serviceName, num)
-		if err != nil {
-			return err
-		}
-
 		// expose port
-		if err := exposeComposePort(dockerProvider, service, container, e2eConfig); err != nil {
+		if err := exposeComposePort(dockerProvider, service, cli, identity, e2eConfig); err != nil {
 			return err
 		}
 
 		// if service log not follow, expose log
 		if !service.beenFollowLog {
-			if err := exposeComposeLog(dockerProvider.client, service, container.ID, logFollower); err != nil {
+			c, err := service.FindContainer(cli, identity)
+			if err != nil {
+				logger.Log.Warn(err)
+				continue
+			}
+			if err := exposeComposeLog(dockerProvider.client, service, c.ID, logFollower); err != nil {
 				return err
 			}
 			service.beenFollowLog = true
@@ -157,7 +156,12 @@ func exposeComposeService(services []*ComposeService, cli *client.Client,
 	return nil
 }
 
-func exposeComposePort(dockerProvider *DockerProvider, service *ComposeService, container *types.Container,
+func (c *ComposeService) FindContainer(cli *client.Client, identity string) (*types.Container, error) {
+	serviceName, num := getInstanceName(c.Name)
+	return findContainer(cli, identity, serviceName, num)
+}
+
+func exposeComposePort(dockerProvider *DockerProvider, service *ComposeService, cli *client.Client, identity string,
 	e2eConfig *config.E2EConfig) error {
 	if len(service.waitStrategies) == 0 {
 		return nil
@@ -169,6 +173,11 @@ func exposeComposePort(dockerProvider *DockerProvider, service *ComposeService,
 		return err
 	}
 
+	container, err := service.FindContainer(cli, identity)
+	if err != nil {
+		return err
+	}
+
 	// format: <service_name>_host
 	if err := exportComposeEnv(fmt.Sprintf("%s_host", service.Name), host, service.Name); err != nil {
 		return err