Signed-off-by: Anusha Ragunathan <anusha@docker.com>
| ... | ... |
@@ -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 {
|