@@ -6,9 +6,11 @@ package deploy
66
77import (
88 "context"
9+ "path/filepath"
910 "strings"
1011
1112 "github.com/elastic/e2e-testing/internal/common"
13+ "github.com/elastic/e2e-testing/internal/shell"
1214 "github.com/elastic/e2e-testing/internal/utils"
1315 log "github.com/sirupsen/logrus"
1416)
@@ -58,6 +60,23 @@ func (c *dockerDeploymentManifest) Bootstrap(waitCB func() error) error {
5860 return nil
5961}
6062
63+ // AddFiles - add files to service
64+ func (c * dockerDeploymentManifest ) AddFiles (service ServiceRequest , files []string ) error {
65+ container , _ := c .Inspect (service )
66+ for _ , file := range files {
67+ isTar := true
68+ fileExt := filepath .Ext (file )
69+ if fileExt == ".rpm" || fileExt == ".deb" {
70+ isTar = false
71+ }
72+ err := CopyFileToContainer (c .Context , container .Name , file , "/" , isTar )
73+ if err != nil {
74+ log .WithField ("error" , err ).Fatal ("Unable to copy file to service" )
75+ }
76+ }
77+ return nil
78+ }
79+
6180// Destroy teardown docker environment
6281func (c * dockerDeploymentManifest ) Destroy () error {
6382 serviceManager := NewServiceManager ()
@@ -73,7 +92,12 @@ func (c *dockerDeploymentManifest) Destroy() error {
7392
7493// ExecIn execute command in service
7594func (c * dockerDeploymentManifest ) ExecIn (service ServiceRequest , cmd []string ) (string , error ) {
76- output , err := ExecCommandIntoContainer (c .Context , service , "root" , cmd )
95+ inspect , _ := c .Inspect (service )
96+ args := []string {"exec" , "-u" , "root" , "-i" , inspect .Name }
97+ for _ , cmdArg := range cmd {
98+ args = append (args , cmdArg )
99+ }
100+ output , err := shell .Execute (c .Context , "." , "docker" , args ... )
77101 if err != nil {
78102 return "" , err
79103 }
@@ -86,17 +110,54 @@ func (c *dockerDeploymentManifest) Inspect(service ServiceRequest) (*ServiceMani
86110 if err != nil {
87111 return & ServiceManifest {}, err
88112 }
113+
89114 return & ServiceManifest {
90115 ID : inspect .ID ,
91116 Name : strings .TrimPrefix (inspect .Name , "/" ),
92117 Connection : service .Name ,
93- Hostname : inspect .NetworkSettings .Networks ["fleet_default" ].Aliases [0 ],
118+ Alias : inspect .NetworkSettings .Networks ["fleet_default" ].Aliases [0 ],
119+ Hostname : inspect .Config .Hostname ,
120+ Platform : inspect .Platform ,
94121 }, nil
95122}
96123
124+ // Logs print logs of service
125+ func (c * dockerDeploymentManifest ) Logs (service ServiceRequest ) error {
126+ manifest , _ := c .Inspect (service )
127+ _ , err := shell .Execute (c .Context , "." , "docker" , "logs" , manifest .Name )
128+ if err != nil {
129+ log .WithFields (log.Fields {
130+ "error" : err ,
131+ "service" : service .Name ,
132+ }).Error ("Could not retrieve Elastic Agent logs" )
133+
134+ return err
135+ }
136+ return nil
137+ }
138+
97139// Remove remove services from deployment
98140func (c * dockerDeploymentManifest ) Remove (services []ServiceRequest , env map [string ]string ) error {
99- serviceManager := NewServiceManager ()
141+ for _ , service := range services [1 :] {
142+ manifest , _ := c .Inspect (service )
143+ _ , err := shell .Execute (c .Context , "." , "docker" , "rm" , "-fv" , manifest .Name )
144+ if err != nil {
145+ return err
146+ }
147+ }
148+ return nil
149+ }
150+
151+ // Start a container
152+ func (c * dockerDeploymentManifest ) Start (service ServiceRequest ) error {
153+ manifest , _ := c .Inspect (service )
154+ _ , err := shell .Execute (c .Context , "." , "docker" , "start" , manifest .Name )
155+ return err
156+ }
100157
101- return serviceManager .RemoveServicesFromCompose (c .Context , services [0 ], services [1 :], env )
158+ // Stop a container
159+ func (c * dockerDeploymentManifest ) Stop (service ServiceRequest ) error {
160+ manifest , _ := c .Inspect (service )
161+ _ , err := shell .Execute (c .Context , "." , "docker" , "stop" , manifest .Name )
162+ return err
102163}
0 commit comments