summaryrefslogtreecommitdiff
path: root/libpod/driver/driver.go
blob: d84ce8d3c3695576d5340022960147f6f926a6d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package driver

import (
	cstorage "github.com/containers/storage"
	"github.com/projectatomic/libpod/pkg/inspect"
)

// GetDriverName returns the name of the driver for the given store
func GetDriverName(store cstorage.Store) (string, error) {
	driver, err := store.GraphDriver()
	if err != nil {
		return "", err
	}
	return driver.String(), nil
}

// GetDriverMetadata returns the metadata regarding the driver for the layer in the given store
func GetDriverMetadata(store cstorage.Store, layerID string) (map[string]string, error) {
	driver, err := store.GraphDriver()
	if err != nil {
		return nil, err
	}
	return driver.Metadata(layerID)
}

// GetDriverData returns the Data struct with information of the driver used by the store
func GetDriverData(store cstorage.Store, layerID string) (*inspect.Data, error) {
	name, err := GetDriverName(store)
	if err != nil {
		return nil, err
	}
	metaData, err := GetDriverMetadata(store, layerID)
	if err != nil {
		return nil, err
	}
	return &inspect.Data{
		Name: name,
		Data: metaData,
	}, nil
}