|
80 | 80 | }, |
81 | 81 | 'app' => { |
82 | 82 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 83 | + }, |
| 84 | + 'cancel' => { |
| 85 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 86 | + 'method' => 'POST' |
83 | 87 | } |
84 | 88 | } |
85 | 89 | }) |
|
151 | 155 | }, |
152 | 156 | 'app' => { |
153 | 157 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 158 | + }, |
| 159 | + 'cancel' => { |
| 160 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 161 | + 'method' => 'POST' |
154 | 162 | } |
155 | 163 | } |
156 | 164 | }) |
|
229 | 237 | }, |
230 | 238 | 'app' => { |
231 | 239 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 240 | + }, |
| 241 | + 'cancel' => { |
| 242 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 243 | + 'method' => 'POST' |
232 | 244 | } |
233 | 245 | } |
234 | 246 | }) |
|
343 | 355 | }, |
344 | 356 | 'app' => { |
345 | 357 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 358 | + }, |
| 359 | + 'cancel' => { |
| 360 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 361 | + 'method' => 'POST' |
346 | 362 | } |
347 | 363 | } |
348 | 364 | }) |
|
416 | 432 | }, |
417 | 433 | 'app' => { |
418 | 434 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 435 | + }, |
| 436 | + 'cancel' => { |
| 437 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 438 | + 'method' => 'POST' |
419 | 439 | } |
420 | 440 | } |
421 | 441 | }) |
|
657 | 677 | }, |
658 | 678 | 'app' => { |
659 | 679 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 680 | + }, |
| 681 | + 'cancel' => { |
| 682 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 683 | + 'method' => 'POST' |
660 | 684 | } |
661 | 685 | } |
662 | 686 | }) |
|
713 | 737 | }, |
714 | 738 | 'app' => { |
715 | 739 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 740 | + }, |
| 741 | + 'cancel' => { |
| 742 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 743 | + 'method' => 'POST' |
716 | 744 | } |
717 | 745 | } |
718 | 746 | }) |
|
823 | 851 | }, |
824 | 852 | 'app' => { |
825 | 853 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 854 | + }, |
| 855 | + 'cancel' => { |
| 856 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 857 | + 'method' => 'POST' |
826 | 858 | } |
827 | 859 | } |
828 | 860 | }) |
|
881 | 913 | }, |
882 | 914 | 'app' => { |
883 | 915 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 916 | + }, |
| 917 | + 'cancel' => { |
| 918 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 919 | + 'method' => 'POST' |
884 | 920 | } |
885 | 921 | } |
886 | 922 | }) |
|
950 | 986 | status_reason: VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON) |
951 | 987 | } |
952 | 988 |
|
953 | | - def json_for_deployment(deployment, app_model, droplet, state, status_value, status_reason) |
| 989 | + def json_for_deployment(deployment, app_model, droplet, state, status_value, status_reason, cancel_link=true) |
954 | 990 | { |
955 | 991 | guid: deployment.guid, |
956 | 992 | state: state, |
@@ -995,7 +1031,14 @@ def json_for_deployment(deployment, app_model, droplet, state, status_value, sta |
995 | 1031 | href: "#{link_prefix}/v3/apps/#{app_model.guid}" |
996 | 1032 | } |
997 | 1033 | } |
998 | | - } |
| 1034 | + }.tap do |json| |
| 1035 | + if cancel_link |
| 1036 | + json[:links][:cancel] = { |
| 1037 | + href: "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 1038 | + method: 'POST' |
| 1039 | + } |
| 1040 | + end |
| 1041 | + end |
999 | 1042 | end |
1000 | 1043 |
|
1001 | 1044 | it 'should list all deployments' do |
@@ -1045,15 +1088,21 @@ def json_for_deployment(deployment, app_model, droplet, state, status_value, sta |
1045 | 1088 | json_for_deployment(deployment3, app3, droplet3, |
1046 | 1089 | VCAP::CloudController::DeploymentModel::DEPLOYED_STATE, |
1047 | 1090 | VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE, |
1048 | | - VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON), |
| 1091 | + VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON, |
| 1092 | + false |
| 1093 | + ), |
1049 | 1094 | json_for_deployment(deployment4, app4, droplet4, |
1050 | 1095 | VCAP::CloudController::DeploymentModel::CANCELED_STATE, |
1051 | 1096 | VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE, |
1052 | | - VCAP::CloudController::DeploymentModel::CANCELED_STATUS_REASON), |
| 1097 | + VCAP::CloudController::DeploymentModel::CANCELED_STATUS_REASON, |
| 1098 | + false |
| 1099 | + ), |
1053 | 1100 | json_for_deployment(deployment5, app5, droplet5, |
1054 | 1101 | VCAP::CloudController::DeploymentModel::DEPLOYED_STATE, |
1055 | 1102 | VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE, |
1056 | | - VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON), |
| 1103 | + VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON, |
| 1104 | + false |
| 1105 | + ), |
1057 | 1106 | ] |
1058 | 1107 | ) |
1059 | 1108 | # because the user is a manager in the shared org, they have access to see the domain |
@@ -1096,11 +1145,15 @@ def json_for_deployment(deployment, app_model, droplet, state, status_value, sta |
1096 | 1145 | json_for_deployment(deployment3, app3, droplet3, |
1097 | 1146 | VCAP::CloudController::DeploymentModel::DEPLOYED_STATE, |
1098 | 1147 | VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE, |
1099 | | - VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON), |
| 1148 | + VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON, |
| 1149 | + false |
| 1150 | + ), |
1100 | 1151 | json_for_deployment(deployment5, app5, droplet5, |
1101 | 1152 | VCAP::CloudController::DeploymentModel::DEPLOYED_STATE, |
1102 | 1153 | VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE, |
1103 | | - VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON), |
| 1154 | + VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON, |
| 1155 | + false |
| 1156 | + ) |
1104 | 1157 | ] |
1105 | 1158 | ) |
1106 | 1159 | # because the user is a manager in the shared org, they have access to see the domain |
@@ -1283,6 +1336,10 @@ def json_for_deployment(deployment, app_model, droplet, state, status_value, sta |
1283 | 1336 | }, |
1284 | 1337 | 'app' => { |
1285 | 1338 | 'href' => "#{link_prefix}/v3/apps/#{app_model.guid}" |
| 1339 | + }, |
| 1340 | + 'cancel' => { |
| 1341 | + 'href' => "#{link_prefix}/v3/deployments/#{deployment.guid}/actions/cancel", |
| 1342 | + 'method' => 'POST' |
1286 | 1343 | } |
1287 | 1344 | } |
1288 | 1345 | }, |
|
0 commit comments