Skip to content

Commit

Permalink
Merge branch 'dev' into fix/pin-docs-python-version
Browse files Browse the repository at this point in the history
  • Loading branch information
lgarber-akamai authored Nov 25, 2024
2 parents b456bde + f26d3a5 commit 3a2a740
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 92 deletions.
81 changes: 26 additions & 55 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,59 +196,30 @@ jobs:
- name: Notify Slack
uses: slackapi/slack-github-action@v2.0.0
with:
channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
method: chat.postMessage
token: ${{ secrets.SLACK_BOT_TOKEN }}
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ":rocket: *${{ github.workflow }} Completed in: ${{ github.repository }}* :white_check_mark:"
}
},
{
"type": "divider"
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Build Result:*\n${{ needs.integration-tests.result == 'success' && ':large_green_circle: Build Passed' || ':red_circle: Build Failed' }}"
},
{
"type": "mrkdwn",
"text": "*Branch:*\n`${{ github.ref_name }}`"
}
]
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Commit Hash:*\n<${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>"
},
{
"type": "mrkdwn",
"text": "*Run URL:*\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run Details>"
}
]
},
{
"type": "divider"
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "Triggered by: :bust_in_silhouette: `${{ github.actor }}`"
}
]
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
channel: ${{ secrets.SLACK_CHANNEL_ID }}
blocks:
- type: section
text:
type: mrkdwn
text: ":rocket: *${{ github.workflow }} Completed in: ${{ github.repository }}* :white_check_mark:"
- type: divider
- type: section
fields:
- type: mrkdwn
text: "*Build Result:*\n${{ needs.integration-tests.result == 'success' && ':large_green_circle: Build Passed' || ':red_circle: Build Failed' }}"
- type: mrkdwn
text: "*Branch:*\n`${{ github.ref_name }}`"
- type: section
fields:
- type: mrkdwn
text: "*Commit Hash:*\n<${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>"
- type: mrkdwn
text: "*Run URL:*\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run Details>"
- type: divider
- type: context
elements:
- type: mrkdwn
text: "Triggered by: :bust_in_silhouette: `${{ github.actor }}`"
34 changes: 8 additions & 26 deletions .github/workflows/release-notify-slack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,12 @@ jobs:
id: main_message
uses: slackapi/slack-github-action@v2.0.0
with:
channel-id: ${{ secrets.DEV_DX_SLACK_CHANNEL_ID }}
method: chat.postMessage
token: ${{ secrets.SLACK_BOT_TOKEN }}
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*New Release Published: _ansible_linode_ - ${{ github.event.release.tag_name }} is now live!* :tada:"
}
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}

- name: Notify Slack - Threaded Release Notes
uses: slackapi/slack-github-action@v2.0.0
with:
channel-id: ${{ secrets.DEV_DX_SLACK_CHANNEL_ID }}
payload: |
{
"thread_ts": "${{ steps.main_message.outputs.ts }}",
"text": "*<${{ github.event.release.html_url }}| ${{ github.event.release.tag_name }} Release notes>*"
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
channel: ${{ secrets.DEV_DX_SLACK_CHANNEL_ID }}
blocks:
- type: section
text:
type: mrkdwn
text: "*New Release Published: _ansible_linode_ <${{ github.event.release.html_url }}|${{ github.event.release.tag_name }}> is now live!* :tada:"
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ install: build
ansible-galaxy collection install *.tar.gz --force -p $(COLLECTIONS_PATH)

deps:
pip install -r requirements.txt -r requirements-dev.txt --upgrade
pip install -r requirements.txt -r requirements-dev.txt --force

lint:
pylint plugins
Expand Down
3 changes: 1 addition & 2 deletions plugins/module_utils/linode_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import polling
from ansible_collections.linode.cloud.plugins.module_utils.linode_helper import (
format_api_error,
format_generic_error,
)

Expand Down Expand Up @@ -159,7 +158,7 @@ def __init__(
res = self.exec_module(**self.module.params)
except ApiError as err:
# We don't want to return a stack trace for an API error
self.fail(msg=format_api_error(err))
self.fail(msg=f"Error from Linode API: {str(err)}")
except polling.TimeoutException as err:
self.fail(
msg="failed to wait for condition: timeout period expired"
Expand Down
7 changes: 0 additions & 7 deletions plugins/module_utils/linode_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import linode_api4
import polling
from linode_api4 import (
ApiError,
LinodeClient,
LKENodePool,
LKENodePoolNode,
Expand Down Expand Up @@ -329,12 +328,6 @@ def get_all_paginated(
return result


def format_api_error(err: ApiError) -> str:
"""Formats an API error into a readable string"""

return f"Error from Linode API: [{err.status}] {';'.join(err.errors)}"


def format_generic_error(err: Exception) -> str:
"""Formats a generic error into a readable string"""

Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
linode-api4>=5.22.0
linode-api4>=5.24.0
polling==0.3.2
ansible-specdoc>=0.0.15
24 changes: 24 additions & 0 deletions tests/integration/targets/api_error/tasks/main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
- name: api_error
block:
- name: Attempt to create an instance with validation errors
linode.cloud.instance:
region: fake-region
type: g6-fake-plan
state: present
register: failing_request
failed_when: '"msg" not in failing_request'

- name: Ensure the error message is formatted as expected
assert:
that:
- failing_request.changed == False
- 'failing_request.msg.startswith("Error from Linode API: POST /v4beta/linode/instances: [400]")'
- '"type: A valid plan type by that ID was not found" in failing_request.msg'
- '"region: region is not valid" in failing_request.msg'

environment:
LINODE_UA_PREFIX: '{{ ua_prefix }}'
LINODE_API_TOKEN: '{{ api_token }}'
LINODE_API_URL: '{{ api_url }}'
LINODE_API_VERSION: '{{ api_version }}'
LINODE_CA: '{{ ca_file or "" }}'

0 comments on commit 3a2a740

Please sign in to comment.