github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/lxd/userdata.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package lxd
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jujuos "github.com/juju/os"
     9  
    10  	"github.com/juju/juju/cloudconfig/cloudinit"
    11  	"github.com/juju/juju/cloudconfig/providerinit/renderers"
    12  )
    13  
    14  type lxdRenderer struct{}
    15  
    16  // EncodeUserdata implements renderers.ProviderRenderer.
    17  func (lxdRenderer) Render(cfg cloudinit.CloudConfig, os jujuos.OSType) ([]byte, error) {
    18  	switch os {
    19  	case jujuos.Ubuntu, jujuos.CentOS, jujuos.OpenSUSE:
    20  		bytes, err := renderers.RenderYAML(cfg)
    21  		return bytes, errors.Trace(err)
    22  	default:
    23  		return nil, errors.Errorf("cannot encode userdata for OS %q", os)
    24  	}
    25  }