|
1164 | 1164 | context 'memory_in_mb' do |
1165 | 1165 | let!(:process_model) { VCAP::CloudController::ProcessModel.make(app: app_model, instances: 10) } |
1166 | 1166 | let(:user) { make_developer_for_space(space) } |
1167 | | - let(:memory_in_mb) { 5 } |
| 1167 | + let(:memory_in_mb) { 500 } |
1168 | 1168 | let(:create_request) do |
1169 | 1169 | { |
1170 | 1170 | options: { |
|
1185 | 1185 | post '/v3/deployments', create_request.to_json, user_header |
1186 | 1186 | expect(last_response.status).to eq(201), last_response.body |
1187 | 1187 |
|
1188 | | - expect(parsed_response['options']['memory_in_mb']).to eq(5) |
| 1188 | + expect(parsed_response['options']['memory_in_mb']).to eq(500) |
1189 | 1189 | end |
1190 | 1190 | end |
1191 | 1191 |
|
1192 | 1192 | context 'when memory_in_mb violates a quota' do |
1193 | | - let(:memory_in_mb) { 100_000 } |
1194 | | - let(:quota) { VCAP::CloudController::QuotaDefinition.make(memory_limit: 1_000_000) } |
| 1193 | + let(:memory_in_mb) { 1001 } |
| 1194 | + let(:quota) { VCAP::CloudController::QuotaDefinition.make(memory_limit: 10_000) } |
1195 | 1195 |
|
1196 | 1196 | before do |
1197 | 1197 | org.quota_definition = quota |
|
1227 | 1227 | end |
1228 | 1228 | end |
1229 | 1229 |
|
1230 | | - context 'disk_in_mb' |
| 1230 | + context 'disk_in_mb' do |
| 1231 | + let!(:process_model) { VCAP::CloudController::ProcessModel.make(app: app_model, instances: 10) } |
| 1232 | + let(:user) { make_developer_for_space(space) } |
| 1233 | + let(:disk_in_mb) { 500 } |
| 1234 | + let(:create_request) do |
| 1235 | + { |
| 1236 | + options: { |
| 1237 | + disk_in_mb: |
| 1238 | + }, |
| 1239 | + relationships: { |
| 1240 | + app: { |
| 1241 | + data: { |
| 1242 | + guid: app_model.guid |
| 1243 | + } |
| 1244 | + } |
| 1245 | + } |
| 1246 | + } |
| 1247 | + end |
| 1248 | + |
| 1249 | + context 'when disk_in_mb is provided' do |
| 1250 | + it 'is set on the resource' do |
| 1251 | + post '/v3/deployments', create_request.to_json, user_header |
| 1252 | + expect(last_response.status).to eq(201), last_response.body |
| 1253 | + |
| 1254 | + expect(parsed_response['options']['disk_in_mb']).to eq(500) |
| 1255 | + end |
| 1256 | + end |
| 1257 | + |
| 1258 | + context 'when disk_in_mb violates a quota' do |
| 1259 | + let(:disk_in_mb) { 1001 } |
| 1260 | + |
| 1261 | + before do |
| 1262 | + TestConfig.override(maximum_app_disk_in_mb: 1000) |
| 1263 | + end |
| 1264 | + |
| 1265 | + it 'is set on the resource' do |
| 1266 | + post '/v3/deployments', create_request.to_json, user_header |
| 1267 | + expect(last_response.status).to eq(422), last_response.body |
| 1268 | + expect(parsed_response['errors'][0]['detail']).to match('disk_quota too much disk requested (requested 1024 MB - must be less than 1000 MB)') |
| 1269 | + end |
| 1270 | + end |
| 1271 | + |
| 1272 | + context 'when disk_in_mb is not provided' do |
| 1273 | + let(:create_request) do |
| 1274 | + { |
| 1275 | + relationships: { |
| 1276 | + app: { |
| 1277 | + data: { |
| 1278 | + guid: app_model.guid |
| 1279 | + } |
| 1280 | + } |
| 1281 | + } |
| 1282 | + } |
| 1283 | + end |
| 1284 | + |
| 1285 | + it 'is not returned as part of the deployment options' do |
| 1286 | + post '/v3/deployments', create_request.to_json, user_header |
| 1287 | + expect(last_response.status).to eq(201), last_response.body |
| 1288 | + |
| 1289 | + expect(parsed_response['options'].key?('disk_in_mb')).to be false |
| 1290 | + end |
| 1291 | + end |
| 1292 | + end |
| 1293 | + |
| 1294 | + context 'log_rate_limit_in_bytes_per_second' do |
| 1295 | + let!(:process_model) { VCAP::CloudController::ProcessModel.make(app: app_model, instances: 10) } |
| 1296 | + let(:user) { make_developer_for_space(space) } |
| 1297 | + let(:log_rate_limit_in_bytes_per_second) { 500 } |
| 1298 | + let(:create_request) do |
| 1299 | + { |
| 1300 | + options: { |
| 1301 | + log_rate_limit_in_bytes_per_second: |
| 1302 | + }, |
| 1303 | + relationships: { |
| 1304 | + app: { |
| 1305 | + data: { |
| 1306 | + guid: app_model.guid |
| 1307 | + } |
| 1308 | + } |
| 1309 | + } |
| 1310 | + } |
| 1311 | + end |
1231 | 1312 |
|
1232 | | - context 'log_rate_limit_in_bytes_per_second' |
| 1313 | + context 'when log_rate_limit_in_bytes_per_second is provided' do |
| 1314 | + it 'is set on the resource' do |
| 1315 | + post '/v3/deployments', create_request.to_json, user_header |
| 1316 | + expect(last_response.status).to eq(201), last_response.body |
| 1317 | + |
| 1318 | + expect(parsed_response['options']['log_rate_limit_in_bytes_per_second']).to eq(500) |
| 1319 | + end |
| 1320 | + end |
| 1321 | + |
| 1322 | + context 'when log_rate_limit_in_bytes_per_second violates a quota' do |
| 1323 | + let(:log_rate_limit_in_bytes_per_second) { 1001 } |
| 1324 | + let(:quota) { VCAP::CloudController::QuotaDefinition.make(log_rate_limit: 1000) } |
| 1325 | + |
| 1326 | + before do |
| 1327 | + org.quota_definition = quota |
| 1328 | + org.save |
| 1329 | + end |
| 1330 | + |
| 1331 | + it 'is set on the resource' do |
| 1332 | + post '/v3/deployments', create_request.to_json, user_header |
| 1333 | + expect(last_response.status).to eq(422), last_response.body |
| 1334 | + expect(parsed_response['errors'][0]['detail']).to match('log_rate_limit exceeds organization log rate quota') |
| 1335 | + end |
| 1336 | + end |
| 1337 | + |
| 1338 | + context 'when log_rate_limit_in_bytes_per_second is not provided' do |
| 1339 | + let(:create_request) do |
| 1340 | + { |
| 1341 | + relationships: { |
| 1342 | + app: { |
| 1343 | + data: { |
| 1344 | + guid: app_model.guid |
| 1345 | + } |
| 1346 | + } |
| 1347 | + } |
| 1348 | + } |
| 1349 | + end |
| 1350 | + |
| 1351 | + it 'is not returned as part of the deployment options' do |
| 1352 | + post '/v3/deployments', create_request.to_json, user_header |
| 1353 | + expect(last_response.status).to eq(201), last_response.body |
| 1354 | + |
| 1355 | + expect(parsed_response['options'].key?('log_rate_limit_in_bytes_per_second')).to be false |
| 1356 | + end |
| 1357 | + end |
| 1358 | + end |
1233 | 1359 |
|
1234 | 1360 | context 'web_instances' do |
1235 | 1361 | let!(:process_model) { VCAP::CloudController::ProcessModel.make(app: app_model, instances: 10) } |
|
0 commit comments