@@ -17,6 +17,8 @@ limitations under the License.
17
17
package e2e
18
18
19
19
import (
20
+ "bytes"
21
+ "os/exec"
20
22
"testing"
21
23
22
24
. "github.com/onsi/gomega"
@@ -51,8 +53,6 @@ func TestMNISTRayClusterSDK(t *testing.T) {
51
53
"requirements.txt" : ReadFile (test , "mnist_pip_requirements.txt" ),
52
54
// MNIST training script
53
55
"mnist.py" : ReadFile (test , "mnist.py" ),
54
- // SDK Wheel File
55
- "codeflare_sdk-0.0.0.dev0-py3-none-any.whl" : ReadWhlFile (test , "codeflare_sdk-0.0.0.dev0-py3-none-any.whl" ),
56
56
// codeflare-sdk installation script
57
57
"install-codeflare-sdk.sh" : ReadFile (test , "install-codeflare-sdk.sh" ),
58
58
})
@@ -113,6 +113,30 @@ func TestMNISTRayClusterSDK(t *testing.T) {
113
113
BackoffLimit : Ptr (int32 (0 )),
114
114
Template : corev1.PodTemplateSpec {
115
115
Spec : corev1.PodSpec {
116
+ Volumes : []corev1.Volume {
117
+ {
118
+ Name : "test" ,
119
+ VolumeSource : corev1.VolumeSource {
120
+ ConfigMap : & corev1.ConfigMapVolumeSource {
121
+ LocalObjectReference : corev1.LocalObjectReference {
122
+ Name : config .Name ,
123
+ },
124
+ },
125
+ },
126
+ },
127
+ {
128
+ Name : "codeflare-sdk" ,
129
+ VolumeSource : corev1.VolumeSource {
130
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
131
+ },
132
+ },
133
+ {
134
+ Name : "workdir" ,
135
+ VolumeSource : corev1.VolumeSource {
136
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
137
+ },
138
+ },
139
+ },
116
140
Containers : []corev1.Container {
117
141
{
118
142
Name : "test" ,
@@ -123,13 +147,20 @@ func TestMNISTRayClusterSDK(t *testing.T) {
123
147
{Name : "PYTHONUSERBASE" , Value : "/workdir" },
124
148
{Name : "RAY_IMAGE" , Value : GetRayImage ()},
125
149
},
126
- Command : []string {"/bin/sh" , "-c" , "cp /test/* . && chmod +x install-codeflare-sdk.sh && ./install-codeflare-sdk.sh && python mnist_raycluster_sdk.py" + " " + namespace .Name },
127
- // Command: []string{"/bin/sh", "-c", "pip install /test/codeflare_sdk-0.0.0.dev0-py3-none-any.whl && cp /test/* . && python mnist_raycluster_sdk.py" + " " + namespace.Name},
150
+ Command : []string {
151
+ "/bin/sh" , "-c" ,
152
+ "while [ ! -f /codeflare-sdk/pyproject.toml ]; do sleep 1; done; " +
153
+ "cp /test/* . && chmod +x install-codeflare-sdk.sh && ./install-codeflare-sdk.sh && python mnist_raycluster_sdk.py " + namespace .Name ,
154
+ },
128
155
VolumeMounts : []corev1.VolumeMount {
129
156
{
130
157
Name : "test" ,
131
158
MountPath : "/test" ,
132
159
},
160
+ {
161
+ Name : "codeflare-sdk" ,
162
+ MountPath : "/codeflare-sdk" ,
163
+ },
133
164
{
134
165
Name : "workdir" ,
135
166
MountPath : "/workdir" ,
@@ -148,24 +179,6 @@ func TestMNISTRayClusterSDK(t *testing.T) {
148
179
},
149
180
},
150
181
},
151
- Volumes : []corev1.Volume {
152
- {
153
- Name : "test" ,
154
- VolumeSource : corev1.VolumeSource {
155
- ConfigMap : & corev1.ConfigMapVolumeSource {
156
- LocalObjectReference : corev1.LocalObjectReference {
157
- Name : config .Name ,
158
- },
159
- },
160
- },
161
- },
162
- {
163
- Name : "workdir" ,
164
- VolumeSource : corev1.VolumeSource {
165
- EmptyDir : & corev1.EmptyDirVolumeSource {},
166
- },
167
- },
168
- },
169
182
RestartPolicy : corev1 .RestartPolicyNever ,
170
183
ServiceAccountName : sa .Name ,
171
184
},
@@ -194,6 +207,22 @@ func TestMNISTRayClusterSDK(t *testing.T) {
194
207
test .Expect (err ).NotTo (HaveOccurred ())
195
208
test .T ().Logf ("Created Job %s/%s successfully" , job .Namespace , job .Name )
196
209
210
+ go func () {
211
+ scriptName := "../.././copyscript.sh"
212
+ cmd := exec .Command (scriptName , namespace .Name )
213
+
214
+ var stdoutBuf , stderrBuf bytes.Buffer
215
+ cmd .Stdout = & stdoutBuf
216
+ cmd .Stderr = & stderrBuf
217
+
218
+ // Run the script
219
+ if err := cmd .Run (); err != nil {
220
+ t .Logf ("STDOUT: %s" , stdoutBuf .String ())
221
+ t .Logf ("STDERR: %s" , stderrBuf .String ())
222
+ t .Logf ("Failed to run the script: %v" , err )
223
+ }
224
+ }()
225
+
197
226
test .T ().Logf ("Waiting for Job %s/%s to complete" , job .Namespace , job .Name )
198
227
test .Eventually (Job (test , job .Namespace , job .Name ), TestTimeoutLong ).Should (
199
228
Or (
0 commit comments