func (r *Reboot) runningContainers() ([]instance.Instance, error) { var runningInstances []instance.Instance for _, val := range instance.ContainerTypes { managerConfig := container.ManagerConfig{container.ConfigName: container.DefaultNamespace} if namespace := r.acfg.Value(agent.Namespace); namespace != "" { managerConfig[container.ConfigName] = namespace } cfg := container.ManagerConfig(managerConfig) manager, err := factory.NewContainerManager(val, cfg, nil) if err != nil { return nil, errors.Annotatef(err, "failed to get manager for container type %v", val) } if !manager.IsInitialized() { logger.Infof("container type %q not supported", val) continue } instances, err := manager.ListContainers() if err != nil { return nil, errors.Annotate(err, "failed to list containers") } runningInstances = append(runningInstances, instances...) } return runningInstances, nil }
func containerManagerConfig( containerType instance.ContainerType, provisioner *apiprovisioner.State, agentConfig agent.Config, ) (container.ManagerConfig, error) { // Ask the provisioner for the container manager configuration. managerConfigResult, err := provisioner.ContainerManagerConfig( params.ContainerManagerConfigParams{Type: containerType}, ) if params.IsCodeNotImplemented(err) { // We currently don't support upgrading; // revert to the old configuration. managerConfigResult.ManagerConfig = container.ManagerConfig{container.ConfigName: container.DefaultNamespace} } if err != nil { return nil, err } // If a namespace is specified, that should instead be used as the config name. if namespace := agentConfig.Value(agent.Namespace); namespace != "" { managerConfigResult.ManagerConfig[container.ConfigName] = namespace } managerConfig := container.ManagerConfig(managerConfigResult.ManagerConfig) return managerConfig, nil }
func (r *Reboot) runningContainers() ([]instance.Instance, error) { runningInstances := []instance.Instance{} for _, val := range instance.ContainerTypes { managerConfig := container.ManagerConfig{container.ConfigName: container.DefaultNamespace} if namespace := r.acfg.Value(agent.Namespace); namespace != "" { managerConfig[container.ConfigName] = namespace } cfg := container.ManagerConfig(managerConfig) manager, err := factory.NewContainerManager(val, cfg, nil) if err != nil { logger.Warningf("Failed to get manager for container type %v: %v", val, err) continue } if !manager.IsInitialized() { continue } instances, err := manager.ListContainers() if err != nil { logger.Warningf("Failed to list containers: %v", err) } runningInstances = append(runningInstances, instances...) } return runningInstances, nil }
func containerManagerConfig( containerType instance.ContainerType, provisioner *apiprovisioner.State, agentConfig agent.Config, ) (container.ManagerConfig, error) { // Ask the provisioner for the container manager configuration. managerConfigResult, err := provisioner.ContainerManagerConfig( params.ContainerManagerConfigParams{Type: containerType}, ) if err != nil { return nil, errors.Trace(err) } managerConfig := container.ManagerConfig(managerConfigResult.ManagerConfig) return managerConfig, nil }
func containerManagerConfig( containerType instance.ContainerType, provisioner *apiprovisioner.State, agentConfig agent.Config, ) (container.ManagerConfig, error) { // Ask the provisioner for the container manager configuration. managerConfigResult, err := provisioner.ContainerManagerConfig( params.ContainerManagerConfigParams{Type: containerType}, ) if err != nil { return nil, err } // If a namespace is specified, that should instead be used as the config name. if namespace := agentConfig.Value(agent.Namespace); namespace != "" { managerConfigResult.ManagerConfig[container.ConfigName] = namespace } managerConfig := container.ManagerConfig(managerConfigResult.ManagerConfig) return managerConfig, nil }
func (r *Reboot) runningContainers() ([]instance.Instance, error) { var runningInstances []instance.Instance modelUUID := r.acfg.Model().Id() for _, val := range instance.ContainerTypes { managerConfig := container.ManagerConfig{ container.ConfigModelUUID: modelUUID} cfg := container.ManagerConfig(managerConfig) manager, err := factory.NewContainerManager(val, cfg) if err != nil { return nil, errors.Annotatef(err, "failed to get manager for container type %v", val) } if !manager.IsInitialized() { logger.Infof("container type %q not supported", val) continue } instances, err := manager.ListContainers() if err != nil { return nil, errors.Annotate(err, "failed to list containers") } runningInstances = append(runningInstances, instances...) } return runningInstances, nil }