Skip to content
This repository was archived by the owner on Jun 2, 2021. It is now read-only.

Commit ddf6065

Browse files
committed
Revert "Remove deployment state from API"
- Some BARAs depend on deployment state, so need to update those before field can be removed This reverts commit 2935a84.
1 parent 6da651f commit ddf6065

5 files changed

Lines changed: 29 additions & 1 deletion

File tree

app/presenters/v3/deployment_presenter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def to_hash
1010
guid: deployment.guid,
1111
created_at: deployment.created_at,
1212
updated_at: deployment.updated_at,
13+
state: deployment.state,
1314
status: {
1415
value: deployment.status_value,
1516
reason: deployment.status_reason,

docs/v3/source/includes/api_resources/_deployments.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
{
44
"guid": "59c3d133-2b83-46f3-960e-7765a129aea4",
5+
"state": "DEPLOYING",
56
"status": {
67
"value": "ACTIVE",
78
"reason": "DEPLOYING",
@@ -71,6 +72,7 @@
7172
"resources": [
7273
{
7374
"guid": "59c3d133-2b83-46f3-960e-7765a129aea4",
75+
"state": "DEPLOYED",
7476
"status": {
7577
"value": "FINALIZED",
7678
"reason": "DEPLOYED"

docs/v3/source/includes/resources/deployments/_object.md.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Name | Type | Description
1212
**guid** | _uuid_ | Unique identifier for the deployment
1313
**created_at** | _[timestamp](#timestamps)_ | The time with zone when the object was created
1414
**updated_at** | _[timestamp](#timestamps)_ | The time with zone when the object was last updated
15+
**state** | _string_ | **(deprecated)** This field will be removed in the future; use the `status` fields to determine deployment state instead
1516
**status.value** | _string_ | The current status of the deployment; valid values are `ACTIVE` (meaning in progress) and `FINALIZED` (meaning finished, either successfully or not)
1617
**status.reason** | _string_ | The reason for the status of the deployment;<br>following list represents valid values:<br>1. If **status.value** is `ACTIVE`<br>- `DEPLOYING`<br>- `CANCELING`<br>2. If **status.value** is `FINALIZED`<br>- `DEPLOYED`<br>- `CANCELED`<br>- `SUPERSEDED` (another deployment created for app before completion)<br>- `DEGENERATE` (the deployment was created incorrectly by the system)
1718
**status.details** | _object_ | The details for the status of the deployment shows a timestamp of the last successful healthcheck

spec/request/deployments_spec.rb

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141

4242
expect(parsed_response).to be_a_response_like({
4343
'guid' => deployment.guid,
44+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
4445
'status' => {
4546
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
4647
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -115,6 +116,7 @@
115116

116117
expect(parsed_response).to be_a_response_like({
117118
'guid' => deployment.guid,
119+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
118120
'status' => {
119121
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
120122
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -196,6 +198,7 @@
196198

197199
expect(parsed_response).to be_a_response_like({
198200
'guid' => deployment.guid,
201+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
199202
'status' => {
200203
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
201204
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -313,6 +316,7 @@
313316

314317
expect(parsed_response).to be_a_response_like({
315318
'guid' => deployment.guid,
319+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
316320
'status' => {
317321
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
318322
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -389,6 +393,7 @@
389393
parsed_response = MultiJson.load(last_response.body)
390394
expect(parsed_response).to be_a_response_like({
391395
'guid' => deployment.guid,
396+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
392397
'status' => {
393398
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
394399
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -468,6 +473,7 @@
468473

469474
expect(parsed_response).to be_a_response_like({
470475
'guid' => deployment.guid,
476+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYED_STATE,
471477
'status' => {
472478
'value' => VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
473479
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON,
@@ -632,6 +638,7 @@
632638

633639
expect(parsed_response).to be_a_response_like({
634640
'guid' => deployment.guid,
641+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
635642
'status' => {
636643
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
637644
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -691,6 +698,7 @@
691698

692699
expect(parsed_response).to be_a_response_like({
693700
'guid' => deployment.guid,
701+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
694702
'status' => {
695703
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
696704
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -807,6 +815,7 @@
807815
parsed_response = MultiJson.load(last_response.body)
808816
expect(parsed_response).to be_a_response_like({
809817
'guid' => deployment.guid,
818+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
810819
'status' => {
811820
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
812821
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -868,6 +877,7 @@
868877
parsed_response = MultiJson.load(last_response.body)
869878
expect(parsed_response).to be_a_response_like({
870879
'guid' => deployment.guid,
880+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
871881
'status' => {
872882
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
873883
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -976,9 +986,10 @@
976986
status_reason: VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON)
977987
}
978988

979-
def json_for_deployment(deployment, app_model, droplet, status_value, status_reason, cancel_link=true)
989+
def json_for_deployment(deployment, app_model, droplet, state, status_value, status_reason, cancel_link=true)
980990
{
981991
guid: deployment.guid,
992+
state: state,
982993
status: {
983994
value: status_value,
984995
reason: status_reason,
@@ -1052,9 +1063,11 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
10521063
},
10531064
resources: [
10541065
json_for_deployment(deployment, app_model, droplet,
1066+
VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
10551067
VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
10561068
VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON),
10571069
json_for_deployment(deployment2, app2, droplet2,
1070+
VCAP::CloudController::DeploymentModel::CANCELING_STATE,
10581071
VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
10591072
VCAP::CloudController::DeploymentModel::CANCELING_STATUS_REASON),
10601073
]
@@ -1073,16 +1086,19 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
10731086
code: 200,
10741087
response_objects: [
10751088
json_for_deployment(deployment3, app3, droplet3,
1089+
VCAP::CloudController::DeploymentModel::DEPLOYED_STATE,
10761090
VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
10771091
VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON,
10781092
false
10791093
),
10801094
json_for_deployment(deployment4, app4, droplet4,
1095+
VCAP::CloudController::DeploymentModel::CANCELED_STATE,
10811096
VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
10821097
VCAP::CloudController::DeploymentModel::CANCELED_STATUS_REASON,
10831098
false
10841099
),
10851100
json_for_deployment(deployment5, app5, droplet5,
1101+
VCAP::CloudController::DeploymentModel::DEPLOYED_STATE,
10861102
VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
10871103
VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON,
10881104
false
@@ -1127,11 +1143,13 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
11271143
code: 200,
11281144
response_objects: [
11291145
json_for_deployment(deployment3, app3, droplet3,
1146+
VCAP::CloudController::DeploymentModel::DEPLOYED_STATE,
11301147
VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
11311148
VCAP::CloudController::DeploymentModel::DEPLOYED_STATUS_REASON,
11321149
false
11331150
),
11341151
json_for_deployment(deployment5, app5, droplet5,
1152+
VCAP::CloudController::DeploymentModel::DEPLOYED_STATE,
11351153
VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE,
11361154
VCAP::CloudController::DeploymentModel::SUPERSEDED_STATUS_REASON,
11371155
false
@@ -1176,6 +1194,7 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
11761194
code: 200,
11771195
response_objects: [
11781196
json_for_deployment(deployment, app_model, droplet,
1197+
VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
11791198
VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
11801199
VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON),
11811200
]
@@ -1281,6 +1300,7 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
12811300
'resources' => [
12821301
{
12831302
'guid' => deployment.guid,
1303+
'state' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATE,
12841304
'status' => {
12851305
'value' => VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE,
12861306
'reason' => VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON,
@@ -1353,6 +1373,7 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
13531373

13541374
expect(last_response.body).to be_empty
13551375
deployment.reload
1376+
expect(deployment.state).to eq(VCAP::CloudController::DeploymentModel::CANCELING_STATE)
13561377
expect(deployment.status_value).to eq(VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE)
13571378
expect(deployment.status_reason).to eq(VCAP::CloudController::DeploymentModel::CANCELING_STATUS_REASON)
13581379

@@ -1361,6 +1382,7 @@ def json_for_deployment(deployment, app_model, droplet, status_value, status_rea
13611382
require 'cloud_controller/deployment_updater/scheduler'
13621383
VCAP::CloudController::DeploymentUpdater::Updater.new(deployment, Steno.logger('blah')).cancel
13631384
deployment.reload
1385+
expect(deployment.state).to eq(VCAP::CloudController::DeploymentModel::CANCELED_STATE)
13641386
expect(deployment.status_value).to eq(VCAP::CloudController::DeploymentModel::FINALIZED_STATUS_VALUE)
13651387
expect(deployment.status_reason).to eq(VCAP::CloudController::DeploymentModel::CANCELED_STATUS_REASON)
13661388
end

spec/unit/presenters/v3/deployment_presenter_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ module VCAP::CloudController::Presenters::V3
2626
result = DeploymentPresenter.new(deployment).to_hash
2727
expect(result[:guid]).to eq(deployment.guid)
2828

29+
expect(result[:state]).to eq(VCAP::CloudController::DeploymentModel::DEPLOYING_STATE)
2930
expect(result[:status][:value]).to eq(VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE)
3031
expect(result[:status][:reason]).to eq(VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON)
3132
expect(result[:status][:details][:last_successful_healthcheck]).to eq('2019-07-12 19:01:54')
@@ -70,6 +71,7 @@ module VCAP::CloudController::Presenters::V3
7071
result = DeploymentPresenter.new(deployment).to_hash
7172
expect(result[:guid]).to eq(deployment.guid)
7273

74+
expect(result[:state]).to eq(VCAP::CloudController::DeploymentModel::DEPLOYING_STATE)
7375
expect(result[:status][:value]).to eq(VCAP::CloudController::DeploymentModel::ACTIVE_STATUS_VALUE)
7476
expect(result[:status][:reason]).to eq(VCAP::CloudController::DeploymentModel::DEPLOYING_STATUS_REASON)
7577

0 commit comments

Comments
 (0)