github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/caasunitprovisioner/broker.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasunitprovisioner 5 6 import ( 7 "github.com/juju/juju/caas" 8 "github.com/juju/juju/core/application" 9 "github.com/juju/juju/core/watcher" 10 ) 11 12 type ContainerBroker interface { 13 Provider() caas.ContainerEnvironProvider 14 WatchUnits(appName string) (watcher.NotifyWatcher, error) 15 Units(appName string) ([]caas.Unit, error) 16 WatchOperator(string) (watcher.NotifyWatcher, error) 17 Operator(string) (*caas.Operator, error) 18 } 19 20 type ServiceBroker interface { 21 Provider() caas.ContainerEnvironProvider 22 EnsureService(appName string, statusCallback caas.StatusCallbackFunc, params *caas.ServiceParams, numUnits int, config application.ConfigAttributes) error 23 EnsureCustomResourceDefinition(appName string, podSpec *caas.PodSpec) error 24 Service(appName string) (*caas.Service, error) 25 DeleteService(appName string) error 26 UnexposeService(appName string) error 27 }