Skip to content

Commit

Permalink
Merge branch 'master' into uptime_tracking
Browse files Browse the repository at this point in the history
  • Loading branch information
chajain authored and cjainsuse committed Mar 5, 2024
2 parents 7cc9023 + 8626219 commit ecca9b4
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 25 deletions.
10 changes: 6 additions & 4 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ GEM
public_suffix (>= 2.0.2, < 6.0)
ast (2.4.2)
awesome_print (1.9.2)
base64 (0.2.0)
bigdecimal (3.1.6)
builder (3.2.4)
byebug (11.1.3)
Expand All @@ -50,7 +51,7 @@ GEM
term-ansicolor (~> 1.3)
thor (>= 0.19.4, < 2.0)
tins (~> 1.6)
crack (0.4.6)
crack (1.0.0)
bigdecimal
rexml
crass (1.0.6)
Expand Down Expand Up @@ -137,7 +138,8 @@ GEM
concurrent-ruby (~> 1.0)
json (2.3.1)
jsonapi-renderer (0.2.2)
jwt (2.7.1)
jwt (2.8.0)
base64
listen (3.6.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
Expand Down Expand Up @@ -174,7 +176,7 @@ GEM
puma (5.6.8)
nio4r (~> 2.0)
racc (1.7.1)
rack (2.2.8)
rack (2.2.8.1)
rack-test (2.1.0)
rack (>= 1.3)
rails-dom-testing (2.2.0)
Expand Down Expand Up @@ -308,7 +310,7 @@ GEM
activesupport (>= 3)
railties (>= 3)
yard (~> 0.9.20)
webmock (3.20.0)
webmock (3.23.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@ def change
# This migration removes the now obsolete repositories, since RMT does
# not remove these automatically.

# NOTE: We have a check in the repository model to stop users from
# deleting SUSE repositories. This is why need to run delete
# directly rather then destroying as usual.

# Affected repositories are:
# - 1963: https://updates.suse.com/repo/$RCE/RES7/src/
# - 1736: https://updates.suse.com/repo/$RCE/RES7/x86_64/
Repository.where(scc_id: [1963, 1736]).destroy_all
Repository.where(scc_id: [1963, 1736]).delete_all
end
end
6 changes: 6 additions & 0 deletions package/obs/rmt-server.changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Feb 20 15:36:00 UTC 2024 - Zuzana Petrova <[email protected]>

- Fix for SUSE Liberty registration script to allow RHEL7/SLL7/CentOS7
clients to register to RMT servers

-------------------------------------------------------------------
Thu Feb 08 15:33:00 UTC 2024 - Felix Schnizlein <[email protected]>

Expand Down
70 changes: 51 additions & 19 deletions public/tools/rmt-client-setup-res
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ SUSECONNECT=/usr/bin/SUSEConnect
RPM=/usr/bin/rpm
DNF=/usr/bin/dnf
CURL=/usr/bin/curl
YUM=/usr/bin/yum
YUM_CONFIG_MGR=/usr/bin/yum-config-manager

TEMPFILE="/etc/pki/ca-trust/source/anchors/rmt.crt"
UPDATE_CA_TRUST=/usr/bin/update-ca-trust
RPM_GPG_KEY_LOCATION="/etc/pki/rpm-gpg"
Expand Down Expand Up @@ -74,7 +77,7 @@ fi

if [ -z "$REGURL" ]; then
echo "Missing registration URL. Abort."
usage
exit 1
fi

if [ ! -x $RPM ]; then
Expand All @@ -87,6 +90,11 @@ if [ ! -x $CURL ]; then
exit 1
fi

if [[ ! -e /etc/os-release ]]; then
echo "/etc/os-release file not found. Couldn't determine OS. Abort."
exit 1
fi

# Import Self-signed CERT as Trusted
if [ -z "$REGCERT" ]; then
CERTURL=`echo "$REGURL" | awk -F/ '{print "https://" $3 "/rmt.crt"}'`
Expand All @@ -112,43 +120,43 @@ if [ -x $UPDATE_CA_TRUST ]; then
fi

SLL_version=`cat /etc/os-release | grep "VERSION_ID" | cut -d\" -f2 | cut -d\. -f1`
if [[ ${SLL_version} > 8 ]]; then
if [[ ${SLL_version} > 8 ]]; then
SLL_name="SLL";
SLL_release_package="sll-release"
elif [[ ${SLL_version} -eq 7 ]]; then
SLL_name="RES";
SLL_release_package="sles_es-release-server"
elif [[ ${SLL_version} -eq 8 ]]; then
SLL_name="RES";
SLL_release_package="sles_es-release"
else
SLL_name="RES";
SLL_release_package="sles_es-release"
echo "Unsupported or unknown base version. Abort";
exit 1
fi

echo "detect ${SLL_name} version... ${SLL_version}"

echo "Disabling all repositories"
dnf config-manager --disable $(dnf repolist -q | awk '{ print $1 }' | grep -v repo)
#sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/*

# on Centos /usr/share/redhat-release is a file, on RHEL and RES it is a directory
# so this is CentOS only workaround
if [ -f /usr/share/redhat-release ] | [ -h /usr/share/redhat-release ]; then
rm -f /usr/share/redhat-release;
fi

# on RHEL9 (not RHEL8) redhat-release is protected and cannot be updated to sll-release
if [ -f /etc/dnf/protected.d/redhat-release.conf ]; then
rm -f /etc/dnf/protected.d/redhat-release.conf;
fi

echo "Importing repomd.xml.key"
$CURL --silent --show-error --insecure ${REGURL}/repo/SUSE/Updates/${SLL_name}/${SLL_version}/x86_64/update/repodata/repomd.xml.key --output repomd.xml.key
$RPM --import repomd.xml.key

if [ ! -x $SUSECONNECT ]; then
echo "Downloading SUSEConnect"
if [[ ${SLL_version} > 7 ]]; then

if [ ! -x $DNF ]; then
echo "dnf command not found. Abort."
exit 1
fi

echo "Disabling all repositories"
$DNF config-manager --disable $(dnf repolist -q | awk '{ print $1 }' | grep -v repo)
#sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/*
# on RHEL9 (not RHEL8) redhat-release is protected and cannot be updated to sll-release
if [ -f /etc/dnf/protected.d/redhat-release.conf ]; then
rm -f /etc/dnf/protected.d/redhat-release.conf;
fi

$DNF config-manager --add-repo ${REGURL}/repo/SUSE/Updates/${SLL_name}/${SLL_version}/x86_64/update
$DNF config-manager --add-repo ${REGURL}/repo/SUSE/Updates/${SLL_name}-AS/${SLL_version}/x86_64/update
$DNF install --allowerasing ${SLL_release_package}
Expand All @@ -161,6 +169,30 @@ if [ ! -x $SUSECONNECT ]; then
$DNF install SUSEConnect librepo
$DNF config-manager --set-disabled "${RMTNAME}_repo_SUSE_Updates_${SLL_name}_${SLL_version}_x86_64_update"
$DNF config-manager --set-disabled "${RMTNAME}_repo_SUSE_Updates_${SLL_name}-AS_${SLL_version}_x86_64_update"

elif [[ ${SLL_version} -eq 7 ]]; then
# For SLL7 we need to have yum, yum_config_mgr, sles_os-release-server, etc..
if [ ! -x "$YUM_CONFIG_MGR" ]; then
echo "YUM config manager is not installed. Please install yum-config-manager and retry. Abort."
exit 1
fi

echo "Disabling all repositories"
$YUM_CONFIG_MGR --disable \* > /dev/null

# on Centos /usr/share/redhat-release is a file, on RHEL and RES it is a directory
# so this is CentOS only workaround (on some system it is a normal file, on some systems a symlink)
if [ -f /usr/share/redhat-release ] | [ -h /usr/share/redhat-release ]; then
rm -f /usr/share/redhat-release;
fi

$YUM_CONFIG_MGR --add-repo ${REGURL}/repo/SUSE/Updates/${SLL_name}/${SLL_version}/x86_64/update
$YUM_CONFIG_MGR --enable *suse.* > /dev/null

$YUM install sles_es-release-server suseconnect-ng librepo


fi
elif [[ ${SLL_version} -eq 8 ]]; then
# For SLL8, the release package is already installed, just import the keys
import_rpm_signing_keys
Expand Down
2 changes: 1 addition & 1 deletion spec/lib/suse/connect/system_serializer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
context 'system with systemuptime' do
let(:system) { create :system, :with_system_uptimes }

it 'match systemuptime data' do
it 'matches systemuptime data' do
expect((serializer[:systemuptimes][0][:online_at_day]).to_date).to eq(Time.zone.now.to_date)
expect((serializer[:systemuptimes][0][:online_at_hours]).to_s).to eq('111111111111111111111111')
end
Expand Down

0 comments on commit ecca9b4

Please sign in to comment.