github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/container/kvm/containerfactory.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package kvm 5 6 type containerFactory struct { 7 } 8 9 var _ ContainerFactory = (*containerFactory)(nil) 10 11 func (factory *containerFactory) New(name string) Container { 12 return &kvmContainer{ 13 factory: factory, 14 name: name, 15 } 16 } 17 18 func isRunning(value string) *bool { 19 var result *bool = new(bool) 20 if value == "running" { 21 *result = true 22 } 23 return result 24 } 25 26 func (factory *containerFactory) List() (result []Container, err error) { 27 machines, err := ListMachines() 28 if err != nil { 29 return nil, err 30 } 31 for hostname, status := range machines { 32 result = append(result, &kvmContainer{ 33 factory: factory, 34 name: hostname, 35 started: isRunning(status), 36 }) 37 38 } 39 return result, nil 40 }