github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/agent/format-1.18_whitebox_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Copyright 2014 Cloudbase Solutions SRL 3 // Licensed under the AGPLv3, see LICENCE file for details. 4 5 // The format tests are white box tests, meaning that the tests are in the 6 // same package as the code, as all the format details are internal to the 7 // package. 8 9 package agent 10 11 import ( 12 "path/filepath" 13 14 jc "github.com/juju/testing/checkers" 15 "github.com/juju/utils" 16 "github.com/juju/version" 17 gc "gopkg.in/check.v1" 18 19 "github.com/juju/juju/state/multiwatcher" 20 "github.com/juju/juju/testing" 21 ) 22 23 type format_1_18Suite struct { 24 testing.BaseSuite 25 } 26 27 var _ = gc.Suite(&format_1_18Suite{}) 28 29 func (s *format_1_18Suite) TestStatePortNotParsedWithoutSecret(c *gc.C) { 30 dataDir := c.MkDir() 31 configPath := filepath.Join(dataDir, agentConfigFilename) 32 err := utils.AtomicWriteFile(configPath, []byte(agentConfig1_18NotStateMachine), 0600) 33 c.Assert(err, jc.ErrorIsNil) 34 readConfig, err := ReadConfig(configPath) 35 c.Assert(err, jc.ErrorIsNil) 36 _, available := readConfig.StateServingInfo() 37 c.Assert(available, jc.IsFalse) 38 } 39 40 func (*format_1_18Suite) TestReadConfWithExisting1_18ConfigFileContents(c *gc.C) { 41 dataDir := c.MkDir() 42 configPath := filepath.Join(dataDir, agentConfigFilename) 43 err := utils.AtomicWriteFile(configPath, []byte(agentConfig1_18Contents), 0600) 44 c.Assert(err, jc.ErrorIsNil) 45 46 config, err := ReadConfig(configPath) 47 c.Assert(err, jc.ErrorIsNil) 48 c.Assert(config.UpgradedToVersion(), jc.DeepEquals, version.MustParse("1.17.5.1")) 49 c.Assert(config.Jobs(), jc.DeepEquals, []multiwatcher.MachineJob{multiwatcher.JobManageModel}) 50 c.Assert(config.PreferIPv6(), jc.IsTrue) 51 } 52 53 var agentConfig1_18Contents = ` 54 # format 1.18 55 tag: machine-0 56 datadir: /home/user/.local/share/juju/local 57 logdir: /var/log/juju-user-local 58 nonce: user-admin:bootstrap 59 jobs: 60 - JobManageModel 61 upgradedToVersion: 1.17.5.1 62 cacert: '-----BEGIN CERTIFICATE----- 63 64 MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy 65 66 MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh 67 68 bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq 69 70 dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg 71 72 ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL 73 74 P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do 75 76 pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA 77 78 iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G 79 80 A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G 81 82 A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4 83 84 izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf 85 86 J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU 87 88 z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ== 89 90 -----END CERTIFICATE----- 91 92 ' 93 stateaddresses: 94 - localhost:37017 95 statepassword: NB5imrDaWCCRW/4akSSvUxhX 96 apiaddresses: 97 - localhost:17070 98 apipassword: NB5imrDaWCCRW/4akSSvUxhX 99 oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD 100 values: 101 AGENT_SERVICE_NAME: juju-agent-user-local 102 CONTAINER_TYPE: "" 103 NAMESPACE: user-local 104 PROVIDER_TYPE: local 105 STORAGE_ADDR: 10.0.3.1:8040 106 STORAGE_DIR: /home/user/.local/share/juju/local/storage 107 controllercert: '-----BEGIN CERTIFICATE----- 108 109 MIICNzCCAaKgAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy 110 111 MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh 112 113 bCIwHhcNMTQwMzA1MTQxOTE1WhcNMjQwMzA1MTQyNDE1WjAbMQ0wCwYDVQQKEwRq 114 115 dWp1MQowCAYDVQQDEwEqMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJnbuN 116 117 L3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzoD1jbXveclolg2xoUquga 118 119 qxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAdReKJkOvTL4nTjpzgfeHR 120 121 hRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQABo2cwZTAOBgNVHQ8BAf8E 122 123 BAMCAKgwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFE1MB3d+5BW+n066 124 125 lWcVkhta1etlMB8GA1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqG 126 127 SIb3DQEBBQOBgQBnsBvl3hfIQbHhAlqritDBCWGpaXywlHe4PvyVL3LZTLiAZ9a/ 128 129 BOSBfovs81sjUe5l60j+1vgRQgvT2Pnw6WGWmYWhSyxW7upEUl1LuZxnw3AVGVFO 130 131 r140iBNUtTfGUf3PmyBXHSotqgMime+rNSjl25qSoYwnuQXdFdCKJoutYg== 132 133 -----END CERTIFICATE----- 134 135 ' 136 controllerkey: '-----BEGIN RSA PRIVATE KEY----- 137 138 MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo 139 140 D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd 141 142 ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB 143 144 AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8 145 146 SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT 147 148 P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6 149 150 1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah 151 152 SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG 153 154 N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6 155 156 Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU 157 158 mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08 159 160 lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF 161 162 47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o= 163 164 -----END RSA PRIVATE KEY----- 165 166 ' 167 caprivatekey: '-----BEGIN RSA PRIVATE KEY----- 168 169 MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo 170 171 D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd 172 173 ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB 174 175 AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8 176 177 SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT 178 179 P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6 180 181 1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah 182 183 SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG 184 185 N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6 186 187 Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU 188 189 mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08 190 191 lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF 192 193 47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o= 194 195 -----END RSA PRIVATE KEY----- 196 197 ' 198 apiport: 17070 199 prefer-ipv6: true 200 `[1:] 201 202 var agentConfig1_18NotStateMachine = ` 203 # format 1.18 204 tag: machine-1 205 datadir: /home/user/.local/share/juju/local 206 logdir: /var/log/juju-user-local 207 nonce: user-admin:bootstrap 208 jobs: 209 - JobManageModel 210 upgradedToVersion: 1.17.5.1 211 cacert: '-----BEGIN CERTIFICATE----- 212 213 MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy 214 215 MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh 216 217 bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq 218 219 dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg 220 221 ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL 222 223 P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do 224 225 pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA 226 227 iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G 228 229 A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G 230 231 A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4 232 233 izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf 234 235 J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU 236 237 z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ== 238 239 -----END CERTIFICATE----- 240 241 ' 242 stateaddresses: 243 - localhost:37017 244 statepassword: NB5imrDaWCCRW/4akSSvUxhX 245 apiaddresses: 246 - localhost:17070 247 apipassword: NB5imrDaWCCRW/4akSSvUxhX 248 oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD 249 values: 250 AGENT_SERVICE_NAME: juju-agent-user-local 251 CONTAINER_TYPE: "" 252 MONGO_SERVICE_NAME: juju-db-user-local 253 NAMESPACE: user-local 254 PROVIDER_TYPE: local 255 STORAGE_ADDR: 10.0.3.1:8040 256 STORAGE_DIR: /home/user/.local/share/juju/local/storage 257 apiport: 17070 258 prefer-ipv6: true 259 `[1:]