Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ansible-linux-system-roles for
openSUSE:Factory checked in at 2026-07-17 01:44:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansible-linux-system-roles (Old)
and /work/SRC/openSUSE:Factory/.ansible-linux-system-roles.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible-linux-system-roles"
Fri Jul 17 01:44:11 2026 rev:15 rq:1366153 version:1.4.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/ansible-linux-system-roles/ansible-linux-system-roles.changes
2026-05-16 19:26:24.710674622 +0200
+++
/work/SRC/openSUSE:Factory/.ansible-linux-system-roles.new.24530/ansible-linux-system-roles.changes
2026-07-17 01:44:58.760280061 +0200
@@ -1,0 +2,8 @@
+Thu Jul 16 10:33:12 UTC 2026 - Harshvardhan Sharma
<[email protected]>
+
+- Update suseconnect role 1.0.1 -> 1.0.2
+ - add HTTP proxy support
+ - change required-package handling
+ - fix false Azure detection on on-prem Hyper-V
+
+-------------------------------------------------------------------
Old:
----
suseconnect-1.0.1.tar.gz
New:
----
suseconnect-1.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ansible-linux-system-roles.spec ++++++
--- /var/tmp/diff_new_pack.RLOxWp/_old 2026-07-17 01:44:59.844316639 +0200
+++ /var/tmp/diff_new_pack.RLOxWp/_new 2026-07-17 01:44:59.848316774 +0200
@@ -25,7 +25,7 @@
%global systemd_version 1.3.7
%global ha_cluster_version 1.29.1
%global mssql_version 2.6.6
-%global suseconnect_version 1.0.1
+%global suseconnect_version 1.0.2
%global auto_maintenance_version 1.120.5
%global certificate_version 1.5.0
%global selinux_version 1.11.1
++++++ suseconnect-1.0.1.tar.gz -> suseconnect-1.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ansible-suseconnect-1.0.1-suse/.github/workflows/ansible-lint.yml
new/ansible-suseconnect-1.0.2-suse/.github/workflows/ansible-lint.yml
--- old/ansible-suseconnect-1.0.1-suse/.github/workflows/ansible-lint.yml
2025-06-24 15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/.github/workflows/ansible-lint.yml
2026-07-15 07:31:05.000000000 +0200
@@ -2,9 +2,11 @@
name: Ansible Lint
on: # yamllint disable-line rule:truthy
+ push:
+ branches: [main]
+ pull_request:
schedule:
- cron: "0 2 1 * *"
-
workflow_dispatch:
jobs:
@@ -17,13 +19,13 @@
- name: Set up Python 3
uses: actions/setup-python@v5
with:
- python-version: '3.12'
+ python-version: '3.11'
- name: Install test dependencies
run: |
- pip3 install ansible==9.1.0
- pip3 install ansible-core==2.16.2
- pip3 install ansible-lint==6.22.1
+ pip3 install ansible==11.3.0
+ pip3 install ansible-core==2.18.3
+ pip3 install ansible-lint==26.1.1
- name: Run ansible-lint
working-directory: ${{ github.workspace }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/README.md
new/ansible-suseconnect-1.0.2-suse/README.md
--- old/ansible-suseconnect-1.0.1-suse/README.md 2025-06-24
15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/README.md 2026-07-15
07:31:05.000000000 +0200
@@ -1,17 +1,18 @@
# SUSEConnect
-
+
-This Ansible role is used to manage SUSE Linux system registrations with the
SUSE Customer Center (SCC) or a local Subscription Management Tool (SMT)
server. It automates the process of registering and deregistering systems, as
well as managing additional products and modules on a SUSE system
+This Ansible role is used to manage SUSE Linux system registrations with the
SUSE Customer Center (SCC) or a local Subscription Management Tool
(SMT)/Repository Mirroring Tool (RMT) server. It automates the process of
registering and deregistering systems, as well as managing additional products
and modules on a SUSE system
This role includes:
-- Registration of a SUSE system to SCC/SMT.
+- Registration of a SUSE system to SCC/SMT/RMT.
- Activation or removal of specific add-on products or modules.
- Deregistration of systems or products.
- Compatibility with public cloud environments (e.g., prevent registration
against SCC for PAYG instances, use `registercloudguest` where appropriate).
- Support for transactional update register on SL-Micro.
- Precheck tasks to ensure a smooth registration process.
+- Honors the system proxy configuration from `/etc/sysconfig/proxy`.
## Requirements
@@ -19,6 +20,13 @@
- A valid registration key for your SUSE products, which can be obtained with
your SUSE subscription.
- For some products, additional registration keys are required.
+- The role must run as **root**. It does not escalate privileges itself, so run
+ it with `become: true` (or connect as root).
+- The `SUSEConnect` binary must be present and executable at
`/usr/sbin/SUSEConnect`.
+- A SUSE operating system (`ansible_os_family == "Suse"`) or SL-Micro.
+- On public cloud instances only: the `python-instance-billing-flavor-check`
+ package must be installed. The role uses it to detect PAYG instances and will
+ fail on a cloud instance if it is missing.
## Role Variables
@@ -27,22 +35,15 @@
### suseconnect_base_product
- **Type**: dict
-- **Description**: Defines the base product that should be activated on the
target system. The dictionary should include the following keys:
+- **Default**: `{}`
+- **Description**: Defines the base product registration. If omitted (or if
`key` is not set), registration is skipped entirely. The dictionary should
include the following keys:
- `product`
- **Type**: string
- - **Description**: Internal product name, see [PRODUCTS.md](PRODUCTS.md)
for a list, defaults to (`ansible_distribution`)
+ - **Description**: Internal product name, see [PRODUCTS.md](PRODUCTS.md)
for a list, defaults to (`ansible_distribution`). This is used to look up the
current registration status and decide whether registration is needed; it is
not passed to `SUSEConnect`.
- **Required**: No
- `key`
- **Type**: string
- - **Description**: Registration key for the product.
- - **Required**: Yes
- - `version`
- - **Type**: string
- - **Description**: Version of the product to be activated, defaults to the
base OS version.
- - **Required**: No
- - `arch`
- - **Type**: string
- - **Description**: Architecture of the product, defaults to the OS
architecture (`ansible_machine`).
+ - **Description**: Registration key for the product. If it is not set, the
system is not registered and the task is skipped.
- **Required**: No
- `email`
- **Type**: string
@@ -52,7 +53,7 @@
### suseconnect_subscriptions
- **Type**: list
-- **Description**: List of additional modules or products to be added or
removed on the target system.
+- **Description**: List of additional modules or products to be added or
removed on the target system. The system must already be registered before
modules can be activated.
Each item is a dictionary containing the following keys:
@@ -67,7 +68,7 @@
- **Default**: enabled
- `version`
- **Type**: string
- - **Description**: Version of the product to be activated, defaults to the
base OS version, defaults to (`ansible_distribution_version`).
+ - **Description**: Version of the product to be activated, defaults to the
base OS version (`ansible_distribution_version`).
- **Required**: No
- `arch`
- **Type**: string
@@ -85,13 +86,29 @@
### suseconnect_reregister
- **Type**: bool
-- **Description**: Whether to force re-registration of base product,
regardless of current status (default: false).
+- **Description**: Whether to force re-registration of base product,
regardless of current registration status (default: false). Requires
`suseconnect_base_product.key` to be set.
### suseconnect_deregister
- **Type**: bool
- **Description**: Whether to deregister the system (default: false).
+## Proxy Support
+
+The role reads `/etc/sysconfig/proxy` on the managed node. If
`PROXY_ENABLED="yes"`
+is set, the proxy variables defined in that file are applied to the
`SUSEConnect`
+commands the role runs. Proxy settings are deliberately not applied to
+`registercloudguest` commands on public cloud instances. No configuration is
+required — the file is read automatically if present.
+
+## Public Cloud Behavior
+
+The role detects public cloud instances (AWS, GCE, Azure, IBM Cloud) from
system
+facts. On a **PAYG** instance the role does not register, manage subscriptions,
+or deregister — registration is handled by the cloud provider. On a **BYOS**
+cloud instance the role registers normally, using `registercloudguest` where
+that tool is present.
+
## Example Task
### Registering a SUSE Linux System
@@ -119,7 +136,7 @@
### Adding or deleting modules and extensions
-This task adds or removes modules and extensions. It registers or derigisters
the components and enables or disables their repositories.
+This task adds or removes modules and extensions. It registers or deregisters
the components and enables or disables their repositories.
```yaml
- name: Adding or deleting modules and extensions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/defaults/main.yml
new/ansible-suseconnect-1.0.2-suse/defaults/main.yml
--- old/ansible-suseconnect-1.0.1-suse/defaults/main.yml 2025-06-24
15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/defaults/main.yml 2026-07-15
07:31:05.000000000 +0200
@@ -1,8 +1,5 @@
---
-suseconnect_base_product: []
+suseconnect_base_product: {}
suseconnect_subscriptions: []
suseconnect_reregister: false
-
-# do not remove subscriptions by default
-suseconnect_remove_subscriptions: false
suseconnect_deregister: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/meta/main.yml
new/ansible-suseconnect-1.0.2-suse/meta/main.yml
--- old/ansible-suseconnect-1.0.1-suse/meta/main.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/ansible-suseconnect-1.0.2-suse/meta/main.yml 2026-07-15
07:31:05.000000000 +0200
@@ -0,0 +1,17 @@
+---
+galaxy_info:
+ namespace: suse
+ role_name: suseconnect
+ author: Harshvardhan Sharma <[email protected]>
+ description: Register Your SLES System With SUSE Customer Center
+ company: Suse
+ license: GPLv3
+ min_ansible_version: "2.9"
+ platforms:
+ - name: SLES
+ versions:
+ - all
+ galaxy_tags:
+ - sles
+
+dependencies: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/tasks/deregister.yml
new/ansible-suseconnect-1.0.2-suse/tasks/deregister.yml
--- old/ansible-suseconnect-1.0.1-suse/tasks/deregister.yml 2025-06-24
15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/tasks/deregister.yml 2026-07-15
07:31:05.000000000 +0200
@@ -16,3 +16,7 @@
{% endif %}
register: __suseconnect_deregister_result
changed_when: "__suseconnect_deregister_result.rc == 0"
+ environment: "{{
+ {} if __suseconnect_is_registercloudguest
+ else (__suseconnect_proxy_env | default({}))
+ }}" # do not set proxy for cloud commands
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ansible-suseconnect-1.0.1-suse/tasks/manage-subscriptions.yml
new/ansible-suseconnect-1.0.2-suse/tasks/manage-subscriptions.yml
--- old/ansible-suseconnect-1.0.1-suse/tasks/manage-subscriptions.yml
2025-06-24 15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/tasks/manage-subscriptions.yml
2026-07-15 07:31:05.000000000 +0200
@@ -37,3 +37,7 @@
register: __suseconnect_subscribe_result
changed_when: "__suseconnect_subscribe_result.rc == 0"
no_log: "{{ 'true' if item['key'] is defined else 'false' }}"
+ environment: "{{
+ {} if __suseconnect_is_registercloudguest
+ else (__suseconnect_proxy_env | default({}))
+ }}" # do not set proxy for cloud commands
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/tasks/prechecks.yml
new/ansible-suseconnect-1.0.2-suse/tasks/prechecks.yml
--- old/ansible-suseconnect-1.0.1-suse/tasks/prechecks.yml 2025-06-24
15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/tasks/prechecks.yml 2026-07-15
07:31:05.000000000 +0200
@@ -26,6 +26,9 @@
that: ansible_os_family == "Suse" or ansible_distribution == "SL-Micro"
fail_msg: "This role is only supported on SUSE family operating systems."
+# On-prem Hyper-V has the identical product_name/chassis_vendor but a RANDOM
asset tag,
+# so keying on the tag avoids misidentifying on-prem Hyper-V as Azure
+
- name: "SUSEConnect - Determine if the instance is a cloud instance"
ansible.builtin.set_fact:
__suseconnect_is_cloud_instance: >-
@@ -35,7 +38,7 @@
("amazon" in ansible_product_version | lower) or
(ansible_product_name == 'Google Compute Engine') or
(ansible_chassis_asset_tag == 'ibmcloud') or
- (ansible_product_name == 'Virtual Machine' and ansible_chassis_vendor
== 'Microsoft Corporation')
+ (ansible_chassis_asset_tag == '7783-7084-3265-9085-8269-3286-77')
}}
- name: Prevent registration against scc for payg instances
@@ -50,10 +53,15 @@
ansible.builtin.set_fact:
__suseconnect_is_registercloudguest: "{{ true if
__suseconnect_registercloudguest_stat.stat.exists else false }}"
- - name: Ensure required packages are installed
- ansible.builtin.package:
- name: "{{ __suseconnect_required_package }}"
- state: present
+ - name: Gather information about installed packages as facts
+ ansible.builtin.package_facts:
+
+ - name: Fail if required packages are not installed
+ ansible.builtin.assert:
+ that: __suseconnect_required_package is in ansible_facts.packages
+ fail_msg:
+ - "This role needs {{ __suseconnect_required_package }} package
installed!"
+ - "Ensure that {{ __suseconnect_required_package }} package is
installed"
- name: Skip if PAYG to prevent improper registration
ansible.builtin.command:
@@ -71,6 +79,28 @@
msg: "Warning: This is a PAYG instance. Skipping registration steps to
avoid conflicts."
when: __suseconnect_is_payg_instance
+- name: Slurp /etc/sysconfig/proxy
+ ansible.builtin.slurp:
+ src: /etc/sysconfig/proxy
+ register: proxy_file
+ failed_when: false
+ changed_when: false
+
+- name: Build proxy environment dictionary conditionally
+ ansible.builtin.set_fact:
+ __suseconnect_proxy_env: "{{ __suseconnect_proxy_env | default({}) |
combine({item[0]: item[1]}) }}"
+ vars:
+ raw_config: "{{ proxy_file.content | b64decode }}"
+ is_proxy_enabled: "{{ (raw_config |
regex_findall('^\\s*PROXY_ENABLED\\s*=\\s*\"yes\"', multiline=True) | length) >
0 }}"
+ proxy_lines: "{{ raw_config |
regex_findall('^\\s*([A-Z0-9_]+)\\s*=\\s*\"([^\"]*)\"', multiline=True) }}"
+ loop: "{{ proxy_lines }}"
+ when:
+ - is_proxy_enabled
+ - item[1] | length > 0
+ - item[0] != 'PROXY_ENABLED'
+ check_mode: false
+ changed_when: false
+
- name: Call suseconnect status
ansible.builtin.include_tasks: suseconnect-status.yml
when: not __suseconnect_is_payg_instance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-suseconnect-1.0.1-suse/tasks/register.yml
new/ansible-suseconnect-1.0.2-suse/tasks/register.yml
--- old/ansible-suseconnect-1.0.1-suse/tasks/register.yml 2025-06-24
15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/tasks/register.yml 2026-07-15
07:31:05.000000000 +0200
@@ -26,6 +26,10 @@
changed_when: "__suseconnect_register_result.rc == 0"
failed_when: "__suseconnect_register_result.rc != 0"
no_log: "{{ __suseconnect_no_log }}"
+ environment: "{{
+ {} if __suseconnect_is_registercloudguest
+ else (__suseconnect_proxy_env | default({}))
+ }}" # do not set proxy for cloud commands
rescue:
- name: Fail if registration failed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ansible-suseconnect-1.0.1-suse/tasks/suseconnect-status.yml
new/ansible-suseconnect-1.0.2-suse/tasks/suseconnect-status.yml
--- old/ansible-suseconnect-1.0.1-suse/tasks/suseconnect-status.yml
2025-06-24 15:36:16.000000000 +0200
+++ new/ansible-suseconnect-1.0.2-suse/tasks/suseconnect-status.yml
2026-07-15 07:31:05.000000000 +0200
@@ -6,7 +6,12 @@
cmd: "{{ __suseconnect_binary }} -s"
register: __suseconnect_tmp_status
changed_when: false
+ check_mode: false
no_log: "{{ __suseconnect_no_log }}"
+ environment: "{{
+ {} if __suseconnect_is_registercloudguest
+ else (__suseconnect_proxy_env | default({}))
+ }}" # do not set proxy for cloud commands
- name: Sanitize registration output
ansible.builtin.set_fact: