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
 
-![Ansible 
Lint](https://github.com/HVSharma12/ansible-suseconnect/actions/workflows/ansible-lint.yml/badge.svg?branch=main)
+![Ansible 
Lint](https://github.com/SUSE/ansible-suseconnect/actions/workflows/ansible-lint.yml/badge.svg?branch=main)
 
-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:

Reply via email to