@@ -96,7 +96,7 @@ func newHttpTransport(t *testing.T, certFile, keyFile, caFile string) etcd.Cance
96
96
}
97
97
98
98
// configureTestCluster will set the params to start an etcd server
99
- func configureTestCluster (t * testing.T , name string ) * EtcdTestServer {
99
+ func configureTestCluster (t * testing.T , name string , https bool ) * EtcdTestServer {
100
100
var err error
101
101
m := & EtcdTestServer {}
102
102
@@ -107,28 +107,37 @@ func configureTestCluster(t *testing.T, name string) *EtcdTestServer {
107
107
t .Fatal (err )
108
108
}
109
109
110
- m .CertificatesDir , err = ioutil .TempDir (os .TempDir (), "etcd_certificates" )
111
- if err != nil {
112
- t .Fatal (err )
113
- }
114
- m .CertFile = path .Join (m .CertificatesDir , "etcdcert.pem" )
115
- if err = ioutil .WriteFile (m .CertFile , []byte (CertFileContent ), 0644 ); err != nil {
116
- t .Fatal (err )
117
- }
118
- m .KeyFile = path .Join (m .CertificatesDir , "etcdkey.pem" )
119
- if err = ioutil .WriteFile (m .KeyFile , []byte (KeyFileContent ), 0644 ); err != nil {
120
- t .Fatal (err )
121
- }
122
- m .CAFile = path .Join (m .CertificatesDir , "ca.pem" )
123
- if err = ioutil .WriteFile (m .CAFile , []byte (CAFileContent ), 0644 ); err != nil {
124
- t .Fatal (err )
125
- }
110
+ if https {
111
+ m .CertificatesDir , err = ioutil .TempDir (os .TempDir (), "etcd_certificates" )
112
+ if err != nil {
113
+ t .Fatal (err )
114
+ }
115
+ m .CertFile = path .Join (m .CertificatesDir , "etcdcert.pem" )
116
+ if err = ioutil .WriteFile (m .CertFile , []byte (CertFileContent ), 0644 ); err != nil {
117
+ t .Fatal (err )
118
+ }
119
+ m .KeyFile = path .Join (m .CertificatesDir , "etcdkey.pem" )
120
+ if err = ioutil .WriteFile (m .KeyFile , []byte (KeyFileContent ), 0644 ); err != nil {
121
+ t .Fatal (err )
122
+ }
123
+ m .CAFile = path .Join (m .CertificatesDir , "ca.pem" )
124
+ if err = ioutil .WriteFile (m .CAFile , []byte (CAFileContent ), 0644 ); err != nil {
125
+ t .Fatal (err )
126
+ }
126
127
127
- cln := newSecuredLocalListener (t , m .CertFile , m .KeyFile , m .CAFile )
128
- m .ClientListeners = []net.Listener {cln }
129
- m .ClientURLs , err = types .NewURLs ([]string {"https://" + cln .Addr ().String ()})
130
- if err != nil {
131
- t .Fatal (err )
128
+ cln := newSecuredLocalListener (t , m .CertFile , m .KeyFile , m .CAFile )
129
+ m .ClientListeners = []net.Listener {cln }
130
+ m .ClientURLs , err = types .NewURLs ([]string {"https://" + cln .Addr ().String ()})
131
+ if err != nil {
132
+ t .Fatal (err )
133
+ }
134
+ } else {
135
+ cln := newLocalListener (t )
136
+ m .ClientListeners = []net.Listener {cln }
137
+ m .ClientURLs , err = types .NewURLs ([]string {"http://" + cln .Addr ().String ()})
138
+ if err != nil {
139
+ t .Fatal (err )
140
+ }
132
141
}
133
142
134
143
m .Name = name
@@ -214,14 +223,16 @@ func (m *EtcdTestServer) Terminate(t *testing.T) {
214
223
if err := os .RemoveAll (m .ServerConfig .DataDir ); err != nil {
215
224
t .Fatal (err )
216
225
}
217
- if err := os .RemoveAll (m .CertificatesDir ); err != nil {
218
- t .Fatal (err )
226
+ if len (m .CertificatesDir ) > 0 {
227
+ if err := os .RemoveAll (m .CertificatesDir ); err != nil {
228
+ t .Fatal (err )
229
+ }
219
230
}
220
231
}
221
232
222
233
// NewEtcdTestClientServer creates a new client and server for testing
223
234
func NewEtcdTestClientServer (t * testing.T ) * EtcdTestServer {
224
- server := configureTestCluster (t , "foo" )
235
+ server := configureTestCluster (t , "foo" , true )
225
236
err := server .launch (t )
226
237
if err != nil {
227
238
t .Fatalf ("Failed to start etcd server error=%v" , err )
@@ -244,3 +255,29 @@ func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
244
255
}
245
256
return server
246
257
}
258
+
259
+ // NewUnsecuredEtcdTestClientServer creates a new client and server for testing
260
+ func NewUnsecuredEtcdTestClientServer (t * testing.T ) * EtcdTestServer {
261
+ server := configureTestCluster (t , "foo" , false )
262
+ err := server .launch (t )
263
+ if err != nil {
264
+ t .Fatal ("Failed to start etcd server error=%v" , err )
265
+ return nil
266
+ }
267
+ cfg := etcd.Config {
268
+ Endpoints : server .ClientURLs .StringSlice (),
269
+ Transport : newHttpTransport (t , server .CertFile , server .KeyFile , server .CAFile ),
270
+ }
271
+ server .Client , err = etcd .New (cfg )
272
+ if err != nil {
273
+ t .Errorf ("Unexpected error in NewUnsecuredEtcdTestClientServer (%v)" , err )
274
+ server .Terminate (t )
275
+ return nil
276
+ }
277
+ if err := server .waitUntilUp (); err != nil {
278
+ t .Errorf ("Unexpected error in waitUntilUp (%v)" , err )
279
+ server .Terminate (t )
280
+ return nil
281
+ }
282
+ return server
283
+ }
0 commit comments