~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/agent/format-2.0_whitebox_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_2_0Suite struct {
 
24
        testing.BaseSuite
 
25
}
 
26
 
 
27
var _ = gc.Suite(&format_2_0Suite{})
 
28
 
 
29
func (s *format_2_0Suite) TestStatePortNotParsedWithoutSecret(c *gc.C) {
 
30
        dataDir := c.MkDir()
 
31
        configPath := filepath.Join(dataDir, agentConfigFilename)
 
32
        err := utils.AtomicWriteFile(configPath, []byte(agentConfig2_0NotStateMachine), 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_2_0Suite) TestReadConfWithExisting2_0ConfigFileContents(c *gc.C) {
 
41
        dataDir := c.MkDir()
 
42
        configPath := filepath.Join(dataDir, agentConfigFilename)
 
43
        err := utils.AtomicWriteFile(configPath, []byte(agentConfig2_0Contents), 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
}
 
51
 
 
52
var agentConfig2_0Contents = `
 
53
# format 2.0
 
54
tag: machine-0
 
55
datadir: /home/user/.local/share/juju/local
 
56
logdir: /var/log/juju-user-local
 
57
nonce: user-admin:bootstrap
 
58
jobs:
 
59
- JobManageModel
 
60
upgradedToVersion: 1.17.5.1
 
61
cacert: '-----BEGIN CERTIFICATE-----
 
62
 
 
63
  MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
 
64
 
 
65
  MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
 
66
 
 
67
  bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq
 
68
 
 
69
  dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg
 
70
 
 
71
  ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL
 
72
 
 
73
  P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do
 
74
 
 
75
  pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA
 
76
 
 
77
  iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G
 
78
 
 
79
  A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G
 
80
 
 
81
  A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4
 
82
 
 
83
  izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf
 
84
 
 
85
  J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU
 
86
 
 
87
  z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ==
 
88
 
 
89
  -----END CERTIFICATE-----
 
90
 
 
91
'
 
92
stateaddresses:
 
93
- localhost:37017
 
94
statepassword: NB5imrDaWCCRW/4akSSvUxhX
 
95
apiaddresses:
 
96
- localhost:17070
 
97
apipassword: NB5imrDaWCCRW/4akSSvUxhX
 
98
oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD
 
99
values:
 
100
  AGENT_SERVICE_NAME: juju-agent-user-local
 
101
  CONTAINER_TYPE: ""
 
102
  NAMESPACE: user-local
 
103
  PROVIDER_TYPE: local
 
104
  STORAGE_ADDR: 10.0.3.1:8040
 
105
  STORAGE_DIR: /home/user/.local/share/juju/local/storage
 
106
controllercert: '-----BEGIN CERTIFICATE-----
 
107
 
 
108
  MIICNzCCAaKgAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
 
109
 
 
110
  MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
 
111
 
 
112
  bCIwHhcNMTQwMzA1MTQxOTE1WhcNMjQwMzA1MTQyNDE1WjAbMQ0wCwYDVQQKEwRq
 
113
 
 
114
  dWp1MQowCAYDVQQDEwEqMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJnbuN
 
115
 
 
116
  L3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzoD1jbXveclolg2xoUquga
 
117
 
 
118
  qxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAdReKJkOvTL4nTjpzgfeHR
 
119
 
 
120
  hRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQABo2cwZTAOBgNVHQ8BAf8E
 
121
 
 
122
  BAMCAKgwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFE1MB3d+5BW+n066
 
123
 
 
124
  lWcVkhta1etlMB8GA1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqG
 
125
 
 
126
  SIb3DQEBBQOBgQBnsBvl3hfIQbHhAlqritDBCWGpaXywlHe4PvyVL3LZTLiAZ9a/
 
127
 
 
128
  BOSBfovs81sjUe5l60j+1vgRQgvT2Pnw6WGWmYWhSyxW7upEUl1LuZxnw3AVGVFO
 
129
 
 
130
  r140iBNUtTfGUf3PmyBXHSotqgMime+rNSjl25qSoYwnuQXdFdCKJoutYg==
 
131
 
 
132
  -----END CERTIFICATE-----
 
133
 
 
134
'
 
135
controllerkey: '-----BEGIN RSA PRIVATE KEY-----
 
136
 
 
137
  MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo
 
138
 
 
139
  D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd
 
140
 
 
141
  ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB
 
142
 
 
143
  AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8
 
144
 
 
145
  SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT
 
146
 
 
147
  P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6
 
148
 
 
149
  1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah
 
150
 
 
151
  SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG
 
152
 
 
153
  N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6
 
154
 
 
155
  Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU
 
156
 
 
157
  mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08
 
158
 
 
159
  lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF
 
160
 
 
161
  47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o=
 
162
 
 
163
  -----END RSA PRIVATE KEY-----
 
164
 
 
165
'
 
166
caprivatekey: '-----BEGIN RSA PRIVATE KEY-----
 
167
 
 
168
  MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo
 
169
 
 
170
  D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd
 
171
 
 
172
  ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB
 
173
 
 
174
  AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8
 
175
 
 
176
  SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT
 
177
 
 
178
  P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6
 
179
 
 
180
  1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah
 
181
 
 
182
  SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG
 
183
 
 
184
  N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6
 
185
 
 
186
  Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU
 
187
 
 
188
  mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08
 
189
 
 
190
  lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF
 
191
 
 
192
  47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o=
 
193
 
 
194
  -----END RSA PRIVATE KEY-----
 
195
 
 
196
'
 
197
apiport: 17070
 
198
`[1:]
 
199
 
 
200
var agentConfig2_0NotStateMachine = `
 
201
# format 2.0
 
202
tag: machine-1
 
203
datadir: /home/user/.local/share/juju/local
 
204
logdir: /var/log/juju-user-local
 
205
nonce: user-admin:bootstrap
 
206
jobs:
 
207
- JobManageModel
 
208
upgradedToVersion: 1.17.5.1
 
209
cacert: '-----BEGIN CERTIFICATE-----
 
210
 
 
211
  MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
 
212
 
 
213
  MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
 
214
 
 
215
  bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq
 
216
 
 
217
  dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg
 
218
 
 
219
  ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL
 
220
 
 
221
  P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do
 
222
 
 
223
  pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA
 
224
 
 
225
  iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G
 
226
 
 
227
  A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G
 
228
 
 
229
  A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4
 
230
 
 
231
  izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf
 
232
 
 
233
  J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU
 
234
 
 
235
  z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ==
 
236
 
 
237
  -----END CERTIFICATE-----
 
238
 
 
239
'
 
240
stateaddresses:
 
241
- localhost:37017
 
242
statepassword: NB5imrDaWCCRW/4akSSvUxhX
 
243
apiaddresses:
 
244
- localhost:17070
 
245
apipassword: NB5imrDaWCCRW/4akSSvUxhX
 
246
oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD
 
247
values:
 
248
  AGENT_SERVICE_NAME: juju-agent-user-local
 
249
  CONTAINER_TYPE: ""
 
250
  MONGO_SERVICE_NAME: juju-db-user-local
 
251
  NAMESPACE: user-local
 
252
  PROVIDER_TYPE: local
 
253
  STORAGE_ADDR: 10.0.3.1:8040
 
254
  STORAGE_DIR: /home/user/.local/share/juju/local/storage
 
255
apiport: 17070
 
256
`[1:]