This is an automated email from the ASF dual-hosted git repository.
DaanHoogland pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new e9dbb5e36f9 security: run pre-commit autoupdate --freeze; Pin to sha
all hooks (#13855)
e9dbb5e36f9 is described below
commit e9dbb5e36f9a221ddd7e5040686db7e9a317f432
Author: John Bampton <[email protected]>
AuthorDate: Tue Sep 8 17:39:33 2026 +1000
security: run pre-commit autoupdate --freeze; Pin to sha all hooks (#13855)
---
.pre-commit-config.yaml | 22 ++++----
.../scripts/vm/hypervisor/ovm/OvmOCFS2Module.py | 4 +-
.../hypervisor/xenserver/cloudstack_pluginlib.py | 2 +-
scripts/vm/hypervisor/xenserver/vmops | 12 ++--
scripts/vm/hypervisor/xenserver/vmopsSnapshot | 61 ++++++++++-----------
systemvm/agent/images/left.png | Bin 321 -> 315 bytes
systemvm/agent/images/right.png | Bin 413 -> 411 bytes
systemvm/agent/images/right2.png | Bin 434 -> 424 bytes
systemvm/agent/images/winlog.png | Bin 2314 -> 2268 bytes
9 files changed, 50 insertions(+), 51 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f08f7432031..391681e88c3 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -26,7 +26,7 @@ repos:
- id: identity
- id: check-hooks-apply
- repo: https://github.com/thlorenz/doctoc.git
- rev: v2.3.0
+ rev: 59dcae910a6ad4bbe8711275b854e3cd5c30f08b # frozen: v2.5.0
hooks:
- id: doctoc
name: Add TOC for Markdown files
@@ -43,20 +43,20 @@ repos:
files: (?i)\.zip$
exclude: ^core/src/test/resources/vhds/test\.vhd\.zip$
- repo: https://github.com/oxipng/oxipng
- rev: v10.1.0
+ rev: 340cd9878d8d8289f09fa101b48a8f5f0b7783f4 # frozen: v10.2.0
hooks:
- id: oxipng
name: run oxipng
description: optimize PNG images with lossless compression
args: ['-o', '4', '--strip', 'safe', '--alpha']
- repo: https://github.com/gitleaks/gitleaks
- rev: v8.30.0
+ rev: 83d9cd684c87d95d656c1458ef04895a7f1cbd8e # frozen: v8.30.1
hooks:
- id: gitleaks
name: run gitleaks
description: detect hardcoded secrets
- repo: https://github.com/Lucas-C/pre-commit-hooks
- rev: v1.5.6
+ rev: ad1b27d73581aa16cca06fc4a0761fc563ffe8e8 # frozen: v1.5.6
hooks:
- id: chmod
name: set file permissions
@@ -143,7 +143,7 @@ repos:
- --fuzzy-match-generates-todo
exclude: ^\.github/workflows/.*\.lock\.yml$
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v6.0.0
+ rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
hooks:
#- id: check-added-large-files
- id: check-case-conflict
@@ -187,18 +187,18 @@ repos:
args: [--markdown-linebreak-ext=md]
exclude:
^services/console-proxy/rdpconsole/src/test/doc/freerdp-debug-log\.txt$
- repo: https://github.com/codespell-project/codespell
- rev: v2.4.2
+ rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
hooks:
- id: codespell
name: run codespell
description: Check spelling with codespell
- repo: https://github.com/pycqa/flake8
- rev: 7.3.0
+ rev: c48217e1fc006c2dddd14df54e83b67da15de5cd # frozen: 7.3.0
hooks:
- - id: flake8
- args: [--config, .github/linters/.flake8]
+ - id: flake8
+ args: [--config, .github/linters/.flake8]
- repo: https://github.com/igorshubovych/markdownlint-cli
- rev: v0.48.0
+ rev: 5b5dddc4fb0f83c3ea1fc5616fa63e115dce83e0 # frozen: v0.49.1
hooks:
- id: markdownlint
name: run markdownlint
@@ -207,7 +207,7 @@ repos:
types: [markdown]
files: \.md$
- repo: https://github.com/adrienverge/yamllint
- rev: v1.38.0
+ rev: cba56bcde1fdd01c1deb3f945e69764c291a6530 # frozen: v1.38.0
hooks:
- id: yamllint
name: run yamllint
diff --git
a/plugins/hypervisors/ovm/src/main/scripts/vm/hypervisor/ovm/OvmOCFS2Module.py
b/plugins/hypervisors/ovm/src/main/scripts/vm/hypervisor/ovm/OvmOCFS2Module.py
index 06e1e28f28e..7ff5435a3c2 100755
---
a/plugins/hypervisors/ovm/src/main/scripts/vm/hypervisor/ovm/OvmOCFS2Module.py
+++
b/plugins/hypervisors/ovm/src/main/scripts/vm/hypervisor/ovm/OvmOCFS2Module.py
@@ -54,8 +54,8 @@ class OvmOCFS2(OvmObject):
cmds = ['service o2cb status', cluster]
res = doCmd(cmds)
for line in res.split('\n'):
- if not 'Checking O2CB cluster' in line: continue
- return not 'Offline' in line
+ if 'Checking O2CB cluster' not in line: continue
+ return 'Offline' not in line
def _load(self):
cmd = ['service o2cb load']
diff --git a/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py
b/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py
index 84f90d454e3..3a1b202d440 100644
--- a/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py
+++ b/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py
@@ -409,7 +409,7 @@ def create_tunnel(bridge, remote_ip, gre_key, src_host,
dst_host, network_uuid):
key_validation = do_cmd(verify_interface_key)
ip_validation = do_cmd(verify_interface_ip)
- if not gre_key in key_validation or not remote_ip in ip_validation:
+ if gre_key not in key_validation or remote_ip not in ip_validation:
logging.debug("WARNING: Unexpected output while verifying " +
"interface %s on bridge %s" % (name, bridge))
return "FAILURE:VERIFY_INTERFACE_FAILED"
diff --git a/scripts/vm/hypervisor/xenserver/vmops
b/scripts/vm/hypervisor/xenserver/vmops
index 4f78a3c90f8..5a1fa8ce368 100755
--- a/scripts/vm/hypervisor/xenserver/vmops
+++ b/scripts/vm/hypervisor/xenserver/vmops
@@ -1180,7 +1180,7 @@ def cleanup_rules(session, args):
chainscmd = "iptables-save | grep '^:' | awk '{print $1}' | cut -d':' -f2
| sed 's/-def//'| sed 's/-eg//' | sort|uniq"
chains = util.pread2(['/bin/bash', '-c', chainscmd]).split('\n')
- vmchains = [ch for ch in chains if 1 in [ ch.startswith(c) for c in
['r-', 'i-', 's-', 'v-', 'l-']]]
+ vmchains = [ch for ch in chains if 1 in [ ch.startswith(c) for c in ['r-',
'i-', 's-', 'v-', 'l-']]]
util.SMlog('cleanup_rules: vmchains= %s' %vmchains)
util.SMlog('cleanup_rules: found %s iptables chains for vms on this host
%s' % (len(vmchains), hostname[0]))
cleaned = 0
@@ -1192,14 +1192,14 @@ def cleanup_rules(session, args):
#after trimming the vm names which more than 29 chars, resident vm
name and iptables chain name is substring of
#of resident vm.
for rvm in resident_vms:
- if vmname in rvm:
+ if vmname in rvm:
vmpresent = True
break
if vmpresent is False:
vmname = chain + "-untagged"
for rvm in resident_vms:
- if vmname in rvm:
+ if vmname in rvm:
vmpresent = True
break
#vm chain is present but vm is not running on the host. So remove the
rules
@@ -1491,11 +1491,11 @@ def network_rules(session, args):
egressrules = 0
for line in lines:
logging.debug("Processing rule [%s]." % line)
-
+
#Example of rule: [I:tcp;12;34;1.2.3.4/24,NEXT] -> tokens: ['I:tcp',
'12', '34', '1.2.3.4/24,NEXT'].
tokens = line.split(';')
logging.debug("Tokens %s." % tokens)
-
+
tokens_size = len(tokens)
expected_tokens_size = 4
@@ -1530,7 +1530,7 @@ def network_rules(session, args):
i = cidrs.index('0.0.0.0/0')
del cidrs[i]
allow_any = True
-
+
port_range = start + ":" + end
logging.debug("port range [%s]" % port_range)
diff --git a/scripts/vm/hypervisor/xenserver/vmopsSnapshot
b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
index 0d5fcc184c5..8dcf2b88832 100755
--- a/scripts/vm/hypervisor/xenserver/vmopsSnapshot
+++ b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
@@ -6,9 +6,9 @@
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,7 +18,7 @@
# Version @VERSION@
#
-# A plugin for executing script needed by vmops cloud
+# A plugin for executing script needed by vmops cloud
import os, sys, time
import XenAPIPlugin
@@ -91,7 +91,7 @@ def create_secondary_storage_folder(session, args):
umount(local_mount_path)
# Remove the local folder
os.system("rmdir " + local_mount_path)
-
+
return "1"
@echo
@@ -127,15 +127,15 @@ def delete_secondary_storage_folder(session, args):
umount(local_mount_path)
# Remove the local folder
os.system("rmdir " + local_mount_path)
-
+
return "1"
-
+
@echo
def post_create_private_template(session, args):
local_mount_path = None
try:
try:
- # get local template folder
+ # get local template folder
templatePath = args["templatePath"]
local_mount_path = os.path.join(CLOUD_DIR, util.gen_uuid())
nfsVersion = args["nfsVersion"]
@@ -148,7 +148,7 @@ def post_create_private_template(session, args):
file_size = args["size"]
virtual_size = args["virtualSize"]
template_id = args["templateId"]
-
+
# Create the template.properties file
template_properties_install_path = local_mount_path +
"/template.properties"
f = open(template_properties_install_path, "w")
@@ -167,7 +167,7 @@ def post_create_private_template(session, args):
f.write("size=" + str(file_size) + "\n")
f.close()
logging.debug("Created template.properties file")
-
+
# Set permissions
permissions = stat.S_IREAD | stat.S_IWRITE | stat.S_IRGRP |
stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH
os.chmod(template_properties_install_path, permissions)
@@ -184,8 +184,8 @@ def post_create_private_template(session, args):
umount(local_mount_path)
# Remove the local folder
os.system("rmdir " + local_mount_path)
- return "1"
-
+ return "1"
+
def isfile(path, isISCSI):
errMsg = ''
exists = True
@@ -193,7 +193,7 @@ def isfile(path, isISCSI):
exists = checkVolumeAvailability(path)
else:
exists = os.path.isfile(path)
-
+
if not exists:
errMsg = "File " + path + " does not exist."
logging.debug(errMsg)
@@ -241,7 +241,7 @@ def scanParent(path):
try:
lvName = os.path.basename(path)
dirname = os.path.dirname(path)
- vgName = os.path.basename(dirname)
+ vgName = os.path.basename(dirname)
vhdInfo = vhdutil.getVHDInfoLVM(lvName, lvhdutil.extractUuid, vgName)
parentUUID = vhdInfo.parentUuid
except:
@@ -273,7 +273,7 @@ def getParentOfSnapshot(snapshotUuid, primarySRPath,
isISCSI):
baseCopyUuid = scanParent(snapshotPath)
else:
baseCopyUuid = getParent(snapshotPath, isISCSI)
-
+
logging.debug("Base copy of snapshotUuid: " + snapshotUuid + " is " +
baseCopyUuid)
return baseCopyUuid
@@ -282,7 +282,7 @@ def setParent(parent, child):
cmd = [VHDUTIL, "modify", "-p", parent, "-n", child]
txt = util.pread2(cmd)
except:
- errMsg = "Unexpected error while trying to set parent of " + child + "
to " + parent
+ errMsg = "Unexpected error while trying to set parent of " + child + "
to " + parent
logging.debug(errMsg)
raise xs_errors.XenError(errMsg)
logging.debug("Successfully set parent of " + child + " to " + parent)
@@ -315,12 +315,12 @@ def mount(remoteDir, localDir, nfsVersion=None):
options = "soft,tcp,timeo=133,retrans=1"
if nfsVersion:
options += ",vers=" + nfsVersion
- try:
+ try:
cmd = ['mount', '-o', options, remoteDir, localDir]
txt = util.pread2(cmd)
except:
txt = ''
- errMsg = "Unexpected error while trying to mount " + remoteDir + " to
" + localDir
+ errMsg = "Unexpected error while trying to mount " + remoteDir + " to
" + localDir
logging.debug(errMsg)
raise xs_errors.XenError(errMsg)
logging.debug("Successfully mounted " + remoteDir + " to " + localDir)
@@ -328,11 +328,11 @@ def mount(remoteDir, localDir, nfsVersion=None):
return
def umount(localDir):
- try:
+ try:
cmd = ['umount', localDir]
util.pread2(cmd)
except CommandException:
- errMsg = "CommandException raised while trying to umount " + localDir
+ errMsg = "CommandException raised while trying to umount " + localDir
logging.debug(errMsg)
raise xs_errors.XenError(errMsg)
@@ -340,7 +340,7 @@ def umount(localDir):
return
def mountSnapshotsDir(secondaryStorageMountPath, localMountPointPath, path):
- # The aim is to mount secondaryStorageMountPath on
+ # The aim is to mount secondaryStorageMountPath on
# And create <accountId>/<instanceId> dir on it, if it doesn't exist
already.
# Assuming that secondaryStorageMountPath exists remotely
@@ -410,7 +410,7 @@ def getIsTrueString(stringValue):
booleanValue = False
if (stringValue and stringValue == 'true'):
booleanValue = True
- return booleanValue
+ return booleanValue
def makeUnavailable(uuid, primarySRPath, isISCSI):
if not isISCSI:
@@ -433,7 +433,7 @@ def manageAvailability(path, value):
logging.debug(errMsg)
if value == "-ay":
# Raise an error only if we are trying to make it available.
- # Just warn if we are trying to make it unavailable after the
+ # Just warn if we are trying to make it unavailable after the
# snapshot operation is done.
raise xs_errors.XenError(errMsg)
return
@@ -450,7 +450,7 @@ def checkVolumeAvailability(path):
errMsg = "Could not determine status of ISCSI path: " + path
logging.debug(errMsg)
raise xs_errors.XenError(errMsg)
-
+
success = False
i = 0
while i < 6:
@@ -482,20 +482,20 @@ def isVolumeAvailable(path):
logging.debug(errMsg)
raise xs_errors.XenError(errMsg)
- return (status == "1")
+ return (status == "1")
def getVhdParent(session, args):
logging.debug("getParent with " + str(args))
primaryStorageSRUuid = args['primaryStorageSRUuid']
snapshotUuid = args['snapshotUuid']
- isISCSI = getIsTrueString(args['isISCSI'])
+ isISCSI = getIsTrueString(args['isISCSI'])
primarySRPath = getPrimarySRPath(primaryStorageSRUuid, isISCSI)
logging.debug("primarySRPath: " + primarySRPath)
baseCopyUuid = getParentOfSnapshot(snapshotUuid, primarySRPath, isISCSI)
- return baseCopyUuid
+ return baseCopyUuid
def getSnapshotSize(session, args):
primaryStorageSRUuid = args['primaryStorageSRUuid']
@@ -545,7 +545,7 @@ def backupSnapshot(session, args):
isfile(prevBackupFile, False)
# copy baseCopyPath to backupsDir with new uuid
- backupVHD = getBackupVHD(backupUuid)
+ backupVHD = getBackupVHD(backupUuid)
backupFile = os.path.join(backupsDir, backupVHD)
logging.debug("Back up " + baseCopyUuid + " to Secondary Storage as " +
backupUuid)
copyfile(baseCopyPath, backupFile, isISCSI)
@@ -553,7 +553,7 @@ def backupSnapshot(session, args):
# Because the primary storage is always scanned, the parent of this base
copy is always the first base copy.
# We don't want that, we want a chain of VHDs each of which is a delta
from the previous.
- # So set the parent of the current baseCopyVHD to prevBackupVHD
+ # So set the parent of the current baseCopyVHD to prevBackupVHD
if prevBackupUuid:
# If there was a previous snapshot
setParent(prevBackupFile, backupFile)
@@ -581,7 +581,7 @@ def deleteSnapshotBackup(session, args):
logging.debug("backupVHD " + backupVHD + "does not exist. Not trying
to delete it")
return "1"
logging.debug("backupVHD " + backupVHD + " exists.")
-
+
# Just delete the backupVHD
try:
os.remove(backupVHD)
@@ -591,7 +591,7 @@ def deleteSnapshotBackup(session, args):
raise xs_errors.XenError(errMsg)
return "1"
-
+
@echo
def revert_memory_snapshot(session, args):
logging.debug("Calling revert_memory_snapshot with " + str(args))
@@ -620,4 +620,3 @@ def revert_memory_snapshot(session, args):
if __name__ == "__main__":
XenAPIPlugin.dispatch({"getVhdParent":getVhdParent,
"create_secondary_storage_folder":create_secondary_storage_folder,
"delete_secondary_storage_folder":delete_secondary_storage_folder,
"post_create_private_template":post_create_private_template, "backupSnapshot":
backupSnapshot, "deleteSnapshotBackup": deleteSnapshotBackup,
"unmountSnapshotsDir": unmountSnapshotsDir,
"revert_memory_snapshot":revert_memory_snapshot,
"getSnapshotSize":getSnapshotSize})
-
diff --git a/systemvm/agent/images/left.png b/systemvm/agent/images/left.png
index 01b05a3ddbf..170ac6b15b8 100644
Binary files a/systemvm/agent/images/left.png and
b/systemvm/agent/images/left.png differ
diff --git a/systemvm/agent/images/right.png b/systemvm/agent/images/right.png
index d1514e2dc18..8375d2a10f5 100644
Binary files a/systemvm/agent/images/right.png and
b/systemvm/agent/images/right.png differ
diff --git a/systemvm/agent/images/right2.png b/systemvm/agent/images/right2.png
index 4a3f4752ed1..28769c5bed7 100644
Binary files a/systemvm/agent/images/right2.png and
b/systemvm/agent/images/right2.png differ
diff --git a/systemvm/agent/images/winlog.png b/systemvm/agent/images/winlog.png
index 59c4e11e229..94b4ae7f4c2 100644
Binary files a/systemvm/agent/images/winlog.png and
b/systemvm/agent/images/winlog.png differ