24
23
jujutesting "github.com/juju/juju/juju/testing"
25
24
"github.com/juju/juju/provider/ec2"
26
25
coretesting "github.com/juju/juju/testing"
27
"github.com/juju/juju/version"
26
jujuversion "github.com/juju/juju/version"
30
29
// uniqueName is generated afresh for every test run, so that
49
48
// access-key: $AWS_ACCESS_KEY_ID
50
49
// secret-key: $AWS_SECRET_ACCESS_KEY
51
50
attrs := coretesting.FakeConfig().Merge(map[string]interface{}{
52
"name": "sample-" + uniqueName,
54
"control-bucket": "juju-test-" + uniqueName,
55
"admin-secret": "for real",
56
"firewall-mode": config.FwInstance,
57
"agent-version": coretesting.FakeVersionNumber.String(),
51
"name": "sample-" + uniqueName,
53
"admin-secret": "for real",
54
"firewall-mode": config.FwInstance,
55
"agent-version": coretesting.FakeVersionNumber.String(),
59
57
gc.Suite(&LiveTests{
60
58
LiveTests: jujutest.LiveTests{
79
77
t.UploadArches = []string{arch.AMD64, arch.I386}
80
78
t.BaseSuite.SetUpSuite(c)
81
79
t.LiveTests.SetUpSuite(c)
80
t.BaseSuite.PatchValue(&jujuversion.Current, coretesting.FakeVersionNumber)
81
t.BaseSuite.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
82
t.BaseSuite.PatchValue(&series.HostSeries, func() string { return coretesting.FakeDefaultSeries })
84
85
func (t *LiveTests) TearDownSuite(c *gc.C) {
89
90
func (t *LiveTests) SetUpTest(c *gc.C) {
90
t.BaseSuite.PatchValue(&version.Current, coretesting.FakeVersionNumber)
91
t.BaseSuite.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
92
t.BaseSuite.PatchValue(&series.HostSeries, func() string { return coretesting.FakeDefaultSeries })
93
91
t.BaseSuite.SetUpTest(c)
94
92
t.LiveTests.SetUpTest(c)
139
137
c.Assert(*hc.CpuPower, gc.Equals, uint64(650))
140
func (t *LiveTests) TestControllerInstances(c *gc.C) {
142
allInsts, err := t.Env.AllInstances()
143
c.Assert(err, jc.ErrorIsNil)
144
c.Assert(allInsts, gc.HasLen, 1) // bootstrap instance
145
bootstrapInstId := allInsts[0].Id()
147
inst0, _ := testing.AssertStartInstance(c, t.Env, "98")
148
defer t.Env.StopInstances(inst0.Id())
150
inst1, _ := testing.AssertStartInstance(c, t.Env, "99")
151
defer t.Env.StopInstances(inst1.Id())
153
insts, err := t.Env.ControllerInstances()
154
c.Assert(err, jc.ErrorIsNil)
155
c.Assert(insts, gc.DeepEquals, []instance.Id{bootstrapInstId})
142
158
func (t *LiveTests) TestInstanceGroups(c *gc.C) {
143
159
t.BootstrapOnce(c)
144
160
allInsts, err := t.Env.AllInstances()
353
func (t *LiveTests) TestPutBucketOnlyOnce(c *gc.C) {
355
s3inst := ec2.EnvironS3(t.Env)
356
b, err := s3inst.Bucket("test-once-" + uniqueName)
357
c.Assert(err, jc.ErrorIsNil)
358
s := ec2.BucketStorage(b)
360
// Check that we don't do a PutBucket every time by
361
// getting it to create the bucket, destroying the bucket behind
362
// the scenes, and trying to put another object,
363
// which should fail because it doesn't try to do
364
// the PutBucket again.
366
err = s.Put("test-object", strings.NewReader("test"), 4)
367
c.Assert(err, jc.ErrorIsNil)
369
err = s.Remove("test-object")
370
c.Assert(err, jc.ErrorIsNil)
372
err = ec2.DeleteBucket(s)
373
c.Assert(err, jc.ErrorIsNil)
375
err = s.Put("test-object", strings.NewReader("test"), 4)
376
c.Assert(err, gc.ErrorMatches, ".*The specified bucket does not exist")
379
369
// createGroup creates a new EC2 group and returns it. If it already exists,
380
370
// it revokes all its permissions and returns the existing group.
381
371
func createGroup(c *gc.C, ec2conn *amzec2.EC2, name, descr string) amzec2.SecurityGroup {