}) }) }) Describe("Property", func() { propertyName := "propertyName" propertyValue := "propertyValue" Context("when getting property succeeds", func() { BeforeEach(func() { fakeConnection.PropertyReturns(propertyValue, nil) }) It("returns the value", func() { result, err := container.Property(propertyName) Ω(err).ShouldNot(HaveOccurred()) Ω(result).Should(Equal(propertyValue)) }) }) Context("when getting property fails", func() { disaster := errors.New("oh no!") BeforeEach(func() { fakeConnection.PropertyReturns("", disaster) }) It("returns the error", func() { _, err := container.Property(propertyName) Ω(err).Should(Equal(disaster))
It("can set a single property", func() { err := container.SetProperty("someothername", "someothervalue") Expect(err).NotTo(HaveOccurred()) properties, err := container.Properties() Expect(err).NotTo(HaveOccurred()) Expect(properties).To(HaveKeyWithValue("somename", "somevalue")) Expect(properties).To(HaveKeyWithValue("someothername", "someothervalue")) }) It("can get a single property", func() { err := container.SetProperty("bing", "bong") Expect(err).NotTo(HaveOccurred()) value, err := container.Property("bing") Expect(err).NotTo(HaveOccurred()) Expect(value).To(Equal("bong")) }) It("can remove a single property", func() { err := container.SetProperty("bing", "bong") Expect(err).NotTo(HaveOccurred()) err = container.RemoveProperty("bing") Expect(err).NotTo(HaveOccurred()) _, err = container.Property("bing") Expect(err).To(HaveOccurred()) })
networkSpec string contIfaceName string networkBridgeName string ) JustBeforeEach(func() { var err error networkSpec = fmt.Sprintf("177.100.%d.0/24", GinkgoParallelNode()) container, err = client.Create(garden.ContainerSpec{ Network: networkSpec, }) Expect(err).NotTo(HaveOccurred()) contIfaceName = ethInterfaceName(container) networkBridgeName, err = container.Property("kawasaki.bridge-interface") Expect(err).NotTo(HaveOccurred()) }) var itCleansUpPerContainerNetworkingResources = func() { It("should remove iptable entries", func() { out, err := exec.Command("iptables", "-w", "-S", "-t", "filter").CombinedOutput() Expect(err).NotTo(HaveOccurred()) Expect(string(out)).NotTo(MatchRegexp("w-%d-instance.* 177.100.%d.0/24", GinkgoParallelNode(), GinkgoParallelNode())) }) It("should remove virtual ethernet cards", func() { ifconfigExits := func() int { session, err := gexec.Start(exec.Command("ifconfig", contIfaceName), GinkgoWriter, GinkgoWriter) Expect(err).NotTo(HaveOccurred())