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