From f4477b25f2aba70ef4acbfce8b7c0aa7252a99c0 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 14:22:50 -0700 Subject: [PATCH 01/11] Replace existing license headers --- .../package_lambda_solarwinds_apm/action.yaml | 7 ++----- .github/actions/package_solarwinds_apm/action.yaml | 7 ++----- .github/scripts/is_publishable.sh | 7 ++----- .github/scripts/release_pr.sh | 7 ++----- .github/scripts/testrelease_pr.sh | 7 ++----- .../build_publish_image_autoinstrumentation.yaml | 7 ++----- ...ild_publish_image_autoinstrumentation_beta.yaml | 7 ++----- .github/workflows/build_publish_lambda_layer.yaml | 7 ++----- .../build_publish_pypi_and_draft_release.yaml | 7 ++----- .github/workflows/build_publish_testpypi.yaml | 7 ++----- .github/workflows/build_sdist_and_wheel.yaml | 7 ++----- .github/workflows/codeql_analysis.yml | 7 ++----- .github/workflows/create_release_pr.yaml | 7 ++----- .github/workflows/create_testrelease_pr.yaml | 7 ++----- .github/workflows/get_apm_python_version.yaml | 7 ++----- .github/workflows/publish_lambda_layer.yaml | 7 ++----- .github/workflows/reversinglabs_scan.yaml | 7 ++----- .github/workflows/run_tox_lint_format.yaml | 7 ++----- .github/workflows/run_tox_ruff_format.yaml | 7 ++----- .github/workflows/run_tox_tests.yaml | 7 ++----- .github/workflows/verify_install.yaml | 7 ++----- .github/workflows/verify_install_macos.yaml | 7 ++----- .github/workflows/verify_install_windows.yaml | 7 ++----- Makefile | 7 ++----- docker-compose.yml | 7 ++----- examples/aws_lambda_container/download-layer.sh | 3 ++- lambda/check_lambda_modules.sh | 7 ++----- lambda/otel_wrapper.py | 13 +------------ lambda/solarwinds-apm/wrapper | 7 ++----- lambda/tests/mocks/lambda_function.py | 14 +------------- lambda/tests/test_instrumentation.py | 7 ++----- scripts/lint_and_format.py | 7 ++----- solarwinds_apm/__init__.py | 7 ++----- solarwinds_apm/api/__init__.py | 7 ++----- solarwinds_apm/apm_config.py | 7 ++----- solarwinds_apm/apm_constants.py | 7 ++----- solarwinds_apm/apm_logging.py | 7 ++----- solarwinds_apm/apm_resource.py | 7 ++----- solarwinds_apm/configurator.py | 7 ++----- solarwinds_apm/distro.py | 7 ++----- solarwinds_apm/k8s.py | 7 ++----- solarwinds_apm/oboe/__init__.py | 7 ++----- solarwinds_apm/oboe/configuration.py | 7 ++----- solarwinds_apm/oboe/dice.py | 7 ++----- solarwinds_apm/oboe/http_sampler.py | 7 ++----- solarwinds_apm/oboe/json_sampler.py | 7 ++----- solarwinds_apm/oboe/metrics.py | 7 ++----- solarwinds_apm/oboe/oboe_sampler.py | 7 ++----- solarwinds_apm/oboe/sampler.py | 7 ++----- solarwinds_apm/oboe/settings.py | 7 ++----- solarwinds_apm/oboe/token_bucket.py | 7 ++----- solarwinds_apm/oboe/trace_options.py | 7 ++----- solarwinds_apm/propagator.py | 7 ++----- solarwinds_apm/response_propagator.py | 7 ++----- solarwinds_apm/sampler.py | 7 ++----- solarwinds_apm/semconv/trace/__init__.py | 7 ++----- solarwinds_apm/trace/response_time_processor.py | 7 ++----- solarwinds_apm/trace/serviceentry_processor.py | 7 ++----- solarwinds_apm/traceoptions.py | 7 ++----- solarwinds_apm/tracer_provider.py | 7 ++----- solarwinds_apm/uams.py | 7 ++----- solarwinds_apm/w3c_transformer.py | 7 ++----- tests/docker/install/_helper_check_sdist.sh | 7 ++----- tests/docker/install/_helper_check_wheel.sh | 7 ++----- tests/docker/install/_helper_run_install_tests.sh | 7 ++----- tests/docker/install/app.py | 7 ++----- tests/docker/install/client.py | 7 ++----- tests/docker/install/docker-compose.yml | 7 ++----- tests/docker/install/install_tests.sh | 7 ++----- .../docker/install/windows/_helper_check_sdist.ps1 | 7 ++----- .../docker/install/windows/_helper_check_wheel.ps1 | 7 ++----- .../install/windows/_helper_run_install_tests.ps1 | 7 ++----- tests/docker/install/windows/install_tests.ps1 | 7 ++----- tests/integration/__init__.py | 7 ++----- tests/integration/test_base_sw_headers_attrs.py | 7 ++----- tests/integration/test_scenario_1.py | 7 ++----- tests/integration/test_scenario_4.py | 7 ++----- tests/integration/test_scenario_8.py | 7 ++----- tests/integration/test_service_instance_id.py | 7 ++----- tests/integration/test_service_name.py | 7 ++----- tests/integration/test_set_transaction_name.py | 14 ++------------ tests/integration/test_signed_tt.py | 7 ++----- tests/integration/test_unsigned_tt.py | 7 ++----- tests/integration/test_xtraceoptions_validation.py | 7 ++----- tests/unit/__init__.py | 7 ++----- tests/unit/test_api.py | 7 ++----- tests/unit/test_apm_config/test_apm_config.py | 7 ++----- .../test_apm_config_agent_enabled.py | 7 ++----- .../test_apm_config_calculate_collector.py | 7 ++----- .../test_apm_config_calculate_metrics_enabled.py | 7 ++----- .../test_apm_config/test_apm_config_cnf_file.py | 7 ++----- .../test_apm_config_service_name.py | 7 ++----- .../test_apm_config_transaction_filters.py | 7 ++----- tests/unit/test_apm_logging.py | 7 ++----- tests/unit/test_apm_resource.py | 7 ++----- tests/unit/test_configurator/conftest.py | 7 ++----- tests/unit/test_configurator/fixtures/logging.py | 7 ++----- tests/unit/test_configurator/fixtures/resource.py | 7 ++----- tests/unit/test_configurator/fixtures/trace.py | 7 ++----- .../test_configurator_configure_otel.py | 7 ++----- .../test_configurator_metrics_init.py | 7 ++----- .../test_configurator_propagators.py | 7 ++----- .../test_configurator_span_processors.py | 7 ++----- .../test_configurator_traces_init.py | 7 ++----- tests/unit/test_distro.py | 7 ++----- tests/unit/test_k8s.py | 7 ++----- tests/unit/test_oboe/__init__.py | 7 ++----- tests/unit/test_oboe/test_dice.py | 7 ++----- tests/unit/test_oboe/test_http_sampler.py | 7 ++----- tests/unit/test_oboe/test_json_sampler.py | 7 ++----- tests/unit/test_oboe/test_oboe_sampler.py | 7 ++----- tests/unit/test_oboe/test_sampler.py | 7 ++----- tests/unit/test_oboe/test_settings.py | 7 ++----- tests/unit/test_oboe/test_token_bucket.py | 7 ++----- tests/unit/test_oboe/test_trace_options.py | 7 ++----- tests/unit/test_processors/__init__.py | 7 ++----- .../test_response_time_processor.py | 7 ++----- .../test_processors/test_serviceentry_processor.py | 7 ++----- tests/unit/test_propagator.py | 7 ++----- tests/unit/test_response_propagator.py | 7 ++----- tests/unit/test_sampler/__init__.py | 7 ++----- tests/unit/test_sampler/test_sampler.py | 7 ++----- tests/unit/test_semconv/__init__.py | 7 ++----- tests/unit/test_semconv/test_trace.py | 7 ++----- tests/unit/test_tracer_provider.py | 7 ++----- tests/unit/test_transaction_name_pool_api.py | 7 ++----- tests/unit/test_uams.py | 7 ++----- tests/unit/test_w3c_transformer.py | 7 ++----- tests/unit/test_xtraceoptions.py | 7 ++----- 129 files changed, 256 insertions(+), 663 deletions(-) diff --git a/.github/actions/package_lambda_solarwinds_apm/action.yaml b/.github/actions/package_lambda_solarwinds_apm/action.yaml index fb9bcb4d0..8fc09bbb1 100644 --- a/.github/actions/package_lambda_solarwinds_apm/action.yaml +++ b/.github/actions/package_lambda_solarwinds_apm/action.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: package_lambda_solarwinds_apm diff --git a/.github/actions/package_solarwinds_apm/action.yaml b/.github/actions/package_solarwinds_apm/action.yaml index 6d6732310..27a1215c9 100644 --- a/.github/actions/package_solarwinds_apm/action.yaml +++ b/.github/actions/package_solarwinds_apm/action.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: package_solarwinds_apm diff --git a/.github/scripts/is_publishable.sh b/.github/scripts/is_publishable.sh index ce48211e4..76c82d34c 100755 --- a/.github/scripts/is_publishable.sh +++ b/.github/scripts/is_publishable.sh @@ -1,10 +1,7 @@ #!/bin/bash -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # User input version for release (e.g. 1.0.0) input_version="$1" diff --git a/.github/scripts/release_pr.sh b/.github/scripts/release_pr.sh index 2f45c522c..5534929df 100755 --- a/.github/scripts/release_pr.sh +++ b/.github/scripts/release_pr.sh @@ -1,10 +1,7 @@ #!/bin/bash -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # input release version number, e.g. 1.1.0 version_number="$1" diff --git a/.github/scripts/testrelease_pr.sh b/.github/scripts/testrelease_pr.sh index 819b7c4fd..cedda526c 100755 --- a/.github/scripts/testrelease_pr.sh +++ b/.github/scripts/testrelease_pr.sh @@ -1,10 +1,7 @@ #!/bin/bash -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # input testrelease version number, e.g. 1.1.0.1 version_number="$1" diff --git a/.github/workflows/build_publish_image_autoinstrumentation.yaml b/.github/workflows/build_publish_image_autoinstrumentation.yaml index 6539e5ff8..dfe6e1749 100644 --- a/.github/workflows/build_publish_image_autoinstrumentation.yaml +++ b/.github/workflows/build_publish_image_autoinstrumentation.yaml @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: "Publish APM Python Auto-Instrumentation" diff --git a/.github/workflows/build_publish_image_autoinstrumentation_beta.yaml b/.github/workflows/build_publish_image_autoinstrumentation_beta.yaml index b9fb3fcaa..be5fbc9ac 100644 --- a/.github/workflows/build_publish_image_autoinstrumentation_beta.yaml +++ b/.github/workflows/build_publish_image_autoinstrumentation_beta.yaml @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: "Publish Beta APM Python Auto-Instrumentation" diff --git a/.github/workflows/build_publish_lambda_layer.yaml b/.github/workflows/build_publish_lambda_layer.yaml index c6a8d6e42..c77c27fa0 100644 --- a/.github/workflows/build_publish_lambda_layer.yaml +++ b/.github/workflows/build_publish_lambda_layer.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Publish APM Python lambda layer diff --git a/.github/workflows/build_publish_pypi_and_draft_release.yaml b/.github/workflows/build_publish_pypi_and_draft_release.yaml index 779de2e86..563465726 100644 --- a/.github/workflows/build_publish_pypi_and_draft_release.yaml +++ b/.github/workflows/build_publish_pypi_and_draft_release.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Publish to PyPi and Create Release diff --git a/.github/workflows/build_publish_testpypi.yaml b/.github/workflows/build_publish_testpypi.yaml index b5b797308..c233ada88 100644 --- a/.github/workflows/build_publish_testpypi.yaml +++ b/.github/workflows/build_publish_testpypi.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Publish to TestPyPi diff --git a/.github/workflows/build_sdist_and_wheel.yaml b/.github/workflows/build_sdist_and_wheel.yaml index ce31992f2..1651ff6f3 100644 --- a/.github/workflows/build_sdist_and_wheel.yaml +++ b/.github/workflows/build_sdist_and_wheel.yaml @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Build sdist and wheel diff --git a/.github/workflows/codeql_analysis.yml b/.github/workflows/codeql_analysis.yml index 071adef09..fb815cf38 100644 --- a/.github/workflows/codeql_analysis.yml +++ b/.github/workflows/codeql_analysis.yml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: CodeQL Analysis diff --git a/.github/workflows/create_release_pr.yaml b/.github/workflows/create_release_pr.yaml index 4008e23a8..8d83857e4 100644 --- a/.github/workflows/create_release_pr.yaml +++ b/.github/workflows/create_release_pr.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Create Release PR diff --git a/.github/workflows/create_testrelease_pr.yaml b/.github/workflows/create_testrelease_pr.yaml index 6fb8d5030..04a5e649f 100644 --- a/.github/workflows/create_testrelease_pr.yaml +++ b/.github/workflows/create_testrelease_pr.yaml @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Create Testrelease PR diff --git a/.github/workflows/get_apm_python_version.yaml b/.github/workflows/get_apm_python_version.yaml index d7c8ebf61..8f9fea125 100644 --- a/.github/workflows/get_apm_python_version.yaml +++ b/.github/workflows/get_apm_python_version.yaml @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Get APM Python version diff --git a/.github/workflows/publish_lambda_layer.yaml b/.github/workflows/publish_lambda_layer.yaml index cad48af3e..25ab1eca8 100644 --- a/.github/workflows/publish_lambda_layer.yaml +++ b/.github/workflows/publish_lambda_layer.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: "Workflow call: Publish Lambda Layer" diff --git a/.github/workflows/reversinglabs_scan.yaml b/.github/workflows/reversinglabs_scan.yaml index eb2f3edf7..a1b81f63a 100644 --- a/.github/workflows/reversinglabs_scan.yaml +++ b/.github/workflows/reversinglabs_scan.yaml @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: ReversingLabs scan diff --git a/.github/workflows/run_tox_lint_format.yaml b/.github/workflows/run_tox_lint_format.yaml index d297e0b37..dd47c19c4 100644 --- a/.github/workflows/run_tox_lint_format.yaml +++ b/.github/workflows/run_tox_lint_format.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Run tox lint and format diff --git a/.github/workflows/run_tox_ruff_format.yaml b/.github/workflows/run_tox_ruff_format.yaml index 4f891765c..b73fb73db 100644 --- a/.github/workflows/run_tox_ruff_format.yaml +++ b/.github/workflows/run_tox_ruff_format.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Run tox ruff style and format diff --git a/.github/workflows/run_tox_tests.yaml b/.github/workflows/run_tox_tests.yaml index b8c06e5d1..3e46c54e6 100644 --- a/.github/workflows/run_tox_tests.yaml +++ b/.github/workflows/run_tox_tests.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Run tox tests diff --git a/.github/workflows/verify_install.yaml b/.github/workflows/verify_install.yaml index 8870c03ef..6db19e33e 100644 --- a/.github/workflows/verify_install.yaml +++ b/.github/workflows/verify_install.yaml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Verify Installation - Linux diff --git a/.github/workflows/verify_install_macos.yaml b/.github/workflows/verify_install_macos.yaml index 9a4ee9dbe..3dbdb3b1a 100644 --- a/.github/workflows/verify_install_macos.yaml +++ b/.github/workflows/verify_install_macos.yaml @@ -1,8 +1,5 @@ -# © 2023-2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Verify Installation - MacOS diff --git a/.github/workflows/verify_install_windows.yaml b/.github/workflows/verify_install_windows.yaml index ac1d193ca..7b4edf719 100644 --- a/.github/workflows/verify_install_windows.yaml +++ b/.github/workflows/verify_install_windows.yaml @@ -1,8 +1,5 @@ -# © 2023-2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 name: Verify Installation - Windows diff --git a/Makefile b/Makefile index 1c4f2b09e..2234ca51c 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,5 @@ -# © 2023-2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # ----The Makefile for automated building (and hopefully) deployment SHELL=bash diff --git a/docker-compose.yml b/docker-compose.yml index d51ddf9ed..4887b3224 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # Build development environments (manylinux x86 or aarch, 64-bit) # to locally build and publish solarwinds_apm Python APM library diff --git a/examples/aws_lambda_container/download-layer.sh b/examples/aws_lambda_container/download-layer.sh index 0e6ff015a..b835eca9a 100755 --- a/examples/aws_lambda_container/download-layer.sh +++ b/examples/aws_lambda_container/download-layer.sh @@ -1,6 +1,7 @@ #!/bin/bash -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # # Helper script to download APM Python Lambda layer from AWS. # Requires AWS CLI and valid AWS_PROFILE for login. diff --git a/lambda/check_lambda_modules.sh b/lambda/check_lambda_modules.sh index 0ca6907eb..d10fe5b3b 100755 --- a/lambda/check_lambda_modules.sh +++ b/lambda/check_lambda_modules.sh @@ -1,10 +1,7 @@ #!/usr/bin/env bash -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # stop on error set -e diff --git a/lambda/otel_wrapper.py b/lambda/otel_wrapper.py index 5118f06fb..7b7f9d713 100644 --- a/lambda/otel_wrapper.py +++ b/lambda/otel_wrapper.py @@ -1,16 +1,5 @@ # Copyright The OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# SPDX-License-Identifier: Apache-2.0 """ `otel_wrapper.py` diff --git a/lambda/solarwinds-apm/wrapper b/lambda/solarwinds-apm/wrapper index b4cba2bd2..93241975a 100755 --- a/lambda/solarwinds-apm/wrapper +++ b/lambda/solarwinds-apm/wrapper @@ -1,10 +1,7 @@ #!/bin/bash -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 : <<'END_DOCUMENTATION' `solarwinds-apm/wrapper` diff --git a/lambda/tests/mocks/lambda_function.py b/lambda/tests/mocks/lambda_function.py index c29257565..2871d1c7e 100644 --- a/lambda/tests/mocks/lambda_function.py +++ b/lambda/tests/mocks/lambda_function.py @@ -1,17 +1,5 @@ # Copyright The OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - +# SPDX-License-Identifier: Apache-2.0 def handler(event, context): return "200 ok" diff --git a/lambda/tests/test_instrumentation.py b/lambda/tests/test_instrumentation.py index 01b0f5183..c95e36848 100644 --- a/lambda/tests/test_instrumentation.py +++ b/lambda/tests/test_instrumentation.py @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """ Tests that solarwinds-apm/wrapper successfully instruments a mock Lambda diff --git a/scripts/lint_and_format.py b/scripts/lint_and_format.py index 282607c28..236f10e21 100644 --- a/scripts/lint_and_format.py +++ b/scripts/lint_and_format.py @@ -1,10 +1,7 @@ #!/usr/bin/env python3 -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import argparse import subprocess diff --git a/solarwinds_apm/__init__.py b/solarwinds_apm/__init__.py index 3a2c571db..d915fc527 100644 --- a/solarwinds_apm/__init__.py +++ b/solarwinds_apm/__init__.py @@ -1,7 +1,4 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """SolarWinds APM Python distribution package for OpenTelemetry instrumentation.""" diff --git a/solarwinds_apm/api/__init__.py b/solarwinds_apm/api/__init__.py index 6dfd3b1fc..340a02dc7 100644 --- a/solarwinds_apm/api/__init__.py +++ b/solarwinds_apm/api/__init__.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """SolarWinds APM public API for custom transaction naming and readiness checks.""" diff --git a/solarwinds_apm/apm_config.py b/solarwinds_apm/apm_config.py index eee99dc31..3b02cbb1e 100644 --- a/solarwinds_apm/apm_config.py +++ b/solarwinds_apm/apm_config.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # pylint: disable=too-many-lines diff --git a/solarwinds_apm/apm_constants.py b/solarwinds_apm/apm_constants.py index 27d395901..b8f3f1d96 100644 --- a/solarwinds_apm/apm_constants.py +++ b/solarwinds_apm/apm_constants.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Constants for SolarWinds APM configuration and context propagation.""" diff --git a/solarwinds_apm/apm_logging.py b/solarwinds_apm/apm_logging.py index 2c4f7c520..fe5438ccc 100644 --- a/solarwinds_apm/apm_logging.py +++ b/solarwinds_apm/apm_logging.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """SolarWinds APM agent-internal logging module. diff --git a/solarwinds_apm/apm_resource.py b/solarwinds_apm/apm_resource.py index 383a44226..9db0e8334 100644 --- a/solarwinds_apm/apm_resource.py +++ b/solarwinds_apm/apm_resource.py @@ -1,8 +1,5 @@ -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """OpenTelemetry Resource creation for SolarWinds APM.""" diff --git a/solarwinds_apm/configurator.py b/solarwinds_apm/configurator.py index 0fabb3ea4..92b00e279 100644 --- a/solarwinds_apm/configurator.py +++ b/solarwinds_apm/configurator.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Module to initialize OpenTelemetry SDK components for SolarWinds backend""" diff --git a/solarwinds_apm/distro.py b/solarwinds_apm/distro.py index 637f8ed43..9f69fd1ae 100644 --- a/solarwinds_apm/distro.py +++ b/solarwinds_apm/distro.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Module to configure OpenTelemetry to work with SolarWinds backend""" diff --git a/solarwinds_apm/k8s.py b/solarwinds_apm/k8s.py index 6595cce75..25823e049 100644 --- a/solarwinds_apm/k8s.py +++ b/solarwinds_apm/k8s.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import logging diff --git a/solarwinds_apm/oboe/__init__.py b/solarwinds_apm/oboe/__init__.py index 44adf584a..9985e934d 100644 --- a/solarwinds_apm/oboe/__init__.py +++ b/solarwinds_apm/oboe/__init__.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Transaction name pool management for SolarWinds APM.""" diff --git a/solarwinds_apm/oboe/configuration.py b/solarwinds_apm/oboe/configuration.py index 8555dc971..436064085 100644 --- a/solarwinds_apm/oboe/configuration.py +++ b/solarwinds_apm/oboe/configuration.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Configuration classes for transaction settings and APM configuration.""" diff --git a/solarwinds_apm/oboe/dice.py b/solarwinds_apm/oboe/dice.py index ca9f3b442..226e1e319 100644 --- a/solarwinds_apm/oboe/dice.py +++ b/solarwinds_apm/oboe/dice.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Dice class for probabilistic sampling decisions.""" diff --git a/solarwinds_apm/oboe/http_sampler.py b/solarwinds_apm/oboe/http_sampler.py index df5a14bc7..58e75e6c0 100644 --- a/solarwinds_apm/oboe/http_sampler.py +++ b/solarwinds_apm/oboe/http_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """HTTP-based sampler that fetches sampling settings from a remote collector.""" diff --git a/solarwinds_apm/oboe/json_sampler.py b/solarwinds_apm/oboe/json_sampler.py index 4caf1645c..fd3077d98 100644 --- a/solarwinds_apm/oboe/json_sampler.py +++ b/solarwinds_apm/oboe/json_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """JSON file-based sampler that reads sampling settings from a local file.""" diff --git a/solarwinds_apm/oboe/metrics.py b/solarwinds_apm/oboe/metrics.py index 600cef622..f6877ccd8 100644 --- a/solarwinds_apm/oboe/metrics.py +++ b/solarwinds_apm/oboe/metrics.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Metrics counters for SolarWinds APM sampling and tracing.""" diff --git a/solarwinds_apm/oboe/oboe_sampler.py b/solarwinds_apm/oboe/oboe_sampler.py index 0f1b3f913..e5d819655 100644 --- a/solarwinds_apm/oboe/oboe_sampler.py +++ b/solarwinds_apm/oboe/oboe_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import logging diff --git a/solarwinds_apm/oboe/sampler.py b/solarwinds_apm/oboe/sampler.py index 25aa8f213..3a09d3337 100644 --- a/solarwinds_apm/oboe/sampler.py +++ b/solarwinds_apm/oboe/sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import logging diff --git a/solarwinds_apm/oboe/settings.py b/solarwinds_apm/oboe/settings.py index f43b55e6d..b0371b59a 100644 --- a/solarwinds_apm/oboe/settings.py +++ b/solarwinds_apm/oboe/settings.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations from enum import Enum, IntEnum diff --git a/solarwinds_apm/oboe/token_bucket.py b/solarwinds_apm/oboe/token_bucket.py index 4f4982dba..d93b45a19 100644 --- a/solarwinds_apm/oboe/token_bucket.py +++ b/solarwinds_apm/oboe/token_bucket.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Token bucket algorithm implementation for rate limiting.""" diff --git a/solarwinds_apm/oboe/trace_options.py b/solarwinds_apm/oboe/trace_options.py index 461a7c670..0c0e5e1a5 100644 --- a/solarwinds_apm/oboe/trace_options.py +++ b/solarwinds_apm/oboe/trace_options.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import hashlib diff --git a/solarwinds_apm/propagator.py b/solarwinds_apm/propagator.py index a5699f126..4ecb55e4c 100644 --- a/solarwinds_apm/propagator.py +++ b/solarwinds_apm/propagator.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # TODO: Remove when Python < 3.10 support dropped from __future__ import annotations diff --git a/solarwinds_apm/response_propagator.py b/solarwinds_apm/response_propagator.py index 63379c0a4..1f0ca7149 100644 --- a/solarwinds_apm/response_propagator.py +++ b/solarwinds_apm/response_propagator.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # TODO: Remove when Python < 3.10 support dropped from __future__ import annotations diff --git a/solarwinds_apm/sampler.py b/solarwinds_apm/sampler.py index 0115adae9..b589f7f0d 100644 --- a/solarwinds_apm/sampler.py +++ b/solarwinds_apm/sampler.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """This module provides a SolarWinds-specific sampler. diff --git a/solarwinds_apm/semconv/trace/__init__.py b/solarwinds_apm/semconv/trace/__init__.py index 70556c9fa..1bbf8ad8b 100644 --- a/solarwinds_apm/semconv/trace/__init__.py +++ b/solarwinds_apm/semconv/trace/__init__.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Helpers to handle trace from upstream instrumentors conforming to new or old semantic conventions.""" diff --git a/solarwinds_apm/trace/response_time_processor.py b/solarwinds_apm/trace/response_time_processor.py index a7a0ab292..e5a1587d1 100644 --- a/solarwinds_apm/trace/response_time_processor.py +++ b/solarwinds_apm/trace/response_time_processor.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Response time span processor for recording trace metrics.""" diff --git a/solarwinds_apm/trace/serviceentry_processor.py b/solarwinds_apm/trace/serviceentry_processor.py index 0d906b232..b1863a943 100644 --- a/solarwinds_apm/trace/serviceentry_processor.py +++ b/solarwinds_apm/trace/serviceentry_processor.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Service entry span processor for transaction name management and context tracking.""" diff --git a/solarwinds_apm/traceoptions.py b/solarwinds_apm/traceoptions.py index e8e96b4e4..75626d9b3 100644 --- a/solarwinds_apm/traceoptions.py +++ b/solarwinds_apm/traceoptions.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """X-Trace-Options header parsing and formatting for trigger tracing.""" diff --git a/solarwinds_apm/tracer_provider.py b/solarwinds_apm/tracer_provider.py index 3e4f74e1c..e563d4b9b 100644 --- a/solarwinds_apm/tracer_provider.py +++ b/solarwinds_apm/tracer_provider.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """SolarWinds TracerProvider with custom shutdown behavior.""" diff --git a/solarwinds_apm/uams.py b/solarwinds_apm/uams.py index 284ddc996..b4b26aa8a 100644 --- a/solarwinds_apm/uams.py +++ b/solarwinds_apm/uams.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import logging import os diff --git a/solarwinds_apm/w3c_transformer.py b/solarwinds_apm/w3c_transformer.py index b6dc0736a..933c35e1d 100644 --- a/solarwinds_apm/w3c_transformer.py +++ b/solarwinds_apm/w3c_transformer.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Provides functionality to transform OpenTelemetry Data to SolarWinds Observability data.""" diff --git a/tests/docker/install/_helper_check_sdist.sh b/tests/docker/install/_helper_check_sdist.sh index 1b8323ece..45923cc84 100755 --- a/tests/docker/install/_helper_check_sdist.sh +++ b/tests/docker/install/_helper_check_sdist.sh @@ -1,10 +1,7 @@ #!/usr/bin/env bash -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # stop on error set -e diff --git a/tests/docker/install/_helper_check_wheel.sh b/tests/docker/install/_helper_check_wheel.sh index b856ae5af..465e02218 100755 --- a/tests/docker/install/_helper_check_wheel.sh +++ b/tests/docker/install/_helper_check_wheel.sh @@ -1,10 +1,7 @@ #!/usr/bin/env bash -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # stop on error set -e diff --git a/tests/docker/install/_helper_run_install_tests.sh b/tests/docker/install/_helper_run_install_tests.sh index daa655264..d2d67a10a 100755 --- a/tests/docker/install/_helper_run_install_tests.sh +++ b/tests/docker/install/_helper_run_install_tests.sh @@ -1,10 +1,7 @@ #!/usr/bin/env sh -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # Helper script to set up dependencies for the install tests, then runs the tests. # Accounts for: diff --git a/tests/docker/install/app.py b/tests/docker/install/app.py index aaf58a690..100ad2534 100755 --- a/tests/docker/install/app.py +++ b/tests/docker/install/app.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import requests from flask import Flask diff --git a/tests/docker/install/client.py b/tests/docker/install/client.py index aea2026c0..911550fb1 100755 --- a/tests/docker/install/client.py +++ b/tests/docker/install/client.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import logging import os diff --git a/tests/docker/install/docker-compose.yml b/tests/docker/install/docker-compose.yml index ffe1c7188..c07bc59fa 100755 --- a/tests/docker/install/docker-compose.yml +++ b/tests/docker/install/docker-compose.yml @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 x-command-install-test: &command-install-test command: sh _helper_run_install_tests.sh diff --git a/tests/docker/install/install_tests.sh b/tests/docker/install/install_tests.sh index 67efbd83f..ad03f4f91 100755 --- a/tests/docker/install/install_tests.sh +++ b/tests/docker/install/install_tests.sh @@ -1,10 +1,7 @@ #!/usr/bin/env bash -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # stop on error set -e diff --git a/tests/docker/install/windows/_helper_check_sdist.ps1 b/tests/docker/install/windows/_helper_check_sdist.ps1 index 5259600d1..248a6e1a3 100644 --- a/tests/docker/install/windows/_helper_check_sdist.ps1 +++ b/tests/docker/install/windows/_helper_check_sdist.ps1 @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 $ErrorActionPreference = "Stop" diff --git a/tests/docker/install/windows/_helper_check_wheel.ps1 b/tests/docker/install/windows/_helper_check_wheel.ps1 index ccbf6ad25..62e00eeef 100644 --- a/tests/docker/install/windows/_helper_check_wheel.ps1 +++ b/tests/docker/install/windows/_helper_check_wheel.ps1 @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 $ErrorActionPreference = "Stop" diff --git a/tests/docker/install/windows/_helper_run_install_tests.ps1 b/tests/docker/install/windows/_helper_run_install_tests.ps1 index 09afdde0a..63238cf98 100644 --- a/tests/docker/install/windows/_helper_run_install_tests.ps1 +++ b/tests/docker/install/windows/_helper_run_install_tests.ps1 @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # Helper script to set up dependencies for the install tests on windows-latest runner, then runs the tests. diff --git a/tests/docker/install/windows/install_tests.ps1 b/tests/docker/install/windows/install_tests.ps1 index fcbb173e1..28a96ec0c 100644 --- a/tests/docker/install/windows/install_tests.ps1 +++ b/tests/docker/install/windows/install_tests.ps1 @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 # Stop on error $ErrorActionPreference = "Stop" diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py index c3eb85d0c..0ce0c53ba 100644 --- a/tests/integration/__init__.py +++ b/tests/integration/__init__.py @@ -1,5 +1,2 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/integration/test_base_sw_headers_attrs.py b/tests/integration/test_base_sw_headers_attrs.py index 57eb177ce..6eda9b835 100644 --- a/tests/integration/test_base_sw_headers_attrs.py +++ b/tests/integration/test_base_sw_headers_attrs.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os import re diff --git a/tests/integration/test_scenario_1.py b/tests/integration/test_scenario_1.py index 66fded108..cdbb057b7 100644 --- a/tests/integration/test_scenario_1.py +++ b/tests/integration/test_scenario_1.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import re diff --git a/tests/integration/test_scenario_4.py b/tests/integration/test_scenario_4.py index ba326940c..b650c4075 100644 --- a/tests/integration/test_scenario_4.py +++ b/tests/integration/test_scenario_4.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import re diff --git a/tests/integration/test_scenario_8.py b/tests/integration/test_scenario_8.py index 2cf883844..989e2d994 100644 --- a/tests/integration/test_scenario_8.py +++ b/tests/integration/test_scenario_8.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import re diff --git a/tests/integration/test_service_instance_id.py b/tests/integration/test_service_instance_id.py index ddd5de858..72ab65bf8 100644 --- a/tests/integration/test_service_instance_id.py +++ b/tests/integration/test_service_instance_id.py @@ -1,8 +1,5 @@ -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os import time diff --git a/tests/integration/test_service_name.py b/tests/integration/test_service_name.py index f1983b950..35b55d43e 100644 --- a/tests/integration/test_service_name.py +++ b/tests/integration/test_service_name.py @@ -1,8 +1,5 @@ -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os import time diff --git a/tests/integration/test_set_transaction_name.py b/tests/integration/test_set_transaction_name.py index 4fdbf2fb7..80bc078e1 100644 --- a/tests/integration/test_set_transaction_name.py +++ b/tests/integration/test_set_transaction_name.py @@ -1,15 +1,5 @@ -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import threading import time diff --git a/tests/integration/test_signed_tt.py b/tests/integration/test_signed_tt.py index c29e59e9e..f3b61910d 100644 --- a/tests/integration/test_signed_tt.py +++ b/tests/integration/test_signed_tt.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import hashlib import hmac import json diff --git a/tests/integration/test_unsigned_tt.py b/tests/integration/test_unsigned_tt.py index 431514890..a894b8cab 100644 --- a/tests/integration/test_unsigned_tt.py +++ b/tests/integration/test_unsigned_tt.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import re diff --git a/tests/integration/test_xtraceoptions_validation.py b/tests/integration/test_xtraceoptions_validation.py index fbd49fa96..31f0cf548 100644 --- a/tests/integration/test_xtraceoptions_validation.py +++ b/tests/integration/test_xtraceoptions_validation.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import re diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py index c3eb85d0c..0ce0c53ba 100644 --- a/tests/unit/__init__.py +++ b/tests/unit/__init__.py @@ -1,5 +1,2 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/unit/test_api.py b/tests/unit/test_api.py index 4e82b4e3c..004755dfa 100644 --- a/tests/unit/test_api.py +++ b/tests/unit/test_api.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.sampling import ParentBased from opentelemetry.trace import NoOpTracerProvider diff --git a/tests/unit/test_apm_config/test_apm_config.py b/tests/unit/test_apm_config/test_apm_config.py index 2d2472133..d251d6ac9 100644 --- a/tests/unit/test_apm_config/test_apm_config.py +++ b/tests/unit/test_apm_config/test_apm_config.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import logging diff --git a/tests/unit/test_apm_config/test_apm_config_agent_enabled.py b/tests/unit/test_apm_config/test_apm_config_agent_enabled.py index d38243b01..f47e0357f 100644 --- a/tests/unit/test_apm_config/test_apm_config_agent_enabled.py +++ b/tests/unit/test_apm_config/test_apm_config_agent_enabled.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import logging import os diff --git a/tests/unit/test_apm_config/test_apm_config_calculate_collector.py b/tests/unit/test_apm_config/test_apm_config_calculate_collector.py index c0bfb83f8..e31344fbf 100644 --- a/tests/unit/test_apm_config/test_apm_config_calculate_collector.py +++ b/tests/unit/test_apm_config/test_apm_config_calculate_collector.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_apm_config/test_apm_config_calculate_metrics_enabled.py b/tests/unit/test_apm_config/test_apm_config_calculate_metrics_enabled.py index 7749e9ac3..30b650ec9 100644 --- a/tests/unit/test_apm_config/test_apm_config_calculate_metrics_enabled.py +++ b/tests/unit/test_apm_config/test_apm_config_calculate_metrics_enabled.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_apm_config/test_apm_config_cnf_file.py b/tests/unit/test_apm_config/test_apm_config_cnf_file.py index 88bd9df9f..34ef34acf 100644 --- a/tests/unit/test_apm_config/test_apm_config_cnf_file.py +++ b/tests/unit/test_apm_config/test_apm_config_cnf_file.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import logging import os diff --git a/tests/unit/test_apm_config/test_apm_config_service_name.py b/tests/unit/test_apm_config/test_apm_config_service_name.py index 0dc1616f9..d0b86fee5 100644 --- a/tests/unit/test_apm_config/test_apm_config_service_name.py +++ b/tests/unit/test_apm_config/test_apm_config_service_name.py @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_apm_config/test_apm_config_transaction_filters.py b/tests/unit/test_apm_config/test_apm_config_transaction_filters.py index a62bd07fa..aee06d22b 100644 --- a/tests/unit/test_apm_config/test_apm_config_transaction_filters.py +++ b/tests/unit/test_apm_config/test_apm_config_transaction_filters.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import re diff --git a/tests/unit/test_apm_logging.py b/tests/unit/test_apm_logging.py index 0dae56d30..df968200f 100644 --- a/tests/unit/test_apm_logging.py +++ b/tests/unit/test_apm_logging.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from solarwinds_apm import apm_logging diff --git a/tests/unit/test_apm_resource.py b/tests/unit/test_apm_resource.py index 95f37ca4a..dff001e65 100644 --- a/tests/unit/test_apm_resource.py +++ b/tests/unit/test_apm_resource.py @@ -1,8 +1,5 @@ -# © 2026 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from opentelemetry.sdk.resources import Resource diff --git a/tests/unit/test_configurator/conftest.py b/tests/unit/test_configurator/conftest.py index cdc4dd2f9..057a2e576 100644 --- a/tests/unit/test_configurator/conftest.py +++ b/tests/unit/test_configurator/conftest.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import pytest diff --git a/tests/unit/test_configurator/fixtures/logging.py b/tests/unit/test_configurator/fixtures/logging.py index f0a7824c2..a34bf4833 100644 --- a/tests/unit/test_configurator/fixtures/logging.py +++ b/tests/unit/test_configurator/fixtures/logging.py @@ -1,8 +1,5 @@ -# © 2024 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 def get_logging_mocks(mocker): diff --git a/tests/unit/test_configurator/fixtures/resource.py b/tests/unit/test_configurator/fixtures/resource.py index b34e0ef08..4eda612be 100644 --- a/tests/unit/test_configurator/fixtures/resource.py +++ b/tests/unit/test_configurator/fixtures/resource.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 def get_resource_mocks(mocker): diff --git a/tests/unit/test_configurator/fixtures/trace.py b/tests/unit/test_configurator/fixtures/trace.py index 2e579665f..5086fc2e8 100644 --- a/tests/unit/test_configurator/fixtures/trace.py +++ b/tests/unit/test_configurator/fixtures/trace.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 def get_trace_mocks(mocker): diff --git a/tests/unit/test_configurator/test_configurator_configure_otel.py b/tests/unit/test_configurator/test_configurator_configure_otel.py index 79a0a9340..0a4e6e7e7 100644 --- a/tests/unit/test_configurator/test_configurator_configure_otel.py +++ b/tests/unit/test_configurator/test_configurator_configure_otel.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import logging diff --git a/tests/unit/test_configurator/test_configurator_metrics_init.py b/tests/unit/test_configurator/test_configurator_metrics_init.py index ab0bba63d..d43f9f28d 100644 --- a/tests/unit/test_configurator/test_configurator_metrics_init.py +++ b/tests/unit/test_configurator/test_configurator_metrics_init.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import math diff --git a/tests/unit/test_configurator/test_configurator_propagators.py b/tests/unit/test_configurator/test_configurator_propagators.py index 47134d4ed..a6a44528d 100644 --- a/tests/unit/test_configurator/test_configurator_propagators.py +++ b/tests/unit/test_configurator/test_configurator_propagators.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_configurator/test_configurator_span_processors.py b/tests/unit/test_configurator/test_configurator_span_processors.py index a5b1560bc..38fe33a59 100644 --- a/tests/unit/test_configurator/test_configurator_span_processors.py +++ b/tests/unit/test_configurator/test_configurator_span_processors.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_configurator/test_configurator_traces_init.py b/tests/unit/test_configurator/test_configurator_traces_init.py index f9a4ff0c8..5662ba367 100644 --- a/tests/unit/test_configurator/test_configurator_traces_init.py +++ b/tests/unit/test_configurator/test_configurator_traces_init.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_distro.py b/tests/unit/test_distro.py index 5ccd0b79f..1a5edae0f 100644 --- a/tests/unit/test_distro.py +++ b/tests/unit/test_distro.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_k8s.py b/tests/unit/test_k8s.py index 1baf3644b..7d7123346 100644 --- a/tests/unit/test_k8s.py +++ b/tests/unit/test_k8s.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_oboe/__init__.py b/tests/unit/test_oboe/__init__.py index 3391b06a0..0ce0c53ba 100644 --- a/tests/unit/test_oboe/__init__.py +++ b/tests/unit/test_oboe/__init__.py @@ -1,5 +1,2 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/unit/test_oboe/test_dice.py b/tests/unit/test_oboe/test_dice.py index cb874a3e9..aff1b49dc 100644 --- a/tests/unit/test_oboe/test_dice.py +++ b/tests/unit/test_oboe/test_dice.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from collections import Counter diff --git a/tests/unit/test_oboe/test_http_sampler.py b/tests/unit/test_oboe/test_http_sampler.py index 236f45460..50278595b 100644 --- a/tests/unit/test_oboe/test_http_sampler.py +++ b/tests/unit/test_oboe/test_http_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import json import os import socket diff --git a/tests/unit/test_oboe/test_json_sampler.py b/tests/unit/test_oboe/test_json_sampler.py index dd80ede9d..604d4e193 100644 --- a/tests/unit/test_oboe/test_json_sampler.py +++ b/tests/unit/test_oboe/test_json_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import contextlib import json diff --git a/tests/unit/test_oboe/test_oboe_sampler.py b/tests/unit/test_oboe/test_oboe_sampler.py index e2f2b7345..9ff740f2c 100644 --- a/tests/unit/test_oboe/test_oboe_sampler.py +++ b/tests/unit/test_oboe/test_oboe_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import hashlib diff --git a/tests/unit/test_oboe/test_sampler.py b/tests/unit/test_oboe/test_sampler.py index 03b87aa9c..46a276338 100644 --- a/tests/unit/test_oboe/test_sampler.py +++ b/tests/unit/test_oboe/test_sampler.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import time diff --git a/tests/unit/test_oboe/test_settings.py b/tests/unit/test_oboe/test_settings.py index 452522c51..572190238 100644 --- a/tests/unit/test_oboe/test_settings.py +++ b/tests/unit/test_oboe/test_settings.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import time diff --git a/tests/unit/test_oboe/test_token_bucket.py b/tests/unit/test_oboe/test_token_bucket.py index a868bafa7..7449cd67b 100644 --- a/tests/unit/test_oboe/test_token_bucket.py +++ b/tests/unit/test_oboe/test_token_bucket.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os import threading diff --git a/tests/unit/test_oboe/test_trace_options.py b/tests/unit/test_oboe/test_trace_options.py index cc12792cf..7422a9046 100644 --- a/tests/unit/test_oboe/test_trace_options.py +++ b/tests/unit/test_oboe/test_trace_options.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import time diff --git a/tests/unit/test_processors/__init__.py b/tests/unit/test_processors/__init__.py index c3eb85d0c..0ce0c53ba 100644 --- a/tests/unit/test_processors/__init__.py +++ b/tests/unit/test_processors/__init__.py @@ -1,5 +1,2 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/unit/test_processors/test_response_time_processor.py b/tests/unit/test_processors/test_response_time_processor.py index ef6624748..dfc555f46 100644 --- a/tests/unit/test_processors/test_response_time_processor.py +++ b/tests/unit/test_processors/test_response_time_processor.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from solarwinds_apm.trace import ResponseTimeProcessor diff --git a/tests/unit/test_processors/test_serviceentry_processor.py b/tests/unit/test_processors/test_serviceentry_processor.py index a8a97a701..c2808eb5b 100644 --- a/tests/unit/test_processors/test_serviceentry_processor.py +++ b/tests/unit/test_processors/test_serviceentry_processor.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_propagator.py b/tests/unit/test_propagator.py index 2c12c69b2..50e942191 100644 --- a/tests/unit/test_propagator.py +++ b/tests/unit/test_propagator.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from unittest.mock import call diff --git a/tests/unit/test_response_propagator.py b/tests/unit/test_response_propagator.py index ef125e16d..b82f13cb1 100644 --- a/tests/unit/test_response_propagator.py +++ b/tests/unit/test_response_propagator.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from unittest.mock import call diff --git a/tests/unit/test_sampler/__init__.py b/tests/unit/test_sampler/__init__.py index c3eb85d0c..0ce0c53ba 100644 --- a/tests/unit/test_sampler/__init__.py +++ b/tests/unit/test_sampler/__init__.py @@ -1,5 +1,2 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/unit/test_sampler/test_sampler.py b/tests/unit/test_sampler/test_sampler.py index 3338a3194..124864d28 100644 --- a/tests/unit/test_sampler/test_sampler.py +++ b/tests/unit/test_sampler/test_sampler.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from opentelemetry.sdk.trace.sampling import StaticSampler diff --git a/tests/unit/test_semconv/__init__.py b/tests/unit/test_semconv/__init__.py index c3eb85d0c..0ce0c53ba 100644 --- a/tests/unit/test_semconv/__init__.py +++ b/tests/unit/test_semconv/__init__.py @@ -1,5 +1,2 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 diff --git a/tests/unit/test_semconv/test_trace.py b/tests/unit/test_semconv/test_trace.py index 56e67aee2..7cd724e81 100644 --- a/tests/unit/test_semconv/test_trace.py +++ b/tests/unit/test_semconv/test_trace.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from solarwinds_apm.semconv.trace import get_url_attrs diff --git a/tests/unit/test_tracer_provider.py b/tests/unit/test_tracer_provider.py index b7f13ac62..d634fa2ce 100644 --- a/tests/unit/test_tracer_provider.py +++ b/tests/unit/test_tracer_provider.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from unittest.mock import MagicMock diff --git a/tests/unit/test_transaction_name_pool_api.py b/tests/unit/test_transaction_name_pool_api.py index 8d4c58c82..e8332f1a4 100644 --- a/tests/unit/test_transaction_name_pool_api.py +++ b/tests/unit/test_transaction_name_pool_api.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from solarwinds_apm.oboe import ( TransactionNamePool, diff --git a/tests/unit/test_uams.py b/tests/unit/test_uams.py index fbc4e8683..ef5576ee2 100644 --- a/tests/unit/test_uams.py +++ b/tests/unit/test_uams.py @@ -1,8 +1,5 @@ -# © 2025 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import os diff --git a/tests/unit/test_w3c_transformer.py b/tests/unit/test_w3c_transformer.py index 62d5f99a9..4542789f2 100644 --- a/tests/unit/test_w3c_transformer.py +++ b/tests/unit/test_w3c_transformer.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 import pytest from opentelemetry.trace.span import TraceState diff --git a/tests/unit/test_xtraceoptions.py b/tests/unit/test_xtraceoptions.py index a67e7808a..ef8345ac0 100644 --- a/tests/unit/test_xtraceoptions.py +++ b/tests/unit/test_xtraceoptions.py @@ -1,8 +1,5 @@ -# © 2023 SolarWinds Worldwide, LLC. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 from solarwinds_apm.traceoptions import XTraceOptions From 7efb68be5bb19e51ef9cbba41fa5029b8442e6ba Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 15:05:57 -0700 Subject: [PATCH 02/11] Add header to some files that didn't have --- .claude/agents.md | 3 +++ .github/ISSUE_TEMPLATE/feature_request.md | 2 ++ .github/ISSUE_TEMPLATE/regular_bug_report.md | 2 ++ .github/actions/jira_vuln_k8s/action.yaml | 3 +++ .github/agents/python-security-vulnerability-agent.md | 3 +++ .github/copilot-instructions.md | 3 +++ .github/dependabot.yml | 2 ++ .github/instructions/python.instructions.md | 2 ++ examples/aws_lambda_container/Dockerfile | 3 +++ examples/aws_lambda_container/lambda_function.py | 3 +++ image/Dockerfile | 3 +++ image/Dockerfile-beta | 3 +++ 12 files changed, 32 insertions(+) diff --git a/.claude/agents.md b/.claude/agents.md index 92fdbc7a0..fb8027501 100644 --- a/.claude/agents.md +++ b/.claude/agents.md @@ -1 +1,4 @@ + + + ../.github/agents diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e70e39c55..4daf7d6bd 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,3 +1,5 @@ + + --- name: Feature Request about: Suggest an idea for this project diff --git a/.github/ISSUE_TEMPLATE/regular_bug_report.md b/.github/ISSUE_TEMPLATE/regular_bug_report.md index 41dc659dc..131bbd609 100644 --- a/.github/ISSUE_TEMPLATE/regular_bug_report.md +++ b/.github/ISSUE_TEMPLATE/regular_bug_report.md @@ -1,3 +1,5 @@ + + --- name: Regular Bug Report about: Report a non-security bug to help us improve diff --git a/.github/actions/jira_vuln_k8s/action.yaml b/.github/actions/jira_vuln_k8s/action.yaml index d41dc315a..32b7b7ef8 100644 --- a/.github/actions/jira_vuln_k8s/action.yaml +++ b/.github/actions/jira_vuln_k8s/action.yaml @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + name: 'Create JIRA Tickets for Docker Scout CVEs' description: 'Parses Docker Scout SARIF output and creates JIRA tickets for critical/high vulnerabilities' inputs: diff --git a/.github/agents/python-security-vulnerability-agent.md b/.github/agents/python-security-vulnerability-agent.md index a1180808b..5b0e448ff 100644 --- a/.github/agents/python-security-vulnerability-agent.md +++ b/.github/agents/python-security-vulnerability-agent.md @@ -1,3 +1,6 @@ + + + --- name: python-security-vulnerability-agent description: Fixes Python security vulnerabilities from Dependabot alerts. Upgrades vulnerable direct and transitive dependencies in Python projects. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 9b0121c6d..0552d1955 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,3 +1,6 @@ + + +--- ## GitHub Copilot Instructions ### Priority Guidelines diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9170f3f21..32f929963 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,3 +1,5 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 version: 2 updates: diff --git a/.github/instructions/python.instructions.md b/.github/instructions/python.instructions.md index c593981a2..d04129efb 100644 --- a/.github/instructions/python.instructions.md +++ b/.github/instructions/python.instructions.md @@ -1,3 +1,5 @@ + + --- applyTo: "**/*.py" description: 'Python coding conventions and guidelines' diff --git a/examples/aws_lambda_container/Dockerfile b/examples/aws_lambda_container/Dockerfile index d84f84d4b..e3f161b32 100644 --- a/examples/aws_lambda_container/Dockerfile +++ b/examples/aws_lambda_container/Dockerfile @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + # Dockerfile for AWS Lambda container image build with SolarWinds APM Python, # OpenTelemetry Collector extension, and function definition. # Download the layer first: ./download-layer.sh diff --git a/examples/aws_lambda_container/lambda_function.py b/examples/aws_lambda_container/lambda_function.py index 65fd8bd33..20bc30722 100644 --- a/examples/aws_lambda_container/lambda_function.py +++ b/examples/aws_lambda_container/lambda_function.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + import json diff --git a/image/Dockerfile b/image/Dockerfile index c3e37ba3c..752788c1b 100644 --- a/image/Dockerfile +++ b/image/Dockerfile @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + # To build one auto-instrumentation image for Python, please: # - Ensure the packages are installed in the `/autoinstrumentation,{-musl}` directory. This is required as when instrumenting the pod, # one init container will be created to copy all the content in `/autoinstrumentation{,-musl}` directory to your app's container. Then diff --git a/image/Dockerfile-beta b/image/Dockerfile-beta index 3d58176da..8704288e3 100644 --- a/image/Dockerfile-beta +++ b/image/Dockerfile-beta @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + # To build one auto-instrumentation image for Python, please: # - Ensure the packages are installed in the `/autoinstrumentation,{-musl}` directory. This is required as when instrumenting the pod, # one init container will be created to copy all the content in `/autoinstrumentation{,-musl}` directory to your app's container. Then From e7de42216ad97df71f9cf115f45eed5706ffa9c0 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 15:15:41 -0700 Subject: [PATCH 03/11] Add/Fix more headers --- lambda/otel_wrapper.py | 2 +- lambda/tests/mocks/lambda_function.py | 2 +- solarwinds_apm/oboe/transaction_name_calculator.py | 3 +++ solarwinds_apm/oboe/transaction_name_pool.py | 3 +++ solarwinds_apm/trace/__init__.py | 3 +++ tests/unit/test_apm_config/conftest.py | 2 ++ tests/unit/test_apm_config/fixtures/cnf_dict.py | 3 +++ tests/unit/test_apm_config/fixtures/cnf_file.py | 3 +++ tests/unit/test_apm_config/fixtures/env_vars.py | 3 +++ tests/unit/test_oboe/test_transaction_name_calculator.py | 3 +++ tests/unit/test_oboe/test_transaction_name_pool.py | 3 +++ 11 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lambda/otel_wrapper.py b/lambda/otel_wrapper.py index 7b7f9d713..c39db22fd 100644 --- a/lambda/otel_wrapper.py +++ b/lambda/otel_wrapper.py @@ -1,4 +1,4 @@ -# Copyright The OpenTelemetry Authors +# Copyright SolarWinds Worldwide, LLC. # SPDX-License-Identifier: Apache-2.0 """ diff --git a/lambda/tests/mocks/lambda_function.py b/lambda/tests/mocks/lambda_function.py index 2871d1c7e..a1ab11eec 100644 --- a/lambda/tests/mocks/lambda_function.py +++ b/lambda/tests/mocks/lambda_function.py @@ -1,4 +1,4 @@ -# Copyright The OpenTelemetry Authors +# Copyright SolarWinds Worldwide, LLC. # SPDX-License-Identifier: Apache-2.0 def handler(event, context): diff --git a/solarwinds_apm/oboe/transaction_name_calculator.py b/solarwinds_apm/oboe/transaction_name_calculator.py index 29a738692..7372bbad5 100644 --- a/solarwinds_apm/oboe/transaction_name_calculator.py +++ b/solarwinds_apm/oboe/transaction_name_calculator.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + """Transaction name resolution utilities for URL path processing.""" from __future__ import annotations diff --git a/solarwinds_apm/oboe/transaction_name_pool.py b/solarwinds_apm/oboe/transaction_name_pool.py index 0732b1b4e..27c1686f1 100644 --- a/solarwinds_apm/oboe/transaction_name_pool.py +++ b/solarwinds_apm/oboe/transaction_name_pool.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + """Transaction name pool with TTL-based expiration using a min-heap.""" import heapq diff --git a/solarwinds_apm/trace/__init__.py b/solarwinds_apm/trace/__init__.py index 93baf190d..5b3df5525 100644 --- a/solarwinds_apm/trace/__init__.py +++ b/solarwinds_apm/trace/__init__.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + """SolarWinds APM trace components including span processors for transaction naming and metrics.""" from .response_time_processor import ResponseTimeProcessor diff --git a/tests/unit/test_apm_config/conftest.py b/tests/unit/test_apm_config/conftest.py index 68dbd6482..bb8f0fa82 100644 --- a/tests/unit/test_apm_config/conftest.py +++ b/tests/unit/test_apm_config/conftest.py @@ -1,3 +1,5 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 """Pytest configuration and fixtures for test_apm_config tests.""" # Import all fixtures to make them available to tests diff --git a/tests/unit/test_apm_config/fixtures/cnf_dict.py b/tests/unit/test_apm_config/fixtures/cnf_dict.py index bba0e5358..3a3d82770 100644 --- a/tests/unit/test_apm_config/fixtures/cnf_dict.py +++ b/tests/unit/test_apm_config/fixtures/cnf_dict.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + import pytest diff --git a/tests/unit/test_apm_config/fixtures/cnf_file.py b/tests/unit/test_apm_config/fixtures/cnf_file.py index 41be65a26..dd584f47d 100644 --- a/tests/unit/test_apm_config/fixtures/cnf_file.py +++ b/tests/unit/test_apm_config/fixtures/cnf_file.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + import pytest diff --git a/tests/unit/test_apm_config/fixtures/env_vars.py b/tests/unit/test_apm_config/fixtures/env_vars.py index 50a9432b5..5d8536f03 100644 --- a/tests/unit/test_apm_config/fixtures/env_vars.py +++ b/tests/unit/test_apm_config/fixtures/env_vars.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + import os import pytest diff --git a/tests/unit/test_oboe/test_transaction_name_calculator.py b/tests/unit/test_oboe/test_transaction_name_calculator.py index 1e4f19fbb..29385db7f 100644 --- a/tests/unit/test_oboe/test_transaction_name_calculator.py +++ b/tests/unit/test_oboe/test_transaction_name_calculator.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + from solarwinds_apm.oboe.transaction_name_calculator import ( resolve_transaction_name, ) diff --git a/tests/unit/test_oboe/test_transaction_name_pool.py b/tests/unit/test_oboe/test_transaction_name_pool.py index 25cdcdcf8..52a9c94c0 100644 --- a/tests/unit/test_oboe/test_transaction_name_pool.py +++ b/tests/unit/test_oboe/test_transaction_name_pool.py @@ -1,3 +1,6 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + import time import pytest From f2909f0cc5f5c2026fff6f03d05c93abc5e85240 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 15:45:51 -0700 Subject: [PATCH 04/11] lint --- lambda/tests/mocks/lambda_function.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lambda/tests/mocks/lambda_function.py b/lambda/tests/mocks/lambda_function.py index a1ab11eec..01b4ebea8 100644 --- a/lambda/tests/mocks/lambda_function.py +++ b/lambda/tests/mocks/lambda_function.py @@ -1,5 +1,6 @@ # Copyright SolarWinds Worldwide, LLC. # SPDX-License-Identifier: Apache-2.0 + def handler(event, context): return "200 ok" From 8a086d3df923501070b8e31063faceae68375f93 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 15:46:13 -0700 Subject: [PATCH 05/11] Add tox license-header-check ci-cd --- .github/workflows/run_header_check.yaml | 29 +++++ scripts/check_license_header.py | 165 ++++++++++++++++++++++++ tox.ini | 7 +- 3 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/run_header_check.yaml create mode 100644 scripts/check_license_header.py diff --git a/.github/workflows/run_header_check.yaml b/.github/workflows/run_header_check.yaml new file mode 100644 index 000000000..cc0c96369 --- /dev/null +++ b/.github/workflows/run_header_check.yaml @@ -0,0 +1,29 @@ +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + +name: Run header license check + +on: + workflow_dispatch: + push: + branches: + - main + pull_request: + types: [opened, reopened] + +permissions: read-all + +jobs: + run_license_header_check: + name: license-header-check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - name: Setup Python 3.14 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: "3.14" + - name: Install tox + run: pip install tox + - name: Run tests + run: tox -e license-header-check diff --git a/scripts/check_license_header.py b/scripts/check_license_header.py new file mode 100644 index 000000000..0fd030da1 --- /dev/null +++ b/scripts/check_license_header.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 + +# Copyright SolarWinds Worldwide, LLC. +# SPDX-License-Identifier: Apache-2.0 + +import os +import sys +from pathlib import Path + +EXPECTED_LINES = ( + "# Copyright SolarWinds Worldwide, LLC.\n", + "# SPDX-License-Identifier: Apache-2.0\n", +) +EXPECTED_LINES_MD = ( + "\n", + "\n", +) + +SKIP_SUFFIXES = ( + ".json", + "README.md", + "CHANGELOG.md", + "CONTRIBUTING.md", + "SECURITY.md", + "version.py", +) + +SKIP_DIRS = ( + ".ruff_cache", + ".tox", + ".venv", + "__pycache__", + "dist", + "venv", +) + + +def should_skip(relpath: str) -> bool: + """Return whether a repository-relative path matches an exclusion. + + Args: + relpath: Path relative to the repository root, using OS separators. + + Returns: + True if a directory component is in SKIP_DIRS or the basename ends + with a suffix in SKIP_SUFFIXES; otherwise False. + """ + parts = relpath.split(os.sep) + if any(d in parts for d in SKIP_DIRS): + return True + basename = os.path.basename(relpath) + return any(basename.endswith(s) for s in SKIP_SUFFIXES) + + +def check_file(path: str | Path) -> bool: + """Check for the exact two-line license header at the start of a file. + + Markdown uses HTML comments; other files use hash comments. A leading + shebang and one following blank line are allowed before the header. + + Args: + path: File to read, as a path string or pathlib.Path. + + Returns: + True if the header matches or the file is empty or whitespace-only; + otherwise False. + + Raises: + OSError: If the file cannot be opened or read. + UnicodeError: If the file cannot be decoded using the default encoding. + """ + with open(path) as f: + lines = f.readlines() + + # Skip empty files (e.g. namespace __init__.py) + if not lines or all(line.strip() == "" for line in lines): + return True + + # If file starts with a shebang, check lines after it + start = 0 + if lines[0].startswith("#!"): + start = 1 + # Skip optional blank line after shebang + if start < len(lines) and lines[start].strip() == "": + start += 1 + + if len(lines) < start + 2: + return False + + expected_lines = ( + EXPECTED_LINES_MD if Path(path).suffix == ".md" else EXPECTED_LINES + ) + return ( + lines[start] == expected_lines[0] + and lines[start + 1] == expected_lines[1] + ) + + +def main() -> None: + """Check selected repository files and print the license-header results. + + Check Python, Markdown, shell, and PowerShell files, Dockerfile variants, + Docker Compose YAML, and GitHub Actions YAML. Skip configured exclusions, + virtual environments marked by pyvenv.cfg, and hidden directories other + than .github and .claude. + + Raises: + SystemExit: With status 1 if any checked file has a missing or invalid + license header. + """ + root = str(Path(__file__).resolve().parents[1]) + failures = [] + + for dirpath, dirnames, filenames in os.walk(root): + # Skip any arbitrarily-named Python virtual environment + if "pyvenv.cfg" in filenames: + dirnames[:] = [] + continue + + dirnames[:] = [ + d for d in dirnames + if not d.startswith(".") or d in (".github", ".claude") + ] + + for filename in filenames: + path = os.path.join(dirpath, filename) + relpath = os.path.relpath(path, root) + is_selected_yaml = filename.endswith((".yml", ".yaml")) and ( + filename.startswith("docker-compose") + or Path(relpath).parts[:2] in ( + (".github", "workflows"), + (".github", "actions"), + ) + ) + if not ( + filename.endswith((".py", ".md", ".sh", ".ps1")) + or filename.startswith("Dockerfile") + or is_selected_yaml + ): + continue + if should_skip(relpath): + continue + if not check_file(path): + failures.append(relpath) + + if failures: + print("Files missing the SPDX license header:") + print() + print(" Expected first two lines for non-Markdown files:") + for line in EXPECTED_LINES: + print(f" {line.rstrip()}") + print() + print(" Expected first two lines for Markdown:") + for line in EXPECTED_LINES_MD: + print(f" {line.rstrip()}") + print() + for f in sorted(failures): + print(f" {f}") + sys.exit(1) + + print("All files have the correct license header.") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tox.ini b/tox.ini index 42df68faf..b760f4a27 100644 --- a/tox.ini +++ b/tox.ini @@ -6,6 +6,7 @@ envlist = py3{10,11,12,13,14}-lambda py3{10,11,12,13,14}-lint ruff + license-header-check [testenv] setenv = @@ -54,4 +55,8 @@ basepython: python3 deps = pre-commit commands = - pre-commit run --color=always --all-files {posargs} \ No newline at end of file + pre-commit run --color=always --all-files {posargs} + +[testenv:license-header-check] +commands = + python {toxinidir}/scripts/check_license_header.py \ No newline at end of file From f3ffc8200a038cfe3a5fc3f51e69e89c6a74f9dc Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 15:52:17 -0700 Subject: [PATCH 06/11] ruff --- scripts/check_license_header.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/check_license_header.py b/scripts/check_license_header.py index 0fd030da1..4a844f79b 100644 --- a/scripts/check_license_header.py +++ b/scripts/check_license_header.py @@ -118,7 +118,8 @@ def main() -> None: continue dirnames[:] = [ - d for d in dirnames + d + for d in dirnames if not d.startswith(".") or d in (".github", ".claude") ] @@ -127,7 +128,8 @@ def main() -> None: relpath = os.path.relpath(path, root) is_selected_yaml = filename.endswith((".yml", ".yaml")) and ( filename.startswith("docker-compose") - or Path(relpath).parts[:2] in ( + or Path(relpath).parts[:2] + in ( (".github", "workflows"), (".github", "actions"), ) @@ -162,4 +164,4 @@ def main() -> None: if __name__ == "__main__": - main() \ No newline at end of file + main() From ed6e62e8b0b818f4d1c628c66f80b20a84343bac Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 16:00:17 -0700 Subject: [PATCH 07/11] OTel also accepted --- scripts/check_license_header.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/check_license_header.py b/scripts/check_license_header.py index 4a844f79b..bb7af956f 100644 --- a/scripts/check_license_header.py +++ b/scripts/check_license_header.py @@ -11,6 +11,10 @@ "# Copyright SolarWinds Worldwide, LLC.\n", "# SPDX-License-Identifier: Apache-2.0\n", ) +EXPECTED_LINES_OTEL = ( + "# Copyright The OpenTelemetry Authors\n", + "# SPDX-License-Identifier: Apache-2.0\n", +) EXPECTED_LINES_MD = ( "\n", "\n", @@ -57,6 +61,8 @@ def check_file(path: str | Path) -> bool: Markdown uses HTML comments; other files use hash comments. A leading shebang and one following blank line are allowed before the header. + Hash-comment headers may name SolarWinds Worldwide, LLC. or The + OpenTelemetry Authors; both require the Apache-2.0 SPDX identifier. Args: path: File to read, as a path string or pathlib.Path. @@ -87,13 +93,12 @@ def check_file(path: str | Path) -> bool: if len(lines) < start + 2: return False - expected_lines = ( - EXPECTED_LINES_MD if Path(path).suffix == ".md" else EXPECTED_LINES - ) - return ( - lines[start] == expected_lines[0] - and lines[start + 1] == expected_lines[1] + expected_headers = ( + (EXPECTED_LINES_MD,) + if Path(path).suffix == ".md" + else (EXPECTED_LINES, EXPECTED_LINES_OTEL) ) + return tuple(lines[start : start + 2]) in expected_headers def main() -> None: @@ -151,6 +156,9 @@ def main() -> None: print(" Expected first two lines for non-Markdown files:") for line in EXPECTED_LINES: print(f" {line.rstrip()}") + print(" Or:") + for line in EXPECTED_LINES_OTEL: + print(f" {line.rstrip()}") print() print(" Expected first two lines for Markdown:") for line in EXPECTED_LINES_MD: From 34c1cc44038f7c0fa6c8e83f6f966eb174390060 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 16:01:25 -0700 Subject: [PATCH 08/11] Some otel revert --- lambda/otel_wrapper.py | 2 +- lambda/tests/mocks/lambda_function.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lambda/otel_wrapper.py b/lambda/otel_wrapper.py index c39db22fd..7b7f9d713 100644 --- a/lambda/otel_wrapper.py +++ b/lambda/otel_wrapper.py @@ -1,4 +1,4 @@ -# Copyright SolarWinds Worldwide, LLC. +# Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 """ diff --git a/lambda/tests/mocks/lambda_function.py b/lambda/tests/mocks/lambda_function.py index 01b4ebea8..bf389b8f3 100644 --- a/lambda/tests/mocks/lambda_function.py +++ b/lambda/tests/mocks/lambda_function.py @@ -1,4 +1,4 @@ -# Copyright SolarWinds Worldwide, LLC. +# Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 From 8c10cce41826178bb7ac0612b55de690b0f98a9d Mon Sep 17 00:00:00 2001 From: Tammy Baylis <96076570+tammy-baylis-swi@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:02:51 -0700 Subject: [PATCH 09/11] Update pull request types to include 'synchronize' Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/run_header_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_header_check.yaml b/.github/workflows/run_header_check.yaml index cc0c96369..5f6ff6d5f 100644 --- a/.github/workflows/run_header_check.yaml +++ b/.github/workflows/run_header_check.yaml @@ -9,7 +9,7 @@ on: branches: - main pull_request: - types: [opened, reopened] + types: [opened, reopened, synchronize] permissions: read-all From 2e069ecf82534a76c57cc09270324635ed809a63 Mon Sep 17 00:00:00 2001 From: Tammy Baylis <96076570+tammy-baylis-swi@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:03:22 -0700 Subject: [PATCH 10/11] Refactor license header check for file types Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- scripts/check_license_header.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/check_license_header.py b/scripts/check_license_header.py index bb7af956f..a6b071b3c 100644 --- a/scripts/check_license_header.py +++ b/scripts/check_license_header.py @@ -142,6 +142,8 @@ def main() -> None: if not ( filename.endswith((".py", ".md", ".sh", ".ps1")) or filename.startswith("Dockerfile") + or filename == "Makefile" + or relpath == os.path.join("lambda", "solarwinds-apm", "wrapper") or is_selected_yaml ): continue From 070261c360e016908f91e355567a70b505c74d51 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Wed, 14 Oct 2026 16:07:24 -0700 Subject: [PATCH 11/11] Fix md header placement --- .github/ISSUE_TEMPLATE/feature_request.md | 5 +++-- .github/ISSUE_TEMPLATE/regular_bug_report.md | 5 +++-- .../python-security-vulnerability-agent.md | 6 +++--- .github/instructions/python.instructions.md | 5 +++-- scripts/check_license_header.py | 18 ++++++++++++++++-- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 4daf7d6bd..17d81888b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,11 +1,12 @@ - - --- name: Feature Request about: Suggest an idea for this project labels: feature-request --- + + + **Current feature** Describe the current behavior or issue, with steps for how to reproduce and any applicable code sample. diff --git a/.github/ISSUE_TEMPLATE/regular_bug_report.md b/.github/ISSUE_TEMPLATE/regular_bug_report.md index 131bbd609..1de373fda 100644 --- a/.github/ISSUE_TEMPLATE/regular_bug_report.md +++ b/.github/ISSUE_TEMPLATE/regular_bug_report.md @@ -1,11 +1,12 @@ - - --- name: Regular Bug Report about: Report a non-security bug to help us improve labels: bug --- + + + **Environment** Please add as much information as you can, such as: Python version, platform, installed dependencies and their version numbers, hosting, code examples or gists, steps to reproduce, stack traces, and logs. SolarWinds project maintainers may ask for clarification or more context after submission. diff --git a/.github/agents/python-security-vulnerability-agent.md b/.github/agents/python-security-vulnerability-agent.md index 5b0e448ff..69f3c58a4 100644 --- a/.github/agents/python-security-vulnerability-agent.md +++ b/.github/agents/python-security-vulnerability-agent.md @@ -1,11 +1,11 @@ - - - --- name: python-security-vulnerability-agent description: Fixes Python security vulnerabilities from Dependabot alerts. Upgrades vulnerable direct and transitive dependencies in Python projects. --- + + + ## Python Security Vulnerability Agent You are an agent that fixes vulnerable dependencies identified by Dependabot alerts in Python projects. diff --git a/.github/instructions/python.instructions.md b/.github/instructions/python.instructions.md index d04129efb..608a7c2ee 100644 --- a/.github/instructions/python.instructions.md +++ b/.github/instructions/python.instructions.md @@ -1,10 +1,11 @@ - - --- applyTo: "**/*.py" description: 'Python coding conventions and guidelines' --- + + + ## Python Coding Conventions ### Codebase Patterns to Follow diff --git a/scripts/check_license_header.py b/scripts/check_license_header.py index a6b071b3c..131e32ea3 100644 --- a/scripts/check_license_header.py +++ b/scripts/check_license_header.py @@ -57,10 +57,12 @@ def should_skip(relpath: str) -> bool: def check_file(path: str | Path) -> bool: - """Check for the exact two-line license header at the start of a file. + """Check for an exact two-line license header before the file's content. Markdown uses HTML comments; other files use hash comments. A leading shebang and one following blank line are allowed before the header. + Markdown headers may follow a leading YAML front-matter block and + separating blank lines. An unclosed front-matter block is rejected. Hash-comment headers may name SolarWinds Worldwide, LLC. or The OpenTelemetry Authors; both require the Apache-2.0 SPDX identifier. @@ -90,6 +92,16 @@ def check_file(path: str | Path) -> bool: if start < len(lines) and lines[start].strip() == "": start += 1 + if Path(path).suffix == ".md" and lines[0].strip() == "---": + for index in range(1, len(lines)): + if lines[index].strip() == "---": + start = index + 1 + break + else: + return False + while start < len(lines) and not lines[start].strip(): + start += 1 + if len(lines) < start + 2: return False @@ -143,7 +155,8 @@ def main() -> None: filename.endswith((".py", ".md", ".sh", ".ps1")) or filename.startswith("Dockerfile") or filename == "Makefile" - or relpath == os.path.join("lambda", "solarwinds-apm", "wrapper") + or relpath + == os.path.join("lambda", "solarwinds-apm", "wrapper") or is_selected_yaml ): continue @@ -163,6 +176,7 @@ def main() -> None: print(f" {line.rstrip()}") print() print(" Expected first two lines for Markdown:") + print(" (after any leading YAML front matter and blank lines):") for line in EXPECTED_LINES_MD: print(f" {line.rstrip()}") print()