github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/apiserver/uniter/uniter_v2.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 // The uniter package implements the API interface used by the uniter 5 // worker. This file contains the API facade version 2. 6 7 package uniter 8 9 import ( 10 "github.com/juju/juju/apiserver/common" 11 "github.com/juju/juju/state" 12 ) 13 14 func init() { 15 common.RegisterStandardFacade("Uniter", 2, NewUniterAPIV2) 16 } 17 18 // UniterAPI implements the API version 2, used by the uniter worker. 19 type UniterAPIV2 struct { 20 UniterAPIV1 21 StorageAPI 22 } 23 24 // NewUniterAPIV2 creates a new instance of the Uniter API, version 2. 25 func NewUniterAPIV2(st *state.State, resources *common.Resources, authorizer common.Authorizer) (*UniterAPIV2, error) { 26 baseAPI, err := NewUniterAPIV1(st, resources, authorizer) 27 if err != nil { 28 return nil, err 29 } 30 storageAPI, err := NewStorageAPI(st, resources, baseAPI.accessUnit) 31 if err != nil { 32 return nil, err 33 } 34 return &UniterAPIV2{ 35 UniterAPIV1: *baseAPI, 36 StorageAPI: *storageAPI, 37 }, nil 38 }