Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fence-agents for openSUSE:Factory 
checked in at 2026-06-22 17:42:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fence-agents (Old)
 and      /work/SRC/openSUSE:Factory/.fence-agents.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fence-agents"

Mon Jun 22 17:42:51 2026 rev:93 rq:1361074 version:4.17.0+git.1781703439.0804740

Changes:
--------
--- /work/SRC/openSUSE:Factory/fence-agents/fence-agents.changes        
2026-02-25 21:21:54.786179795 +0100
+++ /work/SRC/openSUSE:Factory/.fence-agents.new.1956/fence-agents.changes      
2026-06-22 17:43:25.927184699 +0200
@@ -1,0 +2,9 @@
+Mon Jun 22 10:28:33 UTC 2026 - [email protected]
+
+- Update to version 4.17.0+git.1781703439.0804740:
+  * fence_openstack: fix list-action to avoid timeout when there are 100+ VMs 
on the hypervisor
+  * fence_ibm_vpc: set proxy when token has expired as well
+  * fence_openstack: add auth-plugin support for clouds.yaml (#651)
+  * fencing.py: change from Bash "source" to POSIX-compliant "."
+
+-------------------------------------------------------------------

Old:
----
  fence-agents-4.17.0+git.1769693386.608dd62.tar.xz

New:
----
  fence-agents-4.17.0+git.1781703439.0804740.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fence-agents.spec ++++++
--- /var/tmp/diff_new_pack.119kbN/_old  2026-06-22 17:43:28.419272000 +0200
+++ /var/tmp/diff_new_pack.119kbN/_new  2026-06-22 17:43:28.431272421 +0200
@@ -1,8 +1,7 @@
 #
 # spec file for package fence-agents
 #
-# Copyright (c) 2026 SUSE LLC
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +19,7 @@
 %define agent_list aliyun alom apc apc_snmp aws azure_arm bladecenter brocade 
cisco_mds cisco_ucs drac5 dummy eaton_snmp eaton_ssh emerson eps evacuate gce 
hds_cb hpblade ibmblade ibmz ibm_powervs ibm_vpc ifmib ilo ilo_moonshot ilo_mp 
ilo_ssh intelmodular ipdu ipmilan ironic kdump lpar mpath netio nutanix_ahv 
powerman pve raritan rcd_serial redfish rsa rsb sanbox2 sbd scsi vbox virsh 
vmware vmware_rest wti zvm
 Name:           fence-agents
 Summary:        Set of unified programs capable of host isolation ("fencing")
-Version:        4.17.0+git.1769693386.608dd62
+Version:        4.17.0+git.1781703439.0804740
 Release:        0
 License:        GPL-2.0-or-later AND LGPL-2.0-or-later
 Group:          Productivity/Clustering/HA

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.119kbN/_old  2026-06-22 17:43:28.795285172 +0200
+++ /var/tmp/diff_new_pack.119kbN/_new  2026-06-22 17:43:28.835286574 +0200
@@ -3,6 +3,6 @@
             <param 
name="url">git://github.com/ClusterLabs/fence-agents.git</param>
           <param 
name="changesrevision">8d746be92f191aa289f13a3703031c122a5e6cf3</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/ClusterLabs/fence-agents</param>
-              <param 
name="changesrevision">608dd62f4d213f8583e96fc5b2e2bd65b0d25108</param></service></servicedata>
+              <param 
name="changesrevision">080474034850df23538f97e74e8114283670cb72</param></service></servicedata>
 (No newline at EOF)
 

++++++ fence-agents-4.17.0+git.1769693386.608dd62.tar.xz -> 
fence-agents-4.17.0+git.1781703439.0804740.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fence-agents-4.17.0+git.1769693386.608dd62/agents/ibm_vpc/fence_ibm_vpc.py 
new/fence-agents-4.17.0+git.1781703439.0804740/agents/ibm_vpc/fence_ibm_vpc.py
--- 
old/fence-agents-4.17.0+git.1769693386.608dd62/agents/ibm_vpc/fence_ibm_vpc.py  
    2026-01-29 14:29:46.000000000 +0100
+++ 
new/fence-agents-4.17.0+git.1781703439.0804740/agents/ibm_vpc/fence_ibm_vpc.py  
    2026-06-17 15:37:19.000000000 +0200
@@ -198,6 +198,7 @@
        # auth if token has expired
        if rc in [400, 401, 415]:
                tokenconn = pycurl.Curl()
+               tokenconn.setopt(pycurl.PROXY, "{}".format(opt["--proxy"]))
                token = get_bearer_token(tokenconn, options)
                tokenconn.close()
                conn = set_bearer_token(conn, token)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fence-agents-4.17.0+git.1769693386.608dd62/agents/openstack/fence_openstack.py
 
new/fence-agents-4.17.0+git.1781703439.0804740/agents/openstack/fence_openstack.py
--- 
old/fence-agents-4.17.0+git.1769693386.608dd62/agents/openstack/fence_openstack.py
  2026-01-29 14:29:46.000000000 +0100
+++ 
new/fence-agents-4.17.0+git.1781703439.0804740/agents/openstack/fence_openstack.py
  2026-06-17 15:37:19.000000000 +0200
@@ -52,15 +52,24 @@
 
 
 def get_nodes_list(conn, options):
-    logging.info("Running %s action", options["--action"])
+    logging.info("Running %s action", options.get("--original-action", 
options.get("--action")))
     result = {}
-    response = conn.servers.list(detailed=True)
-    if response is not None:
-        for item in response:
-            instance_id = item.id
-            instance_name = item.name
-            instance_status = item.status
-            result[instance_id] = (instance_name, 
translate_status(instance_status))
+    search_opts = {}
+    max_results = 1 if options.get("--original-action") == "monitor" else None
+
+    if "--plug" in options:
+        search_opts["uuid"] = options["--plug"]
+
+    try:
+        response = conn.servers.list(detailed=True, search_opts=search_opts, 
limit=max_results)
+        if response is not None:
+            for item in response:
+                instance_id = item.id
+                instance_name = item.name
+                instance_status = item.status
+                result[instance_id] = (instance_name, 
translate_status(instance_status))
+    except Exception as e:
+        logging.error("Failed to retrieve node list: %s", e)
     return result
 
 
@@ -113,7 +122,8 @@
 
 
 def nova_login(username, password, projectname, auth_url, user_domain_name,
-               project_domain_name, ssl_insecure, cacert, apitimeout):
+               project_domain_name, ssl_insecure, cacert, apitimeout,
+               auth_plugin="password", auth_options=None):
     legacy_import = False
 
     try:
@@ -131,16 +141,20 @@
             fail_usage("Failed: Keystone client not found or not accessible")
 
     if not legacy_import:
-        loader = loading.get_plugin_loader("password")
-        auth = loader.load_from_options(
-            auth_url=auth_url,
-            username=username,
-            password=password,
-            project_name=projectname,
-            user_domain_name=user_domain_name,
-            project_domain_name=project_domain_name,
-        )
+        loader = loading.get_plugin_loader(auth_plugin)
+        if auth_options is None:
+            auth_options = dict(
+                auth_url=auth_url,
+                username=username,
+                password=password,
+                project_name=projectname,
+                user_domain_name=user_domain_name,
+                project_domain_name=project_domain_name,
+            )
+        auth = loader.load_from_options(**auth_options)
     else:
+        if auth_plugin != "password":
+            fail_usage("Failed: Keystone auth plugins require keystoneauth1")
         auth = v3.Password(
             auth_url=auth_url,
             username=username,
@@ -251,6 +265,15 @@
         "default": 60,
         "order": 10,
     }
+    all_opt["auth-plugin"] = {
+        "getopt": ":",
+        "longopt": "auth-plugin",
+        "help": "--auth-plugin=[plugin]         Keystone auth plugin",
+        "required": "0",
+        "shortdesc": "Keystone auth plugin",
+        "default": "password",
+        "order": 11,
+    }
 
 
 def main():
@@ -265,6 +288,7 @@
         "project-name",
         "user-domain-name",
         "project-domain-name",
+        "auth-plugin",
         "cloud",
         "openrc",
         "port",
@@ -309,8 +333,13 @@
 
     run_delay(options)
 
+    auth_options = None
     if options.get("--cloud"):
         cloud = get_cloud(options)
+        if options["--auth-plugin"] == "password":
+            options["--auth-plugin"] = cloud.get("auth_type") or 
options["--auth-plugin"]
+        if options["--auth-plugin"] != "password":
+            auth_options = cloud.get("auth")
         username = cloud.get("auth").get("username")
         password = cloud.get("auth").get("password")
         projectname = cloud.get("auth").get("project_name")
@@ -368,6 +397,8 @@
             ssl_insecure,
             cacert,
             apitimeout,
+            options["--auth-plugin"],
+            auth_options,
         )
     except Exception as e:
         fail_usage("Failed: Unable to connect to Nova: " + str(e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fence-agents-4.17.0+git.1769693386.608dd62/lib/fencing.py.py 
new/fence-agents-4.17.0+git.1781703439.0804740/lib/fencing.py.py
--- old/fence-agents-4.17.0+git.1769693386.608dd62/lib/fencing.py.py    
2026-01-29 14:29:46.000000000 +0100
+++ new/fence-agents-4.17.0+git.1781703439.0804740/lib/fencing.py.py    
2026-06-17 15:37:19.000000000 +0200
@@ -1274,7 +1274,7 @@
 
 def source_env(env_file):
     # POSIX: name shall not contain '=', value doesn't contain '\0'
-    output = subprocess.check_output("source {} && env -0".format(env_file), 
shell=True,
+    output = subprocess.check_output(". {} && env -0".format(env_file), 
shell=True,
                           executable="/bin/sh")
     # replace env
     os.environ.clear()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fence-agents-4.17.0+git.1769693386.608dd62/tests/data/metadata/fence_openstack.xml
 
new/fence-agents-4.17.0+git.1781703439.0804740/tests/data/metadata/fence_openstack.xml
--- 
old/fence-agents-4.17.0+git.1769693386.608dd62/tests/data/metadata/fence_openstack.xml
      2026-01-29 14:29:46.000000000 +0100
+++ 
new/fence-agents-4.17.0+git.1781703439.0804740/tests/data/metadata/fence_openstack.xml
      2026-06-17 15:37:19.000000000 +0200
@@ -118,6 +118,16 @@
                <content type="second" default="60"  />
                <shortdesc lang="en">Timeout in seconds to use for API calls, 
default is 60.</shortdesc>
        </parameter>
+       <parameter name="auth-plugin" unique="0" required="0" deprecated="1">
+               <getopt mixed="--auth-plugin=[plugin]" />
+               <content type="string" default="password"  />
+               <shortdesc lang="en">Keystone auth plugin</shortdesc>
+       </parameter>
+       <parameter name="auth_plugin" unique="0" required="0" 
obsoletes="auth-plugin">
+               <getopt mixed="--auth-plugin=[plugin]" />
+               <content type="string" default="password"  />
+               <shortdesc lang="en">Keystone auth plugin</shortdesc>
+       </parameter>
        <parameter name="quiet" unique="0" required="0">
                <getopt mixed="-q, --quiet" />
                <content type="boolean"  />

Reply via email to