83
83
args: []string{"--dev"},
84
84
expectInitErr: "flag provided but not defined: --dev",
86
about: "invalid --version value",
86
about: "invalid --agent-version value",
87
87
currentVersion: "1.0.0-quantal-amd64",
88
args: []string{"--version", "invalid-version"},
88
args: []string{"--agent-version", "invalid-version"},
89
89
expectInitErr: "invalid version .*",
91
91
about: "just major version, no minor specified",
92
92
currentVersion: "4.2.0-quantal-amd64",
93
args: []string{"--version", "4"},
93
args: []string{"--agent-version", "4"},
94
94
expectInitErr: `invalid version "4"`,
96
96
about: "major version upgrade to incompatible version",
97
97
currentVersion: "2.0.0-quantal-amd64",
98
98
agentVersion: "2.0.0",
99
args: []string{"--version", "5.2.0"},
99
args: []string{"--agent-version", "5.2.0"},
100
100
expectErr: `unknown version "5.2.0"`,
102
102
about: "major version downgrade to incompatible version",
103
103
currentVersion: "4.2.0-quantal-amd64",
104
104
agentVersion: "4.2.0",
105
args: []string{"--version", "3.2.0"},
105
args: []string{"--agent-version", "3.2.0"},
106
106
expectErr: "cannot change version from 4.2.0 to 3.2.0",
108
108
about: "--build-agent with inappropriate version 1",
109
109
currentVersion: "4.2.0-quantal-amd64",
110
110
agentVersion: "4.2.0",
111
args: []string{"--build-agent", "--version", "3.1.0"},
111
args: []string{"--build-agent", "--agent-version", "3.1.0"},
112
112
expectErr: "cannot change version from 4.2.0 to 3.1.0",
114
114
about: "--build-agent with inappropriate version 2",
115
115
currentVersion: "3.2.7-quantal-amd64",
116
args: []string{"--build-agent", "--version", "3.2.8.4"},
116
args: []string{"--build-agent", "--agent-version", "3.2.8.4"},
117
117
expectInitErr: "cannot specify build number when building an agent",
119
119
about: "latest supported stable release",
162
162
tools: []string{"2.3-dev0-quantal-amd64"},
163
163
currentVersion: "2.0.0-quantal-amd64",
164
164
agentVersion: "2.0.0",
165
args: []string{"--version", "2.3-dev0"},
165
args: []string{"--agent-version", "2.3-dev0"},
166
166
expectVersion: "2.3-dev0",
168
168
about: "specified major version",
169
169
tools: []string{"3.0.2-quantal-amd64"},
170
170
currentVersion: "3.0.2-quantal-amd64",
171
171
agentVersion: "2.8.2",
172
args: []string{"--version", "3.0.2"},
173
expectVersion: "3.0.2.1",
172
args: []string{"--agent-version", "3.0.2"},
173
expectVersion: "3.0.2",
174
174
upgradeMap: map[int]version.Number{3: version.MustParse("2.8.2")},
176
176
about: "specified version missing, but already set",
177
177
currentVersion: "3.0.0-quantal-amd64",
178
178
agentVersion: "3.0.0",
179
args: []string{"--version", "3.0.0"},
179
args: []string{"--agent-version", "3.0.0"},
180
180
expectVersion: "3.0.0",
182
182
about: "specified version, no tools",
183
183
currentVersion: "3.0.0-quantal-amd64",
184
184
agentVersion: "3.0.0",
185
args: []string{"--version", "3.2.0"},
185
args: []string{"--agent-version", "3.2.0"},
186
186
expectErr: "no tools available",
188
188
about: "specified version, no matching major version",
189
189
tools: []string{"4.2.0-quantal-amd64"},
190
190
currentVersion: "3.0.0-quantal-amd64",
191
191
agentVersion: "3.0.0",
192
args: []string{"--version", "3.2.0"},
192
args: []string{"--agent-version", "3.2.0"},
193
193
expectErr: "no matching tools available",
195
195
about: "specified version, no matching minor version",
196
196
tools: []string{"3.4.0-quantal-amd64"},
197
197
currentVersion: "3.0.0-quantal-amd64",
198
198
agentVersion: "3.0.0",
199
args: []string{"--version", "3.2.0"},
199
args: []string{"--agent-version", "3.2.0"},
200
200
expectErr: "no matching tools available",
202
202
about: "specified version, no matching patch version",
203
203
tools: []string{"3.2.5-quantal-amd64"},
204
204
currentVersion: "3.0.0-quantal-amd64",
205
205
agentVersion: "3.0.0",
206
args: []string{"--version", "3.2.0"},
206
args: []string{"--agent-version", "3.2.0"},
207
207
expectErr: "no matching tools available",
209
209
about: "specified version, no matching build version",
210
210
tools: []string{"3.2.0.2-quantal-amd64"},
211
211
currentVersion: "3.0.0-quantal-amd64",
212
212
agentVersion: "3.0.0",
213
args: []string{"--version", "3.2.0"},
213
args: []string{"--agent-version", "3.2.0"},
214
214
expectErr: "no matching tools available",
216
216
about: "incompatible version (minor != 0)",
217
217
tools: []string{"3.2.0-quantal-amd64"},
218
218
currentVersion: "4.2.0-quantal-amd64",
219
219
agentVersion: "3.2.0",
220
args: []string{"--version", "3.2.0"},
220
args: []string{"--agent-version", "3.2.0"},
221
221
expectErr: "cannot upgrade a 3.2.0 model with a 4.2.0 client",
223
223
about: "incompatible version (model major > client major)",
224
224
tools: []string{"3.2.0-quantal-amd64"},
225
225
currentVersion: "3.2.0-quantal-amd64",
226
226
agentVersion: "4.2.0",
227
args: []string{"--version", "3.2.0"},
227
args: []string{"--agent-version", "3.2.0"},
228
228
expectErr: "cannot upgrade a 4.2.0 model with a 3.2.0 client",
230
230
about: "incompatible version (model major < client major - 1)",
231
231
tools: []string{"3.2.0-quantal-amd64"},
232
232
currentVersion: "4.0.2-quantal-amd64",
233
233
agentVersion: "2.0.0",
234
args: []string{"--version", "3.2.0"},
234
args: []string{"--agent-version", "3.2.0"},
235
235
expectErr: "cannot upgrade a 2.0.0 model with a 4.0.2 client",
237
237
about: "minor version downgrade to incompatible version",
238
238
tools: []string{"3.2.0-quantal-amd64"},
239
239
currentVersion: "3.2.0-quantal-amd64",
240
240
agentVersion: "3.3-dev0",
241
args: []string{"--version", "3.2.0"},
241
args: []string{"--agent-version", "3.2.0"},
242
242
expectErr: "cannot change version from 3.3-dev0 to 3.2.0",
244
244
about: "nothing available",
670
670
agentVersion: "4.8.5",
671
671
expectedVersion: "4.9.0",
673
about: "upgrade previous major to latest previous major with --version",
674
cmdArgs: []string{"--version=4.9.0"},
673
about: "upgrade previous major to latest previous major with --agent-version",
674
cmdArgs: []string{"--agent-version=4.9.0"},
675
675
tools: []string{"5.0.2-trusty-amd64", "4.9.0-trusty-amd64", "4.8.0-trusty-amd64"},
676
676
currentVersion: "5.0.2-trusty-amd64",
677
677
agentVersion: "4.7.5",
678
678
expectedVersion: "4.9.0",
680
680
about: "can upgrade lower major version to current major version at minimum level",
681
cmdArgs: []string{"--version=6.0.5"},
681
cmdArgs: []string{"--agent-version=6.0.5"},
682
682
tools: []string{"6.0.5-trusty-amd64", "5.9.9-trusty-amd64"},
683
683
currentVersion: "6.0.0-trusty-amd64",
684
684
agentVersion: "5.9.8",
685
expectedVersion: "6.0.5.1",
685
expectedVersion: "6.0.5",
686
686
excludedLogOutput: `incompatible with this client (6.0.0)`,
687
687
upgradeMap: map[int]version.Number{6: version.MustParse("5.9.8")},
689
689
about: "can upgrade lower major version to current major version above minimum level",
690
cmdArgs: []string{"--version=6.0.5"},
690
cmdArgs: []string{"--agent-version=6.0.5"},
691
691
tools: []string{"6.0.5-trusty-amd64", "5.11.0-trusty-amd64"},
692
692
currentVersion: "6.0.1-trusty-amd64",
693
693
agentVersion: "5.10.8",
694
expectedVersion: "6.0.5.1",
694
expectedVersion: "6.0.5",
695
695
excludedLogOutput: `incompatible with this client (6.0.1)`,
696
696
upgradeMap: map[int]version.Number{6: version.MustParse("5.9.8")},
698
698
about: "can upgrade current to next major version",
699
cmdArgs: []string{"--version=6.0.5"},
699
cmdArgs: []string{"--agent-version=6.0.5"},
700
700
tools: []string{"6.0.5-trusty-amd64", "5.11.0-trusty-amd64"},
701
701
currentVersion: "5.10.8-trusty-amd64",
702
702
agentVersion: "5.10.8",