github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/provider/joyent/joyent_test.go (about) 1 // Copyright 2013 Joyent Inc. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package joyent_test 5 6 import ( 7 "fmt" 8 "io/ioutil" 9 "os" 10 11 jc "github.com/juju/testing/checkers" 12 "github.com/juju/utils" 13 gc "gopkg.in/check.v1" 14 15 envtesting "github.com/juju/juju/environs/testing" 16 coretesting "github.com/juju/juju/testing" 17 ) 18 19 const ( 20 testUser = "test" 21 testKeyFileName = "provider_id_rsa" 22 testPrivateKey = `-----BEGIN RSA PRIVATE KEY----- 23 MIIEpAIBAAKCAQEAza+KvczCrcpQGRq9e347VHx9oEvuhseJt0ydR+UMAveyQprU 24 4JHvzwUUhGnG147GJQYyfQ4nzaSG62az/YThoZJzw8gtxGkVHv0wlAlRkYhxbKbq 25 8WQIh73xDQkHLw2lXLvf7Tt0Mhow0qGEmkOjTb5fPsj2evphrV3jJ15QlhL4cv33 26 t8jVadIrL0iIpwdqWiPqUKpsrSfKJghkoXS6quPy78P820TnuoBG+/Ppr8Kkvn6m 27 A7j4xnOQ12QE6jPK4zkikj5ZczSC4fTG0d3BwwX4VYu+4y/T/BX0L9VNUmQU22Y+ 28 /MRXAUZxsa8VhNB+xXF5XSubyb2n6loMWWaYGwIDAQABAoIBAQDCJt9JxYxGS+BL 29 sigF9+O9Hj3fH42p/5QJR/J2uMgbzP+hS1GCIX9B5MO3MbmWI5j5vd3OmZwMyy7n 30 6Wwg9FufDgTkW4KIEcD0HX7LXfh27VpTe0PuU8SRjUOKUGlNiw36eQUog6Rs3rgT 31 Oo9Wpl3xtq9lLoErGEk3QpZ2xNpArTfsN9N3pdmD4sv7wmJq0PZQyej482g9R0g/ 32 5k2ni6JpcEifzBQ6Bzx3EV2l9UipEIqbqDpMOtYFCpnLQhEaDfUribqXINGIsjiq 33 VyFa3Mbg/eayqG3UX3rVTCif2NnW2ojl4mMgWCyxgWfb4Jg1trc3v7X4SXfbgPWD 34 WcfrOhOhAoGBAP7ZC8KHAnjujwvXf3PxVNm6CTs5evbByQVyxNciGxRuOomJIR4D 35 euqepQ4PuNAabnrbMyQWXpibIKpmLnBVoj1q0IMXYvi2MZF5e2tH/Gx01UvxamHh 36 bKhHmp9ImHhVl6kObXOdNvLVTt/BI5FZBblvm7qOoiVwImPbqqVHP7Q5AoGBAM6d 37 mNsrW0iV/nP1m7d8mcFw74PI0FNlNdfUoePUgokO0t5OU0Ri/lPBDCRGlvVF3pj1 38 HnmwroNtdWr9oPVB6km8193fb2zIWe53tj+6yRFQpz5elrSPfeZaZXlJZAGCCCdN 39 gBggWQFPeQiT54aPywPpcTZHIs72XBqQ6QsIPrbzAoGAdW2hg5MeSobyFuzHZ69N 40 /70/P7DuvgDxFbeah97JR5K7GmC7h87mtnE/cMlByXJEcgvK9tfv4rWoSZwnzc9H 41 oLE1PxJpolyhXnzxp69V2svC9OlasZtjq+7Cip6y0s/twBJL0Lgid6ZeX6/pKbIx 42 dw68XSwX/tQ6pHS1ns7DxdECgYBJbBWapNCefbbbjEcWsC+PX0uuABmP2SKGHSie 43 ZrEwdVUX7KuIXMlWB/8BkRgp9vdAUbLPuap6R9Z2+8RMA213YKUxUiotdREIPgBE 44 q2KyRX/5GPHjHi62Qh9XN25TXtr45ICFklEutwgitTSMS+Lv8+/oQuUquL9ILYCz 45 C+4FYwKBgQDE9yZTUpJjG2424z6bl/MHzwl5RB4pMronp0BbeVqPwhCBfj0W5I42 46 1ZL4+8eniHfUs4GXzf5tb9YwVt3EltIF2JybaBvFsv2o356yJUQmqQ+jyYRoEpT5 47 2SwilFo/XCotCXxi5n8sm9V94a0oix4ehZrohTA/FZLsggwFCPmXfw== 48 -----END RSA PRIVATE KEY-----` 49 testKeyFingerprint = "66:ca:1c:09:75:99:35:69:be:91:08:25:03:c0:17:c0" 50 ) 51 52 type providerSuite struct { 53 coretesting.FakeJujuHomeSuite 54 envtesting.ToolsFixture 55 restoreTimeouts func() 56 } 57 58 var _ = gc.Suite(&providerSuite{}) 59 60 func (s *providerSuite) SetUpSuite(c *gc.C) { 61 s.restoreTimeouts = envtesting.PatchAttemptStrategies() 62 s.FakeJujuHomeSuite.SetUpSuite(c) 63 } 64 65 func (s *providerSuite) TearDownSuite(c *gc.C) { 66 s.restoreTimeouts() 67 s.FakeJujuHomeSuite.TearDownSuite(c) 68 } 69 70 func (s *providerSuite) SetUpTest(c *gc.C) { 71 s.FakeJujuHomeSuite.SetUpTest(c) 72 s.ToolsFixture.SetUpTest(c) 73 s.AddCleanup(CreateTestKey(c)) 74 } 75 76 func (s *providerSuite) TearDownTest(c *gc.C) { 77 s.ToolsFixture.TearDownTest(c) 78 s.FakeJujuHomeSuite.TearDownTest(c) 79 } 80 81 func GetFakeConfig(sdcUrl, mantaUrl string) coretesting.Attrs { 82 return coretesting.FakeConfig().Merge(coretesting.Attrs{ 83 "name": "joyent test environment", 84 "type": "joyent", 85 "sdc-user": testUser, 86 "sdc-key-id": testKeyFingerprint, 87 "sdc-url": sdcUrl, 88 "manta-user": testUser, 89 "manta-key-id": testKeyFingerprint, 90 "manta-url": mantaUrl, 91 "private-key-path": fmt.Sprintf("~/.ssh/%s", testKeyFileName), 92 "algorithm": "rsa-sha256", 93 "control-dir": "juju-test", 94 "agent-version": coretesting.FakeVersionNumber.String(), 95 }) 96 } 97 98 func CreateTestKey(c *gc.C) func(*gc.C) { 99 keyFile := fmt.Sprintf("~/.ssh/%s", testKeyFileName) 100 keyFilePath, err := utils.NormalizePath(keyFile) 101 c.Assert(err, jc.ErrorIsNil) 102 err = ioutil.WriteFile(keyFilePath, []byte(testPrivateKey), 400) 103 c.Assert(err, jc.ErrorIsNil) 104 return func(c *gc.C) { 105 os.Remove(keyFilePath) 106 } 107 }