func main() { if reexec.Init() { return } cf_debug_server.AddFlags(flag.CommandLine) cf_lager.AddFlags(flag.CommandLine) flag.Parse() logger, _ := cf_lager.New("guardian") if *depotPath == "" { missing("-depot") } if *iodaemonBin == "" { missing("-iodaemonBin") } if *nstarBin == "" { missing("-nstarBin") } if *tarBin == "" { missing("-tarBin") } resolvedRootFSPath, err := filepath.EvalSymlinks(*rootFSPath) if err != nil { panic(err) } _, networkPoolCIDR, err := net.ParseCIDR(*networkPool) if err != nil { panic(err) } interfacePrefix := fmt.Sprintf("w%s", *tag) chainPrefix := fmt.Sprintf("w-%s-instance", *tag) iptablesMgr := wireIptables(logger, *tag, *allowHostAccess, interfacePrefix, chainPrefix) externalIPAddr, err := parseExternalIP(*externalIP) if err != nil { panic(err) } sysInfoProvider := sysinfo.NewProvider(*depotPath) propManager := properties.NewManager() backend := &gardener.Gardener{ SysInfoProvider: sysInfoProvider, UidGenerator: wireUidGenerator(), Starter: wireStarter(logger, iptablesMgr), Networker: wireNetworker(logger, *tag, networkPoolCIDR, externalIPAddr, iptablesMgr, interfacePrefix, chainPrefix, propManager, *networkModulePath), VolumeCreator: wireVolumeCreator(logger, *graphRoot), Containerizer: wireContainerizer(logger, *depotPath, *iodaemonBin, *nstarBin, *tarBin, resolvedRootFSPath), Logger: logger, PropertyManager: propManager, } gardenServer := server.New(*listenNetwork, *listenAddr, *graceTime, backend, logger.Session("api")) err = gardenServer.Start() if err != nil { logger.Fatal("failed-to-start-server", err) } signals := make(chan os.Signal, 1) go func() { <-signals gardenServer.Stop() os.Exit(0) }() signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP) logger.Info("started", lager.Data{ "network": *listenNetwork, "addr": *listenAddr, }) select {} }
import ( "github.com/cloudfoundry-incubator/garden" "github.com/cloudfoundry-incubator/guardian/properties" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Properties", func() { var ( propertyManager *properties.Manager ) Describe("Manager", func() { BeforeEach(func() { propertyManager = properties.NewManager() propertyManager.Set("handle", "name", "value") }) Describe("DestroyKeySpace", func() { It("removes key space", func() { err := propertyManager.DestroyKeySpace("handle") Expect(err).NotTo(HaveOccurred()) err = propertyManager.DestroyKeySpace("handle") Expect(err).To(MatchError("No such key space: handle")) }) }) Describe("All", func() {