Browse code

Add plugin cleanup as part of standard TearDownTest.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>

Anusha Ragunathan authored on 2016/11/02 03:17:33
Showing 2 changed files
... ...
@@ -49,6 +49,7 @@ func (s *DockerSuite) TearDownTest(c *check.C) {
49 49
 	deleteAllImages()
50 50
 	deleteAllVolumes()
51 51
 	deleteAllNetworks()
52
+	deleteAllPlugins()
52 53
 }
53 54
 
54 55
 func init() {
... ...
@@ -303,6 +303,40 @@ func getAllNetworks() ([]types.NetworkResource, error) {
303 303
 	return networks, nil
304 304
 }
305 305
 
306
+func deleteAllPlugins() error {
307
+	plugins, err := getAllPlugins()
308
+	if err != nil {
309
+		return err
310
+	}
311
+	var errors []string
312
+	for _, p := range plugins {
313
+		status, b, err := sockRequest("DELETE", "/plugins/"+p.Name+":"+p.Tag+"?force=1", nil)
314
+		if err != nil {
315
+			errors = append(errors, err.Error())
316
+			continue
317
+		}
318
+		if status != http.StatusNoContent {
319
+			errors = append(errors, fmt.Sprintf("error deleting plugin %s: %s", p.Name, string(b)))
320
+		}
321
+	}
322
+	if len(errors) > 0 {
323
+		return fmt.Errorf(strings.Join(errors, "\n"))
324
+	}
325
+	return nil
326
+}
327
+
328
+func getAllPlugins() (types.PluginsListResponse, error) {
329
+	var plugins types.PluginsListResponse
330
+	_, b, err := sockRequest("GET", "/plugins", nil)
331
+	if err != nil {
332
+		return nil, err
333
+	}
334
+	if err := json.Unmarshal(b, &plugins); err != nil {
335
+		return nil, err
336
+	}
337
+	return plugins, nil
338
+}
339
+
306 340
 func deleteAllVolumes() error {
307 341
 	volumes, err := getAllVolumes()
308 342
 	if err != nil {