Files
linuxkit/pkg/metadata/provider_cdrom.go
Rolf Neugebauer 766e1d95d3 pkg: Add a generic metadata package
This package handles meta and user data for different cloud
and other platforms. It should be easy to extend to new
platforms.

Currently, it handles GCP metadata and a simple CDROM userdata
provider.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-11 15:32:17 +01:00

42 lines
876 B
Go

package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path"
)
const (
configFile = "config"
)
// ProviderCDROM is the type implementing the Provider interface for CDROMs
// It looks for a file called 'configFile' in the root
type ProviderCDROM struct {
}
// NewCDROM returns a new ProviderCDROM
func NewCDROM() *ProviderCDROM {
return &ProviderCDROM{}
}
// Probe checks if the CD has the right file
func (p *ProviderCDROM) Probe() bool {
_, err := os.Stat(path.Join(MountPoint, configFile))
if err != nil {
log.Printf("CDROM: Probe -> %s", err)
}
return (!os.IsNotExist(err))
}
// Extract gets both the CDROM specific and generic userdata
func (p *ProviderCDROM) Extract() ([]byte, error) {
data, err := ioutil.ReadFile(path.Join(MountPoint, configFile))
if err != nil {
return nil, fmt.Errorf("CDROM: Error reading file: %s", err)
}
return data, nil
}