Skip to content

Ensure environment variables have higher priority than plugin configuration stored on disk#496

Merged
nikita-tkachenko-datadog merged 2 commits into
masterfrom
nikita-tkachenko/environment-vars-config-precedence
Jan 20, 2025
Merged

Ensure environment variables have higher priority than plugin configuration stored on disk#496
nikita-tkachenko-datadog merged 2 commits into
masterfrom
nikita-tkachenko/environment-vars-config-precedence

Conversation

@nikita-tkachenko-datadog

Copy link
Copy Markdown
Collaborator

Requirements for Contributing to this repository

  • Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
  • The pull request must only fix one issue at the time.
  • The pull request must update the test suite to demonstrate the changed functionality.
  • After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see CONTRIBUTING.

What does this PR do?

Ensures that DATADOG_JENKINS_PLUGIN_* environment variables have higher precedence than plugin configuration values stored on disk.
Fixes #494

Description of the Change

Alternate Designs

Possible Drawbacks

Verification Process

Additional Notes

Release Notes

Review checklist (to be filled by reviewers)

  • Feature or bug fix MUST have appropriate tests (unit, integration, etc...)
  • PR title must be written as a CHANGELOG entry (see why)
  • Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
  • PR must have one changelog/ label attached. If applicable it should have the backward-incompatible label attached.
  • PR should not have do-not-merge/ label attached.
  • If Applicable, issue must have kind/ and severity/ labels attached at least.

@nikita-tkachenko-datadog nikita-tkachenko-datadog added the changelog/Fixed Fixed features results into a bug fix version bump label Jan 20, 2025
@nikita-tkachenko-datadog
nikita-tkachenko-datadog marked this pull request as ready for review January 20, 2025 11:31

@drodriguezhdez drodriguezhdez left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropped some comments

Comment on lines +48 to +50
String apiUrl = System.getenv().getOrDefault(TARGET_API_URL_PROPERTY, this.apiUrl);
String logsUrl = System.getenv().getOrDefault(TARGET_LOG_INTAKE_URL_PROPERTY, this.logsUrl);
String webhooksUrl = System.getenv().getOrDefault(TARGET_WEBHOOK_INTAKE_URL_PROPERTY, this.webhooksUrl);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
String apiUrl = System.getenv().getOrDefault(TARGET_API_URL_PROPERTY, this.apiUrl);
String logsUrl = System.getenv().getOrDefault(TARGET_LOG_INTAKE_URL_PROPERTY, this.logsUrl);
String webhooksUrl = System.getenv().getOrDefault(TARGET_WEBHOOK_INTAKE_URL_PROPERTY, this.webhooksUrl);
Map<String, String> envVars = System.getenv()
String apiUrl = envVars.getOrDefault(TARGET_API_URL_PROPERTY, this.apiUrl);
String logsUrl = envVars.getOrDefault(TARGET_LOG_INTAKE_URL_PROPERTY, this.logsUrl);
String webhooksUrl = envVars.getOrDefault(TARGET_WEBHOOK_INTAKE_URL_PROPERTY, this.webhooksUrl);

Should we generate a local variable to avoid calling System.getenv() repeteadly?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, fixed

if (defaultKey != null){
return new DatadogTextApiKey(defaultKey);
} else {
return this;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So basically, this in this context is the instance deserialized using the xml config file?
Could we add a comment on this line indicating this?

@nikita-tkachenko-datadog nikita-tkachenko-datadog Jan 20, 2025

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this in this context is the instance deserialized using the xml config file

Correct. Added the comment explaining it

@drodriguezhdez drodriguezhdez left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@nikita-tkachenko-datadog
nikita-tkachenko-datadog merged commit 864c4c6 into master Jan 20, 2025
@nikita-tkachenko-datadog
nikita-tkachenko-datadog deleted the nikita-tkachenko/environment-vars-config-precedence branch January 20, 2025 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/Fixed Fixed features results into a bug fix version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DATADOG_JENKINS_PLUGIN_TARGET_HOST no longer honoured

2 participants