Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package google-guest-configs for openSUSE:Factory checked in at 2023-02-27 13:55:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/google-guest-configs (Old) and /work/SRC/openSUSE:Factory/.google-guest-configs.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "google-guest-configs" Mon Feb 27 13:55:01 2023 rev:13 rq:1067973 version:20230217.01 Changes: -------- --- /work/SRC/openSUSE:Factory/google-guest-configs/google-guest-configs.changes 2022-10-11 18:05:56.234122385 +0200 +++ /work/SRC/openSUSE:Factory/.google-guest-configs.new.31432/google-guest-configs.changes 2023-02-27 13:55:02.813267041 +0100 @@ -1,0 +2,15 @@ +Mon Feb 27 10:37:52 UTC 2023 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to version 20230217.01 + * Support multiple local SSD controllers (#39) +- from version 20230217.00 + * Update OWNERS (#45) +- from version 20230215.00 + * DHCP hostname: don't reset hostname if + the hostname hasn't changed (#44) +- from version 20230202.00 + * Update OWNERS file (#43) +- from version 20230123.00 + * Fix a repository URL in packaging specs (#41) + +------------------------------------------------------------------- Old: ---- google-guest-configs-20220211.00.tar.gz New: ---- google-guest-configs-20230217.01.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ google-guest-configs.spec ++++++ --- /var/tmp/diff_new_pack.cyUnw9/_old 2023-02-27 13:55:03.333270191 +0100 +++ /var/tmp/diff_new_pack.cyUnw9/_new 2023-02-27 13:55:03.337270215 +0100 @@ -1,7 +1,7 @@ # # spec file for package google-guest-configs # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,7 +23,7 @@ %define _udevdir %(pkg-config --variable udev_dir udev) %endif Name: google-guest-configs -Version: 20220211.00 +Version: 20230217.01 Release: 0 Summary: Google Cloud Guest Configs License: Apache-2.0 ++++++ google-guest-configs-20220211.00.tar.gz -> google-guest-configs-20230217.01.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/OWNERS new/guest-configs-20230217.01/OWNERS --- old/guest-configs-20220211.00/OWNERS 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/OWNERS 2023-02-17 21:37:36.000000000 +0100 @@ -2,10 +2,12 @@ # See the OWNERS docs at https://go.k8s.io/owners approvers: - - adjackura - - hopkiw - - zmarano -reviewers: - - adjackura - - hopkiw + - bkatyl + - chaitanyakulkarni28 + - dorileo + - jjerger + - karnvadaliya + - koln67 + - quintonamore + - vorakl - zmarano diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/packaging/debian/control new/guest-configs-20230217.01/packaging/debian/control --- old/guest-configs-20220211.00/packaging/debian/control 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/packaging/debian/control 2023-02-17 21:37:36.000000000 +0100 @@ -4,7 +4,7 @@ Maintainer: Google Cloud Team <gc-t...@google.com> Build-Depends: debhelper (>= 10) Standards-Version: 3.9.8 -Homepage: https://github.com/GoogleCloudPlatform/compute-image-packages +Homepage: https://github.com/GoogleCloudPlatform/guest-configs Package: google-compute-engine Architecture: all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/packaging/google-compute-engine.spec new/guest-configs-20230217.01/packaging/google-compute-engine.spec --- old/guest-configs-20220211.00/packaging/google-compute-engine.spec 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/packaging/google-compute-engine.spec 2023-02-17 21:37:36.000000000 +0100 @@ -23,7 +23,7 @@ Release: g1%{?dist} Summary: Google Compute Engine guest environment. License: ASL 2.0 -Url: https://github.com/GoogleCloudPlatform/compute-image-packages +Url: https://github.com/GoogleCloudPlatform/guest-configs Source0: %{name}_%{version}.orig.tar.gz Requires: curl Requires: dracut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/src/lib/udev/google_nvme_id new/guest-configs-20230217.01/src/lib/udev/google_nvme_id --- old/guest-configs-20220211.00/src/lib/udev/google_nvme_id 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/src/lib/udev/google_nvme_id 2023-02-17 21:37:36.000000000 +0100 @@ -13,18 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Used to generate symlinks for PD-NVMe devices using the disk names reported by -# the metadata server +# Used to generate symlinks for NVMe devices (both local SSD and +# persistent disk) using the disk names reported by the metadata server. # Locations of the script's dependencies readonly nvme_cli_bin=/usr/sbin/nvme # Bash regex to parse device paths and controller identification +readonly PD_CONTROLLER_REGEX="nvme_card-pd" +readonly SSD_CONTROLLER_REGEX="nvme_card[0-9]*" +readonly CONTROLLER_NUMBER_REGEX="nvme_card([[:digit:]]+)" readonly NAMESPACE_NUMBER_REGEX="/dev/nvme[[:digit:]]+n([[:digit:]]+).*" readonly PARTITION_NUMBER_REGEX="/dev/nvme[[:digit:]]+n[[:digit:]]+p([[:digit:]]+)" readonly PD_NVME_REGEX="sn[[:space:]]+:[[:space]]+nvme_card-pd" -# Globals used to generate the symlinks for a PD-NVMe disk. These are populated +# Globals used to generate the symlinks for a NVMe disk. These are populated # by the identify_pd_disk function and exported for consumption by udev rules. ID_SERIAL='' ID_SERIAL_SHORT='' @@ -125,6 +128,28 @@ } ####################################### +# Retrieves the controller number from the device model if it exists +# Globals: +# None +# Arguments: +# The NVMe device model (nvme_card or nvme_card1/2/3/...) +# Outputs: +# The controller id/number +####################################### +function get_controller_number() { + local dev_model="$1" + local controller_number + if [[ "$dev_model" =~ $CONTROLLER_NUMBER_REGEX ]]; then + controller_number="${BASH_REMATCH[1]}" + echo "$controller_number" + else + # if it's 'nvme_card', echo 0. This is for backward compatibility. + echo '0' + fi + return 0 +} + +####################################### # Generates a symlink for a PD-NVMe device using the metadata's disk name. # Primarily used for testing but can be used if the script is directly invoked. # Globals: @@ -152,7 +177,7 @@ # Arguments: # The device path for the disk # Returns: -# 0 on success and 1 if an error occurrs +# 0 on success and 1 if an error occurs ####################################### function identify_pd_disk() { local dev_path="$1" @@ -167,6 +192,35 @@ return 0 } +####################################### +# Populates the ID_* global variables with a disk's device name and namespace +# Globals: +# Populates ID_SERIAL_SHORT, and ID_SERIAL +# Arguments: +# The device path for the disk +# Returns: +# 0 on success and 1 if an error occurs +####################################### +function identify_local_ssd_disk() { + local dev_model="$1" + local dev_path="$2" + local controller_number + controller_number="$(get_controller_number "$dev_model")" + if [[ $? -ne 0 ]]; then + return 1 + fi + + local namespace_number + namespace_number="$(get_namespace_number "$dev_path")" + if [[ $? -ne 0 ]]; then + return 1 + fi + + ID_SERIAL_SHORT="local-nvme-ssd-$(($controller_number+$namespace_number-1))" + ID_SERIAL="Google_EphemeralDisk_${ID_SERIAL_SHORT}" + return 0 +} + function print_help_message() { echo "Usage: google_nvme_id [-s] [-h] -d device_path" echo " -d <device_path> (Required): Specifies the path to generate a name" @@ -218,18 +272,23 @@ # Detect the type of attached nvme device local controller_id controller_id=$("$nvme_cli_bin" id-ctrl "$device_path") - if [[ ! "$controller_id" =~ nvme_card-pd ]] ; then - err "Device is not a PD-NVMe device" + if [[ "$controller_id" =~ $PD_CONTROLLER_REGEX ]] ; then + # Fill the global variables for the id command for the given disk type + # Error messages will be printed closer to error, no need to reprint here + identify_pd_disk "$device_path" + if [[ $? -ne 0 ]]; then + return $? + fi + elif [[ "$controller_id" =~ $SSD_CONTROLLER_REGEX ]] ; then + identify_local_ssd_disk "$controller_id" "$device_path" + if [[ $? -ne 0 ]]; then + return $? + fi + else + err "Device is not a NVMe device" return 1 fi - # Fill the global variables for the id command for the given disk type - # Error messages will be printed closer to error, no need to reprint here - identify_pd_disk "$device_path" - if [[ $? -ne 0 ]]; then - return $? - fi - # Gen symlinks or print out the globals set by the identify command if [[ "$opt_gen_symlink" == 'true' ]]; then gen_symlink "$device_path" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/src/lib/udev/rules.d/65-gce-disk-naming.rules new/guest-configs-20230217.01/src/lib/udev/rules.d/65-gce-disk-naming.rules --- old/guest-configs-20220211.00/src/lib/udev/rules.d/65-gce-disk-naming.rules 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/src/lib/udev/rules.d/65-gce-disk-naming.rules 2023-02-17 21:37:36.000000000 +0100 @@ -23,6 +23,8 @@ # NVME Local SSD naming KERNEL=="nvme*n*", ATTRS{model}=="nvme_card", PROGRAM="/bin/sh -c 'nsid=$$(echo %k|sed -re s/nvme[0-9]+n\([0-9]+\).\*/\\1/); echo $$((nsid-1))'", ENV{ID_SERIAL_SHORT}="local-nvme-ssd-%c" KERNEL=="nvme*", ATTRS{model}=="nvme_card", ENV{ID_SERIAL}="Google_EphemeralDisk_$env{ID_SERIAL_SHORT}" +# Support for local SSD multi-controller +KERNEL=="nvme*n*", ATTRS{model}=="nvme_card[0-9]*", IMPORT{program}="google_nvme_id -d $tempnode" # NVME Persistent Disk IO Timeout KERNEL=="nvme*n*", ENV{DEVTYPE}=="disk", ATTRS{model}=="nvme_card-pd", ATTR{queue/io_timeout}="4294967295" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-configs-20220211.00/src/usr/bin/google_set_hostname new/guest-configs-20230217.01/src/usr/bin/google_set_hostname --- old/guest-configs-20220211.00/src/usr/bin/google_set_hostname 2022-02-11 02:32:40.000000000 +0100 +++ new/guest-configs-20230217.01/src/usr/bin/google_set_hostname 2023-02-17 21:37:36.000000000 +0100 @@ -39,10 +39,15 @@ # some distros (e.g. ssh-keygen) and hostname tool complains when given # a FQDN that is > 64 bytes. # -# As a result, we set the host name in all circumstances here, to the truncated -# unqualified domain name. +# As a result, we set the host name whenever a new host name is set - ignoring when +# old_fqdn is equal to new_host_name, to the truncated unqualified domain name. -if [ -n "$new_host_name" ] && ! echo "$new_host_name" | grep -iq "metadata.google.internal"; then +hostnamecli=$(which hostname 2> /dev/null) +if [ -x "$hostnamecli" ]; then + old_fqdn=$($hostnamecli -f) +fi + +if [ -n "$new_host_name" ] && [ "$new_host_name" != "$old_fqdn" ] && ! echo "$new_host_name" | grep -iq "metadata.google.internal"; then hostname "${new_host_name%%.*}" # If NetworkManager is installed set the hostname with nmcli.