func assertSecurityGroups(c *gc.C, env environs.Environ, expected []string) { novaClient := openstack.GetNovaClient(env) groups, err := novaClient.ListSecurityGroups() c.Assert(err, gc.IsNil) for _, name := range expected { found := false for _, group := range groups { if group.Name == name { found = true break } } if !found { c.Errorf("expected security group %q not found", name) } } for _, group := range groups { found := false for _, name := range expected { if group.Name == name { found = true break } } if !found { c.Errorf("existing security group %q is not expected", group.Name) } } }
func (s *LiveTests) assertStartInstanceDefaultSecurityGroup(c *gc.C, useDefault bool) { attrs := s.TestConfig.Merge(coretesting.Attrs{ "name": "sample-" + randomName(), "control-bucket": "juju-test-" + randomName(), "use-default-secgroup": useDefault, }) cfg, err := config.New(config.NoDefaults, attrs) c.Assert(err, gc.IsNil) // Set up a test environment. env, err := environs.New(cfg) c.Assert(err, gc.IsNil) c.Assert(env, gc.NotNil) defer env.Destroy() // Bootstrap and start an instance. err = bootstrap.Bootstrap(coretesting.Context(c), env, environs.BootstrapParams{}) c.Assert(err, gc.IsNil) inst, _ := jujutesting.AssertStartInstance(c, env, "100") // Check whether the instance has the default security group assigned. novaClient := openstack.GetNovaClient(env) groups, err := novaClient.GetServerSecurityGroups(string(inst.Id())) c.Assert(err, gc.IsNil) defaultGroupFound := false for _, group := range groups { if group.Name == "default" { defaultGroupFound = true break } } c.Assert(defaultGroupFound, gc.Equals, useDefault) }
func (s *LiveTests) assertStartInstanceDefaultSecurityGroup(c *gc.C, useDefault bool) { s.LiveTests.PatchValue(&s.TestConfig, s.TestConfig.Merge(coretesting.Attrs{ "use-default-secgroup": useDefault, })) s.Destroy(c) s.BootstrapOnce(c) inst, _ := jujutesting.AssertStartInstance(c, s.Env, s.ControllerUUID, "100") // Check whether the instance has the default security group assigned. novaClient := openstack.GetNovaClient(s.Env) groups, err := novaClient.GetServerSecurityGroups(string(inst.Id())) c.Assert(err, jc.ErrorIsNil) defaultGroupFound := false for _, group := range groups { if group.Name == "default" { defaultGroupFound = true break } } c.Assert(defaultGroupFound, gc.Equals, useDefault) }
func (s *localServerSuite) TestAllInstancesIgnoresOtherMachines(c *gc.C) { env := s.Prepare(c) err := bootstrap.Bootstrap(coretesting.Context(c), env, environs.BootstrapParams{}) c.Assert(err, gc.IsNil) // Check that we see 1 instance in the environment insts, err := env.AllInstances() c.Assert(err, gc.IsNil) c.Check(insts, gc.HasLen, 1) // Now start a machine 'manually' in the same account, with a similar // but not matching name, and ensure it isn't seen by AllInstances // See bug #1257481, for how similar names were causing them to get // listed (and thus destroyed) at the wrong time existingEnvName := s.TestConfig["name"] newMachineName := fmt.Sprintf("juju-%s-2-machine-0", existingEnvName) // We grab the Nova client directly from the env, just to save time // looking all the stuff up novaClient := openstack.GetNovaClient(env) entity, err := novaClient.RunServer(nova.RunServerOpts{ Name: newMachineName, FlavorId: "1", // test service has 1,2,3 for flavor ids ImageId: "1", // UseTestImageData sets up images 1 and 2 }) c.Assert(err, gc.IsNil) c.Assert(entity, gc.NotNil) // List all servers with no filter, we should see both instances servers, err := novaClient.ListServersDetail(nova.NewFilter()) c.Assert(err, gc.IsNil) c.Assert(servers, gc.HasLen, 2) insts, err = env.AllInstances() c.Assert(err, gc.IsNil) c.Check(insts, gc.HasLen, 1) }