func loadConfig(filePath string) (ctx *cpi.Context, err error) {
	file, err := os.Open(filePath)
	if err != nil {
		return
	}
	config := &cpi.Config{}
	err = json.NewDecoder(file).Decode(config)
	if err != nil {
		return
	}

	token, err := getToken(config.Photon)
	if err != nil {
		return
	}

	tokenOptions := &photon.TokenOptions{
		AccessToken: token}
	clientConfig := &photon.ClientOptions{
		IgnoreCertificate: config.Photon.IgnoreCertificate,
		TokenOptions:      tokenOptions,
	}
	ctx = &cpi.Context{
		Client: photon.NewClient(config.Photon.Target, clientConfig, nil),
		Config: config,
		Runner: cmd.NewRunner(),
		Logger: logger.New(),
	}
	return
}
Пример #2
0
import (
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	"github.com/vmware/bosh-photon-cpi/cpi"
	"github.com/vmware/bosh-photon-cpi/logger"
	. "github.com/vmware/bosh-photon-cpi/mocks"
)

var _ = Describe("VM metadata", func() {
	var (
		ctx *cpi.Context
	)

	BeforeEach(func() {
		ctx = &cpi.Context{
			Logger: logger.New(),
		}
	})

	It("set_vm_metadata is a nop", func() {
		actions := map[string]cpi.ActionFn{
			"set_vm_metadata": SetVmMetadata,
		}
		res, err := GetResponse(dispatch(ctx, actions, "set_vm_metadata", nil))
		Expect(res.Result).To(BeNil())
		Expect(err).To(BeNil())
		Expect(res.Log).ShouldNot(BeEmpty())
	})
})