-
Notifications
You must be signed in to change notification settings - Fork 407
feat(medialive): add Elemental MediaLive modules to community collection #2318
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Docs Build 📝Thank you for contribution!✨ The docsite for this PR is available for download as an artifact from this run: You can compare to the docs for the File changes:
Click to see the diff comparison.NOTE: only file modifications are shown here. New and deleted files are excluded. diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/index.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/index.html
index 75011d0..c9f2a56 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/index.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/index.html
@@ -266,6 +266,20 @@
<li><p><a class="reference internal" href="lightsail_module.html#ansible-collections-community-aws-lightsail-module"><span class="std std-ref">lightsail module</span></a> – Manage instances in AWS Lightsail</p></li>
<li><p><a class="reference internal" href="lightsail_snapshot_module.html#ansible-collections-community-aws-lightsail-snapshot-module"><span class="std std-ref">lightsail_snapshot module</span></a> – Creates snapshots of AWS Lightsail instances</p></li>
<li><p><a class="reference internal" href="lightsail_static_ip_module.html#ansible-collections-community-aws-lightsail-static-ip-module"><span class="std std-ref">lightsail_static_ip module</span></a> – Manage static IP addresses in AWS Lightsail</p></li>
+<li><p><a class="reference internal" href="medialive_channel_module.html#ansible-collections-community-aws-medialive-channel-module"><span class="std std-ref">medialive_channel module</span></a> –</p></li>
+<li><p><a class="reference internal" href="medialive_channel_placement_group_module.html#ansible-collections-community-aws-medialive-channel-placement-group-module"><span class="std std-ref">medialive_channel_placement_group module</span></a> – Manage AWS MediaLive Channel Placement Groups</p></li>
+<li><p><a class="reference internal" href="medialive_channel_placement_group_info_module.html#ansible-collections-community-aws-medialive-channel-placement-group-info-module"><span class="std std-ref">medialive_channel_placement_group_info module</span></a> – Get information about an AWS MediaLive Channel Placement Group</p></li>
+<li><p><a class="reference internal" href="medialive_cluster_module.html#ansible-collections-community-aws-medialive-cluster-module"><span class="std std-ref">medialive_cluster module</span></a> – Manage AWS MediaLive Anywhere clusters</p></li>
+<li><p><a class="reference internal" href="medialive_cluster_info_module.html#ansible-collections-community-aws-medialive-cluster-info-module"><span class="std std-ref">medialive_cluster_info module</span></a> – Gather MediaLive Anywhere cluster info</p></li>
+<li><p><a class="reference internal" href="medialive_input_module.html#ansible-collections-community-aws-medialive-input-module"><span class="std std-ref">medialive_input module</span></a> – Manage AWS MediaLive Anywhere inputs</p></li>
+<li><p><a class="reference internal" href="medialive_input_info_module.html#ansible-collections-community-aws-medialive-input-info-module"><span class="std std-ref">medialive_input_info module</span></a> – Gather MediaLive Anywhere input info</p></li>
+<li><p><a class="reference internal" href="medialive_network_module.html#ansible-collections-community-aws-medialive-network-module"><span class="std std-ref">medialive_network module</span></a> – Manage AWS MediaLive Anywhere networks</p></li>
+<li><p><a class="reference internal" href="medialive_network_info_module.html#ansible-collections-community-aws-medialive-network-info-module"><span class="std std-ref">medialive_network_info module</span></a> – Gather MediaLive Anywhere network info</p></li>
+<li><p><a class="reference internal" href="medialive_node_module.html#ansible-collections-community-aws-medialive-node-module"><span class="std std-ref">medialive_node module</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="medialive_node_info_module.html#ansible-collections-community-aws-medialive-node-info-module"><span class="std std-ref">medialive_node_info module</span></a> – Gather AWS MediaLive Anywhere node info</p></li>
+<li><p><a class="reference internal" href="medialive_node_registration_module.html#ansible-collections-community-aws-medialive-node-registration-module"><span class="std std-ref">medialive_node_registration module</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="medialive_sdi_source_module.html#ansible-collections-community-aws-medialive-sdi-source-module"><span class="std std-ref">medialive_sdi_source module</span></a> – Manage AWS MediaLive Anywhere SDI sources</p></li>
+<li><p><a class="reference internal" href="medialive_sdi_source_info_module.html#ansible-collections-community-aws-medialive-sdi-source-info-module"><span class="std std-ref">medialive_sdi_source_info module</span></a> – Gather AWS MediaLive Anywhere SDI source info</p></li>
<li><p><a class="reference internal" href="mq_broker_module.html#ansible-collections-community-aws-mq-broker-module"><span class="std std-ref">mq_broker module</span></a> – MQ broker management</p></li>
<li><p><a class="reference internal" href="mq_broker_config_module.html#ansible-collections-community-aws-mq-broker-config-module"><span class="std std-ref">mq_broker_config module</span></a> – Update Amazon MQ broker configuration</p></li>
<li><p><a class="reference internal" href="mq_broker_info_module.html#ansible-collections-community-aws-mq-broker-info-module"><span class="std std-ref">mq_broker_info module</span></a> – Retrieve MQ Broker details</p></li>
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/lightsail_static_ip_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/lightsail_static_ip_module.html
index 1924db9..c793840 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/lightsail_static_ip_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/lightsail_static_ip_module.html
@@ -22,7 +22,7 @@
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="search" title="Search" href="../../../search.html" />
- <link rel="next" title="community.aws.mq_broker module – MQ broker management" href="mq_broker_module.html" />
+ <link rel="next" title="community.aws.medialive_channel module" href="medialive_channel_module.html" />
<link rel="prev" title="community.aws.lightsail_snapshot module – Creates snapshots of AWS Lightsail instances" href="lightsail_snapshot_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
@@ -385,7 +385,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-light
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="lightsail_snapshot_module.html" class="btn btn-neutral float-left" title="community.aws.lightsail_snapshot module – Creates snapshots of AWS Lightsail instances" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
- <a href="mq_broker_module.html" class="btn btn-neutral float-right" title="community.aws.mq_broker module – MQ broker management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="medialive_channel_module.html" class="btn btn-neutral float-right" title="community.aws.medialive_channel module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/mq_broker_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/mq_broker_module.html
index 49f3f3c..b8e3f0b 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/mq_broker_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/mq_broker_module.html
@@ -23,7 +23,7 @@
<script src="../../../_static/js/theme.js"></script>
<link rel="search" title="Search" href="../../../search.html" />
<link rel="next" title="community.aws.mq_broker_config module – Update Amazon MQ broker configuration" href="mq_broker_config_module.html" />
- <link rel="prev" title="community.aws.lightsail_static_ip module – Manage static IP addresses in AWS Lightsail" href="lightsail_static_ip_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
+ <link rel="prev" title="community.aws.medialive_sdi_source_info module – Gather AWS MediaLive Anywhere SDI source info" href="medialive_sdi_source_info_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
@@ -653,7 +653,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-mq-br
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
- <a href="lightsail_static_ip_module.html" class="btn btn-neutral float-left" title="community.aws.lightsail_static_ip module – Manage static IP addresses in AWS Lightsail" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="medialive_sdi_source_info_module.html" class="btn btn-neutral float-left" title="community.aws.medialive_sdi_source_info module – Gather AWS MediaLive Anywhere SDI source info" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="mq_broker_config_module.html" class="btn btn-neutral float-right" title="community.aws.mq_broker_config module – Update Amazon MQ broker configuration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/index_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/index_module.html
index 4c73fae..48cb16c 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/index_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/index_module.html
@@ -209,6 +209,20 @@
<li><p><a class="reference internal" href="community/aws/lightsail_module.html#ansible-collections-community-aws-lightsail-module"><span class="std std-ref">community.aws.lightsail</span></a> – Manage instances in AWS Lightsail</p></li>
<li><p><a class="reference internal" href="community/aws/lightsail_snapshot_module.html#ansible-collections-community-aws-lightsail-snapshot-module"><span class="std std-ref">community.aws.lightsail_snapshot</span></a> – Creates snapshots of AWS Lightsail instances</p></li>
<li><p><a class="reference internal" href="community/aws/lightsail_static_ip_module.html#ansible-collections-community-aws-lightsail-static-ip-module"><span class="std std-ref">community.aws.lightsail_static_ip</span></a> – Manage static IP addresses in AWS Lightsail</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_channel_module.html#ansible-collections-community-aws-medialive-channel-module"><span class="std std-ref">community.aws.medialive_channel</span></a> –</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_channel_placement_group_module.html#ansible-collections-community-aws-medialive-channel-placement-group-module"><span class="std std-ref">community.aws.medialive_channel_placement_group</span></a> – Manage AWS MediaLive Channel Placement Groups</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_channel_placement_group_info_module.html#ansible-collections-community-aws-medialive-channel-placement-group-info-module"><span class="std std-ref">community.aws.medialive_channel_placement_group_info</span></a> – Get information about an AWS MediaLive Channel Placement Group</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_cluster_module.html#ansible-collections-community-aws-medialive-cluster-module"><span class="std std-ref">community.aws.medialive_cluster</span></a> – Manage AWS MediaLive Anywhere clusters</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_cluster_info_module.html#ansible-collections-community-aws-medialive-cluster-info-module"><span class="std std-ref">community.aws.medialive_cluster_info</span></a> – Gather MediaLive Anywhere cluster info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_input_module.html#ansible-collections-community-aws-medialive-input-module"><span class="std std-ref">community.aws.medialive_input</span></a> – Manage AWS MediaLive Anywhere inputs</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_input_info_module.html#ansible-collections-community-aws-medialive-input-info-module"><span class="std std-ref">community.aws.medialive_input_info</span></a> – Gather MediaLive Anywhere input info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_network_module.html#ansible-collections-community-aws-medialive-network-module"><span class="std std-ref">community.aws.medialive_network</span></a> – Manage AWS MediaLive Anywhere networks</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_network_info_module.html#ansible-collections-community-aws-medialive-network-info-module"><span class="std std-ref">community.aws.medialive_network_info</span></a> – Gather MediaLive Anywhere network info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_module.html#ansible-collections-community-aws-medialive-node-module"><span class="std std-ref">community.aws.medialive_node</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_info_module.html#ansible-collections-community-aws-medialive-node-info-module"><span class="std std-ref">community.aws.medialive_node_info</span></a> – Gather AWS MediaLive Anywhere node info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_registration_module.html#ansible-collections-community-aws-medialive-node-registration-module"><span class="std std-ref">community.aws.medialive_node_registration</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_sdi_source_module.html#ansible-collections-community-aws-medialive-sdi-source-module"><span class="std std-ref">community.aws.medialive_sdi_source</span></a> – Manage AWS MediaLive Anywhere SDI sources</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_sdi_source_info_module.html#ansible-collections-community-aws-medialive-sdi-source-info-module"><span class="std std-ref">community.aws.medialive_sdi_source_info</span></a> – Gather AWS MediaLive Anywhere SDI source info</p></li>
<li><p><a class="reference internal" href="community/aws/mq_broker_module.html#ansible-collections-community-aws-mq-broker-module"><span class="std std-ref">community.aws.mq_broker</span></a> – MQ broker management</p></li>
<li><p><a class="reference internal" href="community/aws/mq_broker_config_module.html#ansible-collections-community-aws-mq-broker-config-module"><span class="std std-ref">community.aws.mq_broker_config</span></a> – Update Amazon MQ broker configuration</p></li>
<li><p><a class="reference internal" href="community/aws/mq_broker_info_module.html#ansible-collections-community-aws-mq-broker-info-module"><span class="std std-ref">community.aws.mq_broker_info</span></a> – Retrieve MQ Broker details</p></li>
|
Build failed. ❌ ansible-galaxy-importer FAILURE in 3m 37s (non-voting) |
Build failed. ❌ ansible-galaxy-importer FAILURE in 3m 51s (non-voting) |
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 35s (non-voting) |
Build failed. ❌ ansible-galaxy-importer FAILURE in 3m 40s (non-voting) |
I'm seeing two issues with this PR:
I've also asked for guidance in the #ansible-aws channel in Libera to help move this forward. |
@buxell If you rebase your PR, then the Documentation build failures should be fixed. The forum post you created is the best place to get help with the IAM permissions |
b4233e0
to
b360ae5
Compare
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 56s (non-voting) |
Adds new modules for AWS Elemental MediaLive management: - medialive_sdi_source: Manage SDI source configurations - medialive_node: Handle node operations - medialive_network: Configure network settings - medialive_input: Manage input configurations - medialive_cluster: Control cluster operations - medialive_channel_placement_group: Manage channel placement groups This enhancement enables comprehensive management of MediaLive resources through Ansible automation, supporting bring-your-own-device Elemental Anywhere systems. Co-authored-by: Sergey Papyan <spapyan@amazon.com> Co-authored-by: David Teach <dteach@amazon.com> Co-authored-by: Brenton Buxell <buxell@amazon.com>
b360ae5
to
4628e9a
Compare
Build failed. ❌ ansible-galaxy-importer FAILURE in 3m 35s (non-voting) |
Build failed. ✔️ ansible-galaxy-importer SUCCESS in 4m 05s (non-voting) |
Build failed. ❌ ansible-galaxy-importer FAILURE in 4m 15s (non-voting) |
I have created a companion PR in the aws.terminator repository that adds the required MediaLive IAM permissions needed for these integration tests to pass. Once that PR is merged, the CI failures here should be resolved. This PR should now be ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@buxell Thank you for your impressive contribution. Would it make sense to you to split this PR into several ones to make the review process easier?
@@ -0,0 +1,3 @@ | |||
minor_changes: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For new modules you not need changelog fragments, so, please remove these.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed
plugins/modules/medialive_channel.py
Outdated
options: | ||
cdi_input_specification: | ||
description: | ||
- Specification of CDI inputs for this channel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Specification of CDI inputs for this channel | |
- Specification of CDI inputs for this channel. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
suboptions: | ||
resolution: | ||
description: | ||
- Maximum CDI input resolution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Maximum CDI input resolution | |
- Maximum CDI input resolution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
suboptions: | ||
password_param: | ||
description: | ||
- key used to extract the password from EC2 Parameter store |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- key used to extract the password from EC2 Parameter store | |
- Key used to extract the password from EC2 Parameter store. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
type: str | ||
stream_name: | ||
description: | ||
- Stream name for RTMP destinations (URLs of type rtmp://) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Stream name for RTMP destinations (URLs of type rtmp://) | |
- Stream name for RTMP destinations (URLs of type rtmp://). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
suboptions: | ||
password_param: | ||
description: | ||
- key used to extract the password from EC2 Parameter store |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- key used to extract the password from EC2 Parameter store | |
- Key used to extract the password from EC2 Parameter store. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
- 'DVBDASH_7_CLEAN_FEED' | ||
feature_activations: | ||
description: | ||
- Feature Activations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Feature Activations | |
- Feature Activations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
plugins/modules/medialive_channel.py
Outdated
suboptions: | ||
black_frame_msec: | ||
description: | ||
- Documentation update needed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Documentation update needed | |
- Documentation update needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
class MediaLiveWaiterFactory(BaseWaiterFactory): | ||
'''Custom waiter factory for MediaLive channel placement group resources''' | ||
|
||
@property |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please move this custom waiter to https://github.com/ansible-collections/amazon.aws/blob/main/plugins/module_utils/waiters.py?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got rid of custom waiters in favor of official ones
) | ||
|
||
|
||
def do_update_channel(self, params): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to move some of the shared logic to a plugins/modules_utils/medialive.py file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe there isn't enough shared logic to make it worth it
Build failed. ❌ ansible-galaxy-importer FAILURE in 3m 41s (non-voting) |
Hi @alinabuzachis. I am one of the contributors and I've taken over the shepherding of this PR from @buxell.
|
On a different note - could you possibly take a look at this PR as well, @alinabuzachis? I believe I've seen you review older PRs on |
SUMMARY
Adds new modules for AWS Elemental MediaLive to enable infrastructure-as-code management of MediaLive resources. These modules support automation of MediaLive configurations including Elemental Anywhere (bring-your-own-device) setups.
The following modules are included in this PR:
ISSUE TYPE
COMPONENT NAME
aws.medialive
ADDITIONAL INFORMATION
These modules expand the AWS collection's coverage to include MediaLive services, particularly useful for organizations managing broadcast and streaming workflows through Ansible automation.
Testing completed:
Contributors: