github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/listUnreferencedObjects.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Cloud-Foundations/Dominator/imageserver/client"
     7  	"github.com/Cloud-Foundations/Dominator/lib/log"
     8  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     9  )
    10  
    11  func listUnreferencedObjectsSubcommand(args []string,
    12  	logger log.DebugLogger) error {
    13  	imageClient, _ := getClients()
    14  	if err := listUnreferencedObjects(imageClient, false); err != nil {
    15  		return fmt.Errorf("Error listing unreferenced objects: %s", err)
    16  	}
    17  	return nil
    18  }
    19  
    20  func showUnreferencedObjectsSubcommand(args []string,
    21  	logger log.DebugLogger) error {
    22  	imageClient, _ := getClients()
    23  	if err := listUnreferencedObjects(imageClient, true); err != nil {
    24  		return fmt.Errorf("Error listing unreferenced objects: %s", err)
    25  	}
    26  	return nil
    27  }
    28  
    29  func listUnreferencedObjects(imageSClient *srpc.Client, showSize bool) error {
    30  	objects, err := client.ListUnreferencedObjects(imageSClient)
    31  	if err != nil {
    32  		return err
    33  	}
    34  	for hashVal, size := range objects {
    35  		if showSize {
    36  			fmt.Printf("%x %d\n", hashVal, size)
    37  		} else {
    38  			fmt.Printf("%x\n", hashVal)
    39  		}
    40  	}
    41  	return nil
    42  }