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  }