Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Never show property diffs for OpSame #16024

Merged
merged 3 commits into from
May 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
changes:
- type: fix
scope: cli/display
description: Avoid showing a diff when the provider returns DIFF_NONE
25 changes: 14 additions & 11 deletions pkg/backend/display/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,20 +387,23 @@ func renderDiff(
summary := getResourcePropertiesSummary(metadata, indent)

var details string
if metadata.DetailedDiff != nil {
var buf bytes.Buffer
if diff := engine.TranslateDetailedDiff(&metadata); diff != nil {
PrintObjectDiff(&buf, *diff, nil /*include*/, planning, indent+1, opts.SummaryDiff, opts.TruncateOutput, debug)
// An OpSame might have a diff due to metadata changes (e.g. protect) but we should never print a property diff,
// even if the properties appear to have changed. See https://github.com/pulumi/pulumi/issues/15944 for context.
if metadata.Op != deploy.OpSame {
if metadata.DetailedDiff != nil {
var buf bytes.Buffer
if diff := engine.TranslateDetailedDiff(&metadata); diff != nil {
PrintObjectDiff(&buf, *diff, nil /*include*/, planning, indent+1, opts.SummaryDiff, opts.TruncateOutput, debug)
} else {
PrintObject(
&buf, metadata.Old.Inputs, planning, indent+1, deploy.OpSame, true /*prefix*/, opts.TruncateOutput, debug)
}
details = buf.String()
} else {
PrintObject(
&buf, metadata.Old.Inputs, planning, indent+1, deploy.OpSame, true /*prefix*/, opts.TruncateOutput, debug)
details = getResourcePropertiesDetails(
metadata, indent, planning, opts.SummaryDiff, opts.TruncateOutput, debug)
}
details = buf.String()
} else {
details = getResourcePropertiesDetails(
metadata, indent, planning, opts.SummaryDiff, opts.TruncateOutput, debug)
}

fprintIgnoreError(out, opts.Color.Colorize(summary))
fprintIgnoreError(out, opts.Color.Colorize(details))
fprintIgnoreError(out, opts.Color.Colorize(colors.Reset))
Expand Down
18 changes: 11 additions & 7 deletions pkg/backend/display/rows.go
Original file line number Diff line number Diff line change
Expand Up @@ -439,14 +439,18 @@ func getDiffInfo(step engine.StepEventMetadata, action apitype.UpdateKind) strin
changesBuf := &bytes.Buffer{}
if step.Old != nil && step.New != nil {
var diff *resource.ObjectDiff
if step.DetailedDiff != nil {
diff = engine.TranslateDetailedDiff(&step)
} else if diffOutputs {
if step.Old.Outputs != nil && step.New.Outputs != nil {
diff = step.Old.Outputs.Diff(step.New.Outputs)
// An OpSame might have a diff due to metadata changes (e.g. protect) but we should never print a property diff,
// even if the properties appear to have changed. See https://github.com/pulumi/pulumi/issues/15944 for context.
if step.Op != deploy.OpSame {
if step.DetailedDiff != nil {
diff = engine.TranslateDetailedDiff(&step)
} else if diffOutputs {
if step.Old.Outputs != nil && step.New.Outputs != nil {
diff = step.Old.Outputs.Diff(step.New.Outputs)
}
} else if step.Old.Inputs != nil && step.New.Inputs != nil {
diff = step.Old.Inputs.Diff(step.New.Inputs)
}
} else if step.Old.Inputs != nil && step.New.Inputs != nil {
diff = step.Old.Inputs.Diff(step.New.Inputs)
}

// Show a diff if either `provider` or `protect` changed; they might not show a diff via inputs or outputs, but
Expand Down

Large diffs are not rendered by default.

66 changes: 0 additions & 66 deletions pkg/backend/display/testdata/not-truncated/up-2.json.stdout.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,6 @@
<{%reset%}> [id=eks-role-24b1266]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/role:Role::eks-role]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::7b99a6ae-83b6-49d1-a82d-3f9f7cf83d42]
<{%reset%}><{%reset%}> assumeRolePolicy : <{%reset%}><{%reset%}>(json) <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Statement: <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Action : <{%reset%}><{%reset%}>"sts:AssumeRole"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Effect : <{%reset%}><{%reset%}>"Allow"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Principal: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Service: <{%reset%}><{%reset%}>"eks.amazonaws.com"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Sid : <{%reset%}><{%reset%}>""<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Version : <{%reset%}><{%reset%}>"2008-10-17"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> forceDetachPolicies: <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> maxSessionDuration : <{%reset%}><{%reset%}>3600<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> name : <{%reset%}><{%reset%}>"eks-role-24b1266"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> path : <{%reset%}><{%reset%}>"/"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> arn : <{%reset%}><{%reset%}>"arn:aws:iam::616138583583:role/eks-role-24b1266"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> assumeRolePolicy : <{%reset%}><{%reset%}>(json) <{%reset%}><{%reset%}>{
Expand Down Expand Up @@ -57,48 +39,18 @@
<{%reset%}> [id=eks-role-24b1266-20220209231452499500000001]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/rolePolicyAttachment:RolePolicyAttachment::eks-rpa-service-policy]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::7b99a6ae-83b6-49d1-a82d-3f9f7cf83d42]
<{%reset%}><{%reset%}> policyArn : <{%reset%}><{%reset%}>"arn:aws:iam::aws:policy/AmazonEKSServicePolicy"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> role : <{%reset%}><{%reset%}>"eks-role-24b1266"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> id : <{%reset%}><{%reset%}>"eks-role-24b1266-20220209231452499500000001"<{%reset%}><{%reset%}>
<{%reset%}> <{%reset%}> aws:iam/rolePolicyAttachment:RolePolicyAttachment: (same)
<{%reset%}> [id=eks-role-24b1266-20220209231452597100000002]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/rolePolicyAttachment:RolePolicyAttachment::eks-rpa-cluster-policy]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::7b99a6ae-83b6-49d1-a82d-3f9f7cf83d42]
<{%reset%}><{%reset%}> policyArn : <{%reset%}><{%reset%}>"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> role : <{%reset%}><{%reset%}>"eks-role-24b1266"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> id : <{%reset%}><{%reset%}>"eks-role-24b1266-20220209231452597100000002"<{%reset%}><{%reset%}>
<{%reset%}> <{%reset%}> aws:ec2/securityGroup:SecurityGroup: (same)
<{%reset%}> [id=sg-0e760e824fba2d002]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:ec2/securityGroup:SecurityGroup::eks-sg]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::7b99a6ae-83b6-49d1-a82d-3f9f7cf83d42]
<{%reset%}><{%reset%}> description : <{%reset%}><{%reset%}>"Managed by Pulumi"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> egress : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> cidrBlocks: <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"0.0.0.0/0"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> fromPort : <{%reset%}><{%reset%}>0<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> protocol : <{%reset%}><{%reset%}>"-1"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> self : <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> toPort : <{%reset%}><{%reset%}>0<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ingress : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> cidrBlocks: <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"0.0.0.0/0"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> fromPort : <{%reset%}><{%reset%}>80<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> protocol : <{%reset%}><{%reset%}>"tcp"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> self : <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> toPort : <{%reset%}><{%reset%}>80<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> name : <{%reset%}><{%reset%}>"eks-sg-8cab9e0"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> revokeRulesOnDelete: <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> vpcId : <{%reset%}><{%reset%}>"vpc-4b82e033"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> arn : <{%reset%}><{%reset%}>"arn:aws:ec2:us-west-2:616138583583:security-group/sg-0e760e824fba2d002"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> egress : <{%reset%}><{%reset%}>[
Expand Down Expand Up @@ -137,24 +89,6 @@
<{%reset%}> [id=eks-cluster-fb2cd6e]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:eks/cluster:Cluster::eks-cluster]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::7b99a6ae-83b6-49d1-a82d-3f9f7cf83d42]
<{%reset%}><{%reset%}> name : <{%reset%}><{%reset%}>"eks-cluster-fb2cd6e"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> roleArn : <{%reset%}><{%reset%}>"arn:aws:iam::616138583583:role/eks-role-24b1266"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> vpcConfig : <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> endpointPrivateAccess: <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> endpointPublicAccess : <{%reset%}><{%reset%}>true<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> publicAccessCidrs : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"0.0.0.0/0"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> securityGroupIds : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"sg-0e760e824fba2d002"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> subnetIds : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"subnet-0016572b"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [1]: <{%reset%}><{%reset%}>"subnet-d7e7fe9c"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [2]: <{%reset%}><{%reset%}>"subnet-c7d926bf"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [3]: <{%reset%}><{%reset%}>"subnet-43f43a1e"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> arn : <{%reset%}><{%reset%}>"arn:aws:eks:us-west-2:616138583583:cluster/eks-cluster-fb2cd6e"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> certificateAuthority : <{%reset%}><{%reset%}>{
Expand Down
40 changes: 0 additions & 40 deletions pkg/backend/display/testdata/not-truncated/up-4.json.stdout.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,6 @@
<{%reset%}> [id=eks-role-be36613]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/role:Role::eks-role]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::0ec0509c-c2e3-422d-aec6-ea54de8d499b]
<{%reset%}><{%reset%}> assumeRolePolicy : <{%reset%}><{%reset%}>(json) <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Statement: <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Action : <{%reset%}><{%reset%}>"sts:AssumeRole"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Effect : <{%reset%}><{%reset%}>"Allow"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Principal: <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> Service: <{%reset%}><{%reset%}>"eks.amazonaws.com"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Sid : <{%reset%}><{%reset%}>""<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> Version : <{%reset%}><{%reset%}>"2008-10-17"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> forceDetachPolicies: <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> maxSessionDuration : <{%reset%}><{%reset%}>3600<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> name : <{%reset%}><{%reset%}>"eks-role-be36613"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> path : <{%reset%}><{%reset%}>"/"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> arn : <{%reset%}><{%reset%}>"arn:aws:iam::616138583583:role/eks-role-be36613"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> assumeRolePolicy : <{%reset%}><{%reset%}>(json) <{%reset%}><{%reset%}>{
Expand Down Expand Up @@ -53,16 +35,12 @@
<{%reset%}> [id=eks-role-be36613-20220401073059037900000001]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/rolePolicyAttachment:RolePolicyAttachment::eks-rpa-service-policy]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::0ec0509c-c2e3-422d-aec6-ea54de8d499b]
<{%reset%}><{%reset%}> policyArn : <{%reset%}><{%reset%}>"arn:aws:iam::aws:policy/AmazonEKSServicePolicy"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> role : <{%reset%}><{%reset%}>"eks-role-be36613"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> id : <{%reset%}><{%reset%}>"eks-role-be36613-20220401073059037900000001"<{%reset%}><{%reset%}>
<{%reset%}> <{%reset%}> aws:iam/rolePolicyAttachment:RolePolicyAttachment: (same)
<{%reset%}> [id=eks-role-be36613-20220401073059129000000002]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:iam/rolePolicyAttachment:RolePolicyAttachment::eks-rpa-cluster-policy]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::0ec0509c-c2e3-422d-aec6-ea54de8d499b]
<{%reset%}><{%reset%}> policyArn : <{%reset%}><{%reset%}>"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> role : <{%reset%}><{%reset%}>"eks-role-be36613"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> id : <{%reset%}><{%reset%}>"eks-role-be36613-20220401073059129000000002"<{%reset%}><{%reset%}>
<{%reset%}> <{%fg 3%}>~ aws:ec2/securityGroup:SecurityGroup: (update)
Expand Down Expand Up @@ -131,24 +109,6 @@
<{%reset%}> [id=eks-cluster-dc83353]
<{%reset%}><{%reset%}> [urn=urn:pulumi:dev::eks::aws:eks/cluster:Cluster::eks-cluster]
<{%reset%}><{%reset%}> [provider=urn:pulumi:dev::eks::pulumi:providers:aws::default_4_36_0::0ec0509c-c2e3-422d-aec6-ea54de8d499b]
<{%reset%}><{%reset%}> name : <{%reset%}><{%reset%}>"eks-cluster-dc83353"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> roleArn : <{%reset%}><{%reset%}>"arn:aws:iam::616138583583:role/eks-role-be36613"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> vpcConfig : <{%reset%}><{%reset%}>{
<{%reset%}><{%reset%}> endpointPrivateAccess: <{%reset%}><{%reset%}>false<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> endpointPublicAccess : <{%reset%}><{%reset%}>true<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> publicAccessCidrs : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"0.0.0.0/0"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> securityGroupIds : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"sg-0d1f8bb63e78926f4"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> subnetIds : <{%reset%}><{%reset%}>[
<{%reset%}><{%reset%}> [0]: <{%reset%}><{%reset%}>"subnet-0016572b"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [1]: <{%reset%}><{%reset%}>"subnet-d7e7fe9c"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [2]: <{%reset%}><{%reset%}>"subnet-c7d926bf"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> [3]: <{%reset%}><{%reset%}>"subnet-43f43a1e"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> ]<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> }<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}><{%reset%}> --outputs:--<{%reset%}>
<{%reset%}> arn : <{%reset%}><{%reset%}>"arn:aws:eks:us-west-2:616138583583:cluster/eks-cluster-dc83353"<{%reset%}><{%reset%}>
<{%reset%}><{%reset%}> certificateAuthority : <{%reset%}><{%reset%}>{
Expand Down