Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d3d369c
Adding internal/manifest package from Cross-Platform AppHealth Featur…
klugorosado Apr 16, 2024
0b98aa5
Running go mod tidy and go mod vendor
klugorosado Apr 16, 2024
799103a
- Add manifest.xml to Extension folder
klugorosado Apr 16, 2024
ff2cff0
Update Go version to 1.18 in Dockerfile
klugorosado Apr 16, 2024
4a5e227
Add logging package with NopLogger implementation
klugorosado Apr 18, 2024
b6e0f87
Add telemetry package for logging events
klugorosado Apr 18, 2024
ce4fd93
- Add telemetry event Logging to main.go
klugorosado Apr 18, 2024
4c3ac13
- Add new String() methods to vmWatchSignalFilters and vmWatchSetting…
klugorosado Apr 18, 2024
ec6369b
- Add telemetry event Logging to reportstatus.go
klugorosado Apr 18, 2024
a88017e
Add telemetry event Logging to health.go
klugorosado Apr 18, 2024
bb01892
Refactor install handler in main/cmds.go to use telemetry event logging
klugorosado Apr 18, 2024
4c380dc
Refactor uninstall handler in main/cmds.go to use telemetry event log…
klugorosado Apr 18, 2024
984882d
Refactor enable handler function in main/cmds.go to use telemetry eve…
klugorosado Apr 18, 2024
9b53587
Refactor vmWatch.go to use telemetry event logging
klugorosado Apr 18, 2024
eda0265
Fix requestPath in extension-settings.json and updated 2 integration …
klugorosado Apr 18, 2024
b2f4f4f
ran go mod tidy && go mod vendor
klugorosado Apr 18, 2024
8da2ef9
Update ExtensionManifest version to 2.0.9 on UT
klugorosado Apr 18, 2024
e6646aa
Refactor telemetry event sender to use EventLevel constants in main/t…
klugorosado Apr 18, 2024
b9bf83f
Refactor telemetry event sender to use EventTasks constants that matc…
klugorosado Apr 23, 2024
687327f
Update logging messages in 7_vmwatch.bats
klugorosado Apr 23, 2024
4cdbe4e
Moved telemetry.go to its package in internal/telemetry
klugorosado Apr 23, 2024
b030175
Update Go version to 1.22 in Dockerfile, go.yml, go.mod, and go.sum
klugorosado Apr 23, 2024
fb096c7
Update ExtensionManifest version to 2.0.9 on UT
klugorosado Apr 26, 2024
efb1fb9
Merge branch 'feature/v2/bootstrapVMWatch' into feature/v2/bootstrapV…
klugorosado Apr 26, 2024
138a80c
Add NopLogger documentation to pkg/logging/logging.go
klugorosado Apr 26, 2024
07b3877
Added Documentation to Telemetry Pkg
klugorosado Apr 26, 2024
b9584e9
-Added a Wrapper to HandlerEnviroment to add Additional functionality…
klugorosado Apr 30, 2024
f81e2e8
- Updated HandlerEnviroment String to use MarshallIndent Function.
klugorosado May 1, 2024
4e119d3
- Updated vmWatchSetting String Func to use MarshallIdent
klugorosado May 1, 2024
81e7d77
Update ExtensionManifest version to 2.0.10 on Failing UT
klugorosado May 1, 2024
2594ef1
Merge remote-tracking branch 'origin/feature/v2/bootstrapVMWatch' int…
klugorosado May 1, 2024
7c33d6c
removed duplicated UT
klugorosado May 1, 2024
8b1512e
Removed String() func from VMWatchSignalFilters, publicSettings and p…
klugorosado May 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/devcontainers/go:1.21-bullseye
FROM mcr.microsoft.com/devcontainers/go:1.18-bullseye

RUN apt-get -qqy update && \
apt-get -qqy install jq openssl ca-certificates && \
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/extension-settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"handlerSettings": {
"protectedSettingsCertThumbprint": "$cert_tp",
"publicSettings": {
"requestPath": "health",
"requestPath": "/health",
"port": 8080,
"numberOfProbes": 1,
"intervalInSeconds": 5,
Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,20 @@ jobs:
sudo apt install npm
sudo npm install -g bats

- name: Setup bats libs
uses: bats-core/bats-action@1.5.6
with:
assert-install: true
support-install: true
bats-install: false
detik-install: false
file-install: false

- name: Testing Bats Installation
run: |
bats --version
sudo bats --version

- name: Install Parallel
run: |
sudo apt install parallel
Expand All @@ -79,7 +93,7 @@ jobs:
working-directory: ${{ env.repo_root }}

- name: Unit Tests
continue-on-error: true
continue-on-error: false
run: go list ./... | grep -v '/vendor/' | xargs go test -v -cover
working-directory: ${{ env.repo_root }}

Expand Down
6 changes: 4 additions & 2 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"recommendations": [
"golang.go",
"ms-vscode-remote.remote-containers",
"ms-vscode-remote.remote-ssh"
"ms-vscode-remote.remote-ssh",
"github.copilot",
"ms-azuretools.vscode-docker",
"github.vscode-pull-request-github"
]
}
14 changes: 7 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
module github.com/Azure/run-command-extension-linux
module github.com/Azure/applicationhealth-extension-linux

go 1.18

require (
github.com/Azure/azure-docker-extension v0.0.0-20160802215703-0dd2f199467d
github.com/Azure/azure-extension-platform v0.0.0-20240327184133-73b5b3b55955
github.com/containerd/cgroups/v3 v3.0.2
github.com/go-kit/kit v0.1.1-0.20160721083846-b076b44dbec2
github.com/opencontainers/runtime-spec v1.0.2
github.com/pkg/errors v0.7.1-0.20160627222352-a2d6902c6d2a
github.com/pkg/errors v0.9.1
github.com/stretchr/testify v1.8.0
github.com/xeipuuv/gojsonschema v0.0.0-20160623135812-c539bca196be
)

require github.com/go-kit/log v0.2.0

require (
github.com/cilium/ebpf v0.9.1 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/docker/go-units v0.4.0 // indirect
github.com/go-logfmt/logfmt v0.2.1-0.20160601130801-d4327190ff83 // indirect
github.com/go-stack/stack v1.5.2 // indirect
github.com/go-logfmt/logfmt v0.5.1 // indirect
github.com/godbus/dbus/v5 v5.0.4 // indirect
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 // indirect
github.com/google/go-cmp v0.5.8 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20151027082146-e0fe6f683076 // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20150808065054-e02fc20de94c // indirect
golang.org/x/sys v0.2.0 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
25 changes: 12 additions & 13 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
github.com/Azure/azure-docker-extension v0.0.0-20160802215703-0dd2f199467d h1:IZq7wAvhHb/IObHOh8RHClV2zv4dHh5MrHdRWTTIwe0=
github.com/Azure/azure-docker-extension v0.0.0-20160802215703-0dd2f199467d/go.mod h1:tVA4DYQYxotjw+EkJhfywtM99w7nAOatBvgNAkpsBvk=
github.com/Azure/azure-extension-platform v0.0.0-20240327184133-73b5b3b55955 h1:klRZMtNE2mFdG8mO3+Ep7Armk1oewdw/7Z4nANDiGgk=
github.com/Azure/azure-extension-platform v0.0.0-20240327184133-73b5b3b55955/go.mod h1:nEQQIC3RKmMnpdc+RakYHIdu556jdcHv67ML8PdsQeQ=
github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4=
github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY=
github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=
Expand All @@ -12,25 +14,24 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss=
github.com/go-kit/kit v0.1.1-0.20160721083846-b076b44dbec2 h1:awXynDTA1TiAp1SA/o/xoU6oRHE3xKCokck9l4/poMc=
github.com/go-kit/kit v0.1.1-0.20160721083846-b076b44dbec2/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.2.1-0.20160601130801-d4327190ff83 h1:WEFlTYvIQSd2ofUwgM9nOR+KTzdG/pLZzdUlDp6mciM=
github.com/go-logfmt/logfmt v0.2.1-0.20160601130801-d4327190ff83/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-stack/stack v1.5.2 h1:5sTB/0oZM2O31k/N1IRwxxVXzLIt5NF2Aqx/2gWI9OY=
github.com/go-stack/stack v1.5.2/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-kit/log v0.2.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw=
github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0=
github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/pkg/errors v0.7.1-0.20160627222352-a2d6902c6d2a h1:dKpZ0nc8i7prliB4AIfJulQxsX7whlVwi6j5HqaYUl4=
github.com/pkg/errors v0.7.1-0.20160627222352-a2d6902c6d2a/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
Expand All @@ -53,8 +54,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
Expand Down
1 change: 1 addition & 0 deletions integration-test/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@ err1=$?
bats integration-test/test/parallel --jobs 10 -T --trace $FILTER
err2=$?
delete_certificate
rm_image
exit $((err1 + err2))
5 changes: 2 additions & 3 deletions integration-test/test/parallel/2_handler-commands.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
build_docker_image
container_name="handler-command_$BATS_TEST_NUMBER"
}
Expand All @@ -19,7 +18,7 @@ teardown(){
run start_container
echo "$output"
[ "$status" -eq 0 ]
[[ "$output" = *'event=installed'* ]]
[[ "$output" = *'event="Handler successfully installed"'* ]]

diff="$(container_diff)"
echo "$diff"
Expand Down
3 changes: 1 addition & 2 deletions integration-test/test/parallel/3_rich-states.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
build_docker_image
container_name="rich-states_$BATS_TEST_NUMBER"
}
Expand Down
3 changes: 1 addition & 2 deletions integration-test/test/parallel/4_grace-period.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
build_docker_image
container_name="grace-period_$BATS_TEST_NUMBER"
}
Expand Down
3 changes: 1 addition & 2 deletions integration-test/test/parallel/5_custom-metrics.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
build_docker_image
container_name="custom-metrics_$BATS_TEST_NUMBER"
}
Expand Down
3 changes: 1 addition & 2 deletions integration-test/test/parallel/6_tls-config.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
build_docker_image
container_name="tls-config_$BATS_TEST_NUMBER"
}
Expand Down
8 changes: 5 additions & 3 deletions integration-test/test/parallel/7_vmwatch.bats
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bats

load ../test_helper

setup(){
load "../test_helper"
_load_bats_libs
build_docker_image
container_name="vmwatch_$BATS_TEST_NUMBER"
extension_version=$(get_extension_version)
Expand All @@ -11,6 +11,7 @@ setup(){

teardown(){
rm -rf "$certs_dir"
cleanup
}

@test "handler command: enable - vm watch disabled - vmwatch settings omitted" {
Expand Down Expand Up @@ -410,7 +411,8 @@ teardown(){

[[ "$output" == *'Invoking: /var/lib/waagent/Extension/bin/applicationhealth-shim uninstall'* ]]
[[ "$output" == *'applicationhealth-extension process terminated'* ]]
[[ "$output" == *'operation=uninstall seq=0 path=/var/lib/waagent/apphealth event=uninstalled'* ]]
any_regex_pattern="[[:digit:]|[:space:]|[:alpha:]|[:punct:]]"
assert_line --regexp "operation=uninstall seq=0 path=/var/lib/waagent/apphealth ${any_regex_pattern}* event=\"Handler successfully uninstalled\""
}

@test "handler command: enable - Graceful Shutdown - vm watch killed when Apphealth is killed gracefully with SIGTERM" {
Expand Down
5 changes: 3 additions & 2 deletions integration-test/test/sequential/1_basic.bats
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/usr/bin/env bats

load ../test_helper

setup() {
load "../test_helper"
}
@test "meta: docker is installed" {
run docker version
echo "$output">&2
Expand Down
34 changes: 18 additions & 16 deletions integration-test/test/test_helper.bash
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,15 @@ TEST_CONTAINER=test

certs_dir="$BATS_TEST_DIRNAME/certs"

# This function builds a Docker image for testing purposes.
# If the image already exists, a random number is appended to the name.
# a unique name is needed to avoid conflicts with other tests while running in parallel.
# This function builds a Docker image for testing purposes, if it already doesn't exist.
build_docker_image() {
# Generate a base name for the image
BASE_IMAGE_NAME=$IMAGE
# Loop until we find a unique image name
while [ -n "$(docker images -q $IMAGE)" ]; do
# Append the counter to the base image name
IMAGE="${BASE_IMAGE_NAME}_$RANDOM"
done

# Check if the image already exists
if [ -z "$(docker images -q $IMAGE)" ]; then
echo "Building test image $IMAGE..."
docker build -q -f $DOCKERFILE -t $IMAGE . 1>&2
else
echo "Test image $IMAGE already exists. Skipping build."
fi
}

in_tmp_container() {
Expand All @@ -29,7 +24,6 @@ in_tmp_container() {
cleanup() {
echo "Cleaning up...">&2
rm_container
rm_image
}

rm_container() {
Expand Down Expand Up @@ -185,25 +179,26 @@ copy_config() { # places specified settings file ($1) into container as 0.settin
}

# first argument is the string containing healthextension logs separated by newline
# it also expects the time={time in TZ format} version={version} to be in each log line
# it also expects the time={time in TZ format} level... to be in each log line
# second argument is an array of expected time difference (in seconds) between previous log
# for example: [5,10] means that the expected time difference between second log and first log is 5 seconds
# and time difference between third log and second log is 10 seconds
verify_state_change_timestamps() {
expectedTimeDifferences="$2"
regex='time=(.*) version=(.*)'
regex='time=([^[:space:]]*)' # regex to extract time from log line, will select everything until a space is found
prevDate=""
index=0
while IFS=$'\n' read -ra enableLogs; do
for i in "${!enableLogs[@]}"; do
[[ $enableLogs[index] =~ $regex ]]
currentDate=${BASH_REMATCH[1]}
if [[ ! -z "$prevDate" ]]; then
diff=$(( $(date -d "${BASH_REMATCH[1]}" "+%s") - $(date -d "$prevDate" "+%s") ))
diff=$(( $(date -d "$currentDate" "+%s") - $(date -d "$prevDate" "+%s") ))
echo "Actual time difference is: $diff and expected is: ${expectedTimeDifferences[$index-1]}"
[[ "$diff" -ge "${expectedTimeDifferences[$index-1]}" ]]
fi
index=$index+1
prevDate=${BASH_REMATCH[1]}
prevDate=$currentDate
done
done <<< "$1"
}
Expand Down Expand Up @@ -289,3 +284,10 @@ kill_apphealth_extension_gracefully() {
# echo "Printing the process list after killing the applicationhealth extension"
ps -ef | grep -e "applicationhealth-extension" -e "vmwatch_linux_amd64" | grep -v grep
}

_load_bats_libs() {
export BATS_LIB_PATH=${CUSTOM_BATS_LIB_PATH:-"/usr/lib:/usr/local/lib/node_modules"}
echo "BATS_LIB_PATH: $BATS_LIB_PATH"
bats_load_library bats-support
bats_load_library bats-assert
}
16 changes: 16 additions & 0 deletions internal/handlerenv/handlerenv.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package handlerenv

import (
"github.com/Azure/applicationhealth-extension-linux/internal/manifest"
"github.com/Azure/azure-extension-platform/pkg/handlerenv"
)

type HandlerEnvironment = handlerenv.HandlerEnvironment

func GetHandlerEnviroment() (he *HandlerEnvironment, _ error) {
em, err := manifest.GetExtensionManifest()
if err != nil {
return nil, err
}
return handlerenv.GetHandlerEnvironment(em.Name(), em.Version)
}
Loading