import ( "github.com/juju/errors" "github.com/juju/utils/clock" "gopkg.in/juju/names.v2" "github.com/juju/juju/apiserver/metricsender" ) var sendMetrics = func(st metricsender.ModelBackend) error { cfg, err := st.ModelConfig() if err != nil { return errors.Annotatef(err, "failed to get model config for %s", st.ModelTag()) } err = metricsender.SendMetrics(st, metricsender.DefaultMetricSender(), clock.WallClock, metricsender.DefaultMaxBatchesPerSend(), cfg.TransmitVendorMetrics()) return errors.Trace(err) } // DestroyModelIncludingHosted sets the model to dying. Cleanup jobs then destroy // all services and non-manager, non-manual machine instances in the specified // model. This function assumes that all necessary authentication checks // have been done. If the model is a controller hosting other // models, they will also be destroyed. func DestroyModelIncludingHosted(st ModelManagerBackend, systemTag names.ModelTag) error { return destroyModel(st, systemTag, true) } // DestroyModel sets the environment to dying. Cleanup jobs then destroy // all services and non-manager, non-manual machine instances in the specified // model. This function assumes that all necessary authentication checks
// Copyright 2015 Canonical Ltd. // Licensed under the AGPLv3, see LICENCE file for details. package common import ( "github.com/juju/errors" "github.com/juju/names" "github.com/juju/juju/apiserver/metricsender" "github.com/juju/juju/state" ) var sendMetrics = func(st *state.State) error { err := metricsender.SendMetrics(st, metricsender.DefaultMetricSender(), metricsender.DefaultMaxBatchesPerSend()) return errors.Trace(err) } // DestroyEnvironment sets the environment to dying. Cleanup jobs then destroy // all services and non-manager, non-manual machine instances in the specified // environment. This function assumes that all necessary authentication checks // have been done. If the environment is a controller hosting other // environments, they will also be destroyed. func DestroyEnvironmentIncludingHosted(st *state.State, environTag names.EnvironTag) error { return destroyEnvironment(st, environTag, true) } // DestroyEnvironment sets the environment to dying. Cleanup jobs then destroy // all services and non-manager, non-manual machine instances in the specified // environment. This function assumes that all necessary authentication checks // have been done. An error will be returned if this environment is a
"github.com/juju/loggo" "github.com/juju/utils/clock" "gopkg.in/juju/names.v2" "github.com/juju/juju/apiserver/common" "github.com/juju/juju/apiserver/facade" "github.com/juju/juju/apiserver/metricsender" "github.com/juju/juju/apiserver/params" "github.com/juju/juju/state" ) var ( logger = loggo.GetLogger("juju.apiserver.metricsmanager") maxBatchesPerSend = metricsender.DefaultMaxBatchesPerSend() sender = metricsender.DefaultMetricSender() ) func init() { common.RegisterStandardFacade("MetricsManager", 1, newMetricsManagerAPI) } // MetricsManager defines the methods on the metricsmanager API end point. type MetricsManager interface { CleanupOldMetrics(arg params.Entities) (params.ErrorResults, error) SendMetrics(args params.Entities) (params.ErrorResults, error) } // MetricsManagerAPI implements the metrics manager interface and is the concrete // implementation of the api end point. type MetricsManagerAPI struct {