From 65d944bdb4eb57d9a9739ac9a5bd3944ead58c12 Mon Sep 17 00:00:00 2001 From: Michael Calmer Date: Mon, 20 Jan 2025 13:48:24 +0100 Subject: [PATCH 01/28] set a send date when preparing emails --- java/code/src/com/redhat/rhn/common/messaging/SmtpMail.java | 2 ++ java/spacewalk-java.changes.mcalmer.set-send-date-for-email | 1 + 2 files changed, 3 insertions(+) create mode 100644 java/spacewalk-java.changes.mcalmer.set-send-date-for-email diff --git a/java/code/src/com/redhat/rhn/common/messaging/SmtpMail.java b/java/code/src/com/redhat/rhn/common/messaging/SmtpMail.java index 06f115b2ef7f..7cfb99eb09e0 100644 --- a/java/code/src/com/redhat/rhn/common/messaging/SmtpMail.java +++ b/java/code/src/com/redhat/rhn/common/messaging/SmtpMail.java @@ -24,6 +24,7 @@ import org.apache.logging.log4j.Logger; import java.io.IOException; +import java.util.Date; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; @@ -142,6 +143,7 @@ public void setFrom(String from) { public void send() { try { + message.setSentDate(new Date()); Address[] addrs = message.getRecipients(RecipientType.TO); if (addrs == null || addrs.length == 0) { log.warn("Aborting mail message {}: No recipients", message.getSubject()); diff --git a/java/spacewalk-java.changes.mcalmer.set-send-date-for-email b/java/spacewalk-java.changes.mcalmer.set-send-date-for-email new file mode 100644 index 000000000000..77e3ad90f4fb --- /dev/null +++ b/java/spacewalk-java.changes.mcalmer.set-send-date-for-email @@ -0,0 +1 @@ +- Set a send date when preparing emails From 6244207e88fa32016c7acfa9d091f8079752bdf9 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Thu, 19 Dec 2024 11:19:12 +0100 Subject: [PATCH 02/28] Use setParameter in Hibernate queries --- .../hibernate/EmptyVarcharInterceptor.java | 4 +- .../redhat/rhn/domain/BaseDomainHelper.java | 3 +- .../domain/action/test/ActionTypeTest.java | 3 +- .../redhat/rhn/domain/audit/ScapFactory.java | 31 +++++----- .../rhn/domain/common/CommonFactory.java | 21 ++++--- .../redhat/rhn/domain/common/FileList.hbm.xml | 4 -- .../config/ConfigChannelListProcessor.java | 3 +- .../domain/config/ConfigurationFactory.java | 17 +++--- .../rhn/domain/errata/ErrataFactory.java | 31 ++++++---- .../domain/image/ProfileCustomDataValue.java | 33 +--------- .../domain/kickstart/KickstartFactory.java | 9 +-- .../rhn/domain/org/usergroup/UserGroup.java | 3 +- .../recurringactions/RecurringAction.java | 3 +- .../domain/rhnpackage/PackageEvrFactory.java | 15 +++-- .../rhn/domain/rhnpackage/PackageFactory.java | 39 +++++++----- .../rhnpackage/profile/test/ProfileTest.java | 8 +-- .../profile/test/ProfileTypeTest.java | 3 +- .../redhat/rhn/domain/role/RoleFactory.java | 6 +- .../rhn/domain/scc/SCCRegCacheItem.java | 3 +- .../server/PinnedSubscriptionFactory.java | 3 +- .../rhn/domain/server/ServerFactory.java | 30 +++++----- .../domain/server/VirtualInstanceFactory.java | 60 ++++++++++++------- .../rhn/domain/server/test/LocationTest.java | 3 +- .../rhn/domain/server/test/NoteTest.java | 3 +- .../domain/token/ActivationKeyFactory.java | 3 +- .../rhn/domain/token/test/TokenTest.java | 3 +- .../src/com/redhat/rhn/domain/user/User.java | 3 +- .../redhat/rhn/domain/user/UserFactory.java | 6 +- .../test/KickstartDeleteActionTest.java | 5 +- .../manager/rhnpackage/PackageManager.java | 3 +- .../task/test/KickstartCleanupTest.java | 3 +- .../src/com/redhat/rhn/testing/TestUtils.java | 6 +- ....mbussolotto.hibernate_factory_refactoring | 1 + 33 files changed, 202 insertions(+), 169 deletions(-) create mode 100644 java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring diff --git a/java/code/src/com/redhat/rhn/common/hibernate/EmptyVarcharInterceptor.java b/java/code/src/com/redhat/rhn/common/hibernate/EmptyVarcharInterceptor.java index bbc7dac81e34..233b3801cd48 100644 --- a/java/code/src/com/redhat/rhn/common/hibernate/EmptyVarcharInterceptor.java +++ b/java/code/src/com/redhat/rhn/common/hibernate/EmptyVarcharInterceptor.java @@ -17,7 +17,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.EmptyInterceptor; -import org.hibernate.type.StringType; import org.hibernate.type.Type; import java.io.Serializable; @@ -59,8 +58,7 @@ protected static boolean emptyStringToNull(Object entity, Serializable id, boolean modified = false; for (int i = 0; i < types.length; i++) { - // type is string (VARCHAR) and state is empty string - if ((types[i] instanceof StringType) && "".equals(state[i])) { + if ("".equals(state[i])) { if (LOG.isDebugEnabled()) { LOG.debug("Object {} is setting empty string {}", entity.getClass().getCanonicalName(), propertyNames[i]); diff --git a/java/code/src/com/redhat/rhn/domain/BaseDomainHelper.java b/java/code/src/com/redhat/rhn/domain/BaseDomainHelper.java index 76dbefcc1223..9b4615b9fc03 100644 --- a/java/code/src/com/redhat/rhn/domain/BaseDomainHelper.java +++ b/java/code/src/com/redhat/rhn/domain/BaseDomainHelper.java @@ -20,6 +20,7 @@ import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; +import java.io.Serializable; import java.util.Date; import javax.persistence.Column; @@ -31,7 +32,7 @@ * DB table: web_contact */ @MappedSuperclass -public abstract class BaseDomainHelper { +public abstract class BaseDomainHelper implements Serializable { private Date created = new Date(); private Date modified; diff --git a/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java b/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java index aba0cade5c78..41dd04532dff 100644 --- a/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java +++ b/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java @@ -22,6 +22,7 @@ import com.redhat.rhn.testing.RhnBaseTestCase; import org.hibernate.Session; +import org.hibernate.type.StringType; import org.junit.jupiter.api.Test; /** @@ -70,7 +71,7 @@ public void testFindByLabel() throws Exception { private ActionType lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (ActionType) session.getNamedQuery("ActionType.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java b/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java index 172fe46e9098..2023aec492f0 100644 --- a/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java +++ b/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java @@ -20,7 +20,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.criterion.Restrictions; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.List; import java.util.Map; @@ -77,8 +78,8 @@ public static void delete(XccdfTestResult tr) { public static void clearTestResult(long serverId, long actionId) { List results = getSession() .getNamedQuery("XccdfTestResult.findByActionId") - .setLong("serverId", serverId) - .setLong("actionId", actionId) + .setParameter("serverId", serverId, LongType.INSTANCE) + .setParameter("actionId", actionId, LongType.INSTANCE) .list(); results.forEach(ScapFactory::delete); } @@ -89,8 +90,7 @@ public static void clearTestResult(long serverId, long actionId) { * @return the {@link XccdfBenchmark} if any */ public static Optional lookupBenchmarkById(long benchmarkId) { - return Optional.ofNullable( - (XccdfBenchmark)getSession().get(XccdfBenchmark.class, benchmarkId)); + return Optional.ofNullable(getSession().get(XccdfBenchmark.class, benchmarkId)); } /** @@ -99,7 +99,7 @@ public static Optional lookupBenchmarkById(long benchmarkId) { * @return the {@link XccdfIdent} if any */ public static Optional lookupIdentById(long identId) { - return Optional.ofNullable((XccdfIdent)getSession().get(XccdfIdent.class, identId)); + return Optional.ofNullable(getSession().get(XccdfIdent.class, identId)); } /** @@ -108,20 +108,21 @@ public static Optional lookupIdentById(long identId) { * @return the {@link XccdfProfile} if any */ public static Optional lookupProfileById(long profileId) { - return Optional.ofNullable( - (XccdfProfile)getSession().get(XccdfProfile.class, profileId)); + return Optional.ofNullable(getSession().get(XccdfProfile.class, profileId)); } /** - * Find a {@link XccdfRuleResultType} by id. - * @param label label id - * @return the {@link XccdfRuleResultType} if any + * Queries an XccdfRuleResultType by its label. + * + * @param label the label of the XccdfRuleResultType + * @return optional of XccdfRuleResultType */ public static Optional lookupRuleResultType(String label) { - return getSession().createCriteria(XccdfRuleResultType.class) - .add(Restrictions.eq("label", label)) - .list() - .stream().findFirst(); + String sql = "SELECT * FROM rhnXccdfRuleResultType WHERE label = :label"; + XccdfRuleResultType result = + getSession().createNativeQuery(sql, XccdfRuleResultType.class) + .setParameter("label", label, StringType.INSTANCE).getResultStream().findFirst().orElse(null); + return Optional.ofNullable(result); } /** diff --git a/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java b/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java index bb26abb21209..f1b72a7c3c54 100644 --- a/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java +++ b/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java @@ -22,6 +22,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.Calendar; import java.util.Date; @@ -87,9 +89,12 @@ public static FileList lookupFileList(Long idIn, Org org) { Session session = null; //look for Kickstart data by id session = HibernateFactory.getSession(); - return (FileList) session.getNamedQuery("FileList.findByIdAndOrg") - .setLong("id", idIn) - .setLong("org_id", org.getId()) + return session.createNativeQuery(""" + SELECT * from rhnFileList + WHERE id = :id + and org_id = :org_id """, FileList.class) + .setParameter("id", idIn, LongType.INSTANCE) + .setParameter("org_id", org.getId(), LongType.INSTANCE) .uniqueResult(); } @@ -103,8 +108,10 @@ public static FileList lookupFileList(String labelIn, Org org) { Session session = null; //look for Kickstart data by label session = HibernateFactory.getSession(); - return (FileList) session.getNamedQuery("FileList.findByLabelAndOrg").setString("label", labelIn) - .setLong("org_id", org.getId()).uniqueResult(); + return (FileList) session.getNamedQuery("FileList.findByLabelAndOrg") + .setParameter("label", labelIn, StringType.INSTANCE) + .setParameter("org_id", org.getId(), LongType.INSTANCE) + .uniqueResult(); } /** @@ -150,7 +157,7 @@ public static void saveTinyUrl(TinyUrl urlIn) { public static TinyUrl lookupTinyUrl(String tokenIn) { Session session = HibernateFactory.getSession(); return (TinyUrl) session.getNamedQuery("TinyUrl.findByToken") - .setString("token", tokenIn) - .uniqueResult(); + .setParameter("token", tokenIn, StringType.INSTANCE) + .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/common/FileList.hbm.xml b/java/code/src/com/redhat/rhn/domain/common/FileList.hbm.xml index bcf59d0ecd5f..8f20591bb346 100644 --- a/java/code/src/com/redhat/rhn/domain/common/FileList.hbm.xml +++ b/java/code/src/com/redhat/rhn/domain/common/FileList.hbm.xml @@ -34,10 +34,6 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" - - - diff --git a/java/code/src/com/redhat/rhn/domain/config/ConfigChannelListProcessor.java b/java/code/src/com/redhat/rhn/domain/config/ConfigChannelListProcessor.java index 3ccf6cc04221..fb978075f012 100644 --- a/java/code/src/com/redhat/rhn/domain/config/ConfigChannelListProcessor.java +++ b/java/code/src/com/redhat/rhn/domain/config/ConfigChannelListProcessor.java @@ -20,13 +20,14 @@ import com.redhat.rhn.domain.user.User; import com.redhat.rhn.manager.configuration.ConfigurationManager; +import java.io.Serializable; import java.util.List; /** * * ConfigChannelListProcessor */ -public class ConfigChannelListProcessor { +public class ConfigChannelListProcessor implements Serializable { private void check(ConfigChannel cc) { if (cc == null) { diff --git a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java index 972987cee09a..42321210a151 100644 --- a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java +++ b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java @@ -36,6 +36,8 @@ import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.io.IOException; import java.io.InputStream; @@ -431,10 +433,9 @@ public static ConfigFile lookupConfigFileByChannelAndName(Long channel, Long nam Session session = HibernateFactory.getSession(); Query query = session.getNamedQuery("ConfigFile.findByChannelAndName") - .setLong("channel_id", channel) - .setLong("name_id", name) - .setLong("state_id", ConfigFileState.normal(). - getId()); + .setParameter("channel_id", channel, LongType.INSTANCE) + .setParameter("name_id", name, LongType.INSTANCE) + .setParameter("state_id", ConfigFileState.normal().getId(), LongType.INSTANCE); try { return query.uniqueResult(); } @@ -464,7 +465,7 @@ public static ConfigRevision lookupConfigRevisionById(Long id) { public static ConfigRevision lookupConfigRevisionByRevId(ConfigFile cf, Long revId) { Session session = HibernateFactory.getSession(); Query q = session.getNamedQuery("ConfigRevision.findByRevisionAndConfigFile"); - q.setLong("rev", revId); + q.setParameter("rev", revId, LongType.INSTANCE); q.setParameter("cf", cf); return q.uniqueResult(); } @@ -515,7 +516,7 @@ static ConfigChannelType lookupConfigChannelTypeByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigChannelType) session.getNamedQuery("ConfigChannelType.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -532,7 +533,7 @@ static ConfigChannelType lookupConfigChannelTypeByLabel(String label) { static ConfigFileState lookupConfigFileStateByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigFileState)session.getNamedQuery("ConfigFileState.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -546,7 +547,7 @@ static ConfigFileState lookupConfigFileStateByLabel(String label) { static ConfigFileType lookupConfigFileTypeByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigFileType)session.getNamedQuery("ConfigFileType.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java b/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java index 1f8d1a196735..947ff381e4df 100644 --- a/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java +++ b/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java @@ -50,6 +50,8 @@ import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.ArrayList; import java.util.Collection; @@ -396,7 +398,8 @@ public static ErrataFileType lookupErrataFileType(String label) { ErrataFileType retval; try { retval = (ErrataFileType) getSession().getNamedQuery("ErrataFileType.findByLabel") - .setString("label", label).setCacheable(true).uniqueResult(); + .setParameter("label", label, StringType.INSTANCE) + .setCacheable(true).uniqueResult(); } catch (HibernateException e) { throw new HibernateRuntimeException(e.getMessage(), e); @@ -413,9 +416,9 @@ public static ErrataFileType lookupErrataFileType(String label) { public static List lookupErrataFilesByErrataAndFileType(Long errataId, String fileType) { List retval; try { - Query q = getSession().getNamedQuery("ErrataFile.listByErrataAndFileType"); - q.setLong("errata_id", errataId); - q.setString("file_type", fileType.toUpperCase()); + Query q = getSession().getNamedQuery("ErrataFile.listByErrataAndFileType") + .setParameter("errata_id", errataId, LongType.INSTANCE) + .setParameter("file_type", fileType.toUpperCase(), StringType.INSTANCE); retval = q.list(); } catch (HibernateException e) { @@ -446,7 +449,7 @@ public static List lookupErratasByAdvisoryType(String advisoryType) { List retval; try { retval = getSession().getNamedQuery("Errata.findByAdvisoryType") - .setString("type", advisoryType) + .setParameter("type", advisoryType, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true).list(); } @@ -466,7 +469,8 @@ public static Errata lookupErrataById(Long id) { Errata retval; try { retval = (Errata) getSession().getNamedQuery("Errata.findById") - .setLong("id", id).uniqueResult(); + .setParameter("id", id, LongType.INSTANCE) + .uniqueResult(); } catch (HibernateException he) { log.error("Error loading ActionArchTypes from DB", he); @@ -485,7 +489,7 @@ public static Errata lookupErrataById(Long id) { public static List lookupVendorAndUserErrataByAdvisoryAndOrg(String advisory, Org org) { Session session = HibernateFactory.getSession(); return session.getNamedQuery("Errata.findVendorAnUserErrataByAdvisoryNameAndOrg") - .setParameter("advisory", advisory) + .setParameter("advisory", advisory, StringType.INSTANCE) .setParameter("org", org) .getResultList(); } @@ -499,7 +503,7 @@ public static List lookupVendorAndUserErrataByAdvisoryAndOrg(String advi public static Errata lookupByAdvisoryAndOrg(String advisory, Org org) { return (Errata) HibernateFactory.getSession() .getNamedQuery("Errata.findByAdvisoryNameAndOrg") - .setParameter("advisory", advisory) + .setParameter("advisory", advisory, StringType.INSTANCE) .setParameter("org", org) .uniqueResult(); } @@ -515,7 +519,7 @@ public static List lookupByAdvisoryId(String advisoryId, Org org) { List retval; try { retval = getSession().getNamedQuery("Errata.findByAdvisory") - .setParameter("advisory", advisoryId) + .setParameter("advisory", advisoryId, StringType.INSTANCE) .setParameter("org", org) .getResultList(); } @@ -712,8 +716,8 @@ public static List lookupByChannelBetweenDates(Org org, Channel channel, getNamedQuery("Errata.lookupByChannelBetweenDates") .setParameter("org", org) .setParameter("channel", channel) - .setParameter("start_date", startDate) - .setParameter("end_date", endDate) + .setParameter("start_date", startDate, StringType.INSTANCE) + .setParameter("end_date", endDate, StringType.INSTANCE) .list(); } @@ -731,8 +735,9 @@ public static List lookupByChannelBetweenDates(Org org, Channel channel, public static Optional lookupErrataFile(Long errataId, String filename) { Session session = HibernateFactory.getSession(); return session.getNamedQuery("ErrataFile.lookupByErrataAndPackage") - .setParameter("errata_id", errataId) - .setParameter("filename", filename).uniqueResultOptional(); + .setParameter("errata_id", errataId, LongType.INSTANCE) + .setParameter("filename", filename, StringType.INSTANCE) + .uniqueResultOptional(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/image/ProfileCustomDataValue.java b/java/code/src/com/redhat/rhn/domain/image/ProfileCustomDataValue.java index 47eeb5709113..6b0f089ef6bc 100644 --- a/java/code/src/com/redhat/rhn/domain/image/ProfileCustomDataValue.java +++ b/java/code/src/com/redhat/rhn/domain/image/ProfileCustomDataValue.java @@ -15,6 +15,7 @@ package com.redhat.rhn.domain.image; import com.redhat.rhn.common.util.StringUtil; +import com.redhat.rhn.domain.BaseDomainHelper; import com.redhat.rhn.domain.org.CustomDataKey; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.domain.user.legacy.UserImpl; @@ -22,8 +23,6 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import java.util.Date; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -41,7 +40,7 @@ @Entity @Table(name = "suseProfileCustomDataValue") -public class ProfileCustomDataValue { +public class ProfileCustomDataValue extends BaseDomainHelper { private Long id; private ImageProfile profile; @@ -49,8 +48,6 @@ public class ProfileCustomDataValue { private String value; private User creator; private User lastModifier; - private Date created; - private Date modified; /** * @return Returns the Id @@ -101,20 +98,6 @@ public User getCreator() { public User getLastModifier() { return lastModifier; } - /** - * @return Returns the created. - */ - @Column(insertable = false, updatable = false) - public Date getCreated() { - return created; - } - /** - * @return Returns the modified. - */ - @Column(insertable = false, updatable = false) - public Date getModified() { - return modified; - } /** * @param idIn the id to set @@ -152,18 +135,6 @@ public void setCreator(User creatorIn) { public void setLastModifier(User lastModifierIn) { this.lastModifier = lastModifierIn; } - /** - * @param createdIn The created to set. - */ - public void setCreated(Date createdIn) { - this.created = createdIn; - } - /** - * @param modifiedIn The modified to set. - */ - public void setModified(Date modifiedIn) { - this.modified = modifiedIn; - } /** * {@inheritDoc} diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java index d5a9c4b0007a..6b6f002be548 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java @@ -484,12 +484,12 @@ public static CryptoKey lookupCryptoKey(String description, Org org) { Query query = null; if (org != null) { query = session.getNamedQuery("CryptoKey.findByDescAndOrg") - .setParameter("description", description) + .setParameter("description", description, StringType.INSTANCE) .setParameter(ORG_ID, org.getId(), LongType.INSTANCE); } else { query = session.getNamedQuery("CryptoKey.findByDescAndNullOrg") - .setParameter("description", description); + .setParameter("description", description, StringType.INSTANCE); } return query.uniqueResult(); } @@ -545,7 +545,8 @@ public static SslCryptoKey lookupSslCryptoKeyById(Long keyId, Org org) { //look for Kickstart data by id Session session = HibernateFactory.getSession(); Query query = session.getNamedQuery("SslCryptoKey.findByIdAndOrg"); - return query.setParameter("key_id", keyId, LongType.INSTANCE) + return query + .setParameter("key_id", keyId, LongType.INSTANCE) .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) .uniqueResult(); } @@ -575,7 +576,7 @@ public static KickstartableTree lookupKickstartTreeByLabel(String label, Org org Session session = HibernateFactory.getSession(); KickstartableTree retval = (KickstartableTree) session.getNamedQuery("KickstartableTree.findByLabelAndOrg") - .setParameter(LABEL, label) + .setParameter(LABEL, label, StringType.INSTANCE) .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) .uniqueResult(); // If we don't find by label + org then diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroup.java b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroup.java index a81b379b7ac0..4587d35bc281 100644 --- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroup.java +++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroup.java @@ -17,6 +17,7 @@ import com.redhat.rhn.domain.role.Role; +import java.io.Serializable; import java.util.Date; /** @@ -26,7 +27,7 @@ * * DB table: RHNUSERGROUP */ -public interface UserGroup { +public interface UserGroup extends Serializable { /** * Getter for id diff --git a/java/code/src/com/redhat/rhn/domain/recurringactions/RecurringAction.java b/java/code/src/com/redhat/rhn/domain/recurringactions/RecurringAction.java index bd70ea85bf74..e697119bdb39 100644 --- a/java/code/src/com/redhat/rhn/domain/recurringactions/RecurringAction.java +++ b/java/code/src/com/redhat/rhn/domain/recurringactions/RecurringAction.java @@ -23,6 +23,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.annotations.Type; import java.util.List; @@ -204,7 +205,7 @@ public void setCronExpr(String cronExprIn) { * @return active - if action is active */ @Column - @org.hibernate.annotations.Type(type = "yes_no") + @Type(type = "yes_no") public boolean isActive() { return active; } diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java index b3e1c1399918..01acda7555a7 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java @@ -19,6 +19,8 @@ import com.redhat.rhn.common.hibernate.HibernateFactory; import org.hibernate.Session; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.sql.Types; import java.util.HashMap; @@ -95,8 +97,9 @@ public static PackageEvr lookupOrCreatePackageEvr(String e, String v, String r, */ public static PackageEvr lookupPackageEvrById(Long id) { Session session = HibernateFactory.getSession(); - return (PackageEvr) session.getNamedQuery("PackageEvr.findById").setLong( - "id", id).uniqueResult(); + return (PackageEvr) session.getNamedQuery("PackageEvr.findById") + .setParameter("id", id, LongType.INSTANCE) + .uniqueResult(); } /** @@ -111,10 +114,10 @@ public static Optional lookupPackageEvrByEvr( String epoch, String version, String release, PackageType type) { Session session = HibernateFactory.getSession(); return (Optional) session.getNamedQuery("PackageEvr.lookupByEvr") - .setString("e_in", epoch) - .setString("v_in", version) - .setString("r_in", release) - .setString("t_in", type.getDbString()) + .setParameter("e_in", epoch, StringType.INSTANCE) + .setParameter("v_in", version, StringType.INSTANCE) + .setParameter("r_in", release, StringType.INSTANCE) + .setParameter("t_in", type.getDbString(), StringType.INSTANCE) .uniqueResultOptional(); } diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java index 196bd19a81c2..d65896e104ee 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java @@ -33,6 +33,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.sql.Types; import java.util.ArrayList; @@ -300,7 +302,8 @@ public static long lookupOrCreatePackageNameId(String name) { */ public static PackageName lookupPackageName(Long id) { return (PackageName) HibernateFactory.getSession().getNamedQuery("PackageName.findById") - .setLong("id", id).uniqueResult(); + .setParameter("id", id, LongType.INSTANCE) + .uniqueResult(); } /** @@ -313,7 +316,8 @@ public static PackageName lookupPackageName(Long id) { */ public static PackageName lookupPackageName(String pn) { return (PackageName) HibernateFactory.getSession().getNamedQuery("PackageName.findByName") - .setString("name", pn).uniqueResult(); + .setParameter("name", pn, StringType.INSTANCE) + .uniqueResult(); } /** @@ -325,7 +329,8 @@ public static PackageName lookupPackageName(String pn) { @SuppressWarnings("unchecked") public static List lookupOrphanPackages(Org org) { return HibernateFactory.getSession().getNamedQuery("Package.listOrphans") - .setParameter("org", org).list(); + .setParameter("org", org) + .list(); } /** @@ -342,9 +347,13 @@ public static List lookupByNevra(Org org, String name, String version, String release, String epoch, PackageArch arch) { List packages = HibernateFactory.getSession().getNamedQuery( - "Package.lookupByNevra").setParameter("org", org).setString("name", name) - .setString("version", version).setString("release", release).setParameter( - "arch", arch).list(); + "Package.lookupByNevra") + .setParameter("org", org) + .setParameter("name", name, StringType.INSTANCE) + .setParameter("version", version, StringType.INSTANCE) + .setParameter("release", release, StringType.INSTANCE) + .setParameter("arch", arch) + .list(); if (epoch == null || packages.size() < 2) { return packages; @@ -365,9 +374,9 @@ public static List lookupByNevraIds(Org org, long nameId, long evrId, l return HibernateFactory.getSession().createNamedQuery("Package.lookupByNevraIds", Package.class) .setParameter("org", org) - .setParameter("nameId", nameId) - .setParameter("evrId", evrId) - .setParameter("archId", archId) + .setParameter("nameId", nameId, LongType.INSTANCE) + .setParameter("evrId", evrId, LongType.INSTANCE) + .setParameter("archId", archId, LongType.INSTANCE) .list(); } @@ -388,12 +397,12 @@ public static Package lookupByChannelLabelNevraCs(String channel, String name, @SuppressWarnings("unchecked") List packages = HibernateFactory.getSession() .getNamedQuery("Package.lookupByChannelLabelNevraCs") - .setString("channel", channel) - .setString("name", name) - .setString("version", version) - .setString("release", release) - .setString("arch", arch) - .setString("checksum", checksum.orElse(null)) + .setParameter("channel", channel, StringType.INSTANCE) + .setParameter("name", name, StringType.INSTANCE) + .setParameter("version", version, StringType.INSTANCE) + .setParameter("release", release, StringType.INSTANCE) + .setParameter("arch", arch, StringType.INSTANCE) + .setParameter("checksum", checksum.orElse(null), StringType.INSTANCE) .list(); if (packages.isEmpty()) { diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTest.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTest.java index 9c7dcd4bb866..da175648a306 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTest.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTest.java @@ -80,8 +80,8 @@ public void testProfileEquals() throws Exception { public static Profile lookupByIdAndOrg(Long id, Org org) { Session session = HibernateFactory.getSession(); return (Profile) session.getNamedQuery("Profile.findByIdAndOrg") - .setLong("id", id) - .setLong("org_id", org.getId()) + .setParameter("id", id) + .setParameter("org_id", org.getId()) .uniqueResult(); } @@ -126,8 +126,8 @@ public void testCompatibleServer() throws Exception { session.flush(); Query qry = session.getNamedQuery("Profile.compatibleWithServer"); - qry.setLong("sid", server.getId()); - qry.setLong("org_id", user.getOrg().getId()); + qry.setParameter("sid", server.getId()); + qry.setParameter("org_id", user.getOrg().getId()); List list = qry.list(); assertNotNull(list, "List is null"); assertFalse(list.isEmpty(), "List is empty"); diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java index 5ab04b4044ad..a813bee16b5d 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java @@ -23,6 +23,7 @@ import com.redhat.rhn.testing.RhnBaseTestCase; import org.hibernate.Session; +import org.hibernate.type.StringType; import org.junit.jupiter.api.Test; /** @@ -73,7 +74,7 @@ public void testFindByLabel() throws Exception { public static ProfileType lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (ProfileType) session.getNamedQuery("ProfileType.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java b/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java index 6f4ad8e277b5..9be5cdf19589 100644 --- a/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java +++ b/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java @@ -19,6 +19,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; /** * RoleFactory @@ -56,7 +58,7 @@ protected Logger getLogger() { public static Role lookupById(Long id) { Session session = HibernateFactory.getSession(); return (Role) session.getNamedQuery("Role.findById") - .setLong("id", id) + .setParameter("id", id, LongType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -70,7 +72,7 @@ public static Role lookupById(Long id) { public static Role lookupByLabel(String name) { Session session = HibernateFactory.getSession(); return (Role) session.getNamedQuery("Role.findByLabel") - .setString("label", name) + .setParameter("label", name, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/scc/SCCRegCacheItem.java b/java/code/src/com/redhat/rhn/domain/scc/SCCRegCacheItem.java index 8f1785b38f66..81dbcfac9c92 100644 --- a/java/code/src/com/redhat/rhn/domain/scc/SCCRegCacheItem.java +++ b/java/code/src/com/redhat/rhn/domain/scc/SCCRegCacheItem.java @@ -25,6 +25,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; +import org.hibernate.annotations.Type; import java.security.SecureRandom; import java.util.Date; @@ -178,7 +179,7 @@ public Optional getOptCredentials() { * @return true when updating the registration at SCC is required, otherwise false */ @Column(name = "scc_reg_required") - @org.hibernate.annotations.Type(type = "yes_no") + @Type(type = "yes_no") public boolean isSccRegistrationRequired() { return sccRegistrationRequired; } diff --git a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java index 7330cdaac2d0..24d7008545b6 100644 --- a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java @@ -21,6 +21,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.criterion.Restrictions; +import org.hibernate.type.LongType; import java.util.List; @@ -96,7 +97,7 @@ public void remove(PinnedSubscription subscription) { public void cleanStalePins() { getSession() .getNamedQuery("PinnedSubscription.cleanStalePins") - .setLong("selfSystemId", MatcherJsonIO.SELF_SYSTEM_ID) + .setParameter("selfSystemId", MatcherJsonIO.SELF_SYSTEM_ID, LongType.INSTANCE) .executeUpdate(); } diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java index 0b5213380b03..49d05dffb701 100644 --- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java @@ -62,7 +62,9 @@ import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Subqueries; import org.hibernate.query.Query; +import org.hibernate.type.LongType; import org.hibernate.type.StandardBasicTypes; +import org.hibernate.type.StringType; import java.util.ArrayList; import java.util.Arrays; @@ -115,10 +117,11 @@ protected static CustomDataValue getCustomDataValue(CustomDataKey key, Session session = HibernateFactory.getSession(); return (CustomDataValue) session.getNamedQuery( - "CustomDataValue.findByServerAndKey").setParameter("server", - server).setParameter("key", key) - // Retrieve from cache if there - .setCacheable(true).uniqueResult(); + "CustomDataValue.findByServerAndKey") + .setParameter("server", server) + .setParameter("key", key) + .setCacheable(true) + .uniqueResult(); } /** @@ -793,9 +796,9 @@ public static List lookupByServerIds(List ids, Strin */ public static ServerGroupType lookupServerGroupTypeByLabel(String label) { return (ServerGroupType) HibernateFactory.getSession().getNamedQuery("ServerGroupType.findByLabel") - .setString("label", label) - // Retrieve from cache if there - .setCacheable(true).uniqueResult(); + .setParameter("label", label, StringType.INSTANCE) + .setCacheable(true) + .uniqueResult(); } @@ -897,9 +900,9 @@ private static void updateServerPerms(Server server) { public static ServerArch lookupServerArchByLabel(String label) { Session session = HibernateFactory.getSession(); return (ServerArch) session.getNamedQuery("ServerArch.findByLabel") - .setString("label", label) - // Retrieve from cache if there - .setCacheable(true).uniqueResult(); + .setParameter("label", label, StringType.INSTANCE) + .setCacheable(true) + .uniqueResult(); } /** @@ -923,8 +926,7 @@ public static ServerArch lookupServerArchByName(String name) { public static CPUArch lookupCPUArchByName(String name) { Session session = HibernateFactory.getSession(); return (CPUArch) session.getNamedQuery("CPUArch.findByName") - .setString("name", name) - // Retrieve from cache if there + .setParameter("name", name, StringType.INSTANCE) .setCacheable(true).uniqueResult(); } @@ -1299,7 +1301,7 @@ public static void removeTagFromSnapshot(Long serverId, SnapshotTag tag) { */ public static SnapshotTag lookupSnapshotTagbyName(String tagName) { return (SnapshotTag) HibernateFactory.getSession().getNamedQuery("SnapshotTag.lookupByTagName") - .setString("tag_name", tagName) + .setParameter("tag_name", tagName, StringType.INSTANCE) // Do not use setCacheable(true), as tag deletion will // usually end up making this query's output out of date .uniqueResult(); @@ -1311,7 +1313,7 @@ public static SnapshotTag lookupSnapshotTagbyName(String tagName) { */ public static SnapshotTag lookupSnapshotTagbyId(Long tagId) { return (SnapshotTag) HibernateFactory.getSession().getNamedQuery("SnapshotTag.lookupById") - .setLong("id", tagId) + .setParameter("id", tagId, LongType.INSTANCE) // Do not use setCacheable(true), as tag deletion will // usually end up making this query's output out of date .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java b/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java index 87d9707e0a5b..58b8afb70341 100644 --- a/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java @@ -20,6 +20,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.ArrayList; import java.util.HashSet; @@ -83,7 +85,9 @@ public VirtualInstance lookupByGuestId(Org org, Long id) { Session session = HibernateFactory.getSession(); return (VirtualInstance) session.getNamedQuery("VirtualInstance.lookupGuestBySidAndOrg") - .setParameter("org", org).setParameter("sid", id).uniqueResult(); + .setParameter("org", org) + .setParameter("sid", id, LongType.INSTANCE) + .uniqueResult(); } @@ -96,8 +100,9 @@ public VirtualInstance lookupByGuestId(Org org, Long id) { public VirtualInstance lookupByGuestId(Long id) { Session session = HibernateFactory.getSession(); return (VirtualInstance) session.getNamedQuery( - "VirtualInstance.lookupGuestBySid"). - setParameter("sid", id).uniqueResult(); + "VirtualInstance.lookupGuestBySid") + .setParameter("sid", id, LongType.INSTANCE) + .uniqueResult(); } /** @@ -111,7 +116,8 @@ public boolean isOutdated(VirtualInstance guest) { Session session = HibernateFactory.getSession(); VirtualInstance results = (VirtualInstance) session.getNamedQuery( "VirtualInstance.isOutdatedVirtualInstance"). - setParameter("guest", guest).uniqueResult(); + setParameter("guest", guest) + .uniqueResult(); return results != null; } @@ -165,7 +171,8 @@ public Set findGuestsWithNonVirtHostByOrg(Org org) { Session session = HibernateFactory.getSession(); List results = session.getNamedQuery( "VirtualInstance.findGuestsWithNonVirtHostByOrg"). - setParameter("org_id", org.getId()).list(); + setParameter("org_id", org.getId(), LongType.INSTANCE) + .list(); return new HashSet<>(convertToView(results)); } @@ -251,7 +258,8 @@ public Set findGuestsWithoutAHostByOrg(Org org) { */ public VirtualInstanceType getParaVirtType() { return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel").setString("label", "para_virtualized") + "VirtualInstanceType.findByLabel") + .setParameter("label", "para_virtualized", StringType.INSTANCE) .setCacheable(true).uniqueResult(); } @@ -262,7 +270,8 @@ public VirtualInstanceType getParaVirtType() { */ public VirtualInstanceType getFullyVirtType() { return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel").setString("label", "fully_virtualized") + "VirtualInstanceType.findByLabel") + .setParameter("label", "fully_virtualized", StringType.INSTANCE) .setCacheable(true).uniqueResult(); } @@ -274,7 +283,8 @@ public VirtualInstanceType getFullyVirtType() { */ public VirtualInstanceType getVirtualInstanceType(String label) { return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel").setString("label", label) + "VirtualInstanceType.findByLabel") + .setParameter("label", label, StringType.INSTANCE) .setCacheable(true).uniqueResult(); } @@ -285,7 +295,8 @@ public VirtualInstanceType getVirtualInstanceType(String label) { */ public VirtualInstanceState getRunningState() { return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", "running") + "VirtualInstanceState.findByLabel") + .setParameter("label", "running", StringType.INSTANCE) .uniqueResult(); } @@ -296,8 +307,9 @@ public VirtualInstanceState getRunningState() { */ public VirtualInstanceState getStoppedState() { return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", "stopped") - .uniqueResult(); + "VirtualInstanceState.findByLabel") + .setParameter("label", "stopped", StringType.INSTANCE) + .uniqueResult(); } /** @@ -307,8 +319,9 @@ public VirtualInstanceState getStoppedState() { */ public VirtualInstanceState getPausedState() { return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", "paused") - .uniqueResult(); + "VirtualInstanceState.findByLabel") + .setParameter("label", "paused", StringType.INSTANCE) + .uniqueResult(); } /** @@ -318,8 +331,9 @@ public VirtualInstanceState getPausedState() { */ public VirtualInstanceState getCrashedState() { return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", "crashed") - .uniqueResult(); + "VirtualInstanceState.findByLabel") + .setParameter("label", "crashed", StringType.INSTANCE) + .uniqueResult(); } /** @@ -329,7 +343,8 @@ public VirtualInstanceState getCrashedState() { */ public VirtualInstanceState getUnknownState() { return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", "unknown") + "VirtualInstanceState.findByLabel") + .setParameter("label", "unknown", StringType.INSTANCE) .uniqueResult(); } @@ -341,7 +356,8 @@ public VirtualInstanceState getUnknownState() { */ public Optional getState(String label) { return Optional.ofNullable((VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel").setString("label", label) + "VirtualInstanceState.findByLabel") + .setParameter("label", label, StringType.INSTANCE) .uniqueResult()); } @@ -353,8 +369,8 @@ public Optional getState(String label) { public List lookupVirtualInstanceByUuid(String uuid) { return getSession() .getNamedQuery("VirtualInstance.lookupVirtualInstanceByUuid") - .setParameter("uuid", uuid) - .list(); + .setParameter("uuid", uuid, StringType.INSTANCE) + .list(); } /** @@ -365,7 +381,7 @@ public List lookupVirtualInstanceByUuid(String uuid) { public VirtualInstance lookupHostVirtInstanceByHostId(Long hostId) { return (VirtualInstance) getSession() .getNamedQuery("VirtualInstance.lookupHostVirtInstanceByHostId") - .setParameter("hostId", hostId) + .setParameter("hostId", hostId, LongType.INSTANCE) .uniqueResult(); } @@ -378,8 +394,8 @@ public VirtualInstance lookupHostVirtInstanceByHostId(Long hostId) { public VirtualInstance lookupVirtualInstanceByHostIdAndUuid(Long hostId, String uuid) { return (VirtualInstance) getSession() .getNamedQuery("VirtualInstance.lookupHostVirtInstanceByHostIdAndUuid") - .setParameter("hostId", hostId) - .setParameter("uuid", uuid) + .setParameter("hostId", hostId, LongType.INSTANCE) + .setParameter("uuid", uuid, StringType.INSTANCE) .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java b/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java index 9b2b2c6f1b35..5adfff8bf44d 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java @@ -28,6 +28,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; +import org.hibernate.type.LongType; import org.junit.jupiter.api.Test; import java.util.Date; @@ -57,7 +58,7 @@ public void testLocation() throws Exception { Session session = HibernateFactory.getSession(); loc2 = (Location) session.getNamedQuery("Location.findById") - .setLong("id", loc1.getId()) + .setParameter("id", loc1.getId(), LongType.INSTANCE) .uniqueResult(); assertEquals(loc1, loc2); } diff --git a/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java b/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java index 0b1634a518a1..ff26e4ef8ddb 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java @@ -27,6 +27,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; +import org.hibernate.type.LongType; import org.junit.jupiter.api.Test; import java.util.Date; @@ -50,7 +51,7 @@ public void testEquals() throws Exception { Session session = HibernateFactory.getSession(); note2 = (Note) session.getNamedQuery("Note.findById") - .setLong("id", note1.getId()) + .setParameter("id", note1.getId(), LongType.INSTANCE) .uniqueResult(); assertEquals(note1, note2); diff --git a/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java b/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java index c827113065a4..9f533f757909 100644 --- a/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java +++ b/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java @@ -33,6 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.hibernate.type.StringType; import java.util.HashMap; import java.util.List; @@ -60,7 +61,7 @@ public static ActivationKey lookupByKey(String key) { return (ActivationKey) HibernateFactory.getSession() .getNamedQuery("ActivationKey.findByKey") - .setString("key", key) + .setParameter("key", key, StringType.INSTANCE) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java b/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java index 05faf1c891bb..1ce39c078a36 100644 --- a/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java +++ b/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java @@ -41,6 +41,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; +import org.hibernate.type.LongType; import org.junit.jupiter.api.Test; import java.util.ArrayList; @@ -64,7 +65,7 @@ public void testEquals() throws Exception { Session session = HibernateFactory.getSession(); token2 = (Token) session.getNamedQuery("Token.findById") - .setLong("id", token1.getId()) + .setParameter("id", token1.getId(), LongType.INSTANCE) .uniqueResult(); assertEquals(token1, token2); diff --git a/java/code/src/com/redhat/rhn/domain/user/User.java b/java/code/src/com/redhat/rhn/domain/user/User.java index 305029ef921a..a99ebedf2613 100644 --- a/java/code/src/com/redhat/rhn/domain/user/User.java +++ b/java/code/src/com/redhat/rhn/domain/user/User.java @@ -20,6 +20,7 @@ import com.redhat.rhn.domain.server.Server; import com.redhat.rhn.domain.server.ServerGroup; +import java.io.Serializable; import java.util.Date; import java.util.Set; @@ -28,7 +29,7 @@ * and ancillary tables. * DB table: web_contact */ -public interface User { +public interface User extends Serializable { /** * Gets the current value of id * @return long the current value diff --git a/java/code/src/com/redhat/rhn/domain/user/UserFactory.java b/java/code/src/com/redhat/rhn/domain/user/UserFactory.java index 7e152051ed73..7c9fff4be5b4 100644 --- a/java/code/src/com/redhat/rhn/domain/user/UserFactory.java +++ b/java/code/src/com/redhat/rhn/domain/user/UserFactory.java @@ -37,6 +37,8 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; +import org.hibernate.type.IntegerType; +import org.hibernate.type.StringType; import java.sql.Types; import java.util.Arrays; @@ -446,7 +448,7 @@ public void syncServerGroupPerms(User usr) { public static RhnTimeZone getTimeZone(int id) { Session session = HibernateFactory.getSession(); return (RhnTimeZone) session.getNamedQuery("RhnTimeZone.loadTimeZoneById") - .setInteger("tid", id) + .setParameter("tid", id, IntegerType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -461,7 +463,7 @@ public static RhnTimeZone getTimeZone(String olsonName) { Session session = HibernateFactory.getSession(); return (RhnTimeZone) session .getNamedQuery("RhnTimeZone.loadTimeZoneByOlsonName") - .setString("ton", olsonName) + .setParameter("ton", olsonName, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java index a92e4119bcb8..f4365dca5755 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java +++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java @@ -23,6 +23,7 @@ import com.redhat.rhn.frontend.struts.RequestContext; import org.hibernate.Session; +import org.hibernate.type.LongType; import org.junit.jupiter.api.Test; public class KickstartDeleteActionTest extends BaseKickstartEditTestCase { @@ -63,8 +64,8 @@ public void testSubmit() throws Exception { private KickstartData lookupById(Long id) { Session session = HibernateFactory.getSession(); return (KickstartData) session.getNamedQuery("KickstartData.findByIdAndOrg") - .setLong("id", id) - .setLong("org_id", user.getOrg().getId()) + .setParameter("id", id, LongType.INSTANCE) + .setParameter("org_id", user.getOrg().getId(), LongType.INSTANCE) .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java index 364a050b2f57..d6d51c65f8a0 100644 --- a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java +++ b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java @@ -68,6 +68,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Session; +import org.hibernate.type.StringType; import java.io.File; import java.util.ArrayList; @@ -636,7 +637,7 @@ public static PackageName lookupPackageName(String name) { try { session = HibernateFactory.getSession(); return (PackageName)session.getNamedQuery("PackageName.findByName") - .setString("name", name) + .setParameter("name", name, StringType.INSTANCE) .uniqueResult(); } catch (HibernateException e) { diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java b/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java index 04c658e7aa3e..25367449acbc 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java @@ -38,6 +38,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; +import org.hibernate.type.StringType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -156,7 +157,7 @@ private static KickstartSessionState lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (KickstartSessionState) session .getNamedQuery("KickstartSessionState.findByLabel") - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/testing/TestUtils.java b/java/code/src/com/redhat/rhn/testing/TestUtils.java index 7c8dbf06e35e..9ed442e690c5 100644 --- a/java/code/src/com/redhat/rhn/testing/TestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/TestUtils.java @@ -42,6 +42,8 @@ import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.io.BufferedReader; import java.io.File; @@ -267,7 +269,7 @@ public static List lookupTestObjects(String query) { public static Object lookupFromCacheById(Long id, String queryname) { Session session = HibernateFactory.getSession(); return session.getNamedQuery(queryname) - .setLong("id", id) + .setParameter("id", id, LongType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -284,7 +286,7 @@ public static Object lookupFromCacheByLabel(String label, String queryname) { Session session = HibernateFactory.getSession(); return session.getNamedQuery(queryname) - .setString("label", label) + .setParameter("label", label, StringType.INSTANCE) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring b/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring new file mode 100644 index 000000000000..5462af59f5df --- /dev/null +++ b/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring @@ -0,0 +1 @@ +- Use setParameter in Hibernate queries From 0746080563ef53e7910a686ec4e35fbd8d97908a Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Thu, 19 Dec 2024 17:55:53 +0100 Subject: [PATCH 03/28] Refactoring hibernate --- .../test/PackageActionDetailsTest.java | 20 ++- .../domain/action/test/ActionFactoryTest.java | 6 +- .../rhn/domain/common/ExceptionMessage.java | 27 ++- .../credentials/test/CredentialsTest.java | 2 +- .../redhat/rhn/domain/image/ImageInfo.java | 2 +- .../types/SubscriptionWarning.java | 2 +- .../rhn/domain/scc/SCCCachingFactory.java | 163 +++++++++--------- .../rhn/domain/server/CustomDataValue.java | 33 +--- .../server/PinnedSubscriptionFactory.java | 35 ++-- .../token/test/TokenPackageFactoryTest.java | 7 +- .../domain/token/test/TokenPackageTest.java | 6 +- .../software/ChannelSoftwareHandler.java | 17 +- .../errata/test/ErrataManagerTest.java | 8 +- .../rhnpackage/test/PackageManagerTest.java | 5 +- .../manager/system/ServerGroupManager.java | 6 +- .../system/VirtualInstanceManager.java | 4 +- .../redhat/rhn/taskomatic/TaskoFactory.java | 66 ++++--- .../redhat/rhn/testing/ChannelTestUtils.java | 13 +- .../redhat/rhn/testing/ErrataTestUtils.java | 3 +- .../redhat/rhn/testing/ServerTestUtils.java | 6 +- .../src/com/redhat/rhn/testing/TestUtils.java | 15 +- 21 files changed, 244 insertions(+), 202 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/action/rhnpackage/test/PackageActionDetailsTest.java b/java/code/src/com/redhat/rhn/domain/action/rhnpackage/test/PackageActionDetailsTest.java index 043961cfd477..b8edd34f26c7 100644 --- a/java/code/src/com/redhat/rhn/domain/action/rhnpackage/test/PackageActionDetailsTest.java +++ b/java/code/src/com/redhat/rhn/domain/action/rhnpackage/test/PackageActionDetailsTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.domain.action.Action; import com.redhat.rhn.domain.action.rhnpackage.PackageAction; import com.redhat.rhn.domain.action.rhnpackage.PackageActionDetails; @@ -32,7 +33,6 @@ import com.redhat.rhn.domain.server.test.ServerFactoryTest; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.testing.RhnBaseTestCase; -import com.redhat.rhn.testing.TestUtils; import org.junit.jupiter.api.Test; @@ -52,9 +52,12 @@ public void testBeanMethods() { Date now = new Date(); String foo = "foo"; + Long testid = 100L; - PackageArch arch = (PackageArch) TestUtils - .lookupFromCacheById(testid, "PackageArch.findById"); + + PackageArch arch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult(); PackageEvr evr = PackageEvrFactoryTest.createTestPackageEvr(); PackageName pn = PackageNameTest.createTestPackageName(); @@ -162,8 +165,10 @@ public static PackageActionDetails createTestDetailsWithName(User user, Action p pad.setParameter("upgrade"); Long testid = 100L; - pad.setArch((PackageArch) TestUtils - .lookupFromCacheById(testid, "PackageArch.findById")); + + pad.setArch((HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult())); pad.setPackageName(PackageNameTest.createTestPackageName()); ((PackageAction) parent).addDetail(pad); @@ -187,8 +192,9 @@ public static PackageActionDetails createTestDetailsWithNvre(User user, Action p pad.setParameter("upgrade"); Long testid = 100L; - pad.setArch((PackageArch) TestUtils - .lookupFromCacheById(testid, "PackageArch.findById")); + pad.setArch(HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult()); pad.setPackageName(PackageNameTest.createTestPackageName()); pad.setEvr(PackageEvrFactoryTest.createTestPackageEvr()); diff --git a/java/code/src/com/redhat/rhn/domain/action/test/ActionFactoryTest.java b/java/code/src/com/redhat/rhn/domain/action/test/ActionFactoryTest.java index 5fa593eb16c0..a07f411134f9 100644 --- a/java/code/src/com/redhat/rhn/domain/action/test/ActionFactoryTest.java +++ b/java/code/src/com/redhat/rhn/domain/action/test/ActionFactoryTest.java @@ -533,8 +533,10 @@ else if (type.equals(ActionFactory.TYPE_PACKAGES_AUTOUPDATE) || //create packageArch Long testid = 100L; - String query = "PackageArch.findById"; - PackageArch arch = (PackageArch) TestUtils.lookupFromCacheById(testid, query); + PackageArch arch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult(); + d.setArch(arch); //create packageName diff --git a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java index 11fdf54dcfbb..a9295cb52fc7 100644 --- a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java +++ b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java @@ -18,10 +18,10 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.criterion.Restrictions; +import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import javax.persistence.NoResultException; /** * RhnException @@ -43,12 +43,21 @@ protected ExceptionMessage() { * @return the associated exception object / null if not found otherwise */ public static ExceptionMessage lookup(long exceptionId) { - Session session = HibernateFactory.getSession(); - Criteria criteria = session.createCriteria(ExceptionMessage.class); - criteria.add(Restrictions.or( - Restrictions.eq("id", -1 * exceptionId), - Restrictions.eq("id", exceptionId))); - return (ExceptionMessage) criteria.uniqueResult(); + String sql = "SELECT * FROM exception_message WHERE id = :id OR id = :negId"; + + Query query = HibernateFactory.getSession() + .createNativeQuery(sql, ExceptionMessage.class); + query.setParameter("id", exceptionId, LongType.INSTANCE); + query.setParameter("negId", -1 * exceptionId, LongType.INSTANCE); + try { + return query.getSingleResult(); + } + catch (NoResultException e) { + return null; + } + catch (Exception e) { + throw new RuntimeException("Error retrieving ExceptionMessage", e); + } } /** diff --git a/java/code/src/com/redhat/rhn/domain/credentials/test/CredentialsTest.java b/java/code/src/com/redhat/rhn/domain/credentials/test/CredentialsTest.java index ad456b1eac28..efcbe4317846 100644 --- a/java/code/src/com/redhat/rhn/domain/credentials/test/CredentialsTest.java +++ b/java/code/src/com/redhat/rhn/domain/credentials/test/CredentialsTest.java @@ -50,7 +50,7 @@ public void testSCCCredentials() throws Exception { assertEquals("secret", creds.getPassword()); Optional r = HibernateFactory.getSession() - .createSQLQuery("select password from suseCredentials where username = 'admin';") + .createNativeQuery("select password from suseCredentials where username = 'admin';") .uniqueResultOptional(); // this prove that we really store encoded content in DB assertEquals("c2VjcmV0", r.orElseThrow().toString()); diff --git a/java/code/src/com/redhat/rhn/domain/image/ImageInfo.java b/java/code/src/com/redhat/rhn/domain/image/ImageInfo.java index fad24873f459..c2fc0823533d 100644 --- a/java/code/src/com/redhat/rhn/domain/image/ImageInfo.java +++ b/java/code/src/com/redhat/rhn/domain/image/ImageInfo.java @@ -88,7 +88,7 @@ public class ImageInfo extends BaseDomainHelper { * @return the id */ @Id - @Column(name = "id") + @Column(name = "id", insertable = false, updatable = false) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imginfo_seq") @SequenceGenerator(name = "imginfo_seq", sequenceName = "suse_imginfo_imgid_seq", allocationSize = 1) diff --git a/java/code/src/com/redhat/rhn/domain/notification/types/SubscriptionWarning.java b/java/code/src/com/redhat/rhn/domain/notification/types/SubscriptionWarning.java index 0e03d8d7b0b4..efdae975f639 100644 --- a/java/code/src/com/redhat/rhn/domain/notification/types/SubscriptionWarning.java +++ b/java/code/src/com/redhat/rhn/domain/notification/types/SubscriptionWarning.java @@ -31,7 +31,7 @@ public class SubscriptionWarning implements NotificationData { * @return boolean **/ public boolean expiresSoon() { - Optional result = getSession().createSQLQuery( + Optional result = getSession().createNativeQuery( "select exists (select name, expires_at, status, subtype " + "from susesccsubscription where subtype != 'internal' " + " and ((status = 'ACTIVE' and expires_at < now() + interval '90 day') " + diff --git a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java index 6f24b45f0377..fc18d5d8b7b0 100644 --- a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java +++ b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java @@ -60,8 +60,7 @@ /** * Factory class for populating and reading from SCC caching tables. - */ -public class SCCCachingFactory extends HibernateFactory { + */public class SCCCachingFactory extends HibernateFactory { private static Logger log = LogManager.getLogger(SCCCachingFactory.class); private static SCCCachingFactory singleton = new SCCCachingFactory(); @@ -107,13 +106,8 @@ public static List lookupRepositories() { * Clear all repositories from the database. */ public static void clearRepositories() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaDelete delete = builder.createCriteriaDelete(SCCRepository.class); - CriteriaDelete deleteAuth = builder.createCriteriaDelete(SCCRepositoryAuth.class); - delete.from(SCCRepository.class); - deleteAuth.from(SCCRepositoryAuth.class); - getSession().createQuery(deleteAuth).executeUpdate(); - getSession().createQuery(delete).executeUpdate(); + getSession().createNativeQuery("DELETE FROM suseSCCRepositoryAuth").executeUpdate(); + getSession().createNativeQuery("DELETE FROM suseSCCRepository").executeUpdate(); } /** @@ -176,9 +170,8 @@ public static SCCSubscription saveJsonSubscription(SCCSubscriptionJson jsonSub, @SuppressWarnings("unchecked") public static List lookupSubscriptions() { log.debug("Retrieving subscriptions from cache"); - Session session = getSession(); - Criteria c = session.createCriteria(SCCSubscription.class); - return c.list(); + return getSession().createNativeQuery("SELECT * from suseSCCSubscription", SCCSubscription.class) + .getResultList(); } /** @@ -190,20 +183,22 @@ public static SCCSubscription lookupSubscriptionBySccId(Long id) { if (id == null) { return null; } - Session session = getSession(); - Criteria c = session.createCriteria(SCCSubscription.class); - c.add(Restrictions.eq("sccId", id)); - return (SCCSubscription) c.uniqueResult(); + try { + return getSession().createNativeQuery("SELECT * from suseSCCSubscription WHERE scc_id = :scc", + SCCSubscription.class) + .setParameter("scc", id , StandardBasicTypes.LONG) + .getSingleResult(); + } + catch (NoResultException e) { + return null; + } } + /** * Clear all subscriptions from the database. */ public static void clearSubscriptions() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaDelete delete = builder.createCriteriaDelete(SCCSubscription.class); - delete.from(SCCSubscription.class); - getSession().createQuery(delete).executeUpdate(); - + getSession().createNativeQuery("DELETE FROM suseSCCSubscription"); } /** @@ -213,9 +208,8 @@ public static void clearSubscriptions() { @SuppressWarnings("unchecked") public static List lookupOrderItems() { log.debug("Retrieving orderItems from cache"); - Session session = getSession(); - Criteria c = session.createCriteria(SCCOrderItem.class); - return c.list(); + return getSession().createNativeQuery("SELECT * from suseSCCOrderItem", SCCOrderItem.class) + .getResultList(); } /** @@ -226,11 +220,12 @@ public static List lookupOrderItems() { public static List listOrderItemsByCredentials(ContentSyncSource source) { return source.getCredentials() .map(credentials -> { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery query = builder.createQuery(SCCOrderItem.class); - Root root = query.from(SCCOrderItem.class); - query.where(builder.equal(root.get("credentials"), credentials)); - return getSession().createQuery(query).getResultList(); + return getSession().createNativeQuery(""" + SELECT * from suseSCCOrderItem + WHERE credentials_id = :credentials + """, SCCOrderItem.class) + .setParameter("credentials", credentials, StandardBasicTypes.LONG) + .getResultList(); }) .orElse(Collections.emptyList()); } @@ -241,12 +236,10 @@ public static List listOrderItemsByCredentials(ContentSyncSource s * @return the OrderItem */ public static Optional lookupOrderItemBySccId(Long sccId) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery query = builder.createQuery(SCCOrderItem.class); - Root root = query.from(SCCOrderItem.class); - query.where( - builder.equal(root.get("sccId"), sccId)); - return getSession().createQuery(query).uniqueResultOptional(); + return getSession().createNativeQuery("SELECT * from suseSCCOrderItem WHERE scc_id = :scc", + SCCOrderItem.class) + .setParameter("scc", sccId, StandardBasicTypes.LONG) + .uniqueResultOptional(); } /** @@ -345,15 +338,19 @@ public static boolean refreshNeeded(Optional lastRefreshDateIn) { * @return list of scc subscription ids */ public static List listSubscriptionsIdsByCredentials(RemoteCredentials c) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery query = builder.createQuery(SCCSubscription.class); - Root root = query.from(SCCSubscription.class); - query.where(builder.equal(root.get("credentials"), c)); - List result = new ArrayList<>(); - for (SCCSubscription sub : getSession().createQuery(query).getResultList()) { - result.add(sub.getSccId()); + if (c == null || c.getId() == null) { + return getSession().createNativeQuery("SELECT * from suseSCCSubscription WHERE credentials_id IS NULL", + SCCSubscription.class) + .getResultList().stream().map(SCCSubscription::getSccId).collect(Collectors.toList()); + } + else { + return getSession().createNativeQuery(""" + SELECT * from suseSCCSubscription + WHERE credentials_id = :credentials + """, SCCSubscription.class) + .setParameter("credentials", c.getId(), StandardBasicTypes.LONG) + .getResultList().stream().map(SCCSubscription::getSccId).collect(Collectors.toList()); } - return result; } /** @@ -373,11 +370,15 @@ public static void deleteSubscriptionBySccId(Long sccSubId) { * @return a SCCRepository */ public static Optional lookupRepositoryBySccId(Long sccId) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepository.class); - Root root = select.from(SCCRepository.class); - select.where(builder.equal(root.get("sccId"), sccId)); - return getSession().createQuery(select).uniqueResultOptional(); + try { + return getSession().createNativeQuery("SELECT * from suseSCCRepository WHERE scc_id = :scc", + SCCRepository.class) + .setParameter("scc", sccId, StandardBasicTypes.LONG) + .uniqueResultOptional(); + } + catch (NoSuchElementException e) { + return Optional.empty(); + } } /** @@ -386,11 +387,16 @@ public static Optional lookupRepositoryBySccId(Long sccId) { * @return the repository if found */ public static Optional lookupRepositoryByName(String name) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepository.class); - Root root = select.from(SCCRepository.class); - select.where(builder.equal(root.get("name"), name)); - return getSession().createQuery(select).uniqueResultOptional(); + try { + + return getSession().createNativeQuery("SELECT * from suseSCCRepository WHERE name = :name", + SCCRepository.class) + .setParameter("name", name, StandardBasicTypes.STRING) + .uniqueResultOptional(); + } + catch (NoSuchElementException e) { + return Optional.empty(); + } } /** @@ -399,16 +405,9 @@ public static Optional lookupRepositoryByName(String name) { * @return a list of SCCRepositoriesAuth */ public static List lookupRepositoryAuthByCredential(ContentSyncSource source) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepositoryAuth.class); - Root root = select.from(SCCRepositoryAuth.class); - - source.getCredentials().ifPresentOrElse( - remoteCredentials -> select.where(builder.equal(root.get("credentials"), remoteCredentials)), - () -> select.where(builder.isNull(root.get("credentials"))) - ); - - return getSession().createQuery(select).getResultList(); + return source.getCredentials() + .map(SCCCachingFactory::lookupRepositoryAuthByCredential) + .orElseGet(List::of); } /** @@ -417,37 +416,35 @@ public static List lookupRepositoryAuthByCredential(ContentSy * @return a list of SCCRepositoriesAuth */ public static List lookupRepositoryAuthByCredential(Credentials c) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepositoryAuth.class); - Root root = select.from(SCCRepositoryAuth.class); if (c != null) { - select.where(builder.equal(root.get("credentials"), c)); + return getSession().createNativeQuery(""" + SELECT * from suseSCCRepositoryAuth + WHERE credentials_id = :credentials + """, SCCRepositoryAuth.class) + .setParameter("credentials", c.getId(), StandardBasicTypes.LONG) + .getResultList(); } else { - select.where(builder.isNull(root.get("credentials"))); + return getSession().createNativeQuery("SELECT * from suseSCCRepositoryAuth WHERE credentials_id IS null", + SCCRepositoryAuth.class) + .getResultList(); } - return getSession().createQuery(select).getResultList(); } /** * @return return a list of all {@link SCCRepositoryAuth} objects */ public static List lookupRepositoryAuth() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepositoryAuth.class); - select.from(SCCRepositoryAuth.class); - return getSession().createQuery(select).getResultList(); + return getSession().createNativeQuery("SELECT * from suseSCCRepositoryAuth", SCCRepositoryAuth.class) + .getResultList(); } /** * @return a list of repository auth objects which are linked to a {@link ContentSource} */ public static List lookupRepositoryAuthWithContentSource() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRepositoryAuth.class); - Root root = select.from(SCCRepositoryAuth.class); - select.where(builder.isNotNull(root.get("contentSource"))); - return getSession().createQuery(select).getResultList(); + return getSession().createNativeQuery("SELECT * from suseSCCRepositoryAuth WHERE source_id IS NOT null", + SCCRepositoryAuth.class).getResultList(); } /** @@ -631,12 +628,10 @@ public static List> listUpdateLastSeenCandidates(SCCCredenti * @return optional SCCRegCacheItem */ public static Optional lookupCacheItemByServer(Server srv) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery select = builder.createQuery(SCCRegCacheItem.class); - Root root = select.from(SCCRegCacheItem.class); - select.where(builder.equal(root.get("server"), srv)); - return getSession().createQuery(select).uniqueResultOptional(); - + return getSession().createNativeQuery("SELECT * from suseSCCRegCache WHERE server_id = :server", + SCCRegCacheItem.class) + .setParameter("server", srv.getId(), StandardBasicTypes.LONG) + .uniqueResultOptional(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/server/CustomDataValue.java b/java/code/src/com/redhat/rhn/domain/server/CustomDataValue.java index 6548aa2e85d6..8900ca211dd2 100644 --- a/java/code/src/com/redhat/rhn/domain/server/CustomDataValue.java +++ b/java/code/src/com/redhat/rhn/domain/server/CustomDataValue.java @@ -15,41 +15,28 @@ package com.redhat.rhn.domain.server; import com.redhat.rhn.common.util.StringUtil; +import com.redhat.rhn.domain.BaseDomainHelper; import com.redhat.rhn.domain.org.CustomDataKey; import com.redhat.rhn.domain.user.User; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import java.io.Serializable; -import java.util.Date; +import java.io.Serial; /** * CustomDataValue */ -public class CustomDataValue implements Serializable { +public class CustomDataValue extends BaseDomainHelper { + @Serial private static final long serialVersionUID = 1L; private Server server; private CustomDataKey key; private String value; private User creator; private User lastModifier; - private Date created; - private Date modified; - /** - * @return Returns the created. - */ - public Date getCreated() { - return created; - } - /** - * @param createdIn The created to set. - */ - public void setCreated(Date createdIn) { - this.created = createdIn; - } /** * @return Returns the creator. */ @@ -74,18 +61,6 @@ public CustomDataKey getKey() { public void setKey(CustomDataKey keyIn) { this.key = keyIn; } - /** - * @return Returns the modified. - */ - public Date getModified() { - return modified; - } - /** - * @param modifiedIn The modified to set. - */ - public void setModified(Date modifiedIn) { - this.modified = modifiedIn; - } /** * @return Returns the lastModifier. */ diff --git a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java index 24d7008545b6..c7d626cc31b6 100644 --- a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java @@ -20,11 +20,15 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.criterion.Restrictions; import org.hibernate.type.LongType; import java.util.List; +import javax.persistence.TypedQuery; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; /** * A factory for creating PinnedSubscription objects. @@ -70,7 +74,11 @@ protected Logger getLogger() { */ @SuppressWarnings("unchecked") public List listPinnedSubscriptions() { - return getSession().createCriteria(PinnedSubscription.class).list(); + String sql = "SELECT * FROM susePinnedSubscription"; + + TypedQuery query + = getSession().createNativeQuery(sql, PinnedSubscription.class); + return query.getResultList(); } /** @@ -107,10 +115,10 @@ public void cleanStalePins() { * @return PinnedSubscription object */ public PinnedSubscription lookupById(Long id) { + String sql = "SELECT * FROM susePinnedSubscription WHERE id = :id"; return (PinnedSubscription) getSession() - .createCriteria(PinnedSubscription.class) - .add(Restrictions.eq("id", id)) - .uniqueResult(); + .createNativeQuery(sql, PinnedSubscription.class).setParameter("id", id) + .getSingleResult(); } /** @@ -121,10 +129,17 @@ public PinnedSubscription lookupById(Long id) { */ public PinnedSubscription lookupBySystemIdAndSubscriptionId(Long systemId, Long subscriptionId) { - return (PinnedSubscription) getSession() - .createCriteria(PinnedSubscription.class) - .add(Restrictions.eq("systemId", systemId)) - .add(Restrictions.eq("subscriptionId", subscriptionId)) - .uniqueResult(); + + CriteriaBuilder cb = getSession().getCriteriaBuilder(); + + CriteriaQuery query = cb.createQuery(PinnedSubscription.class); + + Root root = query.from(PinnedSubscription.class); + + Predicate predicate = cb.equal(root.get("systemId"), systemId); + predicate = cb.and(predicate, cb.equal(root.get("subscriptionId"), subscriptionId)); + + query.select(root).where(predicate); + return getSession().createQuery(query).uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageFactoryTest.java b/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageFactoryTest.java index 034e7e108b64..1676df73ad4c 100644 --- a/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageFactoryTest.java +++ b/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageFactoryTest.java @@ -18,6 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.domain.rhnpackage.PackageArch; import com.redhat.rhn.domain.rhnpackage.PackageName; import com.redhat.rhn.domain.token.ActivationKey; @@ -92,8 +93,10 @@ public void testLookupPackages() throws Exception { TokenPackage pkg2 = new TokenPackage(); Long testid = 101L; - String query = "PackageArch.findById"; - PackageArch parch = (PackageArch) TestUtils.lookupFromCacheById(testid, query); + PackageArch parch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult(); + pkg2.setToken(key.getToken()); pkg2.setPackageName(pkg1.getPackageName()); diff --git a/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageTest.java b/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageTest.java index 6a996bb019cc..15640f7a1ac2 100644 --- a/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageTest.java +++ b/java/code/src/com/redhat/rhn/domain/token/test/TokenPackageTest.java @@ -17,6 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.domain.rhnpackage.PackageArch; import com.redhat.rhn.domain.rhnpackage.PackageName; import com.redhat.rhn.domain.rhnpackage.test.PackageNameTest; @@ -81,8 +82,9 @@ public static TokenPackage populateTestPackage(User user, ActivationKey key, PackageName pname = PackageNameTest.createTestPackageName(); Long testid = 100L; - String query = "PackageArch.findById"; - PackageArch parch = (PackageArch) TestUtils.lookupFromCacheById(testid, query); + PackageArch parch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", testid).getSingleResult(); p.setToken(key.getToken()); p.setPackageName(pname); diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java index 810ce53f19ce..92164934286b 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java @@ -102,6 +102,9 @@ import java.util.Map; import java.util.Set; +import javax.persistence.NoResultException; + + /** * ChannelSoftwareHandler * @apidoc.namespace channel.software @@ -1588,13 +1591,17 @@ private Channel lookupChannelByLabel(User user, String label) private Channel lookupChannelByLabel(Org org, String label) throws NoSuchChannelException { - Channel channel = ChannelManager.lookupByLabel( - org, label); - if (channel == null) { + try { + Channel channel = ChannelManager.lookupByLabel( + org, label); + if (channel == null) { + throw new NoSuchChannelException(label); + } + return channel; + } + catch (NoResultException e) { throw new NoSuchChannelException(label); } - - return channel; } private Channel lookupChannelById(User user, Long id) diff --git a/java/code/src/com/redhat/rhn/manager/errata/test/ErrataManagerTest.java b/java/code/src/com/redhat/rhn/manager/errata/test/ErrataManagerTest.java index 2fb643cbf53b..6e9e9f6592e2 100644 --- a/java/code/src/com/redhat/rhn/manager/errata/test/ErrataManagerTest.java +++ b/java/code/src/com/redhat/rhn/manager/errata/test/ErrataManagerTest.java @@ -76,7 +76,6 @@ import com.redhat.rhn.testing.UserTestUtils; import org.apache.commons.lang3.time.StopWatch; -import org.hibernate.criterion.Restrictions; import org.jmock.Expectations; import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.jupiter.api.BeforeEach; @@ -1525,8 +1524,11 @@ public void testApplyErrataMultipleErrataActionChainYum() throws Exception { * @return the errata action */ private ErrataAction errataActionFromAction(Action action) { - return (ErrataAction) HibernateFactory.getSession().createCriteria(ErrataAction.class) - .add(Restrictions.idEq(action.getId())).uniqueResult(); + String sql = "SELECT * FROM rhnAction WHERE id = :id"; + return HibernateFactory.getSession() + .createNativeQuery(sql, ErrataAction.class) + .setParameter("id", action.getId()) + .getSingleResult(); } /** diff --git a/java/code/src/com/redhat/rhn/manager/rhnpackage/test/PackageManagerTest.java b/java/code/src/com/redhat/rhn/manager/rhnpackage/test/PackageManagerTest.java index bee15f1d4ffd..34d173f7b161 100644 --- a/java/code/src/com/redhat/rhn/manager/rhnpackage/test/PackageManagerTest.java +++ b/java/code/src/com/redhat/rhn/manager/rhnpackage/test/PackageManagerTest.java @@ -123,7 +123,10 @@ public void testSystemPackageListMulti() throws Exception { Server server = ServerFactoryTest.createTestServer(user, true); // create 2 packages with same NEVRA in different channels - PackageArch parch = (PackageArch) TestUtils.lookupFromCacheById(100L, "PackageArch.findById"); + PackageArch parch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", 100L).getSingleResult(); + PackageName pname = PackageNameTest.createTestPackageName(); PackageEvr pevr = PackageEvrFactoryTest.createTestPackageEvr(parch.getArchType().getPackageType()); diff --git a/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java b/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java index 5944914f0161..b0b96ad81f2a 100644 --- a/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java +++ b/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java @@ -31,6 +31,7 @@ import com.redhat.rhn.domain.server.ServerGroupFactory; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.domain.user.UserFactory; +import com.redhat.rhn.domain.user.legacy.UserImpl; import com.suse.manager.webui.services.SaltStateGeneratorService; import com.suse.manager.webui.services.iface.SaltApi; @@ -41,6 +42,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.io.Serializable; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -53,7 +55,7 @@ /** * ServerGroupManager */ -public class ServerGroupManager { +public class ServerGroupManager implements Serializable { private static final Logger LOG = LogManager.getLogger(ServerGroupManager.class); @@ -213,7 +215,7 @@ public ManagedServerGroup create(User user, String name, String description) { user.getOrg()); SaltStateGeneratorService.INSTANCE.createServerGroup(sg); if (!user.hasRole(RoleFactory.ORG_ADMIN)) { - sg.getAssociatedAdminsFor(user).add(user); + sg.getAssociatedAdminsFor(user).add((UserImpl) user); ServerGroupFactory.save(sg); UserFactory.save(user); } diff --git a/java/code/src/com/redhat/rhn/manager/system/VirtualInstanceManager.java b/java/code/src/com/redhat/rhn/manager/system/VirtualInstanceManager.java index 133bb5cbc78c..e67e173d5591 100644 --- a/java/code/src/com/redhat/rhn/manager/system/VirtualInstanceManager.java +++ b/java/code/src/com/redhat/rhn/manager/system/VirtualInstanceManager.java @@ -14,8 +14,8 @@ */ package com.redhat.rhn.manager.system; +import com.redhat.rhn.domain.server.MinionServerFactory; import com.redhat.rhn.domain.server.Server; -import com.redhat.rhn.domain.server.ServerFactory; import com.redhat.rhn.domain.server.VirtualInstance; import com.redhat.rhn.domain.server.VirtualInstanceFactory; import com.redhat.rhn.domain.server.VirtualInstanceState; @@ -238,7 +238,7 @@ public static void addGuestVirtualInstance(String vmGuid, String name, // Do we have a System with machineid matching the GUID that has no // virtual instance? if (guest == null) { - ServerFactory.findByMachineId(vmGuid) + MinionServerFactory.findByMachineId(vmGuid) .ifPresent(system -> { if (system.getVirtualInstance() == null) { virtualInstance.setGuestSystem(system); diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java index b2ff8fe0bf96..45f2d9b13e2f 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java @@ -14,7 +14,6 @@ */ package com.redhat.rhn.taskomatic; - import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.taskomatic.domain.TaskoBunch; import com.redhat.rhn.taskomatic.domain.TaskoRun; @@ -24,11 +23,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.criterion.DetachedCriteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; -import org.hibernate.criterion.Subqueries; +import org.hibernate.query.Query; import org.quartz.SchedulerException; import java.util.Date; @@ -36,6 +31,7 @@ import java.util.List; import java.util.Map; +import javax.persistence.NoResultException; /** * TaskoFactory @@ -430,28 +426,42 @@ public static List listRunsByBunch(String bunchName) { * @return the latest run or null if none exists */ public static TaskoRun getLatestRun(String bunchName) { - DetachedCriteria bunchIds = DetachedCriteria.forClass(TaskoBunch.class) - .add(Restrictions.eq("name", bunchName)) - .setProjection(Projections.id()); - - DetachedCriteria templateIds = DetachedCriteria.forClass(TaskoTemplate.class) - .add(Subqueries.propertyIn("bunch", bunchIds)) - .setProjection(Projections.id()); - - return (TaskoRun) getSession() - .createCriteria(TaskoRun.class) - .add(Subqueries.propertyIn("template.id", templateIds)) - .add(Restrictions.in("status", - new Object[] { - TaskoRun.STATUS_RUNNING, - TaskoRun.STATUS_FINISHED, - TaskoRun.STATUS_INTERRUPTED - })) - .addOrder(Order.desc("startTime")) - .addOrder(Order.desc("id")) - .setFirstResult(0) - .setMaxResults(1) - .uniqueResult(); + String sql = + """ + SELECT tr.id, tr.created, tr.end_time, tr.modified, tr.org_id, tr.schedule_id, tr.start_time, + tr.status, tr.template_id + FROM rhnTaskoRun tr + WHERE tr.template_id IN ( + SELECT tt.id + FROM rhnTaskoTemplate tt + WHERE tt.bunch_id = ( + SELECT tb.id + FROM rhnTaskoBunch tb + WHERE tb.name = :bunchName + ) + ) + AND tr.status IN (:status1, :status2, :status3) + ORDER BY tr.start_time DESC, tr.id DESC + LIMIT 1 + """; + + // Create the native query + Query query = getSession().createNativeQuery(sql, TaskoRun.class); + + // Set the parameters for bunchName and status + query.setParameter("bunchName", bunchName); + query.setParameter("status1", TaskoRun.STATUS_RUNNING); + query.setParameter("status2", TaskoRun.STATUS_FINISHED); + query.setParameter("status3", TaskoRun.STATUS_INTERRUPTED); + + // Execute the query and return the result (or null if no result is found) + try { + return (TaskoRun) query.getSingleResult(); + } + catch (NoResultException e) { + // Handle the case where no result is found + return null; + } } /** diff --git a/java/code/src/com/redhat/rhn/testing/ChannelTestUtils.java b/java/code/src/com/redhat/rhn/testing/ChannelTestUtils.java index 83aa7d007cf8..b7fe0740d63b 100644 --- a/java/code/src/com/redhat/rhn/testing/ChannelTestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/ChannelTestUtils.java @@ -23,9 +23,6 @@ import com.redhat.rhn.manager.channel.ChannelManager; import com.redhat.rhn.manager.rhnpackage.test.PackageManagerTest; -import java.util.HashSet; -import java.util.Set; - /** * ChannelTestUtils @@ -45,7 +42,7 @@ private ChannelTestUtils() { */ public static Channel createBaseChannel(User creator) throws Exception { Channel retval = ChannelFactoryTest.createBaseChannel(creator); - retval = (Channel) TestUtils.reload(retval); + retval = TestUtils.reload(retval); return retval; } @@ -129,11 +126,9 @@ public static void addDistMapToChannel(Channel c, String os, String release) { dcm.setChannelArch(c.getChannelArch()); dcm.setOs(os); dcm.setRelease(release); - Set maps = new HashSet<>(); - maps.add(dcm); - c.setDistChannelMaps(maps); - ChannelFactory.save(c); - TestUtils.saveAndFlush(dcm); + ChannelFactory.save(dcm); + + c.getDistChannelMaps().add(dcm); } /** diff --git a/java/code/src/com/redhat/rhn/testing/ErrataTestUtils.java b/java/code/src/com/redhat/rhn/testing/ErrataTestUtils.java index c1b3c91497af..dfceda34ebf0 100644 --- a/java/code/src/com/redhat/rhn/testing/ErrataTestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/ErrataTestUtils.java @@ -350,8 +350,9 @@ public static Package createTestPackage(User user, Errata errata, Channel channe if (errata != null) { errata.addPackage(result); - result.setErrata(Set.of(errata)); + HibernateFactory.getSession().flush(); HibernateFactory.getSession().refresh(errata); + HibernateFactory.getSession().refresh(result); } return result; diff --git a/java/code/src/com/redhat/rhn/testing/ServerTestUtils.java b/java/code/src/com/redhat/rhn/testing/ServerTestUtils.java index 76dacd81c756..89d4aade6773 100644 --- a/java/code/src/com/redhat/rhn/testing/ServerTestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/ServerTestUtils.java @@ -109,8 +109,10 @@ public static Server addRedhatReleasePackageToServer(User user, Server addTo, release, addTo.getPackageType()); testInstPack.setEvr(evr); - PackageArch parch = (PackageArch) TestUtils.lookupFromCacheById( - I386_PACKAGE_ARCH_ID, "PackageArch.findById"); + PackageArch parch = HibernateFactory.getSession().createNativeQuery(""" + SELECT p.* from rhnPackageArch as p WHERE p.id = :id + """, PackageArch.class).setParameter("id", I386_PACKAGE_ARCH_ID).getSingleResult(); + testInstPack.setArch(parch); PackageName redhatRelease = PackageManager.lookupPackageName(REDHAT_RELEASE); diff --git a/java/code/src/com/redhat/rhn/testing/TestUtils.java b/java/code/src/com/redhat/rhn/testing/TestUtils.java index 9ed442e690c5..7f5f9a37e0e6 100644 --- a/java/code/src/com/redhat/rhn/testing/TestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/TestUtils.java @@ -369,7 +369,7 @@ public static T reload(T obj) throws HibernateException { */ public static void saveAndFlush(Object obj) throws HibernateException { Session session = HibernateFactory.getSession(); - session.save(obj); + session.saveOrUpdate(obj); session.flush(); } @@ -538,6 +538,19 @@ public static T saveAndReload(T o) { return reload(o); } + /** + * Merge an object from DB + * @param o to merge + * @param type of object to merge + * @return Object fresh from DB + */ + public static T merge(T o) { + Session session = HibernateFactory.getSession(); + session.merge(o); + session.flush(); + return reload(o); + } + /** * Get a private field from a class. Good for testing * the inner state of a class's member variables. From 65ba2a8c65467e8c77ba4f362bbdffc490bba4ef Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Fri, 20 Dec 2024 17:00:31 +0100 Subject: [PATCH 04/28] refactor channel queries and methods --- .../common/hibernate/AnnotationRegistry.java | 267 ++++++++++++------ .../rhn/common/security/acl/Access.java | 2 +- .../redhat/rhn/domain/channel/Channel.java | 3 +- .../rhn/domain/channel/ChannelFactory.java | 139 ++++++--- .../domain/channel/ChannelFamilyFactory.java | 72 +++-- .../manage/ChannelPackagesAddAction.java | 4 +- .../manage/ChannelPackagesCompareAction.java | 3 +- .../rhn/manager/audit/CVEAuditManager.java | 8 +- .../rhn/manager/channel/ChannelManager.java | 8 +- .../contentmgmt/test/ContentManagerTest.java | 15 +- .../task/repomd/UpdateInfoWriter.java | 3 +- .../webui/controllers/DownloadController.java | 7 +- 12 files changed, 361 insertions(+), 170 deletions(-) diff --git a/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java b/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java index cfdab5188f62..38c623348554 100644 --- a/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java +++ b/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java @@ -14,12 +14,21 @@ */ package com.redhat.rhn.common.hibernate; +import com.redhat.rhn.domain.channel.AccessToken; import com.redhat.rhn.domain.channel.AppStream; import com.redhat.rhn.domain.channel.AppStreamApi; +import com.redhat.rhn.domain.channel.AppStreamApiKey; +import com.redhat.rhn.domain.channel.Channel; +import com.redhat.rhn.domain.channel.ChannelArch; import com.redhat.rhn.domain.channel.ChannelSyncFlag; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.cloudpayg.CloudRmtHost; import com.redhat.rhn.domain.cloudpayg.PaygCredentialsProduct; import com.redhat.rhn.domain.cloudpayg.PaygSshData; +import com.redhat.rhn.domain.common.ProvisionState; +import com.redhat.rhn.domain.config.ConfigChannel; +import com.redhat.rhn.domain.config.ConfigChannelType; +import com.redhat.rhn.domain.config.ConfigFile; import com.redhat.rhn.domain.contentmgmt.ContentEnvironment; import com.redhat.rhn.domain.contentmgmt.ContentFilter; import com.redhat.rhn.domain.contentmgmt.ContentProject; @@ -53,9 +62,19 @@ import com.redhat.rhn.domain.image.ImageStoreType; import com.redhat.rhn.domain.image.KiwiProfile; import com.redhat.rhn.domain.image.ProfileCustomDataValue; +import com.redhat.rhn.domain.kickstart.crypto.CryptoKey; +import com.redhat.rhn.domain.kickstart.crypto.CryptoKeyType; +import com.redhat.rhn.domain.kickstart.crypto.SslCryptoKey; import com.redhat.rhn.domain.notification.NotificationMessage; import com.redhat.rhn.domain.notification.UserNotification; +import com.redhat.rhn.domain.org.Org; +import com.redhat.rhn.domain.org.OrgAdminManagement; +import com.redhat.rhn.domain.org.OrgConfig; +import com.redhat.rhn.domain.org.TemplateString; +import com.redhat.rhn.domain.org.usergroup.UserGroupImpl; +import com.redhat.rhn.domain.org.usergroup.UserGroupMembers; import com.redhat.rhn.domain.product.ChannelTemplate; +import com.redhat.rhn.domain.product.SUSEProductSCCRepository; import com.redhat.rhn.domain.recurringactions.GroupRecurringAction; import com.redhat.rhn.domain.recurringactions.MinionRecurringAction; import com.redhat.rhn.domain.recurringactions.OrgRecurringAction; @@ -64,10 +83,13 @@ import com.redhat.rhn.domain.recurringactions.state.RecurringInternalState; import com.redhat.rhn.domain.recurringactions.type.RecurringHighstate; import com.redhat.rhn.domain.recurringactions.type.RecurringState; +import com.redhat.rhn.domain.rhnpackage.PackageArch; import com.redhat.rhn.domain.rhnpackage.PackageBreaks; +import com.redhat.rhn.domain.rhnpackage.PackageCapability; import com.redhat.rhn.domain.rhnpackage.PackageConflicts; import com.redhat.rhn.domain.rhnpackage.PackageEnhances; import com.redhat.rhn.domain.rhnpackage.PackageExtraTagsKeys; +import com.redhat.rhn.domain.rhnpackage.PackageFile; import com.redhat.rhn.domain.rhnpackage.PackageObsoletes; import com.redhat.rhn.domain.rhnpackage.PackagePreDepends; import com.redhat.rhn.domain.rhnpackage.PackageProvides; @@ -75,6 +97,7 @@ import com.redhat.rhn.domain.rhnpackage.PackageRequires; import com.redhat.rhn.domain.rhnpackage.PackageSuggests; import com.redhat.rhn.domain.rhnpackage.PackageSupplements; +import com.redhat.rhn.domain.role.RoleImpl; import com.redhat.rhn.domain.scc.SCCOrderItem; import com.redhat.rhn.domain.scc.SCCRegCacheItem; import com.redhat.rhn.domain.scc.SCCRepository; @@ -84,14 +107,37 @@ import com.redhat.rhn.domain.scc.SCCRepositoryNoAuth; import com.redhat.rhn.domain.scc.SCCRepositoryTokenAuth; import com.redhat.rhn.domain.scc.SCCSubscription; +import com.redhat.rhn.domain.server.Capability; +import com.redhat.rhn.domain.server.ClientCapability; +import com.redhat.rhn.domain.server.ClientCapabilityId; +import com.redhat.rhn.domain.server.CustomDataValue; +import com.redhat.rhn.domain.server.EntitlementServerGroup; +import com.redhat.rhn.domain.server.InstalledPackage; +import com.redhat.rhn.domain.server.ManagedServerGroup; +import com.redhat.rhn.domain.server.MinionServer; +import com.redhat.rhn.domain.server.MinionServerFactory; +import com.redhat.rhn.domain.server.MinionSummary; +import com.redhat.rhn.domain.server.NetworkInterface; import com.redhat.rhn.domain.server.Pillar; +import com.redhat.rhn.domain.server.Server; import com.redhat.rhn.domain.server.ServerAppStream; +import com.redhat.rhn.domain.server.ServerGroup; +import com.redhat.rhn.domain.server.ServerGroupType; +import com.redhat.rhn.domain.server.ServerPath; +import com.redhat.rhn.domain.server.ServerPathId; import com.redhat.rhn.domain.server.ansible.AnsiblePath; import com.redhat.rhn.domain.server.ansible.InventoryPath; import com.redhat.rhn.domain.server.ansible.PlaybookPath; import com.redhat.rhn.domain.server.virtualhostmanager.VirtualHostManagerNodeInfo; import com.redhat.rhn.domain.task.Task; +import com.redhat.rhn.domain.token.Token; import com.redhat.rhn.domain.token.TokenChannelAppStream; +import com.redhat.rhn.domain.user.AddressImpl; +import com.redhat.rhn.domain.user.StateChange; +import com.redhat.rhn.domain.user.legacy.PersonalInfo; +import com.redhat.rhn.domain.user.legacy.UserImpl; +import com.redhat.rhn.domain.user.legacy.UserInfo; +import com.redhat.rhn.manager.system.ServerGroupManager; import com.suse.cloud.domain.PaygDimensionComputation; import com.suse.cloud.domain.PaygDimensionResult; @@ -117,93 +163,140 @@ private AnnotationRegistry() { } private static final List> ANNOTATION_CLASSES = List.of( - ImageStore.class, - ImageStoreType.class, - DockerfileProfile.class, - KiwiProfile.class, - ImageProfile.class, - ProfileCustomDataValue.class, - DeltaImageInfo.class, - ImageFile.class, - ImageInfo.class, - ImageInfoCustomDataValue.class, - ImageOverview.class, - ImagePackage.class, - ImageRepoDigest.class, - VirtualHostManagerNodeInfo.class, - NotificationMessage.class, - UserNotification.class, - SCCRepository.class, - SCCSubscription.class, - SCCOrderItem.class, - ChannelTemplate.class, - SCCRepositoryAuth.class, - SCCRepositoryNoAuth.class, - SCCRepositoryBasicAuth.class, - SCCRepositoryTokenAuth.class, - SCCRepositoryCloudRmtAuth.class, - ContentProject.class, - ContentEnvironment.class, - ProjectSource.class, - SoftwareProjectSource.class, - ContentFilter.class, - ContentProjectFilter.class, - PackageFilter.class, - ErrataFilter.class, - ModuleFilter.class, - PtfFilter.class, - EnvironmentTarget.class, - SoftwareEnvironmentTarget.class, - ContentProjectHistoryEntry.class, - PackageExtraTagsKeys.class, - PackageProvides.class, - PackageRequires.class, - PackageRecommends.class, - PackageObsoletes.class, - PackageBreaks.class, - PackageSupplements.class, - PackageConflicts.class, - PackageSuggests.class, - PackagePreDepends.class, - PackageEnhances.class, - MinionRecurringAction.class, - GroupRecurringAction.class, - OrgRecurringAction.class, - MaintenanceSchedule.class, - MaintenanceCalendar.class, - SCCRegCacheItem.class, - AnsiblePath.class, - InventoryPath.class, - PlaybookPath.class, - Pillar.class, - CloudRmtHost.class, - PaygSshData.class, - PaygCredentialsProduct.class, - Task.class, - RecurringHighstate.class, - RecurringState.class, - RecurringConfigChannel.class, - RecurringInternalState.class, - InternalState.class, - PaygDimensionComputation.class, - PaygDimensionResult.class, - BaseCredentials.class, - CloudRMTCredentials.class, - RegistryCredentials.class, - ReportDBCredentials.class, - RHUICredentials.class, - SCCCredentials.class, - VHMCredentials.class, - ChannelSyncFlag.class, - ServerCoCoAttestationConfig.class, - ServerCoCoAttestationReport.class, - CoCoEnvironmentTypeConverter.class, - CoCoAttestationResult.class, - CoCoResultTypeConverter.class, - ServerAppStream.class, - AppStream.class, - AppStreamApi.class, - TokenChannelAppStream.class +// AvailableChannelsView.class, + AccessToken.class, + AddressImpl.class, + AnsiblePath.class, + AppStreamApi.class, + AppStreamApiKey.class, + AppStream.class, + BaseCredentials.class, + Capability.class, + ChannelArch.class, + Channel.class, + ChannelSyncFlag.class, + ChannelTemplate.class, + ClientCapability.class, + ClientCapabilityId.class, + ClonedChannel.class, + CloudRMTCredentials.class, + CloudRmtHost.class, + CoCoAttestationResult.class, + CoCoEnvironmentTypeConverter.class, + CoCoResultTypeConverter.class, + ConfigChannel.class, + ConfigChannelType.class, + ConfigFile.class, + ContentEnvironment.class, + ContentFilter.class, + ContentProject.class, + ContentProjectFilter.class, + ContentProjectHistoryEntry.class, + CryptoKey.class, + CryptoKeyType.class, + CustomDataValue.class, + DeltaImageInfo.class, + DockerfileProfile.class, + EntitlementServerGroup.class, + EnvironmentTarget.class, + ErrataFilter.class, + GroupRecurringAction.class, + ImageFile.class, + ImageInfo.class, + ImageInfoCustomDataValue.class, + ImageOverview.class, + ImagePackage.class, + ImageProfile.class, + ImageRepoDigest.class, + ImageStore.class, + ImageStoreType.class, + InstalledPackage.class, + InternalState.class, + InventoryPath.class, + KiwiProfile.class, + MaintenanceCalendar.class, + MaintenanceSchedule.class, + ManagedServerGroup.class, + MinionRecurringAction.class, + MinionServer.class, + MinionServerFactory.class, + MinionSummary.class, + ModuleFilter.class, + NetworkInterface.class, + NotificationMessage.class, + OrgAdminManagement.class, + Org.class, + OrgConfig.class, + OrgRecurringAction.class, + PackageArch.class, + PackageBreaks.class, + PackageCapability.class, + PackageConflicts.class, + PackageEnhances.class, + PackageExtraTagsKeys.class, + PackageFile.class, + PackageFilter.class, + PackageObsoletes.class, + PackagePreDepends.class, + PackageProvides.class, + PackageRecommends.class, + PackageRequires.class, + PackageSuggests.class, + PackageSupplements.class, + PaygCredentialsProduct.class, + PaygDimensionComputation.class, + PaygDimensionResult.class, + PaygSshData.class, + PersonalInfo.class, + Pillar.class, + PlaybookPath.class, + ProfileCustomDataValue.class, + ProjectSource.class, + ProvisionState.class, + PtfFilter.class, + RecurringConfigChannel.class, + RecurringHighstate.class, + RecurringInternalState.class, + RecurringState.class, + RegistryCredentials.class, + ReportDBCredentials.class, + RHUICredentials.class, + RoleImpl.class, + SCCCredentials.class, + SCCOrderItem.class, + SCCRegCacheItem.class, + SCCRepositoryAuth.class, + SCCRepositoryBasicAuth.class, + SCCRepository.class, + SCCRepositoryCloudRmtAuth.class, + SCCRepositoryNoAuth.class, + SCCRepositoryTokenAuth.class, + SCCSubscription.class, + ServerAppStream.class, + Server.class, + ServerCoCoAttestationConfig.class, + ServerCoCoAttestationReport.class, + ServerGroup.class, + ServerGroupManager.class, + ServerGroupType.class, + ServerPath.class, + ServerPathId.class, + SoftwareEnvironmentTarget.class, + SoftwareProjectSource.class, + SslCryptoKey.class, + StateChange.class, + SUSEProductSCCRepository.class, + Task.class, + TemplateString.class, + TokenChannelAppStream.class, + Token.class, + UserGroupImpl.class, + UserGroupMembers.class, + UserImpl.class, + UserInfo.class, + UserNotification.class, + VHMCredentials.class, + VirtualHostManagerNodeInfo.class ); /** diff --git a/java/code/src/com/redhat/rhn/common/security/acl/Access.java b/java/code/src/com/redhat/rhn/common/security/acl/Access.java index 43a7baa17172..9a847782c85e 100644 --- a/java/code/src/com/redhat/rhn/common/security/acl/Access.java +++ b/java/code/src/com/redhat/rhn/common/security/acl/Access.java @@ -597,7 +597,7 @@ public boolean aclHasPtfRepositories(Map ctx, String[] params) { // Evaluate if any of the subscript channel refers to a PTF repository return server.getChannels() .stream() - .map(channel -> channel instanceof ClonedChannel ? channel.getOriginal() : channel) + .map(channel -> channel.asCloned().map(ClonedChannel::getOriginal).orElse(channel)) .flatMap(c -> c.getSources().stream()) .map(ContentSource::getSourceUrl) .anyMatch(url -> url.contains("/PTF/")); diff --git a/java/code/src/com/redhat/rhn/domain/channel/Channel.java b/java/code/src/com/redhat/rhn/domain/channel/Channel.java index 9029e7bc6735..8ae0c0ebff98 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/Channel.java +++ b/java/code/src/com/redhat/rhn/domain/channel/Channel.java @@ -38,6 +38,7 @@ import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.stream.Stream; @@ -986,7 +987,7 @@ public Channel getOriginal() { * @return stream of channels */ public Stream originChain() { - return Stream.iterate(this, c -> c != null, c -> c.isCloned() ? c.getOriginal() : null); + return Stream.iterate(this, Objects::nonNull, c -> c.asCloned().map(ClonedChannel::getOriginal).orElse(null)); } /** diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index f98bf2a632cf..41b2579dcaad 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -23,7 +23,6 @@ import com.redhat.rhn.common.db.datasource.WriteMode; import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.domain.common.ChecksumType; -import com.redhat.rhn.domain.kickstart.KickstartableTree; import com.redhat.rhn.domain.org.Org; import com.redhat.rhn.domain.rhnpackage.Package; import com.redhat.rhn.domain.scc.SCCRepository; @@ -34,11 +33,11 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; import org.hibernate.Session; -import org.hibernate.criterion.MatchMode; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; +import org.hibernate.query.Query; +import org.hibernate.type.IntegerType; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.ArrayList; import java.util.Arrays; @@ -51,6 +50,13 @@ import java.util.Optional; import java.util.Set; +import javax.persistence.NoResultException; +import javax.persistence.TypedQuery; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + /** * ChannelFactory */ @@ -392,8 +398,10 @@ public static List getAccessibleChannelsByOrg(Long orgid) { */ public static List getChannelArchitectures() { Session session = getSession(); - Criteria criteria = session.createCriteria(ChannelArch.class); - return criteria.list(); + String sql = "SELECT * FROM rhnChannelArch"; + List channelArchList + = session.createNativeQuery(sql, ChannelArch.class).getResultList(); + return channelArchList; } /** @@ -426,9 +434,10 @@ public static boolean isAccessibleByUser(String channelLabel, Long userId) { */ public static ChannelArch findArchByLabel(String label) { Session session = getSession(); - Criteria criteria = session.createCriteria(ChannelArch.class); - criteria.add(Restrictions.eq(LABEL, label)); - return (ChannelArch) criteria.uniqueResult(); + String sql = "SELECT * FROM rhnChannelArch WHERE label = :label"; + return session.createNativeQuery(sql, ChannelArch.class) + .setParameter(LABEL, label, StringType.INSTANCE) + .uniqueResult(); } /** @@ -451,9 +460,19 @@ public static Channel lookupByLabel(Org org, String label) { */ public static Channel lookupByLabel(String label) { Session session = getSession(); - Criteria c = session.createCriteria(Channel.class); - c.add(Restrictions.eq(LABEL, label)); - return (Channel) c.uniqueResult(); + String sql = """ + SELECT c.*, + c_1_.original_id, + CASE + WHEN c_1_.original_id IS NULL THEN 0 + ELSE 1 + END AS clazz_ + FROM rhnChannel c + LEFT JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id + WHERE c.label = :label"""; + return session.createNativeQuery(sql, Channel.class) + .setParameter(LABEL, label, StringType.INSTANCE) + .uniqueResult(); } /** @@ -796,8 +815,11 @@ public static ReleaseChannelMap lookupDefaultReleaseChannelMapForChannel(Channel * @return ChannelSyncFlag object containing all flag settings for a specfic channel */ public static ChannelSyncFlag lookupChannelReposyncFlag(Channel channel) { - return getSession().createQuery("from ChannelSyncFlag where channel = :channel", ChannelSyncFlag.class) - .setParameter("channel", channel).uniqueResult(); + return getSession() + .createNativeQuery( + "SELECT * FROM rhnChannelSyncFlag WHERE channel_id = :channel", ChannelSyncFlag.class) + .setParameter("channel", channel.getId(), LongType.INSTANCE) + .getSingleResult(); } /** @@ -1074,8 +1096,8 @@ public static Package lookupPackageByFilename(Channel channel, List pkgs = HibernateFactory.getSession() .getNamedQuery("Channel.packageByFileName") - .setString("pathlike", "%/" + fileName) - .setLong("channel_id", channel.getId()) + .setParameter("pathlike", "%/" + fileName, StringType.INSTANCE) + .setParameter("channel_id", channel.getId(), LongType.INSTANCE) .list(); if (pkgs.isEmpty()) { return null; @@ -1095,12 +1117,11 @@ public static Package lookupPackageByFilenameAndRange(Channel channel, String fileName, int headerStart, int headerEnd) { List pkgs = HibernateFactory.getSession() - .getNamedQuery("Channel.packageByFileNameAndRange") - .setString("pathlike", "%/" + fileName) - .setLong("channel_id", channel.getId()) - .setInteger("headerStart", headerStart) - .setInteger("headerEnd", headerEnd) - .list(); + .getNamedQuery("Channel.packageByFileNameAndRange") + .setParameter("pathlike", "%/" + fileName, StringType.INSTANCE) + .setParameter("channel_id", channel.getId(), LongType.INSTANCE) + .setParameter("headerStart", headerStart, IntegerType.INSTANCE) + .setParameter("headerEnd", headerEnd, IntegerType.INSTANCE).list(); if (pkgs.isEmpty()) { return null; } @@ -1116,10 +1137,12 @@ public static Package lookupPackageByFilenameAndRange(Channel channel, * @return true of the channels contains any distros */ public static boolean containsDistributions(Channel ch) { - Criteria criteria = getSession().createCriteria(KickstartableTree.class); - criteria.setProjection(Projections.rowCount()); - criteria.add(Restrictions.eq("channel", ch)); - return ((Number)criteria.uniqueResult()).intValue() > 0; + Session session = getSession(); + String sql + = "SELECT COUNT(*) FROM rhnKickstartableTree WHERE channel_id = :channelId"; + Number count = (Number) session.createNativeQuery(sql) + .setParameter("channelId", ch.getId(), LongType.INSTANCE).getSingleResult(); + return count.intValue() > 0; } /** @@ -1232,9 +1255,11 @@ public static List listCustomChannelsWithRepositories() { */ @SuppressWarnings("unchecked") public static List listVendorContentSources() { - Criteria criteria = getSession().createCriteria(ContentSource.class); - criteria.add(Restrictions.isNull("org")); - return criteria.list(); + Session session = getSession(); + String sql = "SELECT * FROM rhnContentSource WHERE org_id IS NULL"; + List contentSources + = session.createNativeQuery(sql, ContentSource.class).getResultList(); + return contentSources; } /** @@ -1243,23 +1268,42 @@ public static List listVendorContentSources() { * @return vendor content source if it exists */ public static ContentSource findVendorContentSourceByRepo(String repoUrl) { - Criteria criteria = getSession().createCriteria(ContentSource.class); - criteria.add(Restrictions.isNull("org")); + CriteriaBuilder cb = getSession().getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(ContentSource.class); + Root root = cq.from(ContentSource.class); + + // Create predicates for the query + Predicate isOrgNull = cb.isNull(root.get("org")); + Predicate sourceUrlPredicate; + if (repoUrl.contains("mirrorlist.centos.org") || repoUrl.contains("mirrors.rockylinux.org")) { - criteria.add(Restrictions.eq("sourceUrl", repoUrl)); + sourceUrlPredicate = cb.equal(root.get("sourceUrl"), repoUrl); } else { - String [] parts = repoUrl.split("\\?"); + String[] parts = repoUrl.split("\\?"); String repoUrlPrefix = parts[0]; if (parts.length > 1) { - criteria.add(Restrictions.like("sourceUrl", repoUrlPrefix + '?', - MatchMode.START)); + sourceUrlPredicate = cb.like(root.get("sourceUrl"), repoUrlPrefix + '%'); } else { - criteria.add(Restrictions.eq("sourceUrl", repoUrlPrefix)); + sourceUrlPredicate = cb.equal(root.get("sourceUrl"), repoUrlPrefix); } } - return (ContentSource) criteria.uniqueResult(); + + // Combine predicates + cq.where(cb.and(isOrgNull, sourceUrlPredicate)); + + // Create and execute the query + TypedQuery query = getSession().createQuery(cq); + ContentSource contentSource; + try { + contentSource = query.getSingleResult(); + } + catch (NoResultException e) { + contentSource = null; + } + + return contentSource; } /** @@ -1286,10 +1330,21 @@ public static List findContentSourceLikeUrl(String urlPart) { * @return channel product */ public static ChannelProduct findChannelProduct(String product, String version) { - Criteria criteria = getSession().createCriteria(ChannelProduct.class); - criteria.add(Restrictions.eq("product", product)); - criteria.add(Restrictions.eq("version", version)); - return (ChannelProduct) criteria.uniqueResult(); + Session session = getSession(); + String sql + = "SELECT * FROM rhnChannelProduct WHERE product = :product AND version = :version"; + Query query = session.createNativeQuery(sql, ChannelProduct.class); + query.setParameter("product", product, StringType.INSTANCE); + query.setParameter("version", version, StringType.INSTANCE); + try { + return query.getSingleResult(); + } + catch (NoResultException e) { + return null; + } + catch (Exception e) { + throw new RuntimeException("Error retrieving ChannelProduct", e); + } } /** diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java index a7a1bdf7fbca..b371aba0c8d2 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java @@ -24,9 +24,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.criterion.Restrictions; +import org.hibernate.query.Query; import java.util.ArrayList; import java.util.HashMap; @@ -34,6 +32,9 @@ import java.util.List; import java.util.Map; +import javax.persistence.NoResultException; +import javax.persistence.TypedQuery; + /** * ChannelFamilyFactory */ @@ -78,12 +79,27 @@ public static ChannelFamily lookupById(Long id) { * @return the ChannelFamily found */ public static ChannelFamily lookupByLabel(String label, Org org) { - Session session = getSession(); - Criteria c = session.createCriteria(ChannelFamily.class); - c.add(Restrictions.eq("label", label)); - c.add(Restrictions.or(Restrictions.eq("org", org), - Restrictions.isNull("org"))); - return (ChannelFamily) c.uniqueResult(); + String sql = "SELECT * FROM rhnChannelFamily WHERE label = :label AND (org_id = :org OR org_id IS NULL)"; + Query query = getSession().createNativeQuery(sql, ChannelFamily.class); + query.setParameter("label", label); + + // Handle org being null + if (org != null) { + query.setParameter("org", org.getId()); + } + else { + query.setParameter("org", -1); + } + + try { + return query.getSingleResult(); + } + catch (NoResultException e) { + return null; + } + catch (Exception e) { + throw new RuntimeException("Error retrieving ChannelFamily", e); + } } /** @@ -211,17 +227,32 @@ public static void save(PublicChannelFamily pcf) { * Lookup the List of ChannelFamily objects that are labled starting * with the passed in label param * @param label to query against - * @param orgIn owning the Channel. Pass in NULL if you want a NULL org channel + * @param org owning the Channel. Pass in NULL if you want a NULL org channel * @return List of Channel objects */ @SuppressWarnings("unchecked") - public static List lookupByLabelLike(String label, Org orgIn) { - Session session = getSession(); - Criteria c = session.createCriteria(ChannelFamily.class); - c.add(Restrictions.like("label", label + "%")); - c.add(Restrictions.or(Restrictions.eq("org", orgIn), - Restrictions.isNull("org"))); - return c.list(); + public static List lookupByLabelLike(String label, Org org) { + String sql = "SELECT * FROM rhnChannelFamily WHERE label LIKE :label AND (org_id = :org OR org_id IS NULL)"; + Query query = getSession().createNativeQuery(sql, ChannelFamily.class); + query.setParameter("label", label); + + // Handle org being null + if (org != null) { + query.setParameter("org", org.getId()); + } + else { + query.setParameter("org", -1); + } + + try { + return query.getResultList(); + } + catch (NoResultException e) { + return null; + } + catch (Exception e) { + throw new RuntimeException("Error retrieving ChannelFamily", e); + } } /** @@ -243,8 +274,9 @@ public static String getNameByLabel(String label) { */ @SuppressWarnings("unchecked") public static List getAllChannelFamilies() { - Session session = getSession(); - Criteria c = session.createCriteria(ChannelFamily.class); - return c.list(); + String sql = "SELECT * FROM rhnChannelFamily"; + TypedQuery query = + getSession().createNativeQuery(sql, ChannelFamily.class); + return query.getResultList(); } } diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddAction.java index 1de8bdcc1499..c466ec4aeb7f 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddAction.java @@ -19,6 +19,7 @@ import com.redhat.rhn.common.security.PermissionException; import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.channel.SelectableChannel; import com.redhat.rhn.domain.rhnset.RhnSet; import com.redhat.rhn.domain.role.RoleFactory; @@ -109,7 +110,8 @@ public ActionForward execute(ActionMapping mapping, //If a channel isn't selected, select one smartly if (selectedChan == null) { if (chan.isCloned()) { - selectedChan = chan.getOriginal().getId().toString(); + selectedChan = chan.asCloned().map(ClonedChannel::getOriginal) + .map(Channel::getId).orElse(0L).toString(); } else { selectedChan = ORPHAN_PACKAGES; diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesCompareAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesCompareAction.java index d838f9f1510f..c804801a61f5 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesCompareAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesCompareAction.java @@ -18,6 +18,7 @@ import com.redhat.rhn.common.security.PermissionException; import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.channel.SelectableChannel; import com.redhat.rhn.domain.role.RoleFactory; import com.redhat.rhn.domain.user.User; @@ -96,7 +97,7 @@ public ActionForward execute(ActionMapping mapping, //If a channel isn't selected, select one smartly if (selectedChan == null) { if (chan.isCloned()) { - scid = chan.getOriginal().getId(); + scid = chan.asCloned().map(ClonedChannel::getOriginal).map(Channel::getId).orElse(0L); } } else if (!NO_PACKAGES.equals(selectedChan)) { diff --git a/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java b/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java index c97dcfb01a5c..c7295b8d5a14 100644 --- a/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java +++ b/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java @@ -24,6 +24,7 @@ import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.ChannelArch; import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.image.ImageInfo; import com.redhat.rhn.domain.image.ImageInfoFactory; import com.redhat.rhn.domain.product.CachingSUSEProductFactory; @@ -369,7 +370,7 @@ public static List populateCVEChannels(AuditTarget auditTarget) { int i = 0; Channel original = c; while (original.isCloned()) { - original = original.getOriginal(); + original = original.asCloned().map(ClonedChannel::getOriginal).orElseThrow(); // Revert the index if no channel has actually been added i = relevantChannels.add( new RankedChannel(original.getId(), ++i)) ? i : --i; @@ -1082,8 +1083,9 @@ protected static Optional getPatchCandidateResult(List newerPatch = packageResults.stream() .filter(r -> instChannel.getId().equals(r.getChannelId().get()) || (instChannel.isCloned() && - instChannel.getOriginal() != null && instChannel.getOriginal().getId() - .equals(r.getChannelId().get()))) + instChannel.asCloned().map(ClonedChannel::getOriginal) + .map(Channel::getId) + .stream().anyMatch(id -> id.equals(r.getChannelId().get())))) .filter(r -> li.getPackageEvr().get().compareTo(r.getPackageEvr().get()) < 0) .max(evrComparator); diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java index 0c5413078242..a6eb885c3b42 100644 --- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java +++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java @@ -2101,7 +2101,7 @@ private static Map> getOrignalToClonesMap( */ public static Channel getOriginalChannel(Channel channel) { while (channel.isCloned()) { - channel = channel.getOriginal(); + channel = channel.asCloned().map(ClonedChannel::getOriginal).orElse(channel); } return channel; } @@ -2434,7 +2434,7 @@ public static List listErrataNeedingResync(Channel c, User user) if (c.isCloned()) { Map params = new HashMap<>(); params.put("cid", c.getId()); - params.put("ocid", c.getOriginal().getId()); + params.put("ocid", c.asCloned().map(ClonedChannel::getOriginal).orElseThrow().getId()); SelectMode m = ModeFactory.getMode(ERRATA_QUERIES, "list_errata_needing_sync"); return m.execute(params); @@ -2456,7 +2456,7 @@ public static List listErrataPackagesForResync(Channel c, User if (c.isCloned()) { Map params = new HashMap<>(); params.put("cid", c.getId()); - params.put("ocid", c.getOriginal().getId()); + params.put("ocid", c.asCloned().map(ClonedChannel::getOriginal).orElseThrow().getId()); SelectMode m = ModeFactory.getMode(ERRATA_QUERIES, "list_packages_needing_sync"); return m.execute(params); @@ -2481,7 +2481,7 @@ public static List listErrataPackagesForResync(Channel c, User Map params = new HashMap<>(); params.put("cid", c.getId()); params.put("set_label", setLabel); - params.put("ocid", c.getOriginal().getId()); + params.put("ocid", c.asCloned().map(ClonedChannel::getOriginal).orElseThrow().getId()); SelectMode m = ModeFactory.getMode(ERRATA_QUERIES, "list_packages_needing_sync_from_set"); return m.execute(params); } diff --git a/java/code/src/com/redhat/rhn/manager/contentmgmt/test/ContentManagerTest.java b/java/code/src/com/redhat/rhn/manager/contentmgmt/test/ContentManagerTest.java index 224c8c177094..a1d132722f1b 100644 --- a/java/code/src/com/redhat/rhn/manager/contentmgmt/test/ContentManagerTest.java +++ b/java/code/src/com/redhat/rhn/manager/contentmgmt/test/ContentManagerTest.java @@ -38,6 +38,7 @@ import com.redhat.rhn.common.security.PermissionException; import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.channel.Modules; import com.redhat.rhn.domain.channel.test.ChannelFactoryTest; import com.redhat.rhn.domain.contentmgmt.ContentEnvironment; @@ -325,7 +326,7 @@ public void testPopulateNewEnvironment() throws Exception { createEnvironment(cp.getLabel(), of(fst.getLabel()), "mid", "middle env", "desc", false, user); assertEquals(1, mid.getTargets().size()); Channel newChannel = mid.getTargets().get(0).asSoftwareTarget().get().getChannel(); - assertEquals(channel, newChannel.getOriginal()); + assertEquals(channel, newChannel.asCloned().map(ClonedChannel::getOriginal).get()); assertTrue(newChannel.getLabel().startsWith("cplabel-mid-")); assertEquals(fst.getVersion(), mid.getVersion()); } @@ -804,7 +805,7 @@ public void testBuildProject() throws Exception { assertEquals(Status.GENERATING_REPODATA, target.getStatus()); assertEquals("cplabel-fst-" + channel.getLabel(), tgtChannel.getLabel()); assertTrue(channel.getClonedChannels().contains(tgtChannel)); - assertEquals(channel, tgtChannel.getOriginal()); + assertEquals(channel, tgtChannel.asCloned().map(ClonedChannel::getOriginal).get()); assertEquals(channel.getPackages(), tgtChannel.getPackages()); assertEquals(channel.getErratas(), tgtChannel.getErratas()); assertEquals(Long.valueOf(1), env.getVersion()); @@ -1544,7 +1545,7 @@ public void testFixingClonedChannelLinks2() throws Exception { devChan = ChannelFactory.lookupById(devChan.getId()); testChan = ChannelFactory.lookupById(testChan.getId()); - assertEquals(srcChan, devChan.getOriginal()); + assertEquals(srcChan, devChan.asCloned().map(ClonedChannel::getOriginal).get()); assertFalse(testChan.isCloned()); // let's promote the project and check that the procedure fixed the channel in the test environment as well @@ -1554,13 +1555,15 @@ public void testFixingClonedChannelLinks2() throws Exception { devChan = ChannelFactory.lookupById(devChan.getId()); testChan = ChannelFactory.lookupById(testChan.getId()); - assertEquals(srcChan, devChan.getOriginal()); - assertEquals(devChan, testChan.getOriginal()); + assertEquals(srcChan, devChan.asCloned().map(ClonedChannel::getOriginal).get()); + assertEquals(devChan, testChan.asCloned().map(ClonedChannel::getOriginal).get()); } // extract original channels from given channels private Set getOriginalChannels(Collection channels) { - return channels.stream().map(Channel::getOriginal).collect(toSet()); + return channels.stream() + .map(c -> c.asCloned().orElseThrow()) + .map(ClonedChannel::getOriginal).collect(toSet()); } // get channels of given environment diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java index 23324c5623fb..a3eac024ef85 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java @@ -17,6 +17,7 @@ import com.redhat.rhn.common.db.datasource.DataResult; import com.redhat.rhn.domain.channel.Channel; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.frontend.dto.Bug; import com.redhat.rhn.frontend.dto.CVE; import com.redhat.rhn.frontend.dto.ErrataOverview; @@ -281,7 +282,7 @@ private String findUpdateTag(Channel channel) { if (updateTag == null || updateTag.isEmpty()) { Channel current = channel; while (current.isCloned()) { - current = current.getOriginal(); + current = current.asCloned().map(ClonedChannel::getOriginal).orElseThrow(); updateTag = current.getUpdateTag(); if (updateTag != null && !updateTag.isEmpty()) { break; diff --git a/java/code/src/com/suse/manager/webui/controllers/DownloadController.java b/java/code/src/com/suse/manager/webui/controllers/DownloadController.java index 90b77efeb73c..ee0c2d8dc69b 100644 --- a/java/code/src/com/suse/manager/webui/controllers/DownloadController.java +++ b/java/code/src/com/suse/manager/webui/controllers/DownloadController.java @@ -27,6 +27,7 @@ import com.redhat.rhn.domain.channel.AccessTokenFactory; import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.channel.ClonedChannel; import com.redhat.rhn.domain.channel.Comps; import com.redhat.rhn.domain.channel.MediaProducts; import com.redhat.rhn.domain.channel.Modules; @@ -355,7 +356,7 @@ private File getCompsFile(Channel channel) { Comps comps = channel.getComps(); if (comps == null && channel.isCloned()) { - comps = channel.getOriginal().getComps(); + comps = channel.asCloned().map(ClonedChannel::getOriginal).map(Channel::getComps).orElse(null); } if (comps != null) { return new File(mountPointPath, comps.getRelativeFilename()) @@ -377,7 +378,7 @@ private File getModulesFile(Channel channel) { Modules modules = channel.getModules(); if (modules == null && channel.isCloned()) { - modules = channel.getOriginal().getModules(); + modules = channel.asCloned().map(ClonedChannel::getOriginal).map(Channel::getModules).orElse(null); } if (modules != null) { return new File(mountPointPath, modules.getRelativeFilename()).getAbsoluteFile(); @@ -398,7 +399,7 @@ private File getMediaProductsFile(Channel channel) { MediaProducts product = channel.getMediaProducts(); if (product == null && channel.isCloned()) { - product = channel.getOriginal().getMediaProducts(); + product = channel.asCloned().map(ClonedChannel::getOriginal).map(Channel::getMediaProducts).orElse(null); } if (product != null) { return new File(mountPointPath, product.getRelativeFilename()) From 576ae42d7d49efe5752c100ee61d94dd1dda29e9 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Tue, 21 Jan 2025 16:25:45 +0100 Subject: [PATCH 05/28] fixup! add annotation --- .../src/com/redhat/rhn/domain/channel/ChannelFactory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index 41b2579dcaad..497978a2fa76 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -462,13 +462,13 @@ public static Channel lookupByLabel(String label) { Session session = getSession(); String sql = """ SELECT c.*, - c_1_.original_id, + cl.original_id, CASE - WHEN c_1_.original_id IS NULL THEN 0 + WHEN cl.original_id IS NULL THEN 0 ELSE 1 END AS clazz_ FROM rhnChannel c - LEFT JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id + LEFT JOIN rhnChannelCloned cl ON c.id = cl.id WHERE c.label = :label"""; return session.createNativeQuery(sql, Channel.class) .setParameter(LABEL, label, StringType.INSTANCE) From 548dc495244daaa422752e440f9408fad223f101 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Thu, 9 Jan 2025 17:50:22 +0100 Subject: [PATCH 06/28] refactor object oriented query --- .../domain/config/ConfigurationFactory.java | 56 +++++---- .../domain/kickstart/KickstartFactory.java | 10 +- .../server/PinnedSubscriptionFactory.java | 22 ++-- .../test/VirtualInstanceFactoryTest.java | 23 ++-- .../VirtualHostManagerFactory.java | 118 ++++++++++++------ 5 files changed, 135 insertions(+), 94 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java index 42321210a151..dd87fa90cc11 100644 --- a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java +++ b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java @@ -34,7 +34,6 @@ import org.apache.logging.log4j.Logger; import org.hibernate.ObjectNotFoundException; import org.hibernate.Session; -import org.hibernate.criterion.Restrictions; import org.hibernate.query.Query; import org.hibernate.type.LongType; import org.hibernate.type.StringType; @@ -48,10 +47,6 @@ import java.util.Map; import java.util.Optional; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - /** * ConfigurationFactory. For use when dealing with ConfigChannel, ConfigChannelType, * ConfigFile, ConfigRevision, ConfigFileState, ConfigContent, and ConfigInfo. @@ -357,11 +352,15 @@ public static ConfigRevision commit(ConfigRevision revision) { * @return the list of global config channels */ public static List listGlobalChannels() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery criteria = builder.createQuery(ConfigChannel.class); - Root root = criteria.from(ConfigChannel.class); - criteria.where(root.get("configChannelType").in(ConfigChannelType.normal(), ConfigChannelType.state())); - return getSession().createQuery(criteria).getResultList(); + return getSession().createNativeQuery(""" + SELECT * from rhnConfigChannel + WHERE + confchan_type_id = :confchan_type_id_normal + OR confchan_type_id = :confchan_type_id_state + """, ConfigChannel.class) + .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), LongType.INSTANCE) + .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), LongType.INSTANCE) + .getResultList(); } /** @@ -385,12 +384,16 @@ public static ConfigChannel lookupConfigChannelById(Long id) { public static ConfigChannel lookupConfigChannelByLabel(String label, Org org, ConfigChannelType cct) { - Session session = HibernateFactory.getSession(); - return (ConfigChannel) session.createCriteria(ConfigChannel.class). - add(Restrictions.eq("org", org)). - add(Restrictions.eq("label", label)). - add(Restrictions.eq("configChannelType", cct)). - uniqueResult(); + return getSession().createNativeQuery(""" + SELECT * from rhnConfigChannel + WHERE label = :label + AND org_id = :org_id + AND confchan_type_id = :confchan_type_id + """, ConfigChannel.class) + .setParameter("label", label, StringType.INSTANCE) + .setParameter("org_id", org.getId(), LongType.INSTANCE) + .setParameter("confchan_type_id", cct.getId(), LongType.INSTANCE) + .uniqueResult(); } /** @@ -402,14 +405,19 @@ public static ConfigChannel lookupConfigChannelByLabel(String label, */ public static Optional lookupGlobalConfigChannelByLabel(String label, Org org) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery criteria = builder.createQuery(ConfigChannel.class); - Root root = criteria.from(ConfigChannel.class); - criteria.where(builder.and( - builder.equal(root.get("label"), label)), - builder.equal(root.get("org"), org), - root.get("configChannelType").in(ConfigChannelType.normal(), ConfigChannelType.state())); - return getSession().createQuery(criteria).uniqueResultOptional(); + return getSession().createNativeQuery(""" + SELECT * from rhnConfigChannel + WHERE label = :label + AND org_id = :org_id + AND ( + confchan_type_id = :confchan_type_id_normal + OR confchan_type_id = :confchan_type_id_state) + """, ConfigChannel.class) + .setParameter("label", label, StringType.INSTANCE) + .setParameter("org_id", org.getId(), LongType.INSTANCE) + .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), LongType.INSTANCE) + .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), LongType.INSTANCE) + .uniqueResultOptional(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java index 6b6f002be548..75bd80b0e7cc 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java @@ -37,9 +37,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.cobbler.Profile; -import org.hibernate.Criteria; import org.hibernate.Session; -import org.hibernate.criterion.CriteriaSpecification; import org.hibernate.query.Query; import org.hibernate.type.LongType; import org.hibernate.type.StringType; @@ -918,11 +916,9 @@ public static List lookupKickstartDatasByTree(KickstartableTree t * @return List of KickstartData objects if found */ public static List listAllKickstartData() { - Session session = getSession(); - Criteria c = session.createCriteria(KickstartData.class); - // Hibernate does not filter out duplicate references by default - c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); - return c.list(); + return HibernateFactory.getSession().createNativeQuery(""" + SELECT DISTINCT * from rhnksdata + """, KickstartData.class).getResultList(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java index c7d626cc31b6..9b9e0ab9bc49 100644 --- a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java @@ -25,10 +25,6 @@ import java.util.List; import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; /** * A factory for creating PinnedSubscription objects. @@ -130,16 +126,12 @@ public PinnedSubscription lookupById(Long id) { public PinnedSubscription lookupBySystemIdAndSubscriptionId(Long systemId, Long subscriptionId) { - CriteriaBuilder cb = getSession().getCriteriaBuilder(); - - CriteriaQuery query = cb.createQuery(PinnedSubscription.class); - - Root root = query.from(PinnedSubscription.class); - - Predicate predicate = cb.equal(root.get("systemId"), systemId); - predicate = cb.and(predicate, cb.equal(root.get("subscriptionId"), subscriptionId)); - - query.select(root).where(predicate); - return getSession().createQuery(query).uniqueResult(); + String sql = "SELECT * FROM susePinnedSubscription " + + "WHERE system_id = :systemId AND subscription_id = :subscriptionId"; + return (PinnedSubscription) getSession() + .createNativeQuery(sql, PinnedSubscription.class) + .setParameter("systemId", systemId, LongType.INSTANCE) + .setParameter("subscriptionId", subscriptionId, LongType.INSTANCE) + .getSingleResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java b/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java index f04f0c1b0746..2354b892cccb 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java @@ -41,7 +41,7 @@ import org.apache.commons.collections.CollectionUtils; import org.hibernate.Session; -import org.hibernate.criterion.Restrictions; +import org.hibernate.type.LongType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -49,6 +49,8 @@ import java.util.List; import java.util.Set; +import javax.persistence.NoResultException; + /** * VirtualInstanceFactoryTest */ @@ -296,12 +298,19 @@ public void testLookupGuestByUuid() throws Exception { public void testLookupHostVirtualInstanceByHostId() throws Exception { Server host = ServerTestUtils.createVirtHostWithGuest(systemEntitlementManager); - VirtualInstance fromDb = (VirtualInstance) HibernateFactory.getSession() - .createCriteria(VirtualInstance.class) - .add(Restrictions.eq("hostSystem", host)) - .add(Restrictions.eq("guestSystem", null)) - .uniqueResult(); - + VirtualInstance fromDb; + try { + fromDb = HibernateFactory.getSession().createNativeQuery(""" + SELECT * from rhnVirtualInstance + WHERE host_system_id = :host + AND virtual_system_id IS NULL + """, VirtualInstance.class) + .setParameter("host", host.getId(), LongType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + fromDb = null; + } VirtualInstance hostVirtInstance = VirtualInstanceFactory.getInstance() .lookupHostVirtInstanceByHostId(host.getId()); diff --git a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java index 7d1076b6a760..e74c6d369c48 100644 --- a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java @@ -30,8 +30,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.io.FileOutputStream; import java.io.IOException; @@ -47,9 +47,7 @@ import java.util.Optional; import java.util.Set; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import javax.persistence.NoResultException; /** * Singleton representing Virtual Host Manager hibernate factory. @@ -106,10 +104,19 @@ protected Logger getLogger() { * exist */ public VirtualHostManager lookupByLabel(String label) { - return (VirtualHostManager) getSession() - .createCriteria(VirtualHostManager.class) - .add(Restrictions.eq("label", label)) - .uniqueResult(); + VirtualHostManager hostManager; + try { + hostManager = HibernateFactory.getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManager + WHERE label = :label + """, VirtualHostManager.class) + .setParameter("label", label, StringType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + hostManager = null; + } + return hostManager; } /** @@ -130,11 +137,21 @@ public Optional lookupById(Long id) { * exist */ public VirtualHostManager lookupByIdAndOrg(Long id, Org org) { - return (VirtualHostManager) getSession() - .createCriteria(VirtualHostManager.class) - .add(Restrictions.eq("org", org)) - .add(Restrictions.eq("id", id)) - .uniqueResult(); + VirtualHostManager hostManager; + try { + hostManager = HibernateFactory.getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManager + WHERE id = :id + AND org_id = :org + """, VirtualHostManager.class) + .setParameter("org", org.getId(), LongType.INSTANCE) + .setParameter("id", id, LongType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + hostManager = null; + } + return hostManager; } /** @@ -145,14 +162,14 @@ public VirtualHostManager lookupByIdAndOrg(Long id, Org org) { * inside the organization */ public List lookupByIdsAndOrg(List ids, Org org) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery criteria = - builder.createQuery(VirtualHostManager.class); - Root root = criteria.from(VirtualHostManager.class); - criteria.where(builder.and( - root.get("id").in(ids), - builder.equal(root.get("org"), org))); - return getSession().createQuery(criteria).getResultList(); + return HibernateFactory.getSession().createNativeQuery(""" + SELECT * from suseSCCSubscription + WHERE id IN (:ids) + AND org_id = :org + """, VirtualHostManager.class) + .setParameter("org", org.getId(), LongType.INSTANCE) + .setParameterList("ids", ids, LongType.INSTANCE) + .getResultList(); } /** @@ -163,11 +180,21 @@ public List lookupByIdsAndOrg(List ids, Org org) { * exist */ public VirtualHostManager lookupByLabelAndOrg(String label, Org org) { - return (VirtualHostManager) getSession() - .createCriteria(VirtualHostManager.class) - .add(Restrictions.eq("org", org)) - .add(Restrictions.eq("label", label)) - .uniqueResult(); + VirtualHostManager hostManager; + try { + hostManager = HibernateFactory.getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManager + WHERE label = :label + AND org_id = :org + """, VirtualHostManager.class) + .setParameter("label", label, StringType.INSTANCE) + .setParameter("org", org.getId(), LongType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + hostManager = null; + } + return hostManager; } /** @@ -177,11 +204,13 @@ public VirtualHostManager lookupByLabelAndOrg(String label, Org org) { */ @SuppressWarnings("unchecked") public List listVirtualHostManagers(Org org) { - return getSession() - .createCriteria(VirtualHostManager.class) - .add(Restrictions.eq("org", org)) - .addOrder(Order.asc("label")) - .list(); + return getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManager + WHERE org_id = :org + ORDER BY label + """, VirtualHostManager.class) + .setParameter("org", org.getId(), LongType.INSTANCE) + .getResultList(); } /** @@ -190,9 +219,10 @@ public List listVirtualHostManagers(Org org) { */ @SuppressWarnings("unchecked") public List listVirtualHostManagers() { - return getSession() - .createCriteria(VirtualHostManager.class) - .list(); + return HibernateFactory.getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManager + """, VirtualHostManager.class) + .getResultList(); } /** @@ -473,12 +503,18 @@ private VHMCredentials createCredentialsFromParams(Map params) { */ public Optional lookupNodeInfoByIdentifier( String identifier) { - VirtualHostManagerNodeInfo result = (VirtualHostManagerNodeInfo) getSession() - .createCriteria(VirtualHostManagerNodeInfo.class) - .add(Restrictions.eq("identifier", identifier)) - .uniqueResult(); - - return Optional.ofNullable(result); + Optional virtualNode; + try { + return Optional.ofNullable(getSession().createNativeQuery(""" + SELECT * from suseVirtualHostManagerNodeInfo + WHERE identifier = :identifier + """, VirtualHostManagerNodeInfo.class) + .setParameter("identifier", identifier, StringType.INSTANCE) + .getSingleResult()); + } + catch (NoResultException e) { + return Optional.empty(); + } } } From 06bae2aa6559502b0e1bda64061f28f91b575c84 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Fri, 10 Jan 2025 17:01:40 +0100 Subject: [PATCH 07/28] refactor SUSEProductFactory --- .../common/hibernate/AnnotationRegistry.java | 6 +- .../domain/product/SUSEProductFactory.java | 227 +++++++++++------- 2 files changed, 146 insertions(+), 87 deletions(-) diff --git a/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java b/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java index 38c623348554..b56d0065ab93 100644 --- a/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java +++ b/java/code/src/com/redhat/rhn/common/hibernate/AnnotationRegistry.java @@ -74,7 +74,6 @@ import com.redhat.rhn.domain.org.usergroup.UserGroupImpl; import com.redhat.rhn.domain.org.usergroup.UserGroupMembers; import com.redhat.rhn.domain.product.ChannelTemplate; -import com.redhat.rhn.domain.product.SUSEProductSCCRepository; import com.redhat.rhn.domain.recurringactions.GroupRecurringAction; import com.redhat.rhn.domain.recurringactions.MinionRecurringAction; import com.redhat.rhn.domain.recurringactions.OrgRecurringAction; @@ -163,7 +162,7 @@ private AnnotationRegistry() { } private static final List> ANNOTATION_CLASSES = List.of( -// AvailableChannelsView.class, + // do not add class at the endi, but keep the alphabetical order AccessToken.class, AddressImpl.class, AnsiblePath.class, @@ -175,7 +174,7 @@ private AnnotationRegistry() { ChannelArch.class, Channel.class, ChannelSyncFlag.class, - ChannelTemplate.class, + ChannelTemplate.class, ClientCapability.class, ClientCapabilityId.class, ClonedChannel.class, @@ -285,7 +284,6 @@ private AnnotationRegistry() { SoftwareProjectSource.class, SslCryptoKey.class, StateChange.class, - SUSEProductSCCRepository.class, Task.class, TemplateString.class, TokenChannelAppStream.class, diff --git a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java index ec2b8d4ef4b8..120728107fe6 100644 --- a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java +++ b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java @@ -26,14 +26,12 @@ import com.redhat.rhn.domain.scc.SCCRepository; import com.redhat.rhn.domain.server.InstalledProduct; -import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; import org.hibernate.Session; -import org.hibernate.criterion.Disjunction; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; +import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.util.Collection; import java.util.Comparator; @@ -46,9 +44,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import javax.persistence.NoResultException; /** * SUSEProductFactory - the class used to fetch and store @@ -167,12 +163,16 @@ public static void remove(SUSEProduct product) { @SuppressWarnings("unchecked") public static void removeAllExcept(Collection products) { if (!products.isEmpty()) { - Collection ids = products.stream().map(SUSEProduct::getId).toList(); + List ids = products.stream().map(SUSEProduct::getId).toList(); - Criteria c = getSession().createCriteria(SUSEProduct.class); - c.add(Restrictions.not(Restrictions.in("id", ids))); + List productIds = getSession().createNativeQuery(""" + SELECT * from suseProducts + WHERE id NOT IN (:ids) + """, SUSEProduct.class) + .setParameterList("ids", ids, LongType.INSTANCE) + .getResultList(); - for (SUSEProduct product : (List) c.list()) { + for (SUSEProduct product : productIds) { remove(product); } } @@ -424,41 +424,56 @@ public static void remove(ChannelTemplate productRepo) { public static SUSEProduct findSUSEProduct(String name, String version, String release, String arch, boolean imprecise) { - Criteria c = getSession().createCriteria(SUSEProduct.class); - c.add(Restrictions.eq("name", name.toLowerCase())); + StringBuilder sqlQuery = new StringBuilder("SELECT * FROM suseProducts WHERE LOWER(name) = :name"); - Disjunction versionCriterion = Restrictions.disjunction(); - if (imprecise || version == null) { - versionCriterion.add(Restrictions.isNull("version")); + if (version == null) { + sqlQuery.append(" AND version is NULL"); } - if (version != null) { - versionCriterion.add(Restrictions.eq("version", version.toLowerCase())); + else if (imprecise) { + sqlQuery.append(" AND (version IS NULL OR LOWER(version) = :version)"); + } + else { // (!imprecise) + sqlQuery.append(" AND LOWER(version) = :version"); } - c.add(versionCriterion); - Disjunction releaseCriterion = Restrictions.disjunction(); - if (imprecise || release == null) { - releaseCriterion.add(Restrictions.isNull("release")); + if (release == null) { + sqlQuery.append(" AND release is NULL"); } - if (release != null) { - releaseCriterion.add(Restrictions.eq("release", release.toLowerCase())); + else if (imprecise) { + sqlQuery.append(" AND (release IS NULL OR LOWER(release) = :release)"); + } + else { // (!imprecise) + sqlQuery.append(" AND LOWER(release) = :release"); } - c.add(releaseCriterion); - Disjunction archCriterion = Restrictions.disjunction(); - if (imprecise || arch == null) { - archCriterion.add(Restrictions.isNull("arch")); + PackageArch parch = PackageFactory.lookupPackageArchByLabel(arch); + Long archTypeId = (long) -1; + if (parch != null) { + archTypeId = parch.getId(); } - if (arch != null) { - archCriterion.add(Restrictions.eq("arch", - PackageFactory.lookupPackageArchByLabel(arch))); + if (imprecise || archTypeId == -1) { + sqlQuery.append(" AND (arch_type_id IS NULL OR arch_type_id = :arch)"); + } + else { + sqlQuery.append(" AND arch_type_id = :arch"); + } + + // Add ordering + sqlQuery.append(" ORDER BY name ASC, version ASC, release ASC, arch_type_id ASC"); + + // Execute the query + Query query = getSession().createNativeQuery(sqlQuery.toString(), SUSEProduct.class) + .setParameter("name", name.toLowerCase(), StringType.INSTANCE) + .setParameter("arch", archTypeId, LongType.INSTANCE); + if (version != null) { + query.setParameter("version", version.toLowerCase(), StringType.INSTANCE); + } + if (release != null) { + query.setParameter("release", release.toLowerCase(), StringType.INSTANCE); } - c.add(archCriterion); - c.addOrder(Order.asc("name")).addOrder(Order.asc("version")) - .addOrder(Order.asc("release")).addOrder(Order.asc("arch")); - List result = c.list(); + List result = query.getResultList(); return result.isEmpty() ? null : result.get(0); } @@ -479,10 +494,17 @@ public static SUSEProduct getProductById(Long id) { * @return SUSE product for given productId */ public static SUSEProduct lookupByProductId(long productId) { - Session session = getSession(); - Criteria c = session.createCriteria(SUSEProduct.class); - c.add(Restrictions.eq("productId", productId)); - return (SUSEProduct) c.uniqueResult(); + try { + return getSession().createNativeQuery(""" + SELECT * from suseProducts + WHERE product_id = :product + """, SUSEProduct.class) + .setParameter("product", productId, LongType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + return null; + } } /** @@ -490,8 +512,8 @@ public static SUSEProduct lookupByProductId(long productId) { * @return map of SUSE products with productId as key */ public static Map productsByProductIds() { - Session session = getSession(); - return session.createQuery("from com.redhat.rhn.domain.product.SUSEProduct", SUSEProduct.class) + return getSession().createNativeQuery("SELECT * from suseProducts ", SUSEProduct.class) + .getResultList() .stream() .collect(Collectors.toMap(SUSEProduct::getProductId, p -> p)); } @@ -501,11 +523,11 @@ public static Map productsByProductIds() { * @return SUSEProductExtensions which are recommended */ public static List allRecommendedExtensions() { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery criteria = builder.createQuery(SUSEProductExtension.class); - Root root = criteria.from(SUSEProductExtension.class); - criteria.where(builder.equal(root.get("recommended"), true)); - return getSession().createQuery(criteria).getResultList(); + return getSession().createNativeQuery(""" + SELECT * from suseProductExtension + WHERE recommended = 'Y' + """, SUSEProductExtension.class) + .getResultList(); } /** @@ -529,9 +551,8 @@ public static List allRecommendedExtensionsOfRoot(SUSEProd */ @SuppressWarnings("unchecked") public static List findAllSUSEProductChannels() { - Session session = getSession(); - Criteria c = session.createCriteria(SUSEProductChannel.class); - return c.list(); + return getSession().createNativeQuery("SELECT * from SUSEProductChannel", SUSEProductChannel.class) + .getResultList(); } /** @@ -544,18 +565,20 @@ public static List findAllSUSEProductChannels() { public static Optional findSUSEProductExtension(SUSEProduct root, SUSEProduct base, SUSEProduct ext) { - Session session = getSession(); - - Criteria c = session.createCriteria(SUSEProductExtension.class) - .add(Restrictions.eq("rootProduct", root)) - .add(Restrictions.eq("baseProduct", base)) - .add(Restrictions.eq("extensionProduct", ext)); - SUSEProductExtension result = (SUSEProductExtension) c.uniqueResult(); - if (result == null) { - return Optional.empty(); + try { + return Optional.ofNullable(getSession().createNativeQuery(""" + SELECT * from suseProductExtension + WHERE base_pdid = :baseid + AND ext_pdid = :extid + AND root_pdid = :rootid + """, SUSEProductExtension.class) + .setParameter("baseid", base.getId(), LongType.INSTANCE) + .setParameter("extid", ext.getId(), LongType.INSTANCE) + .setParameter("rootid", root.getId(), LongType.INSTANCE) + .getSingleResult()); } - else { - return Optional.of(result); + catch (NoResultException e) { + return Optional.empty(); } } @@ -563,11 +586,11 @@ public static Optional findSUSEProductExtension(SUSEProduc * Find all {@link SUSEProductExtension}. * @return list of product extension */ - @SuppressWarnings("unchecked") public static List findAllSUSEProductExtensions() { Session session = getSession(); - Criteria c = session.createCriteria(SUSEProductExtension.class); - return c.list(); + return getSession().createNativeQuery("SELECT * from suseProductExtension", SUSEProductExtension.class) + .getResultList(); + } /** @@ -580,7 +603,8 @@ public static List findAllExtensionProductsForRootOf(SUSEProduct ba Map params = new HashMap<>(); params.put("baseId", base.getId()); params.put("rootId", root.getId()); - return singleton.listObjectsByNamedQuery("SUSEProductExtension.findAllExtensionProductsForRootOf", params); + return singleton.listObjectsByNamedQuery( + "SUSEProductExtension.findAllExtensionProductsForRootOf", params); } /** @@ -591,12 +615,14 @@ public static List findAllExtensionProductsForRootOf(SUSEProduct ba */ @SuppressWarnings("unchecked") public static List findAllProductExtensionsOf(SUSEProduct product, SUSEProduct root) { - Session session = getSession(); - - Criteria c = session.createCriteria(SUSEProductExtension.class) - .add(Restrictions.eq("rootProduct", root)) - .add(Restrictions.eq("baseProduct", product)); - return c.list(); + return getSession().createNativeQuery(""" + SELECT * from suseProductExtension + WHERE base_pdid = :baseid + AND root_pdid = :rootid + """, SUSEProductExtension.class) + .setParameter("baseid", product.getId(), LongType.INSTANCE) + .setParameter("rootid", root.getId(), LongType.INSTANCE) + .getResultList(); } /** @@ -638,7 +664,10 @@ public static List findAllRootProductsOf(SUSEProduct prd) { */ @SuppressWarnings("unchecked") public static List findAllSUSEProducts() { - return getSession().createCriteria(SUSEProduct.class).list(); + return getSession().createNativeQuery(""" + SELECT * from suseProducts + """, SUSEProduct.class) + .getResultList(); } /** @@ -668,21 +697,53 @@ public static List findAllExtensionsOfRootProduct(SUSEProduct root) public static Optional findInstalledProduct(String name, String version, String release, PackageArch arch, boolean isBaseProduct) { - Criteria c = getSession().createCriteria(InstalledProduct.class); - c.add(Restrictions.eq("name", name)); - c.add(Restrictions.eq("version", version)); - if (StringUtils.isEmpty(release)) { - c.add(Restrictions.isNull("release")); + + StringBuilder sqlQuery = new StringBuilder("SELECT * FROM suseInstalledProduct WHERE LOWER(name) = :name"); + + if (version == null) { + sqlQuery.append(" AND (version IS NULL OR LOWER(version) = :version"); + version = ""; + } + else { + sqlQuery.append(" AND LOWER(version) = :version"); + } + + + if (release == null) { + sqlQuery.append(" AND (release IS NULL OR LOWER(release) = :release)"); + release = ""; + } + else { + sqlQuery.append(" AND LOWER(release) = :release"); + } + + Long archTypeId = (long) -1; + if (arch != null) { + archTypeId = arch.getId(); + } + sqlQuery.append(" AND arch_type_id = :arch"); + + if (isBaseProduct) { + sqlQuery.append(" AND is_baseproduct = 'Y'"); } else { - c.add(Restrictions.eq("release", release)); + sqlQuery.append(" AND is_baseproduct = 'N'"); } - c.add(Restrictions.eq("arch", arch)); - c.add(Restrictions.eq("baseproduct", isBaseProduct)); - c.addOrder(Order.asc("name")).addOrder(Order.asc("version")) - .addOrder(Order.asc("release")).addOrder(Order.asc("arch")); - return c.list().stream().findFirst(); + + // Add ordering + sqlQuery.append(" ORDER BY name ASC, version ASC, release ASC, arch_type_id ASC"); + + // Execute the query + Query query = getSession().createNativeQuery(sqlQuery.toString(), InstalledProduct.class) + .setParameter("name", name.toLowerCase(), StringType.INSTANCE) + .setParameter("version", version.toLowerCase(), StringType.INSTANCE) + .setParameter("release", release.toLowerCase(), StringType.INSTANCE) + .setParameter("arch", archTypeId, LongType.INSTANCE); + + List result = query.getResultList(); + + return result.stream().findFirst(); } /** From 1a3963273d94f6526f49a7f15ee2a87a29a301c7 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Fri, 10 Jan 2025 09:46:28 +0100 Subject: [PATCH 08/28] refactor SCCCachingFactory --- .../com/redhat/rhn/domain/scc/SCCCachingFactory.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java index fc18d5d8b7b0..c12db0c023dd 100644 --- a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java +++ b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java @@ -35,9 +35,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.criterion.Restrictions; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.math.BigDecimal; import java.util.ArrayList; @@ -49,14 +48,13 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaDelete; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import javax.persistence.NoResultException; /** * Factory class for populating and reading from SCC caching tables. From 9192d815ee6539e2c29cbd9da2b3a4d873d6624a Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Wed, 8 Jan 2025 18:07:41 +0100 Subject: [PATCH 09/28] refactor StateFactory --- .../redhat/rhn/domain/state/StateFactory.java | 147 ++++++++++-------- 1 file changed, 83 insertions(+), 64 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/state/StateFactory.java b/java/code/src/com/redhat/rhn/domain/state/StateFactory.java index 2abe2ebfbc74..4e56b4a66903 100644 --- a/java/code/src/com/redhat/rhn/domain/state/StateFactory.java +++ b/java/code/src/com/redhat/rhn/domain/state/StateFactory.java @@ -22,16 +22,16 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.criterion.DetachedCriteria; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Property; -import org.hibernate.criterion.Restrictions; +import org.hibernate.query.Query; +import org.hibernate.type.LongType; import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.Set; +import javax.persistence.NoResultException; + /** * Factory class for working with states. */ @@ -88,6 +88,73 @@ public static void save(StateRevision stateRevision) { singleton.saveObject(stateRevision); } + /** + * Lookup the latest state revision of an org. + * @param org the org + * @return the optional {@link OrgStateRevision} + */ + public static Optional latestStateRevision(Org org) { + String sql = + """ + SELECT DISTINCT ON (org_id) *, null as created, null as creator_id FROM + suseOrgStateRevision WHERE org_id = :org + ORDER BY org_id, state_revision_id desc limit 1; + """; + Query query = getSession().createNativeQuery(sql, OrgStateRevision.class); + query.setParameter("org", org.getId(), LongType.INSTANCE); + try { + return Optional.ofNullable(query.getSingleResult()); + } + catch (NoResultException e) { + return Optional.empty(); + } + } + + /** + * Lookup the latest state revision of an org. + * @param group the server group + * @return the optional {@link OrgStateRevision} + */ + public static Optional latestStateRevision( + ServerGroup group) { + String sql = + """ + SELECT DISTINCT ON (group_id) *, null as created, null as creator_id FROM + suseServerGroupStateRevision WHERE group_id = :group + ORDER BY group_id, state_revision_id desc limit 1; + """; + Query query = getSession().createNativeQuery(sql, ServerGroupStateRevision.class); + query.setParameter("group", group.getId(), LongType.INSTANCE); + try { + return Optional.ofNullable(query.getSingleResult()); + } + catch (NoResultException e) { + return Optional.empty(); + } + } + + /** + * Lookup the latest state revision of a server. + * @param server the server + * @return the optional {@link OrgStateRevision} + */ + public static Optional latestStateRevision(MinionServer server) { + String sql = + """ + SELECT DISTINCT ON (server_id) *, null as created, null as creator_id FROM + suseServerStateRevision WHERE server_id = :server + ORDER BY server_id, state_revision_id desc limit 1; + """; + Query query = getSession().createNativeQuery(sql, ServerStateRevision.class); + query.setParameter("server", server.getId(), LongType.INSTANCE); + try { + return Optional.ofNullable(query.getSingleResult()); + } + catch (NoResultException e) { + return Optional.empty(); + } + } + /** * Lookup the latest set of {@link PackageState} objects for a given server. * @@ -95,9 +162,8 @@ public static void save(StateRevision stateRevision) { * @return the latest package states for this server */ public static Optional> latestPackageStates(MinionServer server) { - Optional revision = latestRevision(ServerStateRevision.class, - "server", server); - return revision.map(ServerStateRevision::getPackageStates); + Optional servers = latestStateRevision(server); + return servers.map(StateRevision::getPackageStates); } /** @@ -107,9 +173,8 @@ public static Optional> latestPackageStates(MinionServer serve * @return the latest package states for this server group */ public static Optional> latestPackageStates(ServerGroup group) { - Optional revision = latestRevision( - ServerGroupStateRevision.class, "group", group); - return revision.map(ServerGroupStateRevision::getPackageStates); + Optional groups = latestStateRevision(group); + return groups.map(StateRevision::getPackageStates); } /** @@ -119,38 +184,11 @@ public static Optional> latestPackageStates(ServerGroup group) * @return the latest package states for this organization */ public static Optional> latestPackageStates(Org org) { - Optional revision = latestRevision(OrgStateRevision.class, - "org", org); - return revision.map(OrgStateRevision::getPackageStates); - } - - /** - * Lookup the latest state revision of an org. - * @param org the org - * @return the optional {@link OrgStateRevision} - */ - public static Optional latestStateRevision(Org org) { - return latestRevision(OrgStateRevision.class, "org", org); + Optional orgs = latestStateRevision(org); + return orgs.map(StateRevision::getPackageStates); } - /** - * Lookup the latest state revision of an org. - * @param group the server group - * @return the optional {@link OrgStateRevision} - */ - public static Optional latestStateRevision( - ServerGroup group) { - return latestRevision(ServerGroupStateRevision.class, "group", group); - } - /** - * Lookup the latest state revision of a server. - * @param server the server - * @return the optional {@link OrgStateRevision} - */ - public static Optional latestStateRevision(MinionServer server) { - return latestRevision(ServerStateRevision.class, "server", server); - } /** * Lookup the latest set of {@link ConfigChannel} objects for a given server. @@ -159,10 +197,8 @@ public static Optional latestStateRevision(MinionServer ser * @return the latest config channels for this server */ public static Optional> latestConfigChannels(MinionServer server) { - Optional revision = latestRevision( - ServerStateRevision.class, "server", server); - return Optional - .ofNullable(revision.map(StateRevision::getConfigChannels).orElse(null)); + Optional servers = latestStateRevision(server); + return servers.map(StateRevision::getConfigChannels); } /** @@ -172,10 +208,8 @@ public static Optional> latestConfigChannels(MinionServer se * @return the latest config channels for this server */ public static Optional> latestConfigChannels(ServerGroup group) { - Optional revision = latestRevision( - ServerGroupStateRevision.class, "group", group); - return Optional - .ofNullable(revision.map(StateRevision::getConfigChannels).orElse(null)); + Optional groups = latestStateRevision(group); + return groups.map(StateRevision::getConfigChannels); } /** @@ -185,23 +219,8 @@ public static Optional> latestConfigChannels(ServerGroup gro * @return the latest config channels for this server */ public static Optional> latestConfigChannels(Org org) { - Optional revision = latestRevision( - OrgStateRevision.class, "org", org); - return Optional - .ofNullable(revision.map(StateRevision::getConfigChannels).orElse(null)); - } - - private static Optional latestRevision( - Class revisionType, String field, Object bean) { - DetachedCriteria maxQuery = DetachedCriteria.forClass(revisionType) - .add(Restrictions.eq(field, bean)) - .setProjection(Projections.max("id")); - T revision = (T) getSession() - .createCriteria(revisionType) - .add(Restrictions.eq(field, bean)) - .add(Property.forName("id").eq(maxQuery)) - .uniqueResult(); - return Optional.ofNullable(revision); + Optional orgs = latestStateRevision(org); + return orgs.map(StateRevision::getConfigChannels); } /** From 0b76a7687d6f4bf63400a13a7eb0a93184374383 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Fri, 10 Jan 2025 15:17:17 +0100 Subject: [PATCH 10/28] refactor MinionServerFactory --- .../domain/server/MinionServerFactory.java | 164 ++++++++++++------ 1 file changed, 111 insertions(+), 53 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java index 4b91353cfe68..5ce796230fdf 100644 --- a/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java @@ -27,25 +27,19 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; import org.hibernate.Session; -import org.hibernate.criterion.CriteriaSpecification; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; import org.hibernate.query.Query; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import java.math.BigDecimal; import java.util.List; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Join; -import javax.persistence.criteria.JoinType; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; +import javax.persistence.NoResultException; /** * MinionFactory - the singleton class used to fetch and store @@ -61,11 +55,16 @@ public class MinionServerFactory extends HibernateFactory { * @return the Server found */ public static List lookupByOrg(Long orgId) { - return HibernateFactory.getSession() - .createCriteria(MinionServer.class) - .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) - .add(Restrictions.eq("org.id", orgId)) - .list(); + return getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE + s.server_id IN + (SELECT id FROM rhnServer WHERE org_id = :org) + """, MinionServer.class) + .setParameter("org", orgId, LongType.INSTANCE) + .getResultList(); } /** @@ -91,10 +90,23 @@ protected Logger getLogger() { * @return server corresponding to the given machine_id */ public static Optional findByMachineId(String machineId) { - Session session = getSession(); - Criteria criteria = session.createCriteria(MinionServer.class); - criteria.add(Restrictions.eq("machineId", machineId)); - return Optional.ofNullable((MinionServer) criteria.uniqueResult()); + Optional minion; + try { + minion = Optional.ofNullable(getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE + s.server_id IN + (SELECT id FROM rhnServer WHERE machine_id = :machineId) + """, MinionServer.class) + .setParameter("machineId", machineId, StringType.INSTANCE) + .uniqueResult()); + } + catch (NoResultException e) { + minion = Optional.empty(); + } + return minion; } /** @@ -104,10 +116,19 @@ public static Optional findByMachineId(String machineId) { * @return server corresponding to the given machine_id */ public static Optional findByMinionId(String minionId) { - Session session = getSession(); - Criteria criteria = session.createCriteria(MinionServer.class); - criteria.add(Restrictions.eq("minionId", minionId)); - return Optional.ofNullable((MinionServer) criteria.uniqueResult()); + Optional minion; + try { + minion = Optional.ofNullable(getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id where s.minion_id = :minion + """, MinionServer.class) + .setParameter("minion", minionId, StringType.INSTANCE).getSingleResult()); + } + catch (NoResultException e) { + minion = Optional.empty(); + } + return minion; } /** @@ -117,9 +138,12 @@ public static Optional findByMinionId(String minionId) { */ @SuppressWarnings("unchecked") public static List listMinions() { - return getSession().createCriteria(MinionServer.class) - .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) - .list(); + return getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE s.minion_id IS NOT NULL""", MinionServer.class) + .getResultList(); } /** @@ -129,11 +153,14 @@ public static List listMinions() { * @return a list of minions ids belonging to the given organization */ public static List findMinionIdsByOrgId(Long orgId) { - return getSession().createCriteria(MinionServer.class) - .setProjection(Projections.property("minionId")) - .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) - .add(Restrictions.eq("org.id", orgId)) - .list(); + return getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE s.org_id = :org + """, MinionServer.class) + .setParameter("org", orgId, LongType.INSTANCE) + .getResultList().stream().map(MinionServer::getMinionId).collect(Collectors.toList()); } /** @@ -168,10 +195,14 @@ public static List lookupByMinionIds(Set minionIds) { return emptyList(); } else { - return HibernateFactory.getSession().createCriteria(MinionServer.class) - .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) - .add(Restrictions.in("minionId", minionIds)) - .list(); + return getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE s.minion_id IN (:minions) + """, MinionServer.class) + .setParameterList("minions", minionIds, StringType.INSTANCE) + .getResultList(); } } @@ -180,11 +211,21 @@ public static List lookupByMinionIds(Set minionIds) { * @return map of SSH minion id and its contact method */ public static List listSSHMinions() { - return HibernateFactory.getSession().createCriteria(MinionServer.class) - .createAlias("contactMethod", "m") - .add(Restrictions.in("m.label", - "ssh-push", "ssh-push-tunnel")) - .list(); + List contacts = getSession().createNativeQuery(""" + SELECT * from suseServerContactMethod + WHERE label IN (:labels) + """, ContactMethod.class) + .setParameterList("labels", List.of("ssh-push", "ssh-push-tunnel"), StringType.INSTANCE) + .getResultList().stream().map(ContactMethod::getId).collect(Collectors.toList()); + return getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE server_id IN + (SELECT id FROM rhnServer WHERE contact_method_id IN (:contacts)) + """, MinionServer.class) + .setParameterList("contacts", contacts, LongType.INSTANCE) + .getResultList(); } /** @@ -273,16 +314,27 @@ public static List findEmptyProfilesByHwAddrs(Set hwAddrs) return emptyList(); } - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery query = builder.createQuery(MinionServer.class); - Root root = query.distinct(true).from(MinionServer.class); + List serverIds = getSession().createNativeQuery(""" + SELECT * from rhnServerNetInterface + WHERE hw_addr IN (:hwaddr) + """, NetworkInterface.class) + .setParameterList("hwaddr", hwAddrs, StringType.INSTANCE) + .getResultList().stream().map(x -> x.getServer().getId()).collect(Collectors.toList()); - Join nicJoin = root.join("networkInterfaces", JoinType.INNER); - Predicate hwAddrPredicate = nicJoin.get("hwaddr").in(hwAddrs); + if (serverIds.isEmpty()) { + return List.of(); + } - query.where(hwAddrPredicate); + List servers = getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE s.server_id IN (:ids) + """, MinionServer.class) + .setParameterList("ids", serverIds, LongType.INSTANCE) + .getResultList(); - return getSession().createQuery(query).stream() + return servers.stream() .filter(s -> s.hasEntitlement(EntitlementManager.BOOTSTRAP)) .collect(toList()); } @@ -294,12 +346,18 @@ public static List findEmptyProfilesByHwAddrs(Set hwAddrs) * @return the List of MinionServer matching given hostname */ public static List findEmptyProfilesByHostName(String hostname) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery query = builder.createQuery(MinionServer.class); - Root root = query.from(MinionServer.class); - query.where(builder.equal(root.get("hostname"), hostname)); - - return getSession().createQuery(query).stream() + List servers = getSession().createNativeQuery(""" + SELECT s.*, r.* + FROM suseminioninfo s + JOIN rhnserver r ON s.server_id = r.id + WHERE + s.server_id IN + (SELECT id FROM rhnServer WHERE hostname = :hostname) + """, MinionServer.class) + .setParameter("hostname", hostname, StringType.INSTANCE) + .getResultList(); + + return servers.stream() .filter(s -> s.hasEntitlement(EntitlementManager.BOOTSTRAP)) .collect(toList()); } From 78694556c765bd5eebff514bb6e6a8587fa582fc Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Wed, 15 Jan 2025 14:17:00 +0100 Subject: [PATCH 11/28] refactor ServerFactory --- .../rhn/domain/server/ServerFactory.java | 141 ++++++++---------- .../domain/server/test/ServerFactoryTest.java | 6 +- 2 files changed, 64 insertions(+), 83 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java index 49d05dffb701..05f11ffae2e7 100644 --- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java @@ -54,13 +54,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.Criteria; import org.hibernate.Session; -import org.hibernate.criterion.DetachedCriteria; -import org.hibernate.criterion.MatchMode; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; -import org.hibernate.criterion.Subqueries; import org.hibernate.query.Query; import org.hibernate.type.LongType; import org.hibernate.type.StandardBasicTypes; @@ -80,12 +74,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import javax.persistence.NoResultException; import javax.persistence.Tuple; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.JoinType; -import javax.persistence.criteria.Path; -import javax.persistence.criteria.Root; /** * ServerFactory - the singleton class used to fetch and store @@ -115,9 +105,7 @@ protected static CustomDataValue getCustomDataValue(CustomDataKey key, return null; } - Session session = HibernateFactory.getSession(); - return (CustomDataValue) session.getNamedQuery( - "CustomDataValue.findByServerAndKey") + return (CustomDataValue) HibernateFactory.getSession().getNamedQuery("CustomDataValue.findByServerAndKey") .setParameter("server", server) .setParameter("key", key) .setCacheable(true) @@ -210,22 +198,19 @@ public static Optional lookupProxyServer(String name) { log.warn("Please use a FQDN in /etc/salt/minion.d/susemanager.conf"); } - DetachedCriteria proxyIds = DetachedCriteria.forClass(ProxyInfo.class) - .setProjection(Projections.property("server.id")); - Optional result = findByFqdn(name); if (result.isPresent()) { return result; } - - result = HibernateFactory.getSession() - .createCriteria(Server.class) - .add(Subqueries.propertyIn("id", proxyIds)) - .add(Restrictions.eq("hostname", name)) - .list() - .stream() - .findFirst(); + result = HibernateFactory.getSession().createNativeQuery(""" + SELECT *, 0 as clazz_ + FROM rhnServer + WHERE id IN (SELECT server_id FROM rhnProxyInfo) + AND hostname = :hostname + LIMIT 1; + """, Server.class) + .setParameter("hostname", name, StringType.INSTANCE).uniqueResultOptional(); if (result.isPresent()) { return result; @@ -235,22 +220,24 @@ public static Optional lookupProxyServer(String name) { if (nameIsFullyQualified) { String srippedHostname = name.split("\\.")[0]; - return HibernateFactory.getSession() - .createCriteria(Server.class) - .add(Subqueries.propertyIn("id", proxyIds)) - .add(Restrictions.eq("hostname", srippedHostname)) - .list() - .stream() - .findFirst(); + return HibernateFactory.getSession().createNativeQuery(""" + SELECT *, 0 as clazz_ + FROM rhnServer + WHERE id IN (SELECT server_id FROM rhnProxyInfo) + AND hostname = :hostname + LIMIT 1; + """, Server.class) + .setParameter("hostname", srippedHostname, StringType.INSTANCE).uniqueResultOptional(); } else { - return HibernateFactory.getSession() - .createCriteria(Server.class) - .add(Subqueries.propertyIn("id", proxyIds)) - .add(Restrictions.like("hostname", name + ".", MatchMode.START)) - .list() - .stream() - .findFirst(); + return HibernateFactory.getSession().createNativeQuery(""" + SELECT *, 0 as clazz_ + FROM rhnServer + WHERE id IN (SELECT server_id FROM rhnProxyInfo) + AND hostname LIKE :hostname + LIMIT 1; + """, Server.class) + .setParameter("hostname", name + ".%", StringType.INSTANCE).uniqueResultOptional(); } } @@ -363,14 +350,14 @@ public static Optional findServerPath(Server server, Server proxySer // on query with a transient object return Optional.empty(); } - CriteriaBuilder builder = HibernateFactory.getSession().getCriteriaBuilder(); - CriteriaQuery criteria = builder.createQuery(ServerPath.class); - Root root = criteria.from(ServerPath.class); - Path id = root.get("id"); - criteria.where(builder.and( - builder.equal(id.get("server"), server), - builder.equal(id.get("proxyServer"), proxyServer))); - return getSession().createQuery(criteria).uniqueResultOptional(); + return getSession().createNativeQuery(""" + SELECT * from rhnServerPath + WHERE server_id = :server AND + proxy_server_id = :proxyserver + """, ServerPath.class) + .setParameter("server", server.getId(), LongType.INSTANCE) + .setParameter("proxyserver", proxyServer.getId(), LongType.INSTANCE) + .uniqueResultOptional(); } /** @@ -759,9 +746,13 @@ public static Server lookupById(Long id) { */ @SuppressWarnings("unchecked") public static Server lookupForeignSystemByDigitalServerId(String id) { - Criteria criteria = getSession().createCriteria(Server.class); - criteria.add(Restrictions.eq("digitalServerId", id)); - for (Server server : (List) criteria.list()) { + List servers = getSession().createNativeQuery(""" + SELECT *, 0 as clazz_ from rhnServer + WHERE digital_server_id = :id + """, Server.class) + .setParameter("id", id, StringType.INSTANCE) + .getResultList(); + for (Server server : servers) { if (server.hasEntitlement(EntitlementManager.getByName("foreign_entitled"))) { return server; } @@ -1342,10 +1333,17 @@ public static ContactMethod findContactMethodById(Long id) { * @return contact method with the given label */ public static ContactMethod findContactMethodByLabel(String label) { - Session session = getSession(); - Criteria criteria = session.createCriteria(ContactMethod.class); - criteria.add(Restrictions.eq("label", label)); - return (ContactMethod) criteria.uniqueResult(); + try { + return getSession().createNativeQuery(""" + SELECT * from suseServerContactMethod + WHERE label = :label + """, ContactMethod.class) + .setParameter("label", label, StringType.INSTANCE) + .getSingleResult(); + } + catch (NoResultException e) { + return null; + } } /** @@ -1353,18 +1351,8 @@ public static ContactMethod findContactMethodByLabel(String label) { * @param fetchingGroups eagerly load server groups * @return a list of all systems */ - public static List list(boolean fetchingVirtualGuests, boolean fetchingGroups) { - CriteriaBuilder builder = getSession().getCriteriaBuilder(); - CriteriaQuery criteria = builder.createQuery(Server.class); - Root r = criteria.from(Server.class); - if (fetchingVirtualGuests) { - r.fetch("virtualGuests", JoinType.LEFT); - } - if (fetchingGroups) { - r.fetch("groups", JoinType.LEFT); - } - criteria.distinct(true); - return new ArrayList<>(getSession().createQuery(criteria).getResultList()); + public static List list() { + return getSession().createNativeQuery("SELECT *, 0 as clazz_ FROM rhnServer s", Server.class).getResultList(); } @@ -1501,21 +1489,12 @@ public static void delete(Device device) { * @return the server if any */ public static Optional findByMachineId(String machineId) { - Session session = getSession(); - Criteria criteria = session.createCriteria(Server.class); - criteria.add(Restrictions.eq("machineId", machineId)); - return Optional.ofNullable((Server) criteria.uniqueResult()); - } - - /** - * Find {@link Capability} by name - * @param name the name of the capability - * @return a {@link Capability} with the given name - */ - public static Optional findCapability(String name) { - Criteria criteria = getSession().createCriteria(Capability.class); - criteria.add(Restrictions.eq("name", name)); - return Optional.ofNullable((Capability) criteria.uniqueResult()); + return getSession().createNativeQuery(""" + SELECT * from rhnServer + WHERE machine_id = :machine + """, Server.class) + .setParameter("machine", machineId, StringType.INSTANCE) + .uniqueResultOptional(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java index ecd6bdd2ee91..d19c771c92e5 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java @@ -1430,10 +1430,12 @@ public void testLookupProxyServer() throws Exception { HibernateFactory.getSession().clear(); // FQDN: precise lookup - assertEquals(s, ServerFactory.lookupProxyServer(HOSTNAME).get()); + assertEquals(s, ServerFactory.lookupProxyServer(HOSTNAME).orElseThrow()); + // plain hostname: imprecise lookup String simpleHostname = HOSTNAME.split("\\.")[0]; - assertEquals(s, ServerFactory.lookupProxyServer(simpleHostname).get()); + + assertEquals(s, ServerFactory.lookupProxyServer(simpleHostname).orElseThrow()); } /** From d60dd66f432ff3cd28e8f3ded8d6c9f4268d79ea Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Mon, 20 Jan 2025 18:14:13 +0100 Subject: [PATCH 12/28] list shows only servers --- java/code/src/com/redhat/rhn/domain/server/ServerFactory.java | 2 -- .../code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java | 2 +- java/code/src/com/suse/manager/matcher/MatcherJsonIO.java | 3 ++- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java index 05f11ffae2e7..71433ab91a64 100644 --- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java @@ -1347,8 +1347,6 @@ public static ContactMethod findContactMethodByLabel(String label) { } /** - * @param fetchingVirtualGuests eagerly load virtual guests - * @param fetchingGroups eagerly load server groups * @return a list of all systems */ public static List list() { diff --git a/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java b/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java index c7295b8d5a14..2ee09436fe53 100644 --- a/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java +++ b/java/code/src/com/redhat/rhn/manager/audit/CVEAuditManager.java @@ -446,7 +446,7 @@ public static void populateCVEChannels() { targetProductCache.clear(); // Get a list of *all* servers - List servers = ServerFactory.list(false, false); + List servers = ServerFactory.list(); if (log.isDebugEnabled()) { log.debug("Number of servers found: {}", servers.size()); } diff --git a/java/code/src/com/suse/manager/matcher/MatcherJsonIO.java b/java/code/src/com/suse/manager/matcher/MatcherJsonIO.java index 454a5bdf20c8..b7bfc51b62ea 100644 --- a/java/code/src/com/suse/manager/matcher/MatcherJsonIO.java +++ b/java/code/src/com/suse/manager/matcher/MatcherJsonIO.java @@ -175,7 +175,7 @@ public List getJsonSystems(String arch, boolean includeSelf, boolean .flatMap(cf -> Stream.of("", "-ALPHA", "-BETA").map(s -> cf + s)) .collect(Collectors.toSet()); - Stream systems = ServerFactory.list(true, true).stream() + Stream systems = ServerFactory.list().stream() .map(system -> { Long cpus = system.getCpu() == null ? null : system.getCpu().getNrsocket(); Set entitlements = system.getEntitlementLabels(); @@ -191,6 +191,7 @@ public List getJsonSystems(String arch, boolean includeSelf, boolean // For now it is not worth the effort cpus = system.getCpu() == null ? null : system.getCpu().getNrCPU(); } + Set productIds = productIdsForServer(system, needsEntitlements, entitlements) .collect(Collectors.toSet()); return new SystemJson( From 4cf14ce993c335500204d6e14fa8449fae142757 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Tue, 21 Jan 2025 14:07:30 +0100 Subject: [PATCH 13/28] changelog --- ...walk-java.changes.mbussolotto.hibernate_factory_refactoring | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring b/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring index 5462af59f5df..1a041ad03ab6 100644 --- a/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring +++ b/java/spacewalk-java.changes.mbussolotto.hibernate_factory_refactoring @@ -1 +1,2 @@ -- Use setParameter in Hibernate queries +- Use StandardBasicTypes for queries paramaters +- Remove Hibernate Query Language From 5d59e3b0324279ce19a8f6b924eebf520a06d8a7 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Tue, 21 Jan 2025 15:02:59 +0100 Subject: [PATCH 14/28] use StandardBasicTypes instead of hibernate types --- .../domain/action/test/ActionTypeTest.java | 4 +- .../redhat/rhn/domain/audit/ScapFactory.java | 10 +-- .../rhn/domain/channel/ChannelFactory.java | 28 +++---- .../rhn/domain/common/CommonFactory.java | 13 ++- .../rhn/domain/common/ExceptionMessage.java | 6 +- .../domain/config/ConfigurationFactory.java | 35 ++++---- .../rhn/domain/errata/ErrataFactory.java | 27 +++---- .../domain/kickstart/KickstartFactory.java | 69 ++++++++-------- .../kickstart/test/KickstartDataTest.java | 4 +- .../com/redhat/rhn/domain/org/OrgFactory.java | 12 +-- .../domain/product/SUSEProductFactory.java | 33 ++++---- .../domain/rhnpackage/PackageEvrFactory.java | 13 ++- .../rhn/domain/rhnpackage/PackageFactory.java | 31 ++++---- .../profile/test/ProfileTypeTest.java | 4 +- .../redhat/rhn/domain/role/RoleFactory.java | 7 +- .../rhn/domain/scc/SCCCachingFactory.java | 3 +- .../domain/server/MinionServerFactory.java | 23 +++--- .../server/PinnedSubscriptionFactory.java | 8 +- .../rhn/domain/server/ServerFactory.java | 28 +++---- .../domain/server/VirtualInstanceFactory.java | 79 ++++++++----------- .../rhn/domain/server/test/LocationTest.java | 4 +- .../rhn/domain/server/test/NoteTest.java | 4 +- .../test/VirtualInstanceFactoryTest.java | 4 +- .../VirtualHostManagerFactory.java | 26 +++--- .../redhat/rhn/domain/state/StateFactory.java | 8 +- .../domain/token/ActivationKeyFactory.java | 4 +- .../rhn/domain/token/test/TokenTest.java | 4 +- .../redhat/rhn/domain/user/UserFactory.java | 7 +- .../test/KickstartDeleteActionTest.java | 6 +- .../manager/rhnpackage/PackageManager.java | 4 +- .../system/test/SystemManagerTest.java | 4 +- .../task/test/ChannelRepodataTest.java | 4 +- .../task/test/KickstartCleanupTest.java | 4 +- .../src/com/redhat/rhn/testing/TestUtils.java | 7 +- 34 files changed, 247 insertions(+), 280 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java b/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java index 41dd04532dff..afc4579725aa 100644 --- a/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java +++ b/java/code/src/com/redhat/rhn/domain/action/test/ActionTypeTest.java @@ -22,7 +22,7 @@ import com.redhat.rhn.testing.RhnBaseTestCase; import org.hibernate.Session; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; /** @@ -71,7 +71,7 @@ public void testFindByLabel() throws Exception { private ActionType lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (ActionType) session.getNamedQuery("ActionType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java b/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java index 2023aec492f0..3852b047fe9b 100644 --- a/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java +++ b/java/code/src/com/redhat/rhn/domain/audit/ScapFactory.java @@ -20,8 +20,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.List; import java.util.Map; @@ -78,8 +77,8 @@ public static void delete(XccdfTestResult tr) { public static void clearTestResult(long serverId, long actionId) { List results = getSession() .getNamedQuery("XccdfTestResult.findByActionId") - .setParameter("serverId", serverId, LongType.INSTANCE) - .setParameter("actionId", actionId, LongType.INSTANCE) + .setParameter("serverId", serverId, StandardBasicTypes.LONG) + .setParameter("actionId", actionId, StandardBasicTypes.LONG) .list(); results.forEach(ScapFactory::delete); } @@ -121,7 +120,8 @@ public static Optional lookupRuleResultType(String label) { String sql = "SELECT * FROM rhnXccdfRuleResultType WHERE label = :label"; XccdfRuleResultType result = getSession().createNativeQuery(sql, XccdfRuleResultType.class) - .setParameter("label", label, StringType.INSTANCE).getResultStream().findFirst().orElse(null); + .setParameter("label", label, StandardBasicTypes.STRING) + .getResultStream().findFirst().orElse(null); return Optional.ofNullable(result); } diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index 497978a2fa76..ac49efce0a9d 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -35,9 +35,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.IntegerType; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.ArrayList; import java.util.Arrays; @@ -436,7 +434,7 @@ public static ChannelArch findArchByLabel(String label) { Session session = getSession(); String sql = "SELECT * FROM rhnChannelArch WHERE label = :label"; return session.createNativeQuery(sql, ChannelArch.class) - .setParameter(LABEL, label, StringType.INSTANCE) + .setParameter(LABEL, label, StandardBasicTypes.STRING) .uniqueResult(); } @@ -471,7 +469,7 @@ public static Channel lookupByLabel(String label) { LEFT JOIN rhnChannelCloned cl ON c.id = cl.id WHERE c.label = :label"""; return session.createNativeQuery(sql, Channel.class) - .setParameter(LABEL, label, StringType.INSTANCE) + .setParameter(LABEL, label, StandardBasicTypes.STRING) .uniqueResult(); } @@ -818,7 +816,7 @@ public static ChannelSyncFlag lookupChannelReposyncFlag(Channel channel) { return getSession() .createNativeQuery( "SELECT * FROM rhnChannelSyncFlag WHERE channel_id = :channel", ChannelSyncFlag.class) - .setParameter("channel", channel.getId(), LongType.INSTANCE) + .setParameter("channel", channel.getId(), StandardBasicTypes.LONG) .getSingleResult(); } @@ -1096,8 +1094,8 @@ public static Package lookupPackageByFilename(Channel channel, List pkgs = HibernateFactory.getSession() .getNamedQuery("Channel.packageByFileName") - .setParameter("pathlike", "%/" + fileName, StringType.INSTANCE) - .setParameter("channel_id", channel.getId(), LongType.INSTANCE) + .setParameter("pathlike", "%/" + fileName, StandardBasicTypes.STRING) + .setParameter("channel_id", channel.getId(), StandardBasicTypes.LONG) .list(); if (pkgs.isEmpty()) { return null; @@ -1118,10 +1116,10 @@ public static Package lookupPackageByFilenameAndRange(Channel channel, List pkgs = HibernateFactory.getSession() .getNamedQuery("Channel.packageByFileNameAndRange") - .setParameter("pathlike", "%/" + fileName, StringType.INSTANCE) - .setParameter("channel_id", channel.getId(), LongType.INSTANCE) - .setParameter("headerStart", headerStart, IntegerType.INSTANCE) - .setParameter("headerEnd", headerEnd, IntegerType.INSTANCE).list(); + .setParameter("pathlike", "%/" + fileName, StandardBasicTypes.STRING) + .setParameter("channel_id", channel.getId(), StandardBasicTypes.LONG) + .setParameter("headerStart", headerStart, StandardBasicTypes.INTEGER) + .setParameter("headerEnd", headerEnd, StandardBasicTypes.INTEGER).list(); if (pkgs.isEmpty()) { return null; } @@ -1141,7 +1139,7 @@ public static boolean containsDistributions(Channel ch) { String sql = "SELECT COUNT(*) FROM rhnKickstartableTree WHERE channel_id = :channelId"; Number count = (Number) session.createNativeQuery(sql) - .setParameter("channelId", ch.getId(), LongType.INSTANCE).getSingleResult(); + .setParameter("channelId", ch.getId(), StandardBasicTypes.LONG).getSingleResult(); return count.intValue() > 0; } @@ -1334,8 +1332,8 @@ public static ChannelProduct findChannelProduct(String product, String version) String sql = "SELECT * FROM rhnChannelProduct WHERE product = :product AND version = :version"; Query query = session.createNativeQuery(sql, ChannelProduct.class); - query.setParameter("product", product, StringType.INSTANCE); - query.setParameter("version", version, StringType.INSTANCE); + query.setParameter("product", product, StandardBasicTypes.STRING); + query.setParameter("version", version, StandardBasicTypes.STRING); try { return query.getSingleResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java b/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java index f1b72a7c3c54..0d62fdef04a9 100644 --- a/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java +++ b/java/code/src/com/redhat/rhn/domain/common/CommonFactory.java @@ -22,8 +22,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.Calendar; import java.util.Date; @@ -93,8 +92,8 @@ public static FileList lookupFileList(Long idIn, Org org) { SELECT * from rhnFileList WHERE id = :id and org_id = :org_id """, FileList.class) - .setParameter("id", idIn, LongType.INSTANCE) - .setParameter("org_id", org.getId(), LongType.INSTANCE) + .setParameter("id", idIn, StandardBasicTypes.LONG) + .setParameter("org_id", org.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -109,8 +108,8 @@ public static FileList lookupFileList(String labelIn, Org org) { //look for Kickstart data by label session = HibernateFactory.getSession(); return (FileList) session.getNamedQuery("FileList.findByLabelAndOrg") - .setParameter("label", labelIn, StringType.INSTANCE) - .setParameter("org_id", org.getId(), LongType.INSTANCE) + .setParameter("label", labelIn, StandardBasicTypes.STRING) + .setParameter("org_id", org.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -157,7 +156,7 @@ public static void saveTinyUrl(TinyUrl urlIn) { public static TinyUrl lookupTinyUrl(String tokenIn) { Session session = HibernateFactory.getSession(); return (TinyUrl) session.getNamedQuery("TinyUrl.findByToken") - .setParameter("token", tokenIn, StringType.INSTANCE) + .setParameter("token", tokenIn, StandardBasicTypes.STRING) .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java index a9295cb52fc7..bc7071d549e1 100644 --- a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java +++ b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java @@ -19,7 +19,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.hibernate.query.Query; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import javax.persistence.NoResultException; @@ -47,8 +47,8 @@ public static ExceptionMessage lookup(long exceptionId) { Query query = HibernateFactory.getSession() .createNativeQuery(sql, ExceptionMessage.class); - query.setParameter("id", exceptionId, LongType.INSTANCE); - query.setParameter("negId", -1 * exceptionId, LongType.INSTANCE); + query.setParameter("id", exceptionId, StandardBasicTypes.LONG); + query.setParameter("negId", -1 * exceptionId, StandardBasicTypes.LONG); try { return query.getSingleResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java index dd87fa90cc11..81200f2412fd 100644 --- a/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java +++ b/java/code/src/com/redhat/rhn/domain/config/ConfigurationFactory.java @@ -35,8 +35,7 @@ import org.hibernate.ObjectNotFoundException; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.io.IOException; import java.io.InputStream; @@ -358,8 +357,8 @@ public static List listGlobalChannels() { confchan_type_id = :confchan_type_id_normal OR confchan_type_id = :confchan_type_id_state """, ConfigChannel.class) - .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), LongType.INSTANCE) - .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), LongType.INSTANCE) + .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), StandardBasicTypes.LONG) + .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), StandardBasicTypes.LONG) .getResultList(); } @@ -390,9 +389,9 @@ public static ConfigChannel lookupConfigChannelByLabel(String label, AND org_id = :org_id AND confchan_type_id = :confchan_type_id """, ConfigChannel.class) - .setParameter("label", label, StringType.INSTANCE) - .setParameter("org_id", org.getId(), LongType.INSTANCE) - .setParameter("confchan_type_id", cct.getId(), LongType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) + .setParameter("org_id", org.getId(), StandardBasicTypes.LONG) + .setParameter("confchan_type_id", cct.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -413,10 +412,10 @@ public static Optional lookupGlobalConfigChannelByLabel(String la confchan_type_id = :confchan_type_id_normal OR confchan_type_id = :confchan_type_id_state) """, ConfigChannel.class) - .setParameter("label", label, StringType.INSTANCE) - .setParameter("org_id", org.getId(), LongType.INSTANCE) - .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), LongType.INSTANCE) - .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), LongType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) + .setParameter("org_id", org.getId(), StandardBasicTypes.LONG) + .setParameter("confchan_type_id_normal", ConfigChannelType.normal().getId(), StandardBasicTypes.LONG) + .setParameter("confchan_type_id_state", ConfigChannelType.state().getId(), StandardBasicTypes.LONG) .uniqueResultOptional(); } @@ -441,9 +440,9 @@ public static ConfigFile lookupConfigFileByChannelAndName(Long channel, Long nam Session session = HibernateFactory.getSession(); Query query = session.getNamedQuery("ConfigFile.findByChannelAndName") - .setParameter("channel_id", channel, LongType.INSTANCE) - .setParameter("name_id", name, LongType.INSTANCE) - .setParameter("state_id", ConfigFileState.normal().getId(), LongType.INSTANCE); + .setParameter("channel_id", channel, StandardBasicTypes.LONG) + .setParameter("name_id", name, StandardBasicTypes.LONG) + .setParameter("state_id", ConfigFileState.normal().getId(), StandardBasicTypes.LONG); try { return query.uniqueResult(); } @@ -473,7 +472,7 @@ public static ConfigRevision lookupConfigRevisionById(Long id) { public static ConfigRevision lookupConfigRevisionByRevId(ConfigFile cf, Long revId) { Session session = HibernateFactory.getSession(); Query q = session.getNamedQuery("ConfigRevision.findByRevisionAndConfigFile"); - q.setParameter("rev", revId, LongType.INSTANCE); + q.setParameter("rev", revId, StandardBasicTypes.LONG); q.setParameter("cf", cf); return q.uniqueResult(); } @@ -524,7 +523,7 @@ static ConfigChannelType lookupConfigChannelTypeByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigChannelType) session.getNamedQuery("ConfigChannelType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -541,7 +540,7 @@ static ConfigChannelType lookupConfigChannelTypeByLabel(String label) { static ConfigFileState lookupConfigFileStateByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigFileState)session.getNamedQuery("ConfigFileState.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -555,7 +554,7 @@ static ConfigFileState lookupConfigFileStateByLabel(String label) { static ConfigFileType lookupConfigFileTypeByLabel(String label) { Session session = HibernateFactory.getSession(); return (ConfigFileType)session.getNamedQuery("ConfigFileType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java b/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java index 947ff381e4df..b0f12c776aa5 100644 --- a/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java +++ b/java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java @@ -50,8 +50,7 @@ import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.ArrayList; import java.util.Collection; @@ -398,7 +397,7 @@ public static ErrataFileType lookupErrataFileType(String label) { ErrataFileType retval; try { retval = (ErrataFileType) getSession().getNamedQuery("ErrataFileType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .setCacheable(true).uniqueResult(); } catch (HibernateException e) { @@ -417,8 +416,8 @@ public static List lookupErrataFilesByErrataAndFileType(Long errataI List retval; try { Query q = getSession().getNamedQuery("ErrataFile.listByErrataAndFileType") - .setParameter("errata_id", errataId, LongType.INSTANCE) - .setParameter("file_type", fileType.toUpperCase(), StringType.INSTANCE); + .setParameter("errata_id", errataId, StandardBasicTypes.LONG) + .setParameter("file_type", fileType.toUpperCase(), StandardBasicTypes.STRING); retval = q.list(); } catch (HibernateException e) { @@ -449,7 +448,7 @@ public static List lookupErratasByAdvisoryType(String advisoryType) { List retval; try { retval = getSession().getNamedQuery("Errata.findByAdvisoryType") - .setParameter("type", advisoryType, StringType.INSTANCE) + .setParameter("type", advisoryType, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true).list(); } @@ -469,7 +468,7 @@ public static Errata lookupErrataById(Long id) { Errata retval; try { retval = (Errata) getSession().getNamedQuery("Errata.findById") - .setParameter("id", id, LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) .uniqueResult(); } catch (HibernateException he) { @@ -489,7 +488,7 @@ public static Errata lookupErrataById(Long id) { public static List lookupVendorAndUserErrataByAdvisoryAndOrg(String advisory, Org org) { Session session = HibernateFactory.getSession(); return session.getNamedQuery("Errata.findVendorAnUserErrataByAdvisoryNameAndOrg") - .setParameter("advisory", advisory, StringType.INSTANCE) + .setParameter("advisory", advisory, StandardBasicTypes.STRING) .setParameter("org", org) .getResultList(); } @@ -503,7 +502,7 @@ public static List lookupVendorAndUserErrataByAdvisoryAndOrg(String advi public static Errata lookupByAdvisoryAndOrg(String advisory, Org org) { return (Errata) HibernateFactory.getSession() .getNamedQuery("Errata.findByAdvisoryNameAndOrg") - .setParameter("advisory", advisory, StringType.INSTANCE) + .setParameter("advisory", advisory, StandardBasicTypes.STRING) .setParameter("org", org) .uniqueResult(); } @@ -519,7 +518,7 @@ public static List lookupByAdvisoryId(String advisoryId, Org org) { List retval; try { retval = getSession().getNamedQuery("Errata.findByAdvisory") - .setParameter("advisory", advisoryId, StringType.INSTANCE) + .setParameter("advisory", advisoryId, StandardBasicTypes.STRING) .setParameter("org", org) .getResultList(); } @@ -716,8 +715,8 @@ public static List lookupByChannelBetweenDates(Org org, Channel channel, getNamedQuery("Errata.lookupByChannelBetweenDates") .setParameter("org", org) .setParameter("channel", channel) - .setParameter("start_date", startDate, StringType.INSTANCE) - .setParameter("end_date", endDate, StringType.INSTANCE) + .setParameter("start_date", startDate, StandardBasicTypes.STRING) + .setParameter("end_date", endDate, StandardBasicTypes.STRING) .list(); } @@ -735,8 +734,8 @@ public static List lookupByChannelBetweenDates(Org org, Channel channel, public static Optional lookupErrataFile(Long errataId, String filename) { Session session = HibernateFactory.getSession(); return session.getNamedQuery("ErrataFile.lookupByErrataAndPackage") - .setParameter("errata_id", errataId, LongType.INSTANCE) - .setParameter("filename", filename, StringType.INSTANCE) + .setParameter("errata_id", errataId, StandardBasicTypes.LONG) + .setParameter("filename", filename, StandardBasicTypes.STRING) .uniqueResultOptional(); } diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java index 75bd80b0e7cc..58f3d2867fce 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java @@ -39,8 +39,7 @@ import org.cobbler.Profile; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.io.File; import java.util.ArrayList; @@ -190,8 +189,8 @@ else if (minor.contains("u")) { public static KickstartData lookupKickstartDataByIdAndOrg(Org orgIn, Long ksid) { return (KickstartData) HibernateFactory.getSession() .getNamedQuery("KickstartData.findByIdAndOrg") - .setParameter("id", ksid, LongType.INSTANCE) - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter("id", ksid, StandardBasicTypes.LONG) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -205,7 +204,7 @@ public static KickstartData lookupKickstartDataByCobblerIdAndOrg(Org orgIn, return (KickstartData) HibernateFactory.getSession() .getNamedQuery("KickstartData.findByCobblerIdAndOrg") .setParameter("id", cobblerId) - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -223,7 +222,7 @@ public static KickstartData lookupKickstartDataByLabelAndOrgId( return (KickstartData) HibernateFactory.getSession(). getNamedQuery("KickstartData.findByLabelAndOrg") .setParameter(LABEL, label) - .setParameter(ORG_ID, orgId, LongType.INSTANCE) + .setParameter(ORG_ID, orgId, StandardBasicTypes.LONG) .uniqueResult(); } @@ -242,7 +241,7 @@ public static KickstartData lookupKickstartDataByCILabelAndOrgId( return (KickstartData) HibernateFactory.getSession(). getNamedQuery("KickstartData.findByCILabelAndOrg") .setParameter(LABEL, label) - .setParameter(ORG_ID, orgId, LongType.INSTANCE) + .setParameter(ORG_ID, orgId, StandardBasicTypes.LONG) .uniqueResult(); } @@ -482,12 +481,12 @@ public static CryptoKey lookupCryptoKey(String description, Org org) { Query query = null; if (org != null) { query = session.getNamedQuery("CryptoKey.findByDescAndOrg") - .setParameter("description", description, StringType.INSTANCE) - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE); + .setParameter("description", description, StandardBasicTypes.STRING) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG); } else { query = session.getNamedQuery("CryptoKey.findByDescAndNullOrg") - .setParameter("description", description, StringType.INSTANCE); + .setParameter("description", description, StandardBasicTypes.STRING); } return query.uniqueResult(); } @@ -501,7 +500,7 @@ public static List lookupCryptoKeys(Org org) { //look for Kickstart data by id Session session = HibernateFactory.getSession(); return session.getNamedQuery("CryptoKey.findByOrg") - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) .list(); } @@ -514,7 +513,7 @@ public static List lookupSslCryptoKeys(Org org) { //look for Kickstart data by id Session session = HibernateFactory.getSession(); return session.getNamedQuery("SslCryptoKey.findByOrg") - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) .list(); } @@ -528,8 +527,8 @@ public static CryptoKey lookupCryptoKeyById(Long keyId, Org org) { //look for Kickstart data by id Session session = HibernateFactory.getSession(); return (CryptoKey) session.getNamedQuery("CryptoKey.findByIdAndOrg") - .setParameter("key_id", keyId, LongType.INSTANCE) - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + .setParameter("key_id", keyId, StandardBasicTypes.LONG) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -544,8 +543,8 @@ public static SslCryptoKey lookupSslCryptoKeyById(Long keyId, Org org) { Session session = HibernateFactory.getSession(); Query query = session.getNamedQuery("SslCryptoKey.findByIdAndOrg"); return query - .setParameter("key_id", keyId, LongType.INSTANCE) - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + .setParameter("key_id", keyId, StandardBasicTypes.LONG) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -574,8 +573,8 @@ public static KickstartableTree lookupKickstartTreeByLabel(String label, Org org Session session = HibernateFactory.getSession(); KickstartableTree retval = (KickstartableTree) session.getNamedQuery("KickstartableTree.findByLabelAndOrg") - .setParameter(LABEL, label, StringType.INSTANCE) - .setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + .setParameter(LABEL, label, StandardBasicTypes.STRING) + .setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) .uniqueResult(); // If we don't find by label + org then // we try by label and NULL org (RHN owned channel) @@ -613,8 +612,8 @@ public static List lookupKickstartTreesByChannelAndOrg(Long c String query = "KickstartableTree.findByChannelAndOrg"; Session session = HibernateFactory.getSession(); return session.getNamedQuery(query). - setParameter("channel_id", channelId, LongType.INSTANCE). - setParameter(ORG_ID, org.getId(), LongType.INSTANCE) + setParameter("channel_id", channelId, StandardBasicTypes.LONG). + setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG) //Retrieve from cache if there .setCacheable(true).list(); } @@ -629,7 +628,7 @@ public static List lookupKickstartTreesByChannelAndNullOrg( String query = "KickstartableTree.findByChannelAndNullOrg"; Session session = HibernateFactory.getSession(); return session.getNamedQuery(query) - .setParameter("channel_id", channelId, LongType.INSTANCE) + .setParameter("channel_id", channelId, StandardBasicTypes.LONG) // Retrieve from cache if there .setCacheable(true).list(); } @@ -650,8 +649,8 @@ public static List lookupKickstartableTrees( query = "KickstartableTree.findByChannel"; session = HibernateFactory.getSession(); retval = session.getNamedQuery(query). - setParameter("channel_id", channelId, LongType.INSTANCE). - setParameter(ORG_ID, org.getId(), LongType.INSTANCE). + setParameter("channel_id", channelId, StandardBasicTypes.LONG). + setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG). list(); return retval; } @@ -715,8 +714,8 @@ public static KickstartableTree lookupKickstartTreeByIdAndOrg(Long treeId, Org o if (treeId != null && org != null) { Session session = HibernateFactory.getSession(); Query query = session.getNamedQuery(queryName); - query.setParameter(ORG_ID, org.getId(), LongType.INSTANCE); - query.setParameter("tree_id", treeId, LongType.INSTANCE); + query.setParameter(ORG_ID, org.getId(), StandardBasicTypes.LONG); + query.setParameter("tree_id", treeId, StandardBasicTypes.LONG); //Retrieve from cache if there return query.setCacheable(true).uniqueResult(); } @@ -737,7 +736,7 @@ public static KickstartableTree lookupKickstartTreeByIdAndOrg(Long treeId, Org o public static KickstartSession lookupKickstartSessionByServer(Long sidIn) { Session session = HibernateFactory.getSession(); List ksessions = session.getNamedQuery("KickstartSession.findByServer") - .setParameter("server", sidIn, LongType.INSTANCE) + .setParameter("server", sidIn, StandardBasicTypes.LONG) .list(); if (!ksessions.isEmpty()) { return ksessions.iterator().next(); @@ -756,7 +755,7 @@ public static KickstartSession lookupKickstartSessionByServer(Long sidIn) { Session session = HibernateFactory.getSession(); List ksessions = session.getNamedQuery( "KickstartSession.findDefaultKickstartSessionForKickstartData") - .setParameter("ksdata", ksdata.getId(), LongType.INSTANCE) + .setParameter("ksdata", ksdata.getId(), StandardBasicTypes.LONG) .setParameter("mode", KickstartSession.MODE_DEFAULT_SESSION) .list(); if (!ksessions.isEmpty()) { @@ -795,7 +794,7 @@ public static void saveKickstartSession(KickstartSession ksession) { public static List lookupAllKickstartSessionsByServer(Long sidIn) { Session session = HibernateFactory.getSession(); return session.getNamedQuery("KickstartSession.findByServer") - .setParameter("server", sidIn, LongType.INSTANCE) + .setParameter("server", sidIn, StandardBasicTypes.LONG) .list(); } @@ -828,9 +827,9 @@ public static boolean verifyTreeAssignment(Long channelId, Long orgId, Long tree Session session = HibernateFactory.getSession(); Query query = session. getNamedQuery("KickstartableTree.verifyTreeAssignment"); - query.setParameter("channel_id", channelId, LongType.INSTANCE); - query.setParameter(ORG_ID, orgId, LongType.INSTANCE); - query.setParameter("tree_id", treeId, LongType.INSTANCE); + query.setParameter("channel_id", channelId, StandardBasicTypes.LONG); + query.setParameter(ORG_ID, orgId, StandardBasicTypes.LONG); + query.setParameter("tree_id", treeId, StandardBasicTypes.LONG); KickstartableTree tree = query.uniqueResult(); return tree != null; } @@ -906,7 +905,7 @@ public static List lookupKickstartDatasByTree(KickstartableTree t String query = "KickstartData.lookupByTreeId"; Session session = HibernateFactory.getSession(); return session.getNamedQuery(query) - .setParameter("kstree_id", tree.getId(), LongType.INSTANCE) + .setParameter("kstree_id", tree.getId(), StandardBasicTypes.LONG) .list(); } @@ -944,7 +943,7 @@ public static KickstartData lookupOrgDefault(Org org) { return (KickstartData) session .getNamedQuery("KickstartData.findOrgDefault") .setParameter("org", org) - .setParameter("isOrgDefault", "Y", StringType.INSTANCE) + .setParameter("isOrgDefault", "Y", StandardBasicTypes.STRING) .uniqueResult(); } @@ -1074,8 +1073,8 @@ public static List lookupKsPackageByKsDataAndPackageName( KickstartData ksData, PackageName packageName) { return HibernateFactory.getSession() .getNamedQuery("KickstartPackage.findByKickstartDataAndPackageName") - .setParameter("ks_data", ksData.getId(), LongType.INSTANCE) - .setParameter("package_name", packageName.getId(), LongType.INSTANCE) + .setParameter("ks_data", ksData.getId(), StandardBasicTypes.LONG) + .setParameter("package_name", packageName.getId(), StandardBasicTypes.LONG) .list(); } diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/test/KickstartDataTest.java b/java/code/src/com/redhat/rhn/domain/kickstart/test/KickstartDataTest.java index 7a2e27823060..5c2be650ee6d 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/test/KickstartDataTest.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/test/KickstartDataTest.java @@ -74,7 +74,7 @@ import org.cobbler.Distro; import org.cobbler.test.MockConnection; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; import java.io.File; @@ -333,7 +333,7 @@ private KickstartData lookupById(Org orgIn, Long id) { Session session = HibernateFactory.getSession(); return (KickstartData) session.getNamedQuery("KickstartData.findByIdAndOrg") .setParameter("id", id) - .setParameter("org_id", orgIn.getId(), LongType.INSTANCE) + .setParameter("org_id", orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/org/OrgFactory.java b/java/code/src/com/redhat/rhn/domain/org/OrgFactory.java index 25ccd5f4a4e0..764ac45d1127 100644 --- a/java/code/src/com/redhat/rhn/domain/org/OrgFactory.java +++ b/java/code/src/com/redhat/rhn/domain/org/OrgFactory.java @@ -36,7 +36,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import java.sql.Types; import java.util.Collections; @@ -159,7 +159,7 @@ public static CustomDataKey lookupKeyById(Long cikid) { Session session = HibernateFactory.getSession(); return (CustomDataKey) session.getNamedQuery("CustomDataKey.findById") - .setParameter("id", cikid, LongType.INSTANCE) + .setParameter("id", cikid, StandardBasicTypes.LONG) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -234,7 +234,7 @@ public static Org lookupById(Long id) { public static Long getActiveUsers(Org orgIn) { Session session = HibernateFactory.getSession(); return (Long) session.getNamedQuery("Org.numOfActiveUsers") - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -247,7 +247,7 @@ public static Long getActiveUsers(Org orgIn) { public static Long getActiveSystems(Org orgIn) { Session session = HibernateFactory.getSession(); return (Long) session.getNamedQuery("Org.numOfSystems") - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -259,7 +259,7 @@ public static Long getActiveSystems(Org orgIn) { public static Long getServerGroups(Org orgIn) { Session session = HibernateFactory.getSession(); return (Long) session.getNamedQuery("Org.numOfServerGroups") - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } @@ -271,7 +271,7 @@ public static Long getServerGroups(Org orgIn) { public static Long getConfigChannels(Org orgIn) { Session session = HibernateFactory.getSession(); return (Long) session.getNamedQuery("Org.numOfConfigChannels") - .setParameter(ORG_ID, orgIn.getId(), LongType.INSTANCE) + .setParameter(ORG_ID, orgIn.getId(), StandardBasicTypes.LONG) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java index 120728107fe6..965b8cdba43e 100644 --- a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java +++ b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java @@ -30,8 +30,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.Collection; import java.util.Comparator; @@ -169,7 +168,7 @@ public static void removeAllExcept(Collection products) { SELECT * from suseProducts WHERE id NOT IN (:ids) """, SUSEProduct.class) - .setParameterList("ids", ids, LongType.INSTANCE) + .setParameterList("ids", ids, StandardBasicTypes.LONG) .getResultList(); for (SUSEProduct product : productIds) { @@ -463,13 +462,13 @@ else if (imprecise) { // Execute the query Query query = getSession().createNativeQuery(sqlQuery.toString(), SUSEProduct.class) - .setParameter("name", name.toLowerCase(), StringType.INSTANCE) - .setParameter("arch", archTypeId, LongType.INSTANCE); + .setParameter("name", name.toLowerCase(), StandardBasicTypes.STRING) + .setParameter("arch", archTypeId, StandardBasicTypes.LONG); if (version != null) { - query.setParameter("version", version.toLowerCase(), StringType.INSTANCE); + query.setParameter("version", version.toLowerCase(), StandardBasicTypes.STRING); } if (release != null) { - query.setParameter("release", release.toLowerCase(), StringType.INSTANCE); + query.setParameter("release", release.toLowerCase(), StandardBasicTypes.STRING); } @@ -499,7 +498,7 @@ public static SUSEProduct lookupByProductId(long productId) { SELECT * from suseProducts WHERE product_id = :product """, SUSEProduct.class) - .setParameter("product", productId, LongType.INSTANCE) + .setParameter("product", productId, StandardBasicTypes.LONG) .getSingleResult(); } catch (NoResultException e) { @@ -572,9 +571,9 @@ public static Optional findSUSEProductExtension(SUSEProduc AND ext_pdid = :extid AND root_pdid = :rootid """, SUSEProductExtension.class) - .setParameter("baseid", base.getId(), LongType.INSTANCE) - .setParameter("extid", ext.getId(), LongType.INSTANCE) - .setParameter("rootid", root.getId(), LongType.INSTANCE) + .setParameter("baseid", base.getId(), StandardBasicTypes.LONG) + .setParameter("extid", ext.getId(), StandardBasicTypes.LONG) + .setParameter("rootid", root.getId(), StandardBasicTypes.LONG) .getSingleResult()); } catch (NoResultException e) { @@ -620,8 +619,8 @@ public static List findAllProductExtensionsOf(SUSEProduct WHERE base_pdid = :baseid AND root_pdid = :rootid """, SUSEProductExtension.class) - .setParameter("baseid", product.getId(), LongType.INSTANCE) - .setParameter("rootid", root.getId(), LongType.INSTANCE) + .setParameter("baseid", product.getId(), StandardBasicTypes.LONG) + .setParameter("rootid", root.getId(), StandardBasicTypes.LONG) .getResultList(); } @@ -736,10 +735,10 @@ public static Optional findInstalledProduct(String name, // Execute the query Query query = getSession().createNativeQuery(sqlQuery.toString(), InstalledProduct.class) - .setParameter("name", name.toLowerCase(), StringType.INSTANCE) - .setParameter("version", version.toLowerCase(), StringType.INSTANCE) - .setParameter("release", release.toLowerCase(), StringType.INSTANCE) - .setParameter("arch", archTypeId, LongType.INSTANCE); + .setParameter("name", name.toLowerCase(), StandardBasicTypes.STRING) + .setParameter("version", version.toLowerCase(), StandardBasicTypes.STRING) + .setParameter("release", release.toLowerCase(), StandardBasicTypes.STRING) + .setParameter("arch", archTypeId, StandardBasicTypes.LONG); List result = query.getResultList(); diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java index 01acda7555a7..b7c848a84c58 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvrFactory.java @@ -19,8 +19,7 @@ import com.redhat.rhn.common.hibernate.HibernateFactory; import org.hibernate.Session; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.sql.Types; import java.util.HashMap; @@ -98,7 +97,7 @@ public static PackageEvr lookupOrCreatePackageEvr(String e, String v, String r, public static PackageEvr lookupPackageEvrById(Long id) { Session session = HibernateFactory.getSession(); return (PackageEvr) session.getNamedQuery("PackageEvr.findById") - .setParameter("id", id, LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) .uniqueResult(); } @@ -114,10 +113,10 @@ public static Optional lookupPackageEvrByEvr( String epoch, String version, String release, PackageType type) { Session session = HibernateFactory.getSession(); return (Optional) session.getNamedQuery("PackageEvr.lookupByEvr") - .setParameter("e_in", epoch, StringType.INSTANCE) - .setParameter("v_in", version, StringType.INSTANCE) - .setParameter("r_in", release, StringType.INSTANCE) - .setParameter("t_in", type.getDbString(), StringType.INSTANCE) + .setParameter("e_in", epoch, StandardBasicTypes.STRING) + .setParameter("v_in", version, StandardBasicTypes.STRING) + .setParameter("r_in", release, StandardBasicTypes.STRING) + .setParameter("t_in", type.getDbString(), StandardBasicTypes.STRING) .uniqueResultOptional(); } diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java index d65896e104ee..61485dee6b9b 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java @@ -33,8 +33,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.sql.Types; import java.util.ArrayList; @@ -302,7 +301,7 @@ public static long lookupOrCreatePackageNameId(String name) { */ public static PackageName lookupPackageName(Long id) { return (PackageName) HibernateFactory.getSession().getNamedQuery("PackageName.findById") - .setParameter("id", id, LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) .uniqueResult(); } @@ -316,7 +315,7 @@ public static PackageName lookupPackageName(Long id) { */ public static PackageName lookupPackageName(String pn) { return (PackageName) HibernateFactory.getSession().getNamedQuery("PackageName.findByName") - .setParameter("name", pn, StringType.INSTANCE) + .setParameter("name", pn, StandardBasicTypes.STRING) .uniqueResult(); } @@ -349,9 +348,9 @@ public static List lookupByNevra(Org org, String name, String version, List packages = HibernateFactory.getSession().getNamedQuery( "Package.lookupByNevra") .setParameter("org", org) - .setParameter("name", name, StringType.INSTANCE) - .setParameter("version", version, StringType.INSTANCE) - .setParameter("release", release, StringType.INSTANCE) + .setParameter("name", name, StandardBasicTypes.STRING) + .setParameter("version", version, StandardBasicTypes.STRING) + .setParameter("release", release, StandardBasicTypes.STRING) .setParameter("arch", arch) .list(); @@ -374,9 +373,9 @@ public static List lookupByNevraIds(Org org, long nameId, long evrId, l return HibernateFactory.getSession().createNamedQuery("Package.lookupByNevraIds", Package.class) .setParameter("org", org) - .setParameter("nameId", nameId, LongType.INSTANCE) - .setParameter("evrId", evrId, LongType.INSTANCE) - .setParameter("archId", archId, LongType.INSTANCE) + .setParameter("nameId", nameId, StandardBasicTypes.LONG) + .setParameter("evrId", evrId, StandardBasicTypes.LONG) + .setParameter("archId", archId, StandardBasicTypes.LONG) .list(); } @@ -397,12 +396,12 @@ public static Package lookupByChannelLabelNevraCs(String channel, String name, @SuppressWarnings("unchecked") List packages = HibernateFactory.getSession() .getNamedQuery("Package.lookupByChannelLabelNevraCs") - .setParameter("channel", channel, StringType.INSTANCE) - .setParameter("name", name, StringType.INSTANCE) - .setParameter("version", version, StringType.INSTANCE) - .setParameter("release", release, StringType.INSTANCE) - .setParameter("arch", arch, StringType.INSTANCE) - .setParameter("checksum", checksum.orElse(null), StringType.INSTANCE) + .setParameter("channel", channel, StandardBasicTypes.STRING) + .setParameter("name", name, StandardBasicTypes.STRING) + .setParameter("version", version, StandardBasicTypes.STRING) + .setParameter("release", release, StandardBasicTypes.STRING) + .setParameter("arch", arch, StandardBasicTypes.STRING) + .setParameter("checksum", checksum.orElse(null), StandardBasicTypes.STRING) .list(); if (packages.isEmpty()) { diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java index a813bee16b5d..4a1e94828765 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/profile/test/ProfileTypeTest.java @@ -23,7 +23,7 @@ import com.redhat.rhn.testing.RhnBaseTestCase; import org.hibernate.Session; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; /** @@ -74,7 +74,7 @@ public void testFindByLabel() throws Exception { public static ProfileType lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (ProfileType) session.getNamedQuery("ProfileType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java b/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java index 9be5cdf19589..502972b18f11 100644 --- a/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java +++ b/java/code/src/com/redhat/rhn/domain/role/RoleFactory.java @@ -19,8 +19,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; /** * RoleFactory @@ -58,7 +57,7 @@ protected Logger getLogger() { public static Role lookupById(Long id) { Session session = HibernateFactory.getSession(); return (Role) session.getNamedQuery("Role.findById") - .setParameter("id", id, LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -72,7 +71,7 @@ public static Role lookupById(Long id) { public static Role lookupByLabel(String name) { Session session = HibernateFactory.getSession(); return (Role) session.getNamedQuery("Role.findByLabel") - .setParameter("label", name, StringType.INSTANCE) + .setParameter("label", name, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java index c12db0c023dd..50c6ee65c448 100644 --- a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java +++ b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java @@ -35,8 +35,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.math.BigDecimal; import java.util.ArrayList; diff --git a/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java index 5ce796230fdf..c002f9628d50 100644 --- a/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/MinionServerFactory.java @@ -29,8 +29,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.math.BigDecimal; import java.util.List; @@ -63,7 +62,7 @@ public static List lookupByOrg(Long orgId) { s.server_id IN (SELECT id FROM rhnServer WHERE org_id = :org) """, MinionServer.class) - .setParameter("org", orgId, LongType.INSTANCE) + .setParameter("org", orgId, StandardBasicTypes.LONG) .getResultList(); } @@ -100,7 +99,7 @@ public static Optional findByMachineId(String machineId) { s.server_id IN (SELECT id FROM rhnServer WHERE machine_id = :machineId) """, MinionServer.class) - .setParameter("machineId", machineId, StringType.INSTANCE) + .setParameter("machineId", machineId, StandardBasicTypes.STRING) .uniqueResult()); } catch (NoResultException e) { @@ -123,7 +122,7 @@ public static Optional findByMinionId(String minionId) { FROM suseminioninfo s JOIN rhnserver r ON s.server_id = r.id where s.minion_id = :minion """, MinionServer.class) - .setParameter("minion", minionId, StringType.INSTANCE).getSingleResult()); + .setParameter("minion", minionId, StandardBasicTypes.STRING).getSingleResult()); } catch (NoResultException e) { minion = Optional.empty(); @@ -159,7 +158,7 @@ public static List findMinionIdsByOrgId(Long orgId) { JOIN rhnserver r ON s.server_id = r.id WHERE s.org_id = :org """, MinionServer.class) - .setParameter("org", orgId, LongType.INSTANCE) + .setParameter("org", orgId, StandardBasicTypes.LONG) .getResultList().stream().map(MinionServer::getMinionId).collect(Collectors.toList()); } @@ -201,7 +200,7 @@ public static List lookupByMinionIds(Set minionIds) { JOIN rhnserver r ON s.server_id = r.id WHERE s.minion_id IN (:minions) """, MinionServer.class) - .setParameterList("minions", minionIds, StringType.INSTANCE) + .setParameterList("minions", minionIds, StandardBasicTypes.STRING) .getResultList(); } } @@ -215,7 +214,7 @@ public static List listSSHMinions() { SELECT * from suseServerContactMethod WHERE label IN (:labels) """, ContactMethod.class) - .setParameterList("labels", List.of("ssh-push", "ssh-push-tunnel"), StringType.INSTANCE) + .setParameterList("labels", List.of("ssh-push", "ssh-push-tunnel"), StandardBasicTypes.STRING) .getResultList().stream().map(ContactMethod::getId).collect(Collectors.toList()); return getSession().createNativeQuery(""" SELECT s.*, r.* @@ -224,7 +223,7 @@ WHERE label IN (:labels) WHERE server_id IN (SELECT id FROM rhnServer WHERE contact_method_id IN (:contacts)) """, MinionServer.class) - .setParameterList("contacts", contacts, LongType.INSTANCE) + .setParameterList("contacts", contacts, StandardBasicTypes.LONG) .getResultList(); } @@ -318,7 +317,7 @@ public static List findEmptyProfilesByHwAddrs(Set hwAddrs) SELECT * from rhnServerNetInterface WHERE hw_addr IN (:hwaddr) """, NetworkInterface.class) - .setParameterList("hwaddr", hwAddrs, StringType.INSTANCE) + .setParameterList("hwaddr", hwAddrs, StandardBasicTypes.STRING) .getResultList().stream().map(x -> x.getServer().getId()).collect(Collectors.toList()); if (serverIds.isEmpty()) { @@ -331,7 +330,7 @@ WHERE hw_addr IN (:hwaddr) JOIN rhnserver r ON s.server_id = r.id WHERE s.server_id IN (:ids) """, MinionServer.class) - .setParameterList("ids", serverIds, LongType.INSTANCE) + .setParameterList("ids", serverIds, StandardBasicTypes.LONG) .getResultList(); return servers.stream() @@ -354,7 +353,7 @@ public static List findEmptyProfilesByHostName(String hostname) { s.server_id IN (SELECT id FROM rhnServer WHERE hostname = :hostname) """, MinionServer.class) - .setParameter("hostname", hostname, StringType.INSTANCE) + .setParameter("hostname", hostname, StandardBasicTypes.STRING) .getResultList(); return servers.stream() diff --git a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java index 9b9e0ab9bc49..3b4f0ce00cb3 100644 --- a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java @@ -20,7 +20,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import java.util.List; @@ -101,7 +101,7 @@ public void remove(PinnedSubscription subscription) { public void cleanStalePins() { getSession() .getNamedQuery("PinnedSubscription.cleanStalePins") - .setParameter("selfSystemId", MatcherJsonIO.SELF_SYSTEM_ID, LongType.INSTANCE) + .setParameter("selfSystemId", MatcherJsonIO.SELF_SYSTEM_ID, StandardBasicTypes.LONG) .executeUpdate(); } @@ -130,8 +130,8 @@ public PinnedSubscription lookupBySystemIdAndSubscriptionId(Long systemId, "WHERE system_id = :systemId AND subscription_id = :subscriptionId"; return (PinnedSubscription) getSession() .createNativeQuery(sql, PinnedSubscription.class) - .setParameter("systemId", systemId, LongType.INSTANCE) - .setParameter("subscriptionId", subscriptionId, LongType.INSTANCE) + .setParameter("systemId", systemId, StandardBasicTypes.LONG) + .setParameter("subscriptionId", subscriptionId, StandardBasicTypes.LONG) .getSingleResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java index 71433ab91a64..7821c2f29050 100644 --- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java @@ -56,9 +56,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; import org.hibernate.type.StandardBasicTypes; -import org.hibernate.type.StringType; import java.util.ArrayList; import java.util.Arrays; @@ -210,7 +208,7 @@ WHERE id IN (SELECT server_id FROM rhnProxyInfo) AND hostname = :hostname LIMIT 1; """, Server.class) - .setParameter("hostname", name, StringType.INSTANCE).uniqueResultOptional(); + .setParameter("hostname", name, StandardBasicTypes.STRING).uniqueResultOptional(); if (result.isPresent()) { return result; @@ -227,7 +225,7 @@ WHERE id IN (SELECT server_id FROM rhnProxyInfo) AND hostname = :hostname LIMIT 1; """, Server.class) - .setParameter("hostname", srippedHostname, StringType.INSTANCE).uniqueResultOptional(); + .setParameter("hostname", srippedHostname, StandardBasicTypes.STRING).uniqueResultOptional(); } else { return HibernateFactory.getSession().createNativeQuery(""" @@ -237,7 +235,7 @@ WHERE id IN (SELECT server_id FROM rhnProxyInfo) AND hostname LIKE :hostname LIMIT 1; """, Server.class) - .setParameter("hostname", name + ".%", StringType.INSTANCE).uniqueResultOptional(); + .setParameter("hostname", name + ".%", StandardBasicTypes.STRING).uniqueResultOptional(); } } @@ -355,8 +353,8 @@ public static Optional findServerPath(Server server, Server proxySer WHERE server_id = :server AND proxy_server_id = :proxyserver """, ServerPath.class) - .setParameter("server", server.getId(), LongType.INSTANCE) - .setParameter("proxyserver", proxyServer.getId(), LongType.INSTANCE) + .setParameter("server", server.getId(), StandardBasicTypes.LONG) + .setParameter("proxyserver", proxyServer.getId(), StandardBasicTypes.LONG) .uniqueResultOptional(); } @@ -750,7 +748,7 @@ public static Server lookupForeignSystemByDigitalServerId(String id) { SELECT *, 0 as clazz_ from rhnServer WHERE digital_server_id = :id """, Server.class) - .setParameter("id", id, StringType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.STRING) .getResultList(); for (Server server : servers) { if (server.hasEntitlement(EntitlementManager.getByName("foreign_entitled"))) { @@ -787,7 +785,7 @@ public static List lookupByServerIds(List ids, Strin */ public static ServerGroupType lookupServerGroupTypeByLabel(String label) { return (ServerGroupType) HibernateFactory.getSession().getNamedQuery("ServerGroupType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .setCacheable(true) .uniqueResult(); @@ -891,7 +889,7 @@ private static void updateServerPerms(Server server) { public static ServerArch lookupServerArchByLabel(String label) { Session session = HibernateFactory.getSession(); return (ServerArch) session.getNamedQuery("ServerArch.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .setCacheable(true) .uniqueResult(); } @@ -917,7 +915,7 @@ public static ServerArch lookupServerArchByName(String name) { public static CPUArch lookupCPUArchByName(String name) { Session session = HibernateFactory.getSession(); return (CPUArch) session.getNamedQuery("CPUArch.findByName") - .setParameter("name", name, StringType.INSTANCE) + .setParameter("name", name, StandardBasicTypes.STRING) .setCacheable(true).uniqueResult(); } @@ -1292,7 +1290,7 @@ public static void removeTagFromSnapshot(Long serverId, SnapshotTag tag) { */ public static SnapshotTag lookupSnapshotTagbyName(String tagName) { return (SnapshotTag) HibernateFactory.getSession().getNamedQuery("SnapshotTag.lookupByTagName") - .setParameter("tag_name", tagName, StringType.INSTANCE) + .setParameter("tag_name", tagName, StandardBasicTypes.STRING) // Do not use setCacheable(true), as tag deletion will // usually end up making this query's output out of date .uniqueResult(); @@ -1304,7 +1302,7 @@ public static SnapshotTag lookupSnapshotTagbyName(String tagName) { */ public static SnapshotTag lookupSnapshotTagbyId(Long tagId) { return (SnapshotTag) HibernateFactory.getSession().getNamedQuery("SnapshotTag.lookupById") - .setParameter("id", tagId, LongType.INSTANCE) + .setParameter("id", tagId, StandardBasicTypes.LONG) // Do not use setCacheable(true), as tag deletion will // usually end up making this query's output out of date .uniqueResult(); @@ -1338,7 +1336,7 @@ public static ContactMethod findContactMethodByLabel(String label) { SELECT * from suseServerContactMethod WHERE label = :label """, ContactMethod.class) - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .getSingleResult(); } catch (NoResultException e) { @@ -1491,7 +1489,7 @@ public static Optional findByMachineId(String machineId) { SELECT * from rhnServer WHERE machine_id = :machine """, Server.class) - .setParameter("machine", machineId, StringType.INSTANCE) + .setParameter("machine", machineId, StandardBasicTypes.STRING) .uniqueResultOptional(); } diff --git a/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java b/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java index 58b8afb70341..7454a0690d92 100644 --- a/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/VirtualInstanceFactory.java @@ -20,8 +20,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Session; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.ArrayList; import java.util.HashSet; @@ -86,7 +85,7 @@ public VirtualInstance lookupByGuestId(Org org, Long id) { return (VirtualInstance) session.getNamedQuery("VirtualInstance.lookupGuestBySidAndOrg") .setParameter("org", org) - .setParameter("sid", id, LongType.INSTANCE) + .setParameter("sid", id, StandardBasicTypes.LONG) .uniqueResult(); } @@ -99,9 +98,8 @@ public VirtualInstance lookupByGuestId(Org org, Long id) { @SuppressWarnings("unchecked") public VirtualInstance lookupByGuestId(Long id) { Session session = HibernateFactory.getSession(); - return (VirtualInstance) session.getNamedQuery( - "VirtualInstance.lookupGuestBySid") - .setParameter("sid", id, LongType.INSTANCE) + return (VirtualInstance) session.getNamedQuery("VirtualInstance.lookupGuestBySid") + .setParameter("sid", id, StandardBasicTypes.LONG) .uniqueResult(); } @@ -114,11 +112,8 @@ public VirtualInstance lookupByGuestId(Long id) { */ public boolean isOutdated(VirtualInstance guest) { Session session = HibernateFactory.getSession(); - VirtualInstance results = (VirtualInstance) session.getNamedQuery( - "VirtualInstance.isOutdatedVirtualInstance"). - setParameter("guest", guest) - .uniqueResult(); - + VirtualInstance results = (VirtualInstance) session.getNamedQuery("VirtualInstance.isOutdatedVirtualInstance") + .setParameter("guest", guest).uniqueResult(); return results != null; } @@ -169,9 +164,8 @@ public void deleteVirtualInstanceOnly(VirtualInstance virtualInstance) { @SuppressWarnings("unchecked") public Set findGuestsWithNonVirtHostByOrg(Org org) { Session session = HibernateFactory.getSession(); - List results = session.getNamedQuery( - "VirtualInstance.findGuestsWithNonVirtHostByOrg"). - setParameter("org_id", org.getId(), LongType.INSTANCE) + List results = session.getNamedQuery("VirtualInstance.findGuestsWithNonVirtHostByOrg") + .setParameter("org_id", org.getId(), StandardBasicTypes.LONG) .list(); return new HashSet<>(convertToView(results)); @@ -244,8 +238,8 @@ private static List convertToView(List out) { public Set findGuestsWithoutAHostByOrg(Org org) { Session session = HibernateFactory.getSession(); - List results = session.getNamedQuery( - "VirtualInstance.findGuestsWithoutAHostByOrg").setParameter("org", org) + List results = session.getNamedQuery("VirtualInstance.findGuestsWithoutAHostByOrg") + .setParameter("org", org) .list(); return new HashSet<>(results); @@ -257,9 +251,8 @@ public Set findGuestsWithoutAHostByOrg(Org org) { * @return The para-virt type */ public VirtualInstanceType getParaVirtType() { - return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel") - .setParameter("label", "para_virtualized", StringType.INSTANCE) + return (VirtualInstanceType)getSession().getNamedQuery("VirtualInstanceType.findByLabel") + .setParameter("label", "para_virtualized", StandardBasicTypes.STRING) .setCacheable(true).uniqueResult(); } @@ -269,9 +262,8 @@ public VirtualInstanceType getParaVirtType() { * @return The fully-virt type. */ public VirtualInstanceType getFullyVirtType() { - return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel") - .setParameter("label", "fully_virtualized", StringType.INSTANCE) + return (VirtualInstanceType)getSession().getNamedQuery("VirtualInstanceType.findByLabel") + .setParameter("label", "fully_virtualized", StandardBasicTypes.STRING) .setCacheable(true).uniqueResult(); } @@ -282,9 +274,8 @@ public VirtualInstanceType getFullyVirtType() { * @return The type or null */ public VirtualInstanceType getVirtualInstanceType(String label) { - return (VirtualInstanceType)getSession().getNamedQuery( - "VirtualInstanceType.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + return (VirtualInstanceType)getSession().getNamedQuery("VirtualInstanceType.findByLabel") + .setParameter("label", label, StandardBasicTypes.STRING) .setCacheable(true).uniqueResult(); } @@ -294,9 +285,8 @@ public VirtualInstanceType getVirtualInstanceType(String label) { * @return The running state */ public VirtualInstanceState getRunningState() { - return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", "running", StringType.INSTANCE) + return (VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", "running", StandardBasicTypes.STRING) .uniqueResult(); } @@ -306,9 +296,8 @@ public VirtualInstanceState getRunningState() { * @return The stopped state */ public VirtualInstanceState getStoppedState() { - return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", "stopped", StringType.INSTANCE) + return (VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", "stopped", StandardBasicTypes.STRING) .uniqueResult(); } @@ -318,9 +307,8 @@ public VirtualInstanceState getStoppedState() { * @return The paused state */ public VirtualInstanceState getPausedState() { - return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", "paused", StringType.INSTANCE) + return (VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", "paused", StandardBasicTypes.STRING) .uniqueResult(); } @@ -330,9 +318,8 @@ public VirtualInstanceState getPausedState() { * @return The crashed state */ public VirtualInstanceState getCrashedState() { - return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", "crashed", StringType.INSTANCE) + return (VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", "crashed", StandardBasicTypes.STRING) .uniqueResult(); } @@ -342,9 +329,8 @@ public VirtualInstanceState getCrashedState() { * @return The unknown state */ public VirtualInstanceState getUnknownState() { - return (VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", "unknown", StringType.INSTANCE) + return (VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", "unknown", StandardBasicTypes.STRING) .uniqueResult(); } @@ -355,9 +341,8 @@ public VirtualInstanceState getUnknownState() { * @return virtualInstanceState found by label or null */ public Optional getState(String label) { - return Optional.ofNullable((VirtualInstanceState)getSession().getNamedQuery( - "VirtualInstanceState.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + return Optional.ofNullable((VirtualInstanceState)getSession().getNamedQuery("VirtualInstanceState.findByLabel") + .setParameter("label", label, StandardBasicTypes.STRING) .uniqueResult()); } @@ -369,7 +354,7 @@ public Optional getState(String label) { public List lookupVirtualInstanceByUuid(String uuid) { return getSession() .getNamedQuery("VirtualInstance.lookupVirtualInstanceByUuid") - .setParameter("uuid", uuid, StringType.INSTANCE) + .setParameter("uuid", uuid, StandardBasicTypes.STRING) .list(); } @@ -381,7 +366,7 @@ public List lookupVirtualInstanceByUuid(String uuid) { public VirtualInstance lookupHostVirtInstanceByHostId(Long hostId) { return (VirtualInstance) getSession() .getNamedQuery("VirtualInstance.lookupHostVirtInstanceByHostId") - .setParameter("hostId", hostId, LongType.INSTANCE) + .setParameter("hostId", hostId, StandardBasicTypes.LONG) .uniqueResult(); } @@ -394,8 +379,8 @@ public VirtualInstance lookupHostVirtInstanceByHostId(Long hostId) { public VirtualInstance lookupVirtualInstanceByHostIdAndUuid(Long hostId, String uuid) { return (VirtualInstance) getSession() .getNamedQuery("VirtualInstance.lookupHostVirtInstanceByHostIdAndUuid") - .setParameter("hostId", hostId, LongType.INSTANCE) - .setParameter("uuid", uuid, StringType.INSTANCE) + .setParameter("hostId", hostId, StandardBasicTypes.LONG) + .setParameter("uuid", uuid, StandardBasicTypes.STRING) .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java b/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java index 5adfff8bf44d..7033ec5cb824 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/LocationTest.java @@ -28,7 +28,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; import java.util.Date; @@ -58,7 +58,7 @@ public void testLocation() throws Exception { Session session = HibernateFactory.getSession(); loc2 = (Location) session.getNamedQuery("Location.findById") - .setParameter("id", loc1.getId(), LongType.INSTANCE) + .setParameter("id", loc1.getId(), StandardBasicTypes.LONG) .uniqueResult(); assertEquals(loc1, loc2); } diff --git a/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java b/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java index ff26e4ef8ddb..fea492eb106a 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/NoteTest.java @@ -27,7 +27,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; import java.util.Date; @@ -51,7 +51,7 @@ public void testEquals() throws Exception { Session session = HibernateFactory.getSession(); note2 = (Note) session.getNamedQuery("Note.findById") - .setParameter("id", note1.getId(), LongType.INSTANCE) + .setParameter("id", note1.getId(), StandardBasicTypes.LONG) .uniqueResult(); assertEquals(note1, note2); diff --git a/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java b/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java index 2354b892cccb..91b86673ce2c 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/VirtualInstanceFactoryTest.java @@ -41,7 +41,7 @@ import org.apache.commons.collections.CollectionUtils; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -305,7 +305,7 @@ public void testLookupHostVirtualInstanceByHostId() throws Exception { WHERE host_system_id = :host AND virtual_system_id IS NULL """, VirtualInstance.class) - .setParameter("host", host.getId(), LongType.INSTANCE) + .setParameter("host", host.getId(), StandardBasicTypes.LONG) .getSingleResult(); } catch (NoResultException e) { diff --git a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java index e74c6d369c48..54a6076f735d 100644 --- a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java @@ -30,8 +30,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.io.FileOutputStream; import java.io.IOException; @@ -110,7 +109,7 @@ public VirtualHostManager lookupByLabel(String label) { SELECT * from suseVirtualHostManager WHERE label = :label """, VirtualHostManager.class) - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .getSingleResult(); } catch (NoResultException e) { @@ -144,8 +143,8 @@ public VirtualHostManager lookupByIdAndOrg(Long id, Org org) { WHERE id = :id AND org_id = :org """, VirtualHostManager.class) - .setParameter("org", org.getId(), LongType.INSTANCE) - .setParameter("id", id, LongType.INSTANCE) + .setParameter("org", org.getId(), StandardBasicTypes.LONG) + .setParameter("id", id, StandardBasicTypes.LONG) .getSingleResult(); } catch (NoResultException e) { @@ -167,8 +166,8 @@ public List lookupByIdsAndOrg(List ids, Org org) { WHERE id IN (:ids) AND org_id = :org """, VirtualHostManager.class) - .setParameter("org", org.getId(), LongType.INSTANCE) - .setParameterList("ids", ids, LongType.INSTANCE) + .setParameter("org", org.getId(), StandardBasicTypes.LONG) + .setParameterList("ids", ids, StandardBasicTypes.LONG) .getResultList(); } @@ -187,8 +186,8 @@ public VirtualHostManager lookupByLabelAndOrg(String label, Org org) { WHERE label = :label AND org_id = :org """, VirtualHostManager.class) - .setParameter("label", label, StringType.INSTANCE) - .setParameter("org", org.getId(), LongType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) + .setParameter("org", org.getId(), StandardBasicTypes.LONG) .getSingleResult(); } catch (NoResultException e) { @@ -209,7 +208,7 @@ public List listVirtualHostManagers(Org org) { WHERE org_id = :org ORDER BY label """, VirtualHostManager.class) - .setParameter("org", org.getId(), LongType.INSTANCE) + .setParameter("org", org.getId(), StandardBasicTypes.LONG) .getResultList(); } @@ -219,9 +218,8 @@ public List listVirtualHostManagers(Org org) { */ @SuppressWarnings("unchecked") public List listVirtualHostManagers() { - return HibernateFactory.getSession().createNativeQuery(""" - SELECT * from suseVirtualHostManager - """, VirtualHostManager.class) + return HibernateFactory.getSession().createNativeQuery("SELECT * from suseVirtualHostManager", + VirtualHostManager.class) .getResultList(); } @@ -509,7 +507,7 @@ public Optional lookupNodeInfoByIdentifier( SELECT * from suseVirtualHostManagerNodeInfo WHERE identifier = :identifier """, VirtualHostManagerNodeInfo.class) - .setParameter("identifier", identifier, StringType.INSTANCE) + .setParameter("identifier", identifier, StandardBasicTypes.STRING) .getSingleResult()); } catch (NoResultException e) { diff --git a/java/code/src/com/redhat/rhn/domain/state/StateFactory.java b/java/code/src/com/redhat/rhn/domain/state/StateFactory.java index 4e56b4a66903..33d588dc2167 100644 --- a/java/code/src/com/redhat/rhn/domain/state/StateFactory.java +++ b/java/code/src/com/redhat/rhn/domain/state/StateFactory.java @@ -23,7 +23,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.query.Query; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import java.util.LinkedList; import java.util.List; @@ -101,7 +101,7 @@ SELECT DISTINCT ON (org_id) *, null as created, null as creator_id FROM ORDER BY org_id, state_revision_id desc limit 1; """; Query query = getSession().createNativeQuery(sql, OrgStateRevision.class); - query.setParameter("org", org.getId(), LongType.INSTANCE); + query.setParameter("org", org.getId(), StandardBasicTypes.LONG); try { return Optional.ofNullable(query.getSingleResult()); } @@ -124,7 +124,7 @@ SELECT DISTINCT ON (group_id) *, null as created, null as creator_id FROM ORDER BY group_id, state_revision_id desc limit 1; """; Query query = getSession().createNativeQuery(sql, ServerGroupStateRevision.class); - query.setParameter("group", group.getId(), LongType.INSTANCE); + query.setParameter("group", group.getId(), StandardBasicTypes.LONG); try { return Optional.ofNullable(query.getSingleResult()); } @@ -146,7 +146,7 @@ SELECT DISTINCT ON (server_id) *, null as created, null as creator_id FROM ORDER BY server_id, state_revision_id desc limit 1; """; Query query = getSession().createNativeQuery(sql, ServerStateRevision.class); - query.setParameter("server", server.getId(), LongType.INSTANCE); + query.setParameter("server", server.getId(), StandardBasicTypes.LONG); try { return Optional.ofNullable(query.getSingleResult()); } diff --git a/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java b/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java index 9f533f757909..255272b60000 100644 --- a/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java +++ b/java/code/src/com/redhat/rhn/domain/token/ActivationKeyFactory.java @@ -33,7 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.util.HashMap; import java.util.List; @@ -61,7 +61,7 @@ public static ActivationKey lookupByKey(String key) { return (ActivationKey) HibernateFactory.getSession() .getNamedQuery("ActivationKey.findByKey") - .setParameter("key", key, StringType.INSTANCE) + .setParameter("key", key, StandardBasicTypes.STRING) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java b/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java index 1ce39c078a36..b89306a64344 100644 --- a/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java +++ b/java/code/src/com/redhat/rhn/domain/token/test/TokenTest.java @@ -41,7 +41,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; import java.util.ArrayList; @@ -65,7 +65,7 @@ public void testEquals() throws Exception { Session session = HibernateFactory.getSession(); token2 = (Token) session.getNamedQuery("Token.findById") - .setParameter("id", token1.getId(), LongType.INSTANCE) + .setParameter("id", token1.getId(), StandardBasicTypes.LONG) .uniqueResult(); assertEquals(token1, token2); diff --git a/java/code/src/com/redhat/rhn/domain/user/UserFactory.java b/java/code/src/com/redhat/rhn/domain/user/UserFactory.java index 7c9fff4be5b4..388974bf122f 100644 --- a/java/code/src/com/redhat/rhn/domain/user/UserFactory.java +++ b/java/code/src/com/redhat/rhn/domain/user/UserFactory.java @@ -37,8 +37,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.IntegerType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.sql.Types; import java.util.Arrays; @@ -448,7 +447,7 @@ public void syncServerGroupPerms(User usr) { public static RhnTimeZone getTimeZone(int id) { Session session = HibernateFactory.getSession(); return (RhnTimeZone) session.getNamedQuery("RhnTimeZone.loadTimeZoneById") - .setParameter("tid", id, IntegerType.INSTANCE) + .setParameter("tid", id, StandardBasicTypes.INTEGER) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -463,7 +462,7 @@ public static RhnTimeZone getTimeZone(String olsonName) { Session session = HibernateFactory.getSession(); return (RhnTimeZone) session .getNamedQuery("RhnTimeZone.loadTimeZoneByOlsonName") - .setParameter("ton", olsonName, StringType.INSTANCE) + .setParameter("ton", olsonName, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java index f4365dca5755..72622d3e02df 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java +++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartDeleteActionTest.java @@ -23,7 +23,7 @@ import com.redhat.rhn.frontend.struts.RequestContext; import org.hibernate.Session; -import org.hibernate.type.LongType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.Test; public class KickstartDeleteActionTest extends BaseKickstartEditTestCase { @@ -64,8 +64,8 @@ public void testSubmit() throws Exception { private KickstartData lookupById(Long id) { Session session = HibernateFactory.getSession(); return (KickstartData) session.getNamedQuery("KickstartData.findByIdAndOrg") - .setParameter("id", id, LongType.INSTANCE) - .setParameter("org_id", user.getOrg().getId(), LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) + .setParameter("org_id", user.getOrg().getId(), StandardBasicTypes.LONG) .uniqueResult(); } } diff --git a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java index d6d51c65f8a0..f96801befb4d 100644 --- a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java +++ b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java @@ -68,7 +68,7 @@ import org.apache.logging.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Session; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.io.File; import java.util.ArrayList; @@ -637,7 +637,7 @@ public static PackageName lookupPackageName(String name) { try { session = HibernateFactory.getSession(); return (PackageName)session.getNamedQuery("PackageName.findByName") - .setParameter("name", name, StringType.INSTANCE) + .setParameter("name", name, StandardBasicTypes.STRING) .uniqueResult(); } catch (HibernateException e) { diff --git a/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java b/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java index b3e242e2568b..6873def13aef 100644 --- a/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java +++ b/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java @@ -154,7 +154,7 @@ import org.apache.commons.io.FileUtils; import org.cobbler.test.MockConnection; import org.hibernate.Session; -import org.hibernate.type.IntegerType; +import org.hibernate.type.StandardBasicTypes; import org.jmock.Expectations; import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.jupiter.api.AfterEach; @@ -285,7 +285,7 @@ private Integer numberOfSnapshots(Long sid) { return (Integer) session.createSQLQuery("Select count(*) as cnt " + " from rhnSnapshot " + " where server_id = " + sid) - .addScalar("cnt", IntegerType.INSTANCE) + .addScalar("cnt", StandardBasicTypes.INTEGER) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/test/ChannelRepodataTest.java b/java/code/src/com/redhat/rhn/taskomatic/task/test/ChannelRepodataTest.java index df29ee81c48e..815bdf0e2bbd 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/test/ChannelRepodataTest.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/test/ChannelRepodataTest.java @@ -32,7 +32,7 @@ import com.redhat.rhn.taskomatic.task.RhnJob; import com.redhat.rhn.testing.JMockBaseTestCaseWithUser; -import org.hibernate.type.IntegerType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -103,7 +103,7 @@ public void canProcessRepositoriesDataForChannel() throws Exception { private static boolean isChannelProcessed(Channel channel) { Integer items = (Integer) HibernateFactory.getSession() .createSQLQuery("SELECT COUNT(*) AS count FROM rhnRepoRegenQueue WHERE channel_label = :label") - .addScalar("count", IntegerType.INSTANCE) + .addScalar("count", StandardBasicTypes.INTEGER) .setParameter("label", channel.getLabel()) .getSingleResult(); diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java b/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java index 25367449acbc..085b416c9f77 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/test/KickstartCleanupTest.java @@ -38,7 +38,7 @@ import com.redhat.rhn.testing.UserTestUtils; import org.hibernate.Session; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -157,7 +157,7 @@ private static KickstartSessionState lookupByLabel(String label) { Session session = HibernateFactory.getSession(); return (KickstartSessionState) session .getNamedQuery("KickstartSessionState.findByLabel") - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) .uniqueResult(); } diff --git a/java/code/src/com/redhat/rhn/testing/TestUtils.java b/java/code/src/com/redhat/rhn/testing/TestUtils.java index 7f5f9a37e0e6..ba00722bf8a6 100644 --- a/java/code/src/com/redhat/rhn/testing/TestUtils.java +++ b/java/code/src/com/redhat/rhn/testing/TestUtils.java @@ -42,8 +42,7 @@ import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.query.Query; -import org.hibernate.type.LongType; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import java.io.BufferedReader; import java.io.File; @@ -269,7 +268,7 @@ public static List lookupTestObjects(String query) { public static Object lookupFromCacheById(Long id, String queryname) { Session session = HibernateFactory.getSession(); return session.getNamedQuery(queryname) - .setParameter("id", id, LongType.INSTANCE) + .setParameter("id", id, StandardBasicTypes.LONG) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); @@ -286,7 +285,7 @@ public static Object lookupFromCacheByLabel(String label, String queryname) { Session session = HibernateFactory.getSession(); return session.getNamedQuery(queryname) - .setParameter("label", label, StringType.INSTANCE) + .setParameter("label", label, StandardBasicTypes.STRING) //Retrieve from cache if there .setCacheable(true) .uniqueResult(); From ae033cbabcc9f9a23a4557a881005cbde0925591 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Wed, 22 Jan 2025 11:11:41 +0100 Subject: [PATCH 15/28] check HQL is not added --- java/buildconf/checkstyle.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/buildconf/checkstyle.xml b/java/buildconf/checkstyle.xml index 8f6dca76d3e3..364897402242 100644 --- a/java/buildconf/checkstyle.xml +++ b/java/buildconf/checkstyle.xml @@ -124,7 +124,9 @@ - + + + From 4580ec1a7bef6484e9f42d6dbfd2a70bf85b5d2c Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Wed, 22 Jan 2025 12:31:34 +0100 Subject: [PATCH 16/28] fix sonarqube --- .../rhn/domain/channel/ChannelFactory.java | 18 ++------- .../domain/channel/ChannelFamilyFactory.java | 18 ++------- .../rhn/domain/channel/ChannelProduct.java | 40 ++----------------- .../rhn/domain/channel/ProductName.java | 35 ++-------------- .../rhn/domain/common/ExceptionMessage.java | 3 -- .../image/ImageInfoCustomDataValue.java | 33 +-------------- .../redhat/rhn/domain/image/ImagePackage.java | 3 +- .../redhat/rhn/domain/org/CustomDataKey.java | 32 ++------------- .../domain/product/SUSEProductFactory.java | 6 +-- .../type/RecurringActionType.java | 4 +- .../rhn/domain/rhnpackage/PackageEvr.java | 4 +- .../rhn/domain/rhnpackage/PackageName.java | 4 +- .../rhn/domain/scc/SCCCachingFactory.java | 16 ++++---- .../com/redhat/rhn/domain/server/Pillar.java | 3 +- .../server/PinnedSubscriptionFactory.java | 4 +- .../VirtualHostManagerFactory.java | 11 +---- .../manager/system/ServerGroupManager.java | 3 +- .../redhat/rhn/taskomatic/TaskoFactory.java | 26 ++++-------- .../manager/webui/services/iface/SaltApi.java | 3 +- 19 files changed, 54 insertions(+), 212 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index ac49efce0a9d..cde44589eeeb 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -395,11 +395,7 @@ public static List getAccessibleChannelsByOrg(Long orgid) { * @return list of channel architectures */ public static List getChannelArchitectures() { - Session session = getSession(); - String sql = "SELECT * FROM rhnChannelArch"; - List channelArchList - = session.createNativeQuery(sql, ChannelArch.class).getResultList(); - return channelArchList; + return getSession().createNativeQuery("SELECT * FROM rhnChannelArch", ChannelArch.class).getResultList(); } /** @@ -1253,11 +1249,8 @@ public static List listCustomChannelsWithRepositories() { */ @SuppressWarnings("unchecked") public static List listVendorContentSources() { - Session session = getSession(); - String sql = "SELECT * FROM rhnContentSource WHERE org_id IS NULL"; - List contentSources - = session.createNativeQuery(sql, ContentSource.class).getResultList(); - return contentSources; + return getSession().createNativeQuery("SELECT * FROM rhnContentSource WHERE org_id IS NULL", + ContentSource.class).getResultList(); } /** @@ -1331,7 +1324,7 @@ public static ChannelProduct findChannelProduct(String product, String version) Session session = getSession(); String sql = "SELECT * FROM rhnChannelProduct WHERE product = :product AND version = :version"; - Query query = session.createNativeQuery(sql, ChannelProduct.class); + Query query = session.createNativeQuery(sql, ChannelProduct.class); query.setParameter("product", product, StandardBasicTypes.STRING); query.setParameter("version", version, StandardBasicTypes.STRING); try { @@ -1340,9 +1333,6 @@ public static ChannelProduct findChannelProduct(String product, String version) catch (NoResultException e) { return null; } - catch (Exception e) { - throw new RuntimeException("Error retrieving ChannelProduct", e); - } } /** diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java index b371aba0c8d2..3aec3bf0b68e 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFamilyFactory.java @@ -88,7 +88,7 @@ public static ChannelFamily lookupByLabel(String label, Org org) { query.setParameter("org", org.getId()); } else { - query.setParameter("org", -1); + query.setParameter("org", -1); } try { @@ -97,9 +97,6 @@ public static ChannelFamily lookupByLabel(String label, Org org) { catch (NoResultException e) { return null; } - catch (Exception e) { - throw new RuntimeException("Error retrieving ChannelFamily", e); - } } /** @@ -241,18 +238,9 @@ public static List lookupByLabelLike(String label, Org org) { query.setParameter("org", org.getId()); } else { - query.setParameter("org", -1); - } - - try { - return query.getResultList(); - } - catch (NoResultException e) { - return null; - } - catch (Exception e) { - throw new RuntimeException("Error retrieving ChannelFamily", e); + query.setParameter("org", -1); } + return query.getResultList(); } /** diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelProduct.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelProduct.java index 0f5efd49331f..e38de9c95547 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelProduct.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelProduct.java @@ -14,19 +14,18 @@ */ package com.redhat.rhn.domain.channel; -import java.util.Date; +import com.redhat.rhn.domain.BaseDomainHelper; /** * ChannelProduct - Class representation of the table rhnChannelProduct. */ -public class ChannelProduct { +public class ChannelProduct extends BaseDomainHelper { private Long id; private String product; private String version; private String betaMarker; - private Date created; - private Date modified; + /** * Getter for id * @return Long to get @@ -112,37 +111,4 @@ public void setBeta(boolean isBeta) { this.setBetaMarker("N"); } } - - /** - * Getter for created - * @return Date to get - */ - public Date getCreated() { - return this.created; - } - - /** - * Setter for created - * @param createdIn to set - */ - public void setCreated(Date createdIn) { - this.created = createdIn; - } - - /** - * Getter for modified - * @return Date to get - */ - public Date getModified() { - return this.modified; - } - - /** - * Setter for modified - * @param modifiedIn to set - */ - public void setModified(Date modifiedIn) { - this.modified = modifiedIn; - } - } diff --git a/java/code/src/com/redhat/rhn/domain/channel/ProductName.java b/java/code/src/com/redhat/rhn/domain/channel/ProductName.java index f2c85eccd016..98dbd6a633dc 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ProductName.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ProductName.java @@ -14,22 +14,20 @@ */ package com.redhat.rhn.domain.channel; +import com.redhat.rhn.domain.BaseDomainHelper; + import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; -import java.util.Date; - /** * * ProductName */ -public class ProductName { +public class ProductName extends BaseDomainHelper { private Long id; private String label; private String name; - private Date created; - private Date modified; /** * @return the id @@ -74,33 +72,6 @@ public void setName(String nameIn) { this.name = nameIn; } - /** - * @return the created - */ - public Date getCreated() { - return created; - } - - /** - * @param date the created to set - */ - public void setCreated(Date date) { - this.created = date; - } - - /** - * @return the modified - */ - public Date getModified() { - return modified; - } - - /** - * @param date the modified to set - */ - public void setModified(Date date) { - this.modified = date; - } /** * * {@inheritDoc} diff --git a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java index bc7071d549e1..42cbf1b45bd1 100644 --- a/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java +++ b/java/code/src/com/redhat/rhn/domain/common/ExceptionMessage.java @@ -55,9 +55,6 @@ public static ExceptionMessage lookup(long exceptionId) { catch (NoResultException e) { return null; } - catch (Exception e) { - throw new RuntimeException("Error retrieving ExceptionMessage", e); - } } /** diff --git a/java/code/src/com/redhat/rhn/domain/image/ImageInfoCustomDataValue.java b/java/code/src/com/redhat/rhn/domain/image/ImageInfoCustomDataValue.java index 26e8ad4ab815..306eb0b1042e 100644 --- a/java/code/src/com/redhat/rhn/domain/image/ImageInfoCustomDataValue.java +++ b/java/code/src/com/redhat/rhn/domain/image/ImageInfoCustomDataValue.java @@ -15,6 +15,7 @@ package com.redhat.rhn.domain.image; import com.redhat.rhn.common.util.StringUtil; +import com.redhat.rhn.domain.BaseDomainHelper; import com.redhat.rhn.domain.org.CustomDataKey; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.domain.user.legacy.UserImpl; @@ -22,8 +23,6 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import java.util.Date; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -40,7 +39,7 @@ */ @Entity @Table(name = "suseImageCustomDataValue") -public class ImageInfoCustomDataValue { +public class ImageInfoCustomDataValue extends BaseDomainHelper { private Long id; private ImageInfo imageInfo; @@ -48,8 +47,6 @@ public class ImageInfoCustomDataValue { private String value; private User creator; private User lastModifier; - private Date created; - private Date modified; /** * Instantiates a new image info custom data value. @@ -121,20 +118,6 @@ public User getCreator() { public User getLastModifier() { return lastModifier; } - /** - * @return Returns the created. - */ - @Column(insertable = false, updatable = false) - public Date getCreated() { - return created; - } - /** - * @return Returns the modified. - */ - @Column(insertable = false, updatable = false) - public Date getModified() { - return modified; - } /** * @param idIn the id to set @@ -172,18 +155,6 @@ public void setCreator(User creatorIn) { public void setLastModifier(User lastModifierIn) { this.lastModifier = lastModifierIn; } - /** - * @param createdIn The created to set. - */ - public void setCreated(Date createdIn) { - this.created = createdIn; - } - /** - * @param modifiedIn The modified to set. - */ - public void setModified(Date modifiedIn) { - this.modified = modifiedIn; - } /** * {@inheritDoc} diff --git a/java/code/src/com/redhat/rhn/domain/image/ImagePackage.java b/java/code/src/com/redhat/rhn/domain/image/ImagePackage.java index 4d610968b5a1..752a8499a317 100644 --- a/java/code/src/com/redhat/rhn/domain/image/ImagePackage.java +++ b/java/code/src/com/redhat/rhn/domain/image/ImagePackage.java @@ -23,6 +23,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import java.io.Serializable; import java.util.Date; import javax.persistence.Column; @@ -39,7 +40,7 @@ @Entity @IdClass(ImagePackageKey.class) @Table(name = "suseImageInfoPackage") -public class ImagePackage implements Comparable { +public class ImagePackage implements Comparable, Serializable { private PackageEvr evr; private PackageName name; diff --git a/java/code/src/com/redhat/rhn/domain/org/CustomDataKey.java b/java/code/src/com/redhat/rhn/domain/org/CustomDataKey.java index 2ce9813b3e1d..13de0df9b1c7 100644 --- a/java/code/src/com/redhat/rhn/domain/org/CustomDataKey.java +++ b/java/code/src/com/redhat/rhn/domain/org/CustomDataKey.java @@ -14,17 +14,16 @@ */ package com.redhat.rhn.domain.org; +import com.redhat.rhn.domain.BaseDomainHelper; import com.redhat.rhn.domain.user.User; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import java.util.Date; - /** * CustomDataKey */ -public class CustomDataKey { +public class CustomDataKey extends BaseDomainHelper { private Long id; private Org org; @@ -32,21 +31,7 @@ public class CustomDataKey { private String description; private User creator; private User lastModifier; - private Date created; - private Date modified; - /** - * @return Returns the created. - */ - public Date getCreated() { - return created; - } - /** - * @param createdIn The created to set. - */ - public void setCreated(Date createdIn) { - this.created = createdIn; - } /** * @return Returns the creator. */ @@ -107,18 +92,7 @@ public User getLastModifier() { public void setLastModifier(User lastModifierIn) { this.lastModifier = lastModifierIn; } - /** - * @return Returns the modified. - */ - public Date getModified() { - return modified; - } - /** - * @param modifiedIn The modified to set. - */ - public void setModified(Date modifiedIn) { - this.modified = modifiedIn; - } + /** * @return Returns the org. */ diff --git a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java index 965b8cdba43e..e5caf88dd8e3 100644 --- a/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java +++ b/java/code/src/com/redhat/rhn/domain/product/SUSEProductFactory.java @@ -461,7 +461,7 @@ else if (imprecise) { sqlQuery.append(" ORDER BY name ASC, version ASC, release ASC, arch_type_id ASC"); // Execute the query - Query query = getSession().createNativeQuery(sqlQuery.toString(), SUSEProduct.class) + Query query = getSession().createNativeQuery(sqlQuery.toString(), SUSEProduct.class) .setParameter("name", name.toLowerCase(), StandardBasicTypes.STRING) .setParameter("arch", archTypeId, StandardBasicTypes.LONG); if (version != null) { @@ -586,10 +586,8 @@ public static Optional findSUSEProductExtension(SUSEProduc * @return list of product extension */ public static List findAllSUSEProductExtensions() { - Session session = getSession(); return getSession().createNativeQuery("SELECT * from suseProductExtension", SUSEProductExtension.class) .getResultList(); - } /** @@ -734,7 +732,7 @@ public static Optional findInstalledProduct(String name, sqlQuery.append(" ORDER BY name ASC, version ASC, release ASC, arch_type_id ASC"); // Execute the query - Query query = getSession().createNativeQuery(sqlQuery.toString(), InstalledProduct.class) + Query query = getSession().createNativeQuery(sqlQuery.toString(), InstalledProduct.class) .setParameter("name", name.toLowerCase(), StandardBasicTypes.STRING) .setParameter("version", version.toLowerCase(), StandardBasicTypes.STRING) .setParameter("release", release.toLowerCase(), StandardBasicTypes.STRING) diff --git a/java/code/src/com/redhat/rhn/domain/recurringactions/type/RecurringActionType.java b/java/code/src/com/redhat/rhn/domain/recurringactions/type/RecurringActionType.java index 2d4bc8dc55a6..aa10434739d7 100644 --- a/java/code/src/com/redhat/rhn/domain/recurringactions/type/RecurringActionType.java +++ b/java/code/src/com/redhat/rhn/domain/recurringactions/type/RecurringActionType.java @@ -17,6 +17,8 @@ import com.redhat.rhn.domain.recurringactions.RecurringAction; +import java.io.Serializable; + import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; @@ -31,7 +33,7 @@ */ @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) -public abstract class RecurringActionType { +public abstract class RecurringActionType implements Serializable { private long id; private RecurringAction recurringAction; diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvr.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvr.java index b09473e04f7a..10e610b25859 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvr.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageEvr.java @@ -21,10 +21,12 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import java.io.Serializable; + /** * PackageEvr */ -public class PackageEvr implements Comparable { +public class PackageEvr implements Comparable, Serializable { private static final RpmVersionComparator RPMVERCMP = new RpmVersionComparator(); private static final DebVersionComparator DEBVERCMP = new DebVersionComparator(); diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.java b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.java index ff07fada36a6..48ee0bdd0a23 100644 --- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.java +++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.java @@ -18,10 +18,12 @@ import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; +import java.io.Serializable; + /** * PackageName */ -public class PackageName implements Comparable { +public class PackageName implements Comparable, Serializable { private Long id; private String name; diff --git a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java index 50c6ee65c448..ab540c8bc64b 100644 --- a/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java +++ b/java/code/src/com/redhat/rhn/domain/scc/SCCCachingFactory.java @@ -216,15 +216,13 @@ public static List lookupOrderItems() { */ public static List listOrderItemsByCredentials(ContentSyncSource source) { return source.getCredentials() - .map(credentials -> { - return getSession().createNativeQuery(""" - SELECT * from suseSCCOrderItem - WHERE credentials_id = :credentials - """, SCCOrderItem.class) - .setParameter("credentials", credentials, StandardBasicTypes.LONG) - .getResultList(); - }) - .orElse(Collections.emptyList()); + .map(credentials -> getSession().createNativeQuery(""" + SELECT * from suseSCCOrderItem + WHERE credentials_id = :credentials + """, SCCOrderItem.class) + .setParameter("credentials", credentials, StandardBasicTypes.LONG) + .getResultList()) + .orElse(Collections.emptyList()); } /** diff --git a/java/code/src/com/redhat/rhn/domain/server/Pillar.java b/java/code/src/com/redhat/rhn/domain/server/Pillar.java index 5ecac5f9152d..c9bedc650638 100644 --- a/java/code/src/com/redhat/rhn/domain/server/Pillar.java +++ b/java/code/src/com/redhat/rhn/domain/server/Pillar.java @@ -24,6 +24,7 @@ import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDefs; +import java.io.Serializable; import java.util.List; import java.util.Map; import java.util.Objects; @@ -53,7 +54,7 @@ }) @Entity @Table(name = "suseSaltPillar") -public class Pillar implements Identifiable { +public class Pillar implements Identifiable, Serializable { @Id @GeneratedValue(generator = "pillar_seq") diff --git a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java index 3b4f0ce00cb3..c03d168b5b6e 100644 --- a/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/PinnedSubscriptionFactory.java @@ -112,7 +112,7 @@ public void cleanStalePins() { */ public PinnedSubscription lookupById(Long id) { String sql = "SELECT * FROM susePinnedSubscription WHERE id = :id"; - return (PinnedSubscription) getSession() + return getSession() .createNativeQuery(sql, PinnedSubscription.class).setParameter("id", id) .getSingleResult(); } @@ -128,7 +128,7 @@ public PinnedSubscription lookupBySystemIdAndSubscriptionId(Long systemId, String sql = "SELECT * FROM susePinnedSubscription " + "WHERE system_id = :systemId AND subscription_id = :subscriptionId"; - return (PinnedSubscription) getSession() + return getSession() .createNativeQuery(sql, PinnedSubscription.class) .setParameter("systemId", systemId, StandardBasicTypes.LONG) .setParameter("subscriptionId", subscriptionId, StandardBasicTypes.LONG) diff --git a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java index 54a6076f735d..a1a8b5938218 100644 --- a/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java +++ b/java/code/src/com/redhat/rhn/domain/server/virtualhostmanager/VirtualHostManagerFactory.java @@ -501,18 +501,11 @@ private VHMCredentials createCredentialsFromParams(Map params) { */ public Optional lookupNodeInfoByIdentifier( String identifier) { - Optional virtualNode; - try { - return Optional.ofNullable(getSession().createNativeQuery(""" + return getSession().createNativeQuery(""" SELECT * from suseVirtualHostManagerNodeInfo WHERE identifier = :identifier """, VirtualHostManagerNodeInfo.class) .setParameter("identifier", identifier, StandardBasicTypes.STRING) - .getSingleResult()); - } - catch (NoResultException e) { - return Optional.empty(); - } + .uniqueResultOptional(); } - } diff --git a/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java b/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java index b0b96ad81f2a..adcf49812411 100644 --- a/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java +++ b/java/code/src/com/redhat/rhn/manager/system/ServerGroupManager.java @@ -31,7 +31,6 @@ import com.redhat.rhn.domain.server.ServerGroupFactory; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.domain.user.UserFactory; -import com.redhat.rhn.domain.user.legacy.UserImpl; import com.suse.manager.webui.services.SaltStateGeneratorService; import com.suse.manager.webui.services.iface.SaltApi; @@ -215,7 +214,7 @@ public ManagedServerGroup create(User user, String name, String description) { user.getOrg()); SaltStateGeneratorService.INSTANCE.createServerGroup(sg); if (!user.hasRole(RoleFactory.ORG_ADMIN)) { - sg.getAssociatedAdminsFor(user).add((UserImpl) user); + sg.getAssociatedAdminsFor(user).add(user); ServerGroupFactory.save(sg); UserFactory.save(user); } diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java index 45f2d9b13e2f..10d30326a672 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java @@ -426,24 +426,12 @@ public static List listRunsByBunch(String bunchName) { * @return the latest run or null if none exists */ public static TaskoRun getLatestRun(String bunchName) { - String sql = - """ - SELECT tr.id, tr.created, tr.end_time, tr.modified, tr.org_id, tr.schedule_id, tr.start_time, - tr.status, tr.template_id - FROM rhnTaskoRun tr - WHERE tr.template_id IN ( - SELECT tt.id - FROM rhnTaskoTemplate tt - WHERE tt.bunch_id = ( - SELECT tb.id - FROM rhnTaskoBunch tb - WHERE tb.name = :bunchName - ) - ) - AND tr.status IN (:status1, :status2, :status3) - ORDER BY tr.start_time DESC, tr.id DESC - LIMIT 1 - """; + String sql = """ + SELECT tr.* FROM rhnTaskoRun tr WHERE tr.template_id IN + (SELECT tt.id FROM rhnTaskoTemplate tt WHERE tt.bunch_id = + (SELECT tb.id FROM rhnTaskoBunch tb WHERE tb.name = :bunchName)) + AND tr.status IN (:status1, :status2, :status3) ORDER BY tr.start_time DESC, tr.id DESC LIMIT 1 + """; // Create the native query Query query = getSession().createNativeQuery(sql, TaskoRun.class); @@ -456,7 +444,7 @@ AND tr.status IN (:status1, :status2, :status3) // Execute the query and return the result (or null if no result is found) try { - return (TaskoRun) query.getSingleResult(); + return query.getSingleResult(); } catch (NoResultException e) { // Handle the case where no result is found diff --git a/java/code/src/com/suse/manager/webui/services/iface/SaltApi.java b/java/code/src/com/suse/manager/webui/services/iface/SaltApi.java index 4b303aa7f2cf..3738e57e4437 100644 --- a/java/code/src/com/suse/manager/webui/services/iface/SaltApi.java +++ b/java/code/src/com/suse/manager/webui/services/iface/SaltApi.java @@ -43,6 +43,7 @@ import com.google.gson.JsonElement; import com.google.gson.reflect.TypeToken; +import java.io.Serializable; import java.nio.file.Path; import java.time.LocalDateTime; import java.util.List; @@ -54,7 +55,7 @@ /** * Interface for interacting with salt. */ -public interface SaltApi { +public interface SaltApi extends Serializable { /** * Sync the channels of a list of minions From c0462dffcfb1f7e12193bcede012b029e609928a Mon Sep 17 00:00:00 2001 From: Michael Calmer Date: Thu, 23 Jan 2025 16:28:08 +0100 Subject: [PATCH 17/28] Allow translation to wrap strings as weblate force it --- client/rhel/spacewalk-client-tools/po/Makefile | 2 +- ...client-tools.changes.mcalmer.remove-no-wrap-for-translations | 1 + python/spacewalk/po/Makefile | 2 +- ...walk-backend.changes.mcalmer.remove-no-wrap-for-translations | 1 + spacecmd/po/Makefile | 2 +- .../spacecmd.changes.mcalmer.remove-no-wrap-for-translations | 1 + susemanager/po/Makefile | 2 +- .../susemanager.changes.mcalmer.remove-no-wrap-for-translations | 1 + web/po/Makefile | 2 +- ...pacewalk-web.changes.mcalmer.remove-no-wrap-for-translations | 1 + 10 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 client/rhel/spacewalk-client-tools/spacewalk-client-tools.changes.mcalmer.remove-no-wrap-for-translations create mode 100644 python/spacewalk/spacewalk-backend.changes.mcalmer.remove-no-wrap-for-translations create mode 100644 spacecmd/spacecmd.changes.mcalmer.remove-no-wrap-for-translations create mode 100644 susemanager/susemanager.changes.mcalmer.remove-no-wrap-for-translations create mode 100644 web/spacewalk-web.changes.mcalmer.remove-no-wrap-for-translations diff --git a/client/rhel/spacewalk-client-tools/po/Makefile b/client/rhel/spacewalk-client-tools/po/Makefile index b7150d619c68..f460d4fe1ed3 100644 --- a/client/rhel/spacewalk-client-tools/po/Makefile +++ b/client/rhel/spacewalk-client-tools/po/Makefile @@ -34,7 +34,7 @@ INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt -MSGMERGE = /usr/bin/msgmerge --previous --no-wrap +MSGMERGE = /usr/bin/msgmerge --previous INCLUDES = -I.. -I$(top_srcdir)/intl diff --git a/client/rhel/spacewalk-client-tools/spacewalk-client-tools.changes.mcalmer.remove-no-wrap-for-translations b/client/rhel/spacewalk-client-tools/spacewalk-client-tools.changes.mcalmer.remove-no-wrap-for-translations new file mode 100644 index 000000000000..24308de95dae --- /dev/null +++ b/client/rhel/spacewalk-client-tools/spacewalk-client-tools.changes.mcalmer.remove-no-wrap-for-translations @@ -0,0 +1 @@ +- Allow translation to wrap strings as weblate force it diff --git a/python/spacewalk/po/Makefile b/python/spacewalk/po/Makefile index 40a28a394367..8f12bda6cb07 100644 --- a/python/spacewalk/po/Makefile +++ b/python/spacewalk/po/Makefile @@ -35,7 +35,7 @@ INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt -MSGMERGE = /usr/bin/msgmerge --previous --no-wrap +MSGMERGE = /usr/bin/msgmerge --previous INCLUDES = -I.. -I$(top_srcdir)/intl diff --git a/python/spacewalk/spacewalk-backend.changes.mcalmer.remove-no-wrap-for-translations b/python/spacewalk/spacewalk-backend.changes.mcalmer.remove-no-wrap-for-translations new file mode 100644 index 000000000000..24308de95dae --- /dev/null +++ b/python/spacewalk/spacewalk-backend.changes.mcalmer.remove-no-wrap-for-translations @@ -0,0 +1 @@ +- Allow translation to wrap strings as weblate force it diff --git a/spacecmd/po/Makefile b/spacecmd/po/Makefile index bf72d2c8ebd6..5b4c01ccc70b 100644 --- a/spacecmd/po/Makefile +++ b/spacecmd/po/Makefile @@ -35,7 +35,7 @@ INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt -MSGMERGE = /usr/bin/msgmerge --previous --no-wrap +MSGMERGE = /usr/bin/msgmerge --previous INCLUDES = -I.. -I$(top_srcdir)/intl diff --git a/spacecmd/spacecmd.changes.mcalmer.remove-no-wrap-for-translations b/spacecmd/spacecmd.changes.mcalmer.remove-no-wrap-for-translations new file mode 100644 index 000000000000..24308de95dae --- /dev/null +++ b/spacecmd/spacecmd.changes.mcalmer.remove-no-wrap-for-translations @@ -0,0 +1 @@ +- Allow translation to wrap strings as weblate force it diff --git a/susemanager/po/Makefile b/susemanager/po/Makefile index 6ef711085baa..677db5a4cff6 100644 --- a/susemanager/po/Makefile +++ b/susemanager/po/Makefile @@ -35,7 +35,7 @@ INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt -MSGMERGE = /usr/bin/msgmerge --previous --no-wrap +MSGMERGE = /usr/bin/msgmerge --previous INCLUDES = -I.. -I$(top_srcdir)/intl diff --git a/susemanager/susemanager.changes.mcalmer.remove-no-wrap-for-translations b/susemanager/susemanager.changes.mcalmer.remove-no-wrap-for-translations new file mode 100644 index 000000000000..24308de95dae --- /dev/null +++ b/susemanager/susemanager.changes.mcalmer.remove-no-wrap-for-translations @@ -0,0 +1 @@ +- Allow translation to wrap strings as weblate force it diff --git a/web/po/Makefile b/web/po/Makefile index 2ccfe3584070..678c944e6e3a 100644 --- a/web/po/Makefile +++ b/web/po/Makefile @@ -43,7 +43,7 @@ endif GMSGFMT = ${BIN}/msgfmt MSGFMT = ${BIN}/msgfmt -MSGMERGE = ${BIN}/msgmerge --previous --no-wrap +MSGMERGE = ${BIN}/msgmerge --previous INCLUDES = -I.. -I$(top_srcdir)/intl diff --git a/web/spacewalk-web.changes.mcalmer.remove-no-wrap-for-translations b/web/spacewalk-web.changes.mcalmer.remove-no-wrap-for-translations new file mode 100644 index 000000000000..24308de95dae --- /dev/null +++ b/web/spacewalk-web.changes.mcalmer.remove-no-wrap-for-translations @@ -0,0 +1 @@ +- Allow translation to wrap strings as weblate force it From df8cafbae23e2069bedc916b1483703bd4748b94 Mon Sep 17 00:00:00 2001 From: Jordi Massaguer Pla Date: Mon, 27 Jan 2025 14:22:01 +0000 Subject: [PATCH 18/28] CI: review containers and add SCC mirror * Add SCC mirror into the server container image * Add empty repos for all products * Add mgr-push package and its dependencies * Update to latest server container version (2024.12) * Add README-mirror.md * Fix buildhost: add missing packages * Fix server: * do not update openssh (tests expect a specific version) * review repos * Fix ubuntu minion: update ca-certificates Signed-off-by: Jordi Massaguer Pla --- .github/workflows/build_containers.yml | 2 +- testsuite/dockerfiles/buildhost/Dockerfile | 3 +- .../server-all-in-one-dev/Dockerfile | 8 +- .../server-all-in-one-dev/README-mirror.md | 29 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.5/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../4.3/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.0/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.0/x86_64/product/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-BETA/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.5/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15-SP4/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../4.3/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.0/x86_64/update/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../5.0/x86_64/update/repodata/repomd.xml | 55 + .../x86_64/update/Packages.gz | Bin 0 -> 29 bytes ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../15.5/repo/non-oss/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../leap/15.5/repo/oss/repodata/repomd.xml | 55 + .../mirror/download.opensuse.org | 1 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../repo/AppStream-8/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../x86_64/repo/BaseOS-8/repodata/repomd.xml | 55 + .../mirror/organizations_orders.json | 1 + .../organizations_products_unscoped.json | 5105 +++++++++++++++++ .../mirror/organizations_repositories.json | 528 ++ .../mirror/organizations_subscriptions.json | 22 + .../mirror/product_tree.json | 1072 ++++ ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../repodata/repomd.xml | 55 + .../openSUSE_Leap_15.0/get_rpms.sh | 8 + .../mgr-push-5.1.1-2.1.uyuni.noarch.rpm | Bin 0 -> 21584 bytes ...ython3-mgr-push-5.1.1-2.1.uyuni.noarch.rpm | Bin 0 -> 33744 bytes .../python3-rhnlib-5.1.1-3.1.uyuni.noarch.rpm | Bin 0 -> 69756 bytes ...lk-client-tools-5.1.1-4.1.uyuni.noarch.rpm | Bin 0 -> 44668 bytes ...lk-client-tools-5.1.1-4.1.uyuni.noarch.rpm | Bin 0 -> 55092 bytes ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d5cc1983dd1ed617942c0-filelists.sqlite.bz2 | Bin 0 -> 3685 bytes ...37ec6f48418455122f73bc4-primary.sqlite.bz2 | Bin 0 -> 4375 bytes ...8f0483271d05fd28f37ad70aadd77-other.xml.gz | Bin 0 -> 1421 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...f3475aa32ce3e3b754d4e411d-filelists.xml.gz | Bin 0 -> 1472 bytes ...e3c2b5207c8ae4fb764df1df891-primary.xml.gz | Bin 0 -> 1971 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...9f654e8e4566a4882da2930dc-other.sqlite.bz2 | Bin 0 -> 2815 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../openSUSE_Leap_15.0/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../openSUSE_Leap_15.0/repodata/repomd.xml | 55 + .../main/binary-amd64/Packages.gz | Bin 0 -> 29 bytes .../main/binary-amd64/Packages.gz | Bin 0 -> 29 bytes .../dists/jammy/main/binary-amd64/Packages.gz | Bin 0 -> 29 bytes ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../leap/15.5/backports/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../leap/15.5/non-oss/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../update/leap/15.5/oss/repodata/repomd.xml | 55 + ...0965cd43735f146e8187e2f-primary.sqlite.bz2 | Bin 0 -> 1337 bytes ...0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz | Bin 0 -> 134 bytes ...d85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 | Bin 0 -> 580 bytes ...275ca673e6e74a97bcbfb2a5f-filelists.xml.gz | Bin 0 -> 123 bytes ...327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 | Bin 0 -> 606 bytes ...4ed76967ded668b795c9e070aaab6-other.xml.gz | Bin 0 -> 123 bytes .../update/leap/15.5/sle/repodata/repomd.xml | 55 + .../dockerfiles/ubuntu-minion/Dockerfile | 3 +- .../14_run_salt_rhlike_minion.sh | 1 - 329 files changed, 9140 insertions(+), 8 deletions(-) create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/README-mirror.md create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/Ubuntu/22.04-CLIENT-TOOLS/x86_64/update/Packages.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/repomd.xml create mode 120000 testsuite/dockerfiles/server-all-in-one-dev/mirror/download.opensuse.org create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_orders.json create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_products_unscoped.json create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_repositories.json create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_subscriptions.json create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/product_tree.json create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/repomd.xml create mode 100755 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/get_rpms.sh create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/mgr-push-5.1.1-2.1.uyuni.noarch.rpm create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-mgr-push-5.1.1-2.1.uyuni.noarch.rpm create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-rhnlib-5.1.1-3.1.uyuni.noarch.rpm create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/334aaee30abde04d58ba1a7520b37061d0f9e72d3bad5cc1983dd1ed617942c0-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/4a94c427ecd5f1d7f23ccc757c1951cafb0ea837d37ec6f48418455122f73bc4-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/6b8f920394c7c55b0ccda1ed635ae41c9f28f0483271d05fd28f37ad70aadd77-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/afac32044944a09d9c850d23d915237306c4525f3475aa32ce3e3b754d4e411d-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/b826724f6eacd7eca5855c3dd7188615911bfe3c2b5207c8ae4fb764df1df891-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/daeaa0460be890a1cea55c9a9a74d893e8533629f654e8e4566a4882da2930dc-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-security/main/binary-amd64/Packages.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-updates/main/binary-amd64/Packages.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy/main/binary-amd64/Packages.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/repomd.xml create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz create mode 100644 testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/repomd.xml diff --git a/.github/workflows/build_containers.yml b/.github/workflows/build_containers.yml index f3d73b627c4d..ff3df830ba44 100644 --- a/.github/workflows/build_containers.yml +++ b/.github/workflows/build_containers.yml @@ -38,7 +38,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} build-args: | BASE=registry.opensuse.org/uyuni/server - VERSION=2024.08 + VERSION=2024.12 build-and-push-ubuntu-minion-image: runs-on: ubuntu-latest permissions: diff --git a/testsuite/dockerfiles/buildhost/Dockerfile b/testsuite/dockerfiles/buildhost/Dockerfile index ea305a78d956..8b4d3f274156 100644 --- a/testsuite/dockerfiles/buildhost/Dockerfile +++ b/testsuite/dockerfiles/buildhost/Dockerfile @@ -4,7 +4,7 @@ RUN zypper -n ar --no-gpgcheck https://download.opensuse.org/repositories/system zypper -n ar --no-gpgcheck https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/ tools_pool_repo && \ zypper ref -f && \ zypper -n install openssh-server openssh-clients hostname iproute2 venv-salt-minion andromeda-dummy milkyway-dummy virgo-dummy openscap-utils openscap-content scap-security-guide gzip udev dmidecode tar \ - golang-github-prometheus-prometheus golang-github-prometheus-alertmanager prometheus-blackbox_exporter golang-github-prometheus-node_exporter golang-github-lusitaniae-apache_exporter prometheus-postgres_exporter golang-github-QubitProducts-exporter_exporter golang-github-prometheus-promu ansible && \ + golang-github-prometheus-prometheus golang-github-prometheus-alertmanager prometheus-blackbox_exporter golang-github-prometheus-node_exporter golang-github-lusitaniae-apache_exporter prometheus-postgres_exporter golang-github-QubitProducts-exporter_exporter golang-github-prometheus-promu ansible git python3-kiwi && \ zypper clean -a RUN zypper -n ar --no-gpgcheck https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Test-Packages:/Pool/rpm/ test_repo_rpm_pool # specific to buildhost @@ -13,5 +13,6 @@ RUN zypper ref -f && \ && \ zypper clean -a COPY etc_pam.d_sshd /etc/pam.d/sshd +RUN mkdir -p /var/lib/Kiwi CMD ssh-keygen -A && /usr/sbin/sshd -De diff --git a/testsuite/dockerfiles/server-all-in-one-dev/Dockerfile b/testsuite/dockerfiles/server-all-in-one-dev/Dockerfile index 86b040a9ca2f..85e6c6d9362a 100644 --- a/testsuite/dockerfiles/server-all-in-one-dev/Dockerfile +++ b/testsuite/dockerfiles/server-all-in-one-dev/Dockerfile @@ -5,7 +5,6 @@ FROM ${BASE}:${VERSION} RUN zypper -n --gpg-auto-import-keys ref && \ zypper -n install \ java-17-openjdk-devel \ - openssh \ rsync \ apache-ivy \ ant \ @@ -14,10 +13,10 @@ RUN zypper -n --gpg-auto-import-keys ref && \ cpio \ spacecmd \ expect \ - prometheus \ wget && \ - zypper addrepo --no-gpgcheck obs://systemsmanagement:Uyuni:Utils systemsmanagement:uyuni:utils && \ - zypper -n install obs-to-maven yarn && \ + zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Utils/SLE_15_SP6/ systemsmanagement:uyuni:utils && \ + zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Stable:/SLE15-Uyuni-Client-Tools/SLE_15/systemsmanagement:Uyuni:Stable:SLE15-Uyuni-Client-Tools.repo && \ + zypper -n install obs-to-maven yarn prometheus && \ zypper clean -a COPY minima.yaml /etc/minima.yaml RUN mkdir /tmp/minima && \ @@ -32,4 +31,5 @@ RUN /usr/bin/minima sync -c /etc/minima.yaml && \ rm -rf /srv/www/htdocs/pub/repositories/ RUN cd /srv/www/htdocs/pub && ln -s TestRepoRpmUpdates AnotherRepo RUN mkdir /etc/pki/rpm-gpg && wget -c http://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Test-Packages:/Pool/rpm/repodata/repomd.xml.key -O /etc/pki/rpm-gpg/uyuni-tools-gpg-pubkey-0d20833e.key +COPY mirror /mirror diff --git a/testsuite/dockerfiles/server-all-in-one-dev/README-mirror.md b/testsuite/dockerfiles/server-all-in-one-dev/README-mirror.md new file mode 100644 index 000000000000..8fc442cc318e --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/README-mirror.md @@ -0,0 +1,29 @@ +# How to update the mirror directory + +## Product information + +You need to update the json files inside the mirror directory with the information of new products. +You can use minima-mirror to mirror SCC, provided you have credentials, and then manually copy and paste the product information. +Be careful not to copy the `organitzations_subscriptions.json` file. + +Then, use `sed` to replace ?XXXXXX in the urls in those json files. + +`sed 's|\(http://[^?]*\)\?.*$|\1|' -i FILE.json` +`sed 's|\(https://[^?]*\)\?.*$|\1|' -i FILE.json` + +Replace FILE.json for every json file inside mirror directory. + +## Repositories + +If you need new repositories, you need to create an empty directory for the ones you need and then run `create_repo`, to generate the new metadata. +Initially you can create the repositories empty. + +Then, you need to edit the list of empty repos in `testsuite/features/support/constants.rb`. + +## Packages + +If you need new packages, create or edit the get_rpms.sh script inside the repository, to download the new package. +Just write the `wget command` you need to use to download the new package. + +Then, download the package and call `create_repo`. + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819078 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819078 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819078 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819078 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819078 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819078 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819078 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819135 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819135 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819135 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819135 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819135 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819135 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819135 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819116 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819116 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819116 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819116 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819116 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819116 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819116 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819103 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819103 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819103 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819103 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819103 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819103 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819103 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Micro/5.5/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819147 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819147 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819147 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819147 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819147 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819147 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819147 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819162 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819162 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819162 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819162 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819162 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819162 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819162 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819172 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819172 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819172 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819172 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819172 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819172 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819172 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819186 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819186 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819186 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819186 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819186 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819186 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819186 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819196 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819196 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819196 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819196 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819196 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819196 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819196 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819211 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819211 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819211 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819211 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819211 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819211 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819211 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819224 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819224 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819224 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819224 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819224 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819224 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819224 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819235 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819235 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819235 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819235 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819235 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819235 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819235 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819250 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819250 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819250 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819250 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819250 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819250 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819250 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819306 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819306 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819306 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819306 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819306 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819306 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819306 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819322 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819322 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819322 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819322 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819322 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819322 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819322 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819363 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819363 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819363 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819363 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819363 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819363 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819363 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819373 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819373 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819373 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819373 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819373 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819373 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819373 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819408 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819408 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819408 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819408 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819408 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819408 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819408 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819399 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819399 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819399 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819399 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819399 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819399 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819399 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819386 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819386 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819386 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819386 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819386 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819386 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819386 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Micro/5.5/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819420 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819420 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819420 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819420 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819420 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819420 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819420 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819438 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819438 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819438 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819438 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819438 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819438 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819438 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819450 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819450 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819450 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819450 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819450 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819450 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819450 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819461 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819461 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819461 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819461 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819461 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819461 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819461 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819472 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819472 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819472 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819472 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819472 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819472 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819472 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819481 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819481 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819481 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819481 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819481 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819481 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819481 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819511 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819510 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819511 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819511 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819511 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819511 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819511 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819494 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819494 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819494 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819494 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819494 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819494 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819494 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819523 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819523 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819523 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819523 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819523 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819523 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819523 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819536 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819536 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819536 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819536 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819536 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819536 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819536 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819547 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819546 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819546 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819546 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819547 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819547 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819547 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819555 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819555 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819555 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819555 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819555 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819555 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819555 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/Ubuntu/22.04-CLIENT-TOOLS/x86_64/update/Packages.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/SUSE/Updates/Ubuntu/22.04-CLIENT-TOOLS/x86_64/update/Packages.gz new file mode 100644 index 0000000000000000000000000000000000000000..b056bccbc9a173dfde92786b66fbd40d71218d87 GIT binary patch literal 29 dcmb2|=HQs4_co1zIUq4PJ25@An1PuA1^{+U1^oa3 literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819029 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819029 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819029 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819029 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819029 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819029 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819029 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/distribution/leap/15.5/repo/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819036 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819036 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819036 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819036 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819036 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819036 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819036 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/download.opensuse.org b/testsuite/dockerfiles/server-all-in-one-dev/mirror/download.opensuse.org new file mode 120000 index 000000000000..945c9b46d684 --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/download.opensuse.org @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/AppStream-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819694 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819694 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819694 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819694 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819694 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819694 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819694 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/mirrors.rockylinux.org/mirrorlist/arch/x86_64/repo/BaseOS-8/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819704 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819704 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819704 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819704 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819704 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819704 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819704 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_orders.json b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_orders.json new file mode 100644 index 000000000000..0637a088a01e --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_orders.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_products_unscoped.json b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_products_unscoped.json new file mode 100644 index 000000000000..9338462d8c14 --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_products_unscoped.json @@ -0,0 +1,5105 @@ +[ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sles:15:sp4", + "description": "SUSE Linux Enterprise offers a comprehensive suite of products built on a single code base. The platform addresses business needs from the smallest thin-client devices to the world's most powerful high-performance computing and mainframe servers. SUSE Linux Enterprise offers common management tools and technology certifications across the platform, and each product is enterprise-class.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product.license/", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-basesystem:15:sp4", + "description": "

The SUSE Linux Enterprise Basesystem Module delivers the base system of the product.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-desktop-applications:15:sp4", + "description": "

The SUSE Linux Enterprise Desktop Applications Module delivers a basic set of Desktop functionality.

Access to the Desktop Applications Module is included in your SUSE Linux Enterprise product subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-development-tools:15:sp4", + "description": "

The Development Tools Module helps you developing applications for SUSE Linux Enterprise 15.

Access to the Development Tools Module is included in your SUSE Linux Enterprise product subscription. The module has a different lifecycle than SUSE Linux Enterprise itself.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-nvidia-compute:15", + "description": "NVIDIA Compute Drivers - NVIDIA CUDA This Module contains software under the terms and conditions of a 3rd party EULA (End User License Agreement). The EULA can be found at https://docs.nvidia.com/cuda/eula/index.html. By using this software you agree to fully comply with the terms and conditions of the EULA. If you do not agree to the terms and conditions of the EULA, do not use the software.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Module-NVIDIA-Compute/15/x86_64/product.license/", + "extensions": [], + "former_identifier": "sle-module-NVIDIA-compute", + "free": true, + "friendly_name": "NVIDIA Compute Module 15 x86_64", + "friendly_version": "15", + "id": 2131, + "identifier": "sle-module-NVIDIA-compute", + "migration_extra": false, + "name": "NVIDIA Compute Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-NVIDIA-Compute-15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 4554, + "installer_updates": false, + "name": "SLE-Module-NVIDIA-Compute-15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-NVIDIA-Compute/15/x86_64/update/" + }, + { + "autorefresh": false, + "description": "SLE-Module-NVIDIA-Compute-15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 4556, + "installer_updates": false, + "name": "SLE-Module-NVIDIA-Compute-15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-NVIDIA-Compute/15/x86_64/product/" + }, + { + "autorefresh": true, + "description": "NVIDIA-Compute-SLE-15", + "distro_target": null, + "enabled": true, + "id": 4563, + "installer_updates": false, + "name": "NVIDIA-Compute-SLE-15", + "url": "https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/" + } + ], + "shortname": "NVIDIA-Compute-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-sap-business-one:15:sp4", + "description": "

The SAP Business One module contains the specialized tools for the installation of SAP Business One product.

The module is maintained and supported by the SUSE Linux Enterprise Server product subscription.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-sap-business-one", + "free": true, + "friendly_name": "SAP Business One Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2600, + "identifier": "sle-module-sap-business-one", + "migration_extra": false, + "name": "SAP Business One Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-SAP-Business-One15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6238, + "installer_updates": false, + "name": "SLE-Module-SAP-Business-One15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SAP-Business-One/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-SAP-Business-One15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6239, + "installer_updates": false, + "name": "SLE-Module-SAP-Business-One15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SAP-Business-One/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Business-One15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6240, + "installer_updates": false, + "name": "SLE-Module-SAP-Business-One15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Business-One/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Business-One15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6241, + "installer_updates": false, + "name": "SLE-Module-SAP-Business-One15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Business-One/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Business-One15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6242, + "installer_updates": false, + "name": "SLE-Module-SAP-Business-One15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Business-One/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SAP-Business-One-Module", + "version": "15.4" + } + ], + "former_identifier": "sle-sdk", + "free": true, + "friendly_name": "Development Tools Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2315, + "identifier": "sle-module-development-tools", + "migration_extra": true, + "name": "Development Tools Module", + "offline_predecessor_ids": [ + 1341, + 1427, + 1630, + 1892 + ], + "online_predecessor_ids": [ + 1579, + 1794, + 1971, + 2161 + ], + "predecessor_ids": [ + 1579, + 1794, + 1971, + 2161 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5217, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5218, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5219, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5220, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5221, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Development-Tools-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-we:15:sp4", + "description": "SUSE Linux Enterprise Workstation Extension adds additional functionality to a base SUSE Linux Enterprise installation. The Workstation Extension offers additional desktop applications (office suite, email client, graphical editor, multimedia tools) and libraries. Workstation Extension is enabled and installed by default on SUSE Linux Enterprise Desktop installation. Adding the Workstation Extension to a SUSE Linux Enterprise Server installation allows to seamlessly combine both products to create a full featured server workstation.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15-SP4/x86_64/product.license/", + "extensions": [], + "former_identifier": "sle-we", + "free": false, + "friendly_name": "SUSE Linux Enterprise Workstation Extension 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2343, + "identifier": "sle-we", + "migration_extra": false, + "name": "SUSE Linux Enterprise Workstation Extension", + "offline_predecessor_ids": [ + 1431, + 1639, + 1893 + ], + "online_predecessor_ids": [ + 1583, + 1781, + 1999, + 2196 + ], + "predecessor_ids": [ + 1583, + 1781, + 1999, + 2196 + ], + "product_class": "SLE-WE", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-15-SP4-Desktop-NVIDIA-Driver", + "distro_target": null, + "enabled": true, + "id": 5119, + "installer_updates": false, + "name": "SLE-15-SP4-Desktop-NVIDIA-Driver", + "url": "https://download.nvidia.com/suse/sle15sp4/" + }, + { + "autorefresh": true, + "description": "SLE-Product-WE15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5357, + "installer_updates": false, + "name": "SLE-Product-WE15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-WE/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-WE15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5358, + "installer_updates": false, + "name": "SLE-Product-WE15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-WE/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5359, + "installer_updates": false, + "name": "SLE-Product-WE15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5360, + "installer_updates": false, + "name": "SLE-Product-WE15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5361, + "installer_updates": false, + "name": "SLE-Product-WE15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SLEWE15-SP4", + "version": "15.4" + } + ], + "former_identifier": "sle-module-desktop-applications", + "free": true, + "friendly_name": "Desktop Applications Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2303, + "identifier": "sle-module-desktop-applications", + "migration_extra": true, + "name": "Desktop Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 1578, + 1776, + 1967, + 2149 + ], + "predecessor_ids": [ + 1578, + 1776, + 1967, + 2149 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5157, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5158, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5159, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5160, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5161, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Desktop-Applications-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-server-applications:15:sp4", + "description": "

The SUSE Linux Enterprise Server Applications Module delivers a basic set of Server functionality.

Access to the Server Applications Module is included in your SUSE Linux Enterprise Server subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-web-scripting:15:sp4", + "description": "

The SUSE Linux Enterprise Web and Scripting Module should contains additional packages that are helpful when running a webserver.

Access to the Web and Scripting Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself: Package versions in this module are usually supported for at most three years. We are planning to release more recent versions on a schedule of approximately 18 month; the exact dates may differ per package.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-web-scripting", + "free": true, + "friendly_name": "Web and Scripting Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2319, + "identifier": "sle-module-web-scripting", + "migration_extra": true, + "name": "Web and Scripting Module", + "offline_predecessor_ids": [ + 1153 + ], + "online_predecessor_ids": [ + 1721, + 1798, + 1976, + 2165 + ], + "predecessor_ids": [ + 1721, + 1798, + 1976, + 2165 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5237, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5238, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5239, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5240, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5241, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Web-Scripting-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-legacy:15:sp4", + "description": "

The Legacy Module helps you migrating applications from SUSE Linux Enterprise 12 and other systems to SUSE Linux Enterprise 15, by providing packages which are discontinued on SUSE Linux Enterprise Server, such as: ntp, IBM Java 8, and a number of libraries.

Access to the Legacy Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself. Packages in the this module are usually supported for at most three years.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-legacy", + "free": true, + "friendly_name": "Legacy Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2323, + "identifier": "sle-module-legacy", + "migration_extra": true, + "name": "Legacy Module", + "offline_predecessor_ids": [ + 1150 + ], + "online_predecessor_ids": [ + 1581, + 1804, + 1982, + 2171 + ], + "predecessor_ids": [ + 1581, + 1804, + 1982, + 2171 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5257, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5258, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5259, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5260, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5261, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Legacy-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-public-cloud:15:sp4", + "description": "

The Public Cloud Module is a collection of tools that enables you to create and manage cloud images from the commandline on SUSE Linux Enterprise Server. When building your own images with KIWI or SUSE Studio, initialization code specific to the target cloud is included in that image.

Access to the Public Cloud Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-public-cloud", + "free": true, + "friendly_name": "Public Cloud Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2327, + "identifier": "sle-module-public-cloud", + "migration_extra": false, + "name": "Public Cloud Module", + "offline_predecessor_ids": [ + 1220 + ], + "online_predecessor_ids": [ + 1611, + 1808, + 1988, + 2175 + ], + "predecessor_ids": [ + 1611, + 1808, + 1988, + 2175 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5277, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5278, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5279, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5280, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5281, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Public-Cloud-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-ha:15:sp4", + "description": "SUSE Linux High Availability Extension provides mature, industry-leading open-source high-availability clustering technologies that are easy to set up and use. It can be deployed in physical and/or virtual environments, and can cluster physical servers, virtual servers, or any combination of the two to suit your business\u2019 needs.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product.license/", + "extensions": [], + "former_identifier": "sle-ha", + "free": false, + "friendly_name": "SUSE Linux Enterprise High Availability Extension 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2340, + "identifier": "sle-ha", + "migration_extra": false, + "name": "SUSE Linux Enterprise High Availability Extension", + "offline_predecessor_ids": [ + 958, + 961, + 967, + 971, + 1101, + 1107, + 1256, + 1286, + 1432, + 1435, + 1634, + 1637, + 1884, + 1886 + ], + "online_predecessor_ids": [ + 1582, + 1785, + 1959, + 2195 + ], + "predecessor_ids": [ + 1582, + 1785, + 1959, + 2195 + ], + "product_class": "SLE-HAE-X86", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-HA15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5342, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-HA15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5343, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5344, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5345, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5346, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SLEHA15-SP4", + "version": "15.4" + } + ], + "former_identifier": "sle-module-server-applications", + "free": true, + "friendly_name": "Server Applications Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2307, + "identifier": "sle-module-server-applications", + "migration_extra": false, + "name": "Server Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 1580, + 1780, + 1955, + 2153 + ], + "predecessor_ids": [ + 1580, + 1780, + 1955, + 2153 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5177, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5178, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5179, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5180, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5181, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Server-Applications-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-containers:15:sp4", + "description": "

This Module contains several packages revolving around containers and related tools.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-containers", + "free": true, + "friendly_name": "Containers Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2311, + "identifier": "sle-module-containers", + "migration_extra": false, + "name": "Containers Module", + "offline_predecessor_ids": [ + 1332 + ], + "online_predecessor_ids": [ + 1642, + 1790, + 1963, + 2157 + ], + "predecessor_ids": [ + 1642, + 1790, + 1963, + 2157 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Containers15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5197, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Containers15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5198, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5199, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5200, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5201, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Containers-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-transactional-server:15:sp4", + "description": "

Transactional Updates provide SUSE Linux Enterprise systems with a method of updating the operating system and its packages in an entirely \u2018atomic\u2019 way. Updates are either applied to the system all together in a single transaction, or not at all. This happens without influencing the running system. If an update fails, or if the successful update is deemed to be incompatible or otherwise incorrect, it can be discarded to immediately return the system to its previous functioning state.

Access to theTransactional Server Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself: Package versions in the this module are usually supported for at most three years. We are planning to release more recent versions on a schedule of approximately 18 month; the exact dates may differ per package.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-transactional-server", + "free": true, + "friendly_name": "Transactional Server Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2331, + "identifier": "sle-module-transactional-server", + "migration_extra": false, + "name": "Transactional Server Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 1825, + 1998, + 2180 + ], + "predecessor_ids": [ + 1825, + 1998, + 2180 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Transactional-Server15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5297, + "installer_updates": false, + "name": "SLE-Module-Transactional-Server15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Transactional-Server/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Transactional-Server15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5298, + "installer_updates": false, + "name": "SLE-Module-Transactional-Server15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Transactional-Server/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Transactional-Server15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5299, + "installer_updates": false, + "name": "SLE-Module-Transactional-Server15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Transactional-Server/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Transactional-Server15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5300, + "installer_updates": false, + "name": "SLE-Module-Transactional-Server15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Transactional-Server/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Transactional-Server15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5301, + "installer_updates": false, + "name": "SLE-Module-Transactional-Server15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Transactional-Server/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Transactional-Server-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-live-patching:15:sp4", + "description": "

SUSE Linux Enterprise Live Patching provides packages to update critical components in SUSE Linux Enterprise. With SUSE Linux Enterprise Live Patching, you can perform critical patching without shutting down your system, reducing the need for planned downtime and increasing service availability.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-live-patching", + "free": false, + "friendly_name": "SUSE Linux Enterprise Live Patching 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2334, + "identifier": "sle-module-live-patching", + "migration_extra": false, + "name": "SUSE Linux Enterprise Live Patching", + "offline_predecessor_ids": [ + 1536, + 1757, + 1888 + ], + "online_predecessor_ids": [ + 1736, + 1828, + 1984, + 2187 + ], + "predecessor_ids": [ + 1736, + 1828, + 1984, + 2187 + ], + "product_class": "SLE-LP", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5312, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5313, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5314, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5315, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5316, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Live-Patching", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:packagehub:15:sp4", + "description": "SUSE Package Hub is a free of charge module providing access to community maintained packages built to run on SUSE Linux Enterprise Server. Built from the same sources used in the openSUSE distributions, these quality packages provide additional software to what is found in the SUSE Linux Enterprise Server product. Packages from the Package Hub are delivered without L3 support from SUSE. General updates and fixes to the packages in SUSE Package Hub are provided by the openSUSE community based on their discretion, though SUSE will monitor and ensure that any known critical security issues will be addressed. Packages in the Package Hub are approved by SUSE for use with SUSE Linux Enterprise Server 15-SP4 and to not interfere with the supportability of SUSE Linux Enterprise Server, its modules and extensions. For more information about SUSE Package Hub please visit https://packagehub.suse.com.", + "eula_url": "", + "extensions": [], + "former_identifier": "PackageHub", + "free": true, + "friendly_name": "SUSE Package Hub 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2347, + "identifier": "PackageHub", + "migration_extra": false, + "name": "SUSE Package Hub", + "offline_predecessor_ids": [ + 1529, + 1813, + 1915 + ], + "online_predecessor_ids": [ + 1743, + 1871, + 1950, + 2191 + ], + "predecessor_ids": [ + 1743, + 1871, + 1950, + 2191 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP4-Backports-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5388, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Backports-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/standard/" + }, + { + "autorefresh": true, + "description": "SUSE-PackageHub-15-SP4-Backports-Debuginfo for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5389, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Backports-Debuginfo", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/standard_debug/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5390, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5391, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5392, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5393, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5394, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5395, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SUSE-PackageHub-15", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-python3:15:sp4", + "description": "

This module contains the Python 3 packages.

Access to the Python 3 Module is included in your SUSE Linux Enterprise subscription. The module has a different lifecycle than SUSE Linux Enterprise itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-python3", + "free": true, + "friendly_name": "Python 3 Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2405, + "identifier": "sle-module-python3", + "migration_extra": false, + "name": "Python 3 Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Python3-15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5582, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Python3/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Python3-15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5583, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Python3/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5584, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5585, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5586, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Python 3-Module", + "version": "15.4" + } + ], + "former_identifier": "sle-module-basesystem", + "free": true, + "friendly_name": "Basesystem Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2299, + "identifier": "sle-module-basesystem", + "migration_extra": false, + "name": "Basesystem Module", + "offline_predecessor_ids": [ + 1212, + 1368, + 1440 + ], + "online_predecessor_ids": [ + 1576, + 1772, + 1946, + 2145 + ], + "predecessor_ids": [ + 1576, + 1772, + 1946, + 2145 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5137, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5138, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5139, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5140, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5141, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Basesystem-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-certifications:15:sp4", + "description": "

This module contains the certification packages.

Access to the Certifications Module is included in your SUSE Linux Enterprise subscription. The module has a different lifecycle than SUSE Linux Enterprise itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-certifications", + "free": true, + "friendly_name": "Certifications Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2393, + "identifier": "sle-module-certifications", + "migration_extra": false, + "name": "Certifications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 2389 + ], + "predecessor_ids": [ + 2389 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Certifications-15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5547, + "installer_updates": false, + "name": "SLE-Module-Certifications-15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Certifications/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Certifications-15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5548, + "installer_updates": false, + "name": "SLE-Module-Certifications-15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Certifications/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Certifications-15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5549, + "installer_updates": false, + "name": "SLE-Module-Certifications-15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Certifications/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Certifications-15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5550, + "installer_updates": false, + "name": "SLE-Module-Certifications-15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Certifications/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Certifications-15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5551, + "installer_updates": false, + "name": "SLE-Module-Certifications-15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Certifications/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Certifications-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sles-ltss:15:sp4", + "description": "SUSE Linux Enterprise offers a comprehensive suite of products built on a single code base. The platform addresses business needs from the smallest thin-client devices to the world's most powerful high-performance computing and mainframe servers. SUSE Linux Enterprise offers common management tools and technology certifications across the platform, and each product is enterprise-class.", + "eula_url": "", + "extensions": [], + "former_identifier": "SLES-LTSS", + "free": false, + "friendly_name": "SUSE Linux Enterprise Server LTSS 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2696, + "identifier": "SLES-LTSS", + "migration_extra": false, + "name": "SUSE Linux Enterprise Server LTSS", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLES15-SP4-LTSS-X86", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-LTSS-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6717, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-LTSS-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-Debuginfo-LTSS-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6718, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Debuginfo-LTSS-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update_debug/" + } + ], + "shortname": "SLES15-SP4-LTSS", + "version": "15.4" + } + ], + "former_identifier": "SLES", + "free": false, + "friendly_name": "SUSE Linux Enterprise Server 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2292, + "identifier": "SLES", + "migration_extra": false, + "name": "SUSE Linux Enterprise Server", + "offline_predecessor_ids": [ + 1421, + 1625, + 1878 + ], + "online_predecessor_ids": [ + 1763, + 1939, + 2140, + 2409 + ], + "predecessor_ids": [ + 1763, + 1939, + 2140, + 2409 + ], + "product_class": "7261", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5100, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5101, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": true, + "description": "SLE15-SP4-Installer-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5102, + "installer_updates": true, + "name": "SLE15-SP4-Installer-Updates", + "url": "https://installer-updates.suse.com/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5103, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5104, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5105, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SLES15-SP4", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-manager-tools:15", + "description": "SUSE Manager Tools provide packages required to connect to a SUSE Manager Server.", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-manager-tools", + "free": false, + "friendly_name": "SUSE Manager Client Tools for SLE 15 x86_64", + "friendly_version": "15", + "id": 1712, + "identifier": "sle-manager-tools", + "migration_extra": false, + "name": "SUSE Manager Client Tools for SLE", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-M-T", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Manager-Tools15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2932, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Manager-Tools15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2933, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2934, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2935, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2936, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product_source/" + } + ], + "shortname": "Manager-Tools", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-micro:5.5", + "description": "SUSE Linux Enterprise Micro 5.5", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-live-patching:15:sp5", + "description": "

SUSE Linux Enterprise Live Patching provides packages to update critical components in SUSE Linux Enterprise. With SUSE Linux Enterprise Live Patching, you can perform critical patching without shutting down your system, reducing the need for planned downtime and increasing service availability.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-live-patching", + "free": false, + "friendly_name": "SUSE Linux Enterprise Live Patching 15 SP5 x86_64", + "friendly_version": "15 SP5", + "id": 2511, + "identifier": "sle-module-live-patching", + "migration_extra": false, + "name": "SUSE Linux Enterprise Live Patching", + "offline_predecessor_ids": [ + 1536, + 1757, + 1888 + ], + "online_predecessor_ids": [ + 1736, + 1828, + 1984, + 2187, + 2334 + ], + "predecessor_ids": [ + 1736, + 1828, + 1984, + 2187, + 2334 + ], + "product_class": "SLE-LP", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-SP5-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5893, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP5-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15-SP5/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-SP5-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5894, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP5-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15-SP5/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5895, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP5-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP5/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP5-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5896, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP5-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP5/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-SP5-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5897, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-SP5-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15-SP5/x86_64/product_source/" + } + ], + "shortname": "Live-Patching", + "version": "15.5" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:packagehub:15:sp5", + "description": "SUSE Package Hub is a free of charge module providing access to community maintained packages built to run on SUSE Linux Enterprise Server. Built from the same sources used in the openSUSE distributions, these quality packages provide additional software to what is found in the SUSE Linux Enterprise Server product. Packages from the Package Hub are delivered without L3 support from SUSE. General updates and fixes to the packages in SUSE Package Hub are provided by the openSUSE community based on their discretion, though SUSE will monitor and ensure that any known critical security issues will be addressed. Packages in the Package Hub are approved by SUSE for use with SUSE Linux Enterprise Server 15-SP5 and to not interfere with the supportability of SUSE Linux Enterprise Server, its modules and extensions. For more information about SUSE Package Hub please visit https://packagehub.suse.com.", + "eula_url": "", + "extensions": [], + "former_identifier": "PackageHub", + "free": true, + "friendly_name": "SUSE Package Hub 15 SP5 x86_64", + "friendly_version": "15 SP5", + "id": 2562, + "identifier": "PackageHub", + "migration_extra": false, + "name": "SUSE Package Hub", + "offline_predecessor_ids": [ + 1529, + 1813, + 1915 + ], + "online_predecessor_ids": [ + 1743, + 1871, + 1950, + 2191, + 2347 + ], + "predecessor_ids": [ + 1743, + 1871, + 1950, + 2191, + 2347 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP5-Backports-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6113, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP5-Backports-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP5_x86_64/standard/" + }, + { + "autorefresh": true, + "description": "SUSE-PackageHub-15-SP5-Backports-Debuginfo for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6114, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP5-Backports-Debuginfo", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP5_x86_64/standard_debug/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP5-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6115, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP5-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP5/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP5-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6116, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP5-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP5/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6117, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP5-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP5_x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6118, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP5-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP5/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP5-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6119, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP5-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP5/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP5-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6120, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP5-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP5/x86_64/product_source/" + } + ], + "shortname": "SUSE-PackageHub-15", + "version": "15.5" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:suse-manager-retail-branch-server:5.0", + "description": "SUSE Manager for Retail Branch Server supports large and/or geographically dispersed SUSE Manager for Retail environments by reducing the load on the SUSE Manager Server, lowering bandwidth needs, and providing faster local updates.", + "eula_url": "", + "extensions": [], + "former_identifier": "SUSE-Manager-Retail-Branch-Server", + "free": false, + "friendly_name": "SUSE Manager Retail Branch Server Extension 5.0 x86_64", + "friendly_version": "5.0", + "id": 2714, + "identifier": "SUSE-Manager-Retail-Branch-Server", + "migration_extra": false, + "name": "SUSE Manager Retail Branch Server Extension", + "offline_predecessor_ids": [ + 2380 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SMRBS", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6773, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6774, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6775, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6776, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6777, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product_source/" + } + ], + "shortname": "SUSE Manager Retail Branch Server 5.0 Extension", + "version": "5.0" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:suse-manager-server:5.0", + "description": "SUSE Manager lets you efficiently manage physical, virtual, and cloud-based Linux systems. It provides automated and cost-effective configuration and software management, asset management, and system provisioning.", + "eula_url": "", + "extensions": [], + "former_identifier": "SUSE-Manager-Server", + "free": false, + "friendly_name": "SUSE Manager Server Extension 5.0 x86_64", + "friendly_version": "5.0", + "id": 2718, + "identifier": "SUSE-Manager-Server", + "migration_extra": false, + "name": "SUSE Manager Server Extension", + "offline_predecessor_ids": [ + 2378 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SMS-X86", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SUSE-Manager-Server-5.0-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6793, + "installer_updates": false, + "name": "SUSE-Manager-Server-5.0-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Server/5.0/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SUSE-Manager-Server-5.0-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6794, + "installer_updates": false, + "name": "SUSE-Manager-Server-5.0-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Server/5.0/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Server-5.0-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6795, + "installer_updates": false, + "name": "SUSE-Manager-Server-5.0-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Server/5.0/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Server-5.0-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6796, + "installer_updates": false, + "name": "SUSE-Manager-Server-5.0-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Server/5.0/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Server-5.0-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6797, + "installer_updates": false, + "name": "SUSE-Manager-Server-5.0-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Server/5.0/x86_64/product_source/" + } + ], + "shortname": "SUSE Manager Server 5.0 Extension", + "version": "5.0" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:suse-manager-proxy:5.0", + "description": "SUSE Manager Proxies extend large and/or geographically dispersed SUSE Manager environments to reduce load on the SUSE Manager Server, lower bandwidth needs, and provide faster local updates.", + "eula_url": "", + "extensions": [], + "former_identifier": "SUSE-Manager-Proxy", + "free": false, + "friendly_name": "SUSE Manager Proxy Extension 5.0 x86_64", + "friendly_version": "5.0", + "id": 2720, + "identifier": "SUSE-Manager-Proxy", + "migration_extra": false, + "name": "SUSE Manager Proxy Extension", + "offline_predecessor_ids": [ + 2379 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SMP", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SUSE-Manager-Proxy-5.0-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6803, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SUSE-Manager-Proxy-5.0-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6804, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Proxy-5.0-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6805, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Proxy-5.0-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6806, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-Manager-Proxy-5.0-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6807, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product_source/" + } + ], + "shortname": "SUSE Manager Proxy 5.0 Extension", + "version": "5.0" + } + ], + "former_identifier": "SLE-Micro", + "free": false, + "friendly_name": "SUSE Linux Enterprise Micro 5.5 x86_64", + "friendly_version": "5.5", + "id": 2605, + "identifier": "SLE-Micro", + "migration_extra": false, + "name": "SUSE Linux Enterprise Micro", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 2283, + 2401, + 2428, + 2574 + ], + "predecessor_ids": [ + 2283, + 2401, + 2428, + 2574 + ], + "product_class": "MICROOS-X86", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Micro-5.5-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6268, + "installer_updates": false, + "name": "SLE-Micro-5.5-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Micro/5.5/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Micro-5.5-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6269, + "installer_updates": false, + "name": "SLE-Micro-5.5-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Micro/5.5/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Micro-5.5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6270, + "installer_updates": false, + "name": "SLE-Micro-5.5-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Micro/5.5/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Micro-5.5-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6271, + "installer_updates": false, + "name": "SLE-Micro-5.5-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Micro/5.5/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Micro-5.5-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 6272, + "installer_updates": false, + "name": "SLE-Micro-5.5-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Micro/5.5/x86_64/product_source/" + } + ], + "shortname": "SUSE Linux Enterprise Micro", + "version": "5.5" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sles_sap:15", + "description": "SUSE Linux Enterprise offers a comprehensive suite of products built on a single code base. The platform addresses business needs from the smallest thin-client devices to the world's most powerful high-performance computing and mainframe servers. SUSE Linux Enterprise offers common management tools and technology certifications across the platform, and each product is enterprise-class.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product.license/", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-basesystem:15", + "description": "

The SUSE Linux Enterprise Basesystem Module delivers the base system of the product.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-desktop-applications:15", + "description": "

The SUSE Linux Enterprise Desktop Applications Module delivers a basic set of Desktop functionality.

Access to the Desktop Applications Module is included in your SUSE Linux Enterprise product subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-development-tools:15", + "description": "

The Development Tools Module helps you developing applications for SUSE Linux Enterprise 15.

Access to the Development Tools Module is included in your SUSE Linux Enterprise product subscription. The module has a different lifecycle than SUSE Linux Enterprise itself.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-sdk", + "free": true, + "friendly_name": "Development Tools Module 15 x86_64", + "friendly_version": "15", + "id": 1579, + "identifier": "sle-module-development-tools", + "migration_extra": true, + "name": "Development Tools Module", + "offline_predecessor_ids": [ + 1223, + 1323, + 1341, + 1366, + 1427, + 1630, + 1892 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2539, + "installer_updates": false, + "name": "SLE-Module-DevTools15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2540, + "installer_updates": false, + "name": "SLE-Module-DevTools15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2541, + "installer_updates": false, + "name": "SLE-Module-DevTools15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2542, + "installer_updates": false, + "name": "SLE-Module-DevTools15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2543, + "installer_updates": false, + "name": "SLE-Module-DevTools15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15/x86_64/product_source/" + } + ], + "shortname": "Development-Tools-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-we:15", + "description": "SUSE Linux Enterprise Workstation Extension adds additional functionality to a base SUSE Linux Enterprise installation. The Workstation Extension offers additional desktop applications (office suite, email client, graphical editor, multimedia tools) and libraries. Workstation Extension is enabled and installed by default on SUSE Linux Enterprise Desktop installation. Adding the Workstation Extension to a SUSE Linux Enterprise Server installation allows to seamlessly combine both products to create a full featured server workstation.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15/x86_64/product.license/", + "extensions": [], + "former_identifier": "sle-we", + "free": false, + "friendly_name": "SUSE Linux Enterprise Workstation Extension 15 x86_64", + "friendly_version": "15", + "id": 1583, + "identifier": "sle-we", + "migration_extra": false, + "name": "SUSE Linux Enterprise Workstation Extension", + "offline_predecessor_ids": [ + 1222, + 1338, + 1359, + 1431, + 1639, + 1893 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-WE", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-WE15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2742, + "installer_updates": false, + "name": "SLE-Product-WE15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-WE/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-WE15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2743, + "installer_updates": false, + "name": "SLE-Product-WE15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-WE/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2744, + "installer_updates": false, + "name": "SLE-Product-WE15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2745, + "installer_updates": false, + "name": "SLE-Product-WE15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-WE15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2746, + "installer_updates": false, + "name": "SLE-Product-WE15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-WE/15/x86_64/product_source/" + }, + { + "autorefresh": true, + "description": "SLE-15-GA-Desktop-NVIDIA-Driver", + "distro_target": null, + "enabled": true, + "id": 2747, + "installer_updates": false, + "name": "SLE-15-GA-Desktop-NVIDIA-Driver", + "url": "https://download.nvidia.com/suse/sle15/" + } + ], + "shortname": "SLEWE15", + "version": "15" + } + ], + "former_identifier": "sle-module-desktop-applications", + "free": true, + "friendly_name": "Desktop Applications Module 15 x86_64", + "friendly_version": "15", + "id": 1578, + "identifier": "sle-module-desktop-applications", + "migration_extra": false, + "name": "Desktop Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2534, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2535, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2536, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2537, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2538, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15/x86_64/product_source/" + } + ], + "shortname": "Desktop-Applications-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-server-applications:15", + "description": "

The SUSE Linux Enterprise Server Applications Module delivers a basic set of Server functionality.

Access to the Server Applications Module is included in your SUSE Linux Enterprise Server subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-legacy:15", + "description": "

The Legacy Module helps you migrating applications from SUSE Linux Enterprise 12 and other systems to SUSE Linux Enterprise 15, by providing packages which are discontinued on SUSE Linux Enterprise Server, such as: ntp, IBM Java 8, and a number of libraries.

Access to the Legacy Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself. Packages in the this module are usually supported for at most three years.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-legacy", + "free": true, + "friendly_name": "Legacy Module 15 x86_64", + "friendly_version": "15", + "id": 1581, + "identifier": "sle-module-legacy", + "migration_extra": true, + "name": "Legacy Module", + "offline_predecessor_ids": [ + 1150 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2549, + "installer_updates": false, + "name": "SLE-Module-Legacy15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2550, + "installer_updates": false, + "name": "SLE-Module-Legacy15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2551, + "installer_updates": false, + "name": "SLE-Module-Legacy15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2552, + "installer_updates": false, + "name": "SLE-Module-Legacy15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2553, + "installer_updates": false, + "name": "SLE-Module-Legacy15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15/x86_64/product_source/" + } + ], + "shortname": "Legacy-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-ha:15", + "description": "SUSE Linux High Availability Extension provides mature, industry-leading open-source high-availability clustering technologies that are easy to set up and use. It can be deployed in physical and/or virtual environments, and can cluster physical servers, virtual servers, or any combination of the two to suit your business\u2019 needs.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15/x86_64/product.license/", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-sap-applications:15", + "description": "

The SAP Applications module contains the specialized tools for SAP Applications administration.

The module is maintained and supported by the SUSE Linux Enterprise Server for SAP Applications product subscription.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-sap-applications", + "free": true, + "friendly_name": "SAP Applications Module 15 x86_64", + "friendly_version": "15", + "id": 1727, + "identifier": "sle-module-sap-applications", + "migration_extra": false, + "name": "SAP Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-SAP-Applications15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2677, + "installer_updates": false, + "name": "SLE-Module-SAP-Applications15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SAP-Applications/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-SAP-Applications15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2678, + "installer_updates": false, + "name": "SLE-Module-SAP-Applications15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SAP-Applications/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Applications15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2679, + "installer_updates": false, + "name": "SLE-Module-SAP-Applications15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Applications/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Applications15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2680, + "installer_updates": false, + "name": "SLE-Module-SAP-Applications15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Applications/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SAP-Applications15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2681, + "installer_updates": false, + "name": "SLE-Module-SAP-Applications15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SAP-Applications/15/x86_64/product_source/" + } + ], + "shortname": "SAP-Applications-Module", + "version": "15" + } + ], + "former_identifier": "sle-ha", + "free": false, + "friendly_name": "SUSE Linux Enterprise High Availability Extension 15 x86_64", + "friendly_version": "15", + "id": 1582, + "identifier": "sle-ha", + "migration_extra": false, + "name": "SUSE Linux Enterprise High Availability Extension", + "offline_predecessor_ids": [ + 958, + 961, + 967, + 971, + 1101, + 1107, + 1157, + 1245, + 1256, + 1286, + 1324, + 1337, + 1361, + 1363, + 1432, + 1435, + 1634, + 1637, + 1884, + 1886 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-HAE-X86", + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-HA15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2754, + "installer_updates": false, + "name": "SLE-Product-HA15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-HA15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2755, + "installer_updates": false, + "name": "SLE-Product-HA15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2756, + "installer_updates": false, + "name": "SLE-Product-HA15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2757, + "installer_updates": false, + "name": "SLE-Product-HA15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2758, + "installer_updates": false, + "name": "SLE-Product-HA15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15/x86_64/product_source/" + } + ], + "shortname": "SLEHA15", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-public-cloud:15", + "description": "

The Public Cloud Module is a collection of tools that enables you to create and manage cloud images from the commandline on SUSE Linux Enterprise Server. When building your own images with KIWI or SUSE Studio, initialization code specific to the target cloud is included in that image.

Access to the Public Cloud Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-public-cloud", + "free": true, + "friendly_name": "Public Cloud Module 15 x86_64", + "friendly_version": "15", + "id": 1611, + "identifier": "sle-module-public-cloud", + "migration_extra": true, + "name": "Public Cloud Module", + "offline_predecessor_ids": [ + 1220 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2673, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2674, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2675, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2676, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3129, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15/x86_64/product_source/" + } + ], + "shortname": "Public-Cloud-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-web-scripting:15", + "description": "

The SUSE Linux Enterprise Web and Scripting Module should contains additional packages that are helpful when running a webserver.

Access to the Web and Scripting Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself: Package versions in this module are usually supported for at most three years. We are planning to release more recent versions on a schedule of approximately 18 month; the exact dates may differ per package.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-web-scripting", + "free": true, + "friendly_name": "Web and Scripting Module 15 x86_64", + "friendly_version": "15", + "id": 1721, + "identifier": "sle-module-web-scripting", + "migration_extra": true, + "name": "Web and Scripting Module", + "offline_predecessor_ids": [ + 1153 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2972, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2973, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2974, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2975, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2976, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15/x86_64/product_source/" + } + ], + "shortname": "Web-Scripting-Module", + "version": "15" + } + ], + "former_identifier": "sle-module-server-applications", + "free": true, + "friendly_name": "Server Applications Module 15 x86_64", + "friendly_version": "15", + "id": 1580, + "identifier": "sle-module-server-applications", + "migration_extra": false, + "name": "Server Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2544, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2545, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2546, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2547, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2548, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15/x86_64/product_source/" + } + ], + "shortname": "Server-Applications-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-containers:15", + "description": "

This Module contains several packages revolving around containers and related tools.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-containers", + "free": true, + "friendly_name": "Containers Module 15 x86_64", + "friendly_version": "15", + "id": 1642, + "identifier": "sle-module-containers", + "migration_extra": true, + "name": "Containers Module", + "offline_predecessor_ids": [ + 1332 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Containers15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2864, + "installer_updates": false, + "name": "SLE-Module-Containers15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Containers15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2865, + "installer_updates": false, + "name": "SLE-Module-Containers15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2866, + "installer_updates": false, + "name": "SLE-Module-Containers15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2867, + "installer_updates": false, + "name": "SLE-Module-Containers15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2868, + "installer_updates": false, + "name": "SLE-Module-Containers15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15/x86_64/product_source/" + } + ], + "shortname": "Containers-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-cap-tools:15", + "description": "

The SUSE Cloud Application Platform Tools Module is a collection of tools that enables you to interact with the SUSE Cloud Application Platform product itself, providing the commandline client for instance.

Access to the SUSE Cloud Application Platform Tools Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-cap-tools", + "free": true, + "friendly_name": "SUSE Cloud Application Platform Tools Module 15 x86_64", + "friendly_version": "15", + "id": 1728, + "identifier": "sle-module-cap-tools", + "migration_extra": true, + "name": "SUSE Cloud Application Platform Tools Module", + "offline_predecessor_ids": [ + 1678 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-CAP-Tools15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3000, + "installer_updates": false, + "name": "SLE-Module-CAP-Tools15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-CAP-Tools/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-CAP-Tools15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3001, + "installer_updates": false, + "name": "SLE-Module-CAP-Tools15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-CAP-Tools/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-CAP-Tools15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3002, + "installer_updates": false, + "name": "SLE-Module-CAP-Tools15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-CAP-Tools/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-CAP-Tools15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3003, + "installer_updates": false, + "name": "SLE-Module-CAP-Tools15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-CAP-Tools/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-CAP-Tools15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3123, + "installer_updates": false, + "name": "SLE-Module-CAP-Tools15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-CAP-Tools/15/x86_64/product_source/" + } + ], + "shortname": "SUSE-CAP-Tools-Module", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-live-patching:15", + "description": "

SUSE Linux Enterprise Live Patching provides packages to update critical components in SUSE Linux Enterprise. With SUSE Linux Enterprise Live Patching, you can perform critical patching without shutting down your system, reducing the need for planned downtime and increasing service availability.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-live-patching", + "free": false, + "friendly_name": "SUSE Linux Enterprise Live Patching 15 x86_64", + "friendly_version": "15", + "id": 1736, + "identifier": "sle-module-live-patching", + "migration_extra": false, + "name": "SUSE Linux Enterprise Live Patching", + "offline_predecessor_ids": [ + 1536, + 1757, + 1888 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-LP", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3033, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Live-Patching15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3034, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Live-Patching/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3035, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3036, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Live-Patching15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3125, + "installer_updates": false, + "name": "SLE-Module-Live-Patching15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Live-Patching/15/x86_64/product_source/" + } + ], + "shortname": "Live-Patching", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:packagehub:15", + "description": "SUSE Package Hub is a free of charge extension providing access to community maintained packages built to run on SUSE Linux Enterprise Server. Built from the same sources used in the openSUSE distributions, these quality packages provide additional software to what is found in the SUSE Linux Enterprise Server product. Packages from the Package Hub are delivered without L3 support from SUSE. General updates and fixes to the packages in SUSE Package Hub are provided by the openSUSE community based on their discretion though SUSE will monitor and ensure that any known critical security issues will be addressed. Packages in the Package Hub are approved by SUSE for use with SUSE Linux Enterprise Server 15 and to not interfere with the supportability of SUSE Linux Enterprise Server it's modules and extensions. For more information about SUSE Package Hub please visit https://packagehub.suse.com.", + "eula_url": "", + "extensions": [], + "former_identifier": "PackageHub", + "free": true, + "friendly_name": "SUSE Package Hub 15 x86_64", + "friendly_version": "15", + "id": 1743, + "identifier": "PackageHub", + "migration_extra": false, + "name": "SUSE Package Hub", + "offline_predecessor_ids": [ + 1529, + 1813, + 1915 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-Standard-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3059, + "installer_updates": false, + "name": "SUSE-PackageHub-15-Standard-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15_x86_64/standard/" + }, + { + "autorefresh": true, + "description": "SUSE-PackageHub-15-Debuginfo for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3060, + "installer_updates": false, + "name": "SUSE-PackageHub-15-Debuginfo", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15_x86_64/standard_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3061, + "installer_updates": false, + "name": "SUSE-PackageHub-15-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15_x86_64/product/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3182, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3183, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3184, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3185, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3186, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15/x86_64/product_source/" + } + ], + "shortname": "SUSE-PackageHub-15", + "version": "15" + } + ], + "former_identifier": "sle-module-basesystem", + "free": true, + "friendly_name": "Basesystem Module 15 x86_64", + "friendly_version": "15", + "id": 1576, + "identifier": "sle-module-basesystem", + "migration_extra": false, + "name": "Basesystem Module", + "offline_predecessor_ids": [ + 1212, + 1368, + 1440, + 1618 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2524, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2525, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2526, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2527, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2528, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15/x86_64/product_source/" + } + ], + "shortname": "Basesystem-Module", + "version": "15" + } + ], + "former_identifier": "SUSE_SLES_SAP", + "free": false, + "friendly_name": "SUSE Linux Enterprise Server for SAP Applications 15 x86_64", + "friendly_version": "15", + "id": 1612, + "identifier": "SLES_SAP", + "migration_extra": false, + "name": "SUSE Linux Enterprise Server for SAP Applications", + "offline_predecessor_ids": [ + 1329, + 1426, + 1755, + 1880 + ], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "AiO", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-SLES_SAP15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2750, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES_SAP15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2751, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/" + }, + { + "autorefresh": true, + "description": "SLE-Product-SLES_SAP15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3120, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES_SAP15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3121, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SLES_SAP15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 3122, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product_source/" + } + ], + "shortname": "SLE-15-SAP", + "version": "15" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:res:8", + "description": "SUSE Liberty Linux 8", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:res-ha:8", + "description": "SUSE Liberty Linux High Availability Extension 8", + "eula_url": "", + "extensions": [], + "former_identifier": "RES-HA", + "free": false, + "friendly_name": "SUSE Liberty Linux High Availability Extension 8 x86_64", + "friendly_version": "8", + "id": 1922, + "identifier": "RES-HA", + "migration_extra": false, + "name": "SUSE Liberty Linux High Availability Extension", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "RES-HA", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "RES-8-HA-Updates for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 3882, + "installer_updates": false, + "name": "RES-8-HA-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-HA/8/x86_64/update/" + }, + { + "autorefresh": true, + "description": "RES-8-HA-Source-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3883, + "installer_updates": false, + "name": "RES-8-HA-Source-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-HA/8/src/update/" + }, + { + "autorefresh": true, + "description": "RES-8-HA-Debug-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3884, + "installer_updates": false, + "name": "RES-8-HA-Debug-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-HA/8/debug/update/" + } + ], + "shortname": "RES HA 8", + "version": "8" + } + ], + "former_identifier": "RES", + "free": false, + "friendly_name": "SUSE Liberty Linux 8 x86_64", + "friendly_version": "8", + "id": 1921, + "identifier": "RES", + "migration_extra": false, + "name": "SUSE Liberty Linux", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "RES", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "RES-8-Updates for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 3878, + "installer_updates": false, + "name": "RES-8-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES/8/x86_64/update/" + }, + { + "autorefresh": true, + "description": "RES-8-Source-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3879, + "installer_updates": false, + "name": "RES-8-Source-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES/8/src/update/" + }, + { + "autorefresh": true, + "description": "RES-8-Debug-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3881, + "installer_updates": false, + "name": "RES-8-Debug-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES/8/debug/update/" + }, + { + "autorefresh": true, + "description": "RES-AS-8-Updates for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 3921, + "installer_updates": false, + "name": "RES-AS-8-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-AS/8/x86_64/update/" + }, + { + "autorefresh": true, + "description": "RES-AS-8-Source-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3922, + "installer_updates": false, + "name": "RES-AS-8-Source-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-AS/8/src/update/" + }, + { + "autorefresh": true, + "description": "RES-AS-8-Debug-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3923, + "installer_updates": false, + "name": "RES-AS-8-Debug-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-AS/8/debug/update/" + }, + { + "autorefresh": true, + "description": "RES-CB-8-Updates for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 3924, + "installer_updates": false, + "name": "RES-CB-8-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-CB/8/x86_64/update/" + }, + { + "autorefresh": true, + "description": "RES-CB-8-Source-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3925, + "installer_updates": false, + "name": "RES-CB-8-Source-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-CB/8/src/update/" + }, + { + "autorefresh": true, + "description": "RES-CB-8-Debug-Updates for x86_64", + "distro_target": "x86_64", + "enabled": false, + "id": 3926, + "installer_updates": false, + "name": "RES-CB-8-Debug-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES-CB/8/debug/update/" + } + ], + "shortname": "", + "version": "8" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:opensuse:leap:15.5", + "description": "openSUSE Leap 15.5.", + "eula_url": "", + "extensions": [], + "former_identifier": "Leap", + "free": false, + "friendly_name": "openSUSE Leap 15.5 x86_64", + "friendly_version": "15.5", + "id": 2588, + "identifier": "Leap", + "migration_extra": false, + "name": "openSUSE Leap", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 2409 + ], + "predecessor_ids": [ + 2409 + ], + "product_class": "OPENSUSE", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "openSUSE-Leap-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6189, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/oss/" + }, + { + "autorefresh": true, + "description": "openSUSE-Leap-15.5-NonOss-Updates", + "distro_target": null, + "enabled": false, + "id": 6190, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-NonOss-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/non-oss/" + }, + { + "autorefresh": false, + "description": "openSUSE-Leap-15.5-Pool", + "distro_target": null, + "enabled": true, + "id": 6193, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-Pool", + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/oss/" + }, + { + "autorefresh": false, + "description": "openSUSE-Leap-15.5-NonOss-Pool", + "distro_target": null, + "enabled": false, + "id": 6194, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-NonOss-Pool", + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/non-oss/" + }, + { + "autorefresh": true, + "description": "openSUSE-SLE-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6197, + "installer_updates": false, + "name": "openSUSE-SLE-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/sle/" + }, + { + "autorefresh": true, + "description": "openSUSE-Backports-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6198, + "installer_updates": false, + "name": "openSUSE-Backports-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/backports/" + } + ], + "shortname": "openSUSE Leap", + "version": "15.5" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:suse-manager-proxy:4.3", + "description": "SUSE Manager Proxies extend large and/or geographically dispersed SUSE Manager environments to reduce load on the SUSE Manager Server, lower bandwidth needs, and provide faster local updates.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product.license/", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-basesystem:15:sp4", + "description": "

The SUSE Linux Enterprise Basesystem Module delivers the base system of the product.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-desktop-applications:15:sp4", + "description": "

The SUSE Linux Enterprise Desktop Applications Module delivers a basic set of Desktop functionality.

Access to the Desktop Applications Module is included in your SUSE Linux Enterprise product subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-development-tools:15:sp4", + "description": "

The Development Tools Module helps you developing applications for SUSE Linux Enterprise 15.

Access to the Development Tools Module is included in your SUSE Linux Enterprise product subscription. The module has a different lifecycle than SUSE Linux Enterprise itself.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-sdk", + "free": true, + "friendly_name": "Development Tools Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2315, + "identifier": "sle-module-development-tools", + "migration_extra": false, + "name": "Development Tools Module", + "offline_predecessor_ids": [ + 1341, + 1427, + 1630, + 1892 + ], + "online_predecessor_ids": [ + 1579, + 1794, + 1971, + 2161 + ], + "predecessor_ids": [ + 1579, + 1794, + 1971, + 2161 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5217, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-DevTools15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5218, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5219, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5220, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5221, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Development-Tools-Module", + "version": "15.4" + } + ], + "former_identifier": "sle-module-desktop-applications", + "free": true, + "friendly_name": "Desktop Applications Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2303, + "identifier": "sle-module-desktop-applications", + "migration_extra": false, + "name": "Desktop Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 1578, + 1776, + 1967, + 2149 + ], + "predecessor_ids": [ + 1578, + 1776, + 1967, + 2149 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5157, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5158, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5159, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5160, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5161, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Desktop-Applications-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-server-applications:15:sp4", + "description": "

The SUSE Linux Enterprise Server Applications Module delivers a basic set of Server functionality.

Access to the Server Applications Module is included in your SUSE Linux Enterprise Server subscription.

", + "eula_url": "", + "extensions": [ + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-web-scripting:15:sp4", + "description": "

The SUSE Linux Enterprise Web and Scripting Module should contains additional packages that are helpful when running a webserver.

Access to the Web and Scripting Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself: Package versions in this module are usually supported for at most three years. We are planning to release more recent versions on a schedule of approximately 18 month; the exact dates may differ per package.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-web-scripting", + "free": true, + "friendly_name": "Web and Scripting Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2319, + "identifier": "sle-module-web-scripting", + "migration_extra": false, + "name": "Web and Scripting Module", + "offline_predecessor_ids": [ + 1153 + ], + "online_predecessor_ids": [ + 1721, + 1798, + 1976, + 2165 + ], + "predecessor_ids": [ + 1721, + 1798, + 1976, + 2165 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5237, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5238, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Web-Scripting/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5239, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5240, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Web-Scripting15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5241, + "installer_updates": false, + "name": "SLE-Module-Web-Scripting15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Web-Scripting/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Web-Scripting-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-legacy:15:sp4", + "description": "

The Legacy Module helps you migrating applications from SUSE Linux Enterprise 12 and other systems to SUSE Linux Enterprise 15, by providing packages which are discontinued on SUSE Linux Enterprise Server, such as: ntp, IBM Java 8, and a number of libraries.

Access to the Legacy Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself. Packages in the this module are usually supported for at most three years.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-legacy", + "free": true, + "friendly_name": "Legacy Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2323, + "identifier": "sle-module-legacy", + "migration_extra": false, + "name": "Legacy Module", + "offline_predecessor_ids": [ + 1150 + ], + "online_predecessor_ids": [ + 1581, + 1804, + 1982, + 2171 + ], + "predecessor_ids": [ + 1581, + 1804, + 1982, + 2171 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5257, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Legacy15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5258, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Legacy/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5259, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5260, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Legacy15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5261, + "installer_updates": false, + "name": "SLE-Module-Legacy15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Legacy/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Legacy-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-public-cloud:15:sp4", + "description": "

The Public Cloud Module is a collection of tools that enables you to create and manage cloud images from the commandline on SUSE Linux Enterprise Server. When building your own images with KIWI or SUSE Studio, initialization code specific to the target cloud is included in that image.

Access to the Public Cloud Module is included in your SUSE Linux Enterprise Server subscription. The module has a different lifecycle than SUSE Linux Enterprise Server itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-public-cloud", + "free": true, + "friendly_name": "Public Cloud Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2327, + "identifier": "sle-module-public-cloud", + "migration_extra": false, + "name": "Public Cloud Module", + "offline_predecessor_ids": [ + 1220 + ], + "online_predecessor_ids": [ + 1611, + 1808, + 1988, + 2175 + ], + "predecessor_ids": [ + 1611, + 1808, + 1988, + 2175 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5277, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5278, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Public-Cloud/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5279, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5280, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Public-Cloud15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5281, + "installer_updates": false, + "name": "SLE-Module-Public-Cloud15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Public-Cloud/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Public-Cloud-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-ha:15:sp4", + "description": "SUSE Linux High Availability Extension provides mature, industry-leading open-source high-availability clustering technologies that are easy to set up and use. It can be deployed in physical and/or virtual environments, and can cluster physical servers, virtual servers, or any combination of the two to suit your business\u2019 needs.", + "eula_url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product.license/", + "extensions": [], + "former_identifier": "sle-ha", + "free": false, + "friendly_name": "SUSE Linux Enterprise High Availability Extension 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2340, + "identifier": "sle-ha", + "migration_extra": false, + "name": "SUSE Linux Enterprise High Availability Extension", + "offline_predecessor_ids": [ + 958, + 961, + 967, + 971, + 1101, + 1107, + 1256, + 1286, + 1432, + 1435, + 1634, + 1637, + 1884, + 1886 + ], + "online_predecessor_ids": [ + 1582, + 1785, + 1959, + 2195 + ], + "predecessor_ids": [ + 1582, + 1785, + 1959, + 2195 + ], + "product_class": "SLE-HAE-X86", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-HA15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5342, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-HA15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5343, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-HA/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5344, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5345, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-HA15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5346, + "installer_updates": false, + "name": "SLE-Product-HA15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-HA/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SLEHA15-SP4", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-suse-manager-proxy:4.3", + "description": "SUSE Manager Proxies extend large and/or geographically dispersed SUSE Manager environments to reduce load on the SUSE Manager Server, lower bandwidth needs, and provide faster local updates.", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-suse-manager-proxy", + "free": true, + "friendly_name": "SUSE Manager Proxy Module 4.3 x86_64", + "friendly_version": "4.3", + "id": 2384, + "identifier": "sle-module-suse-manager-proxy", + "migration_extra": false, + "name": "SUSE Manager Proxy Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 2015, + 2225 + ], + "predecessor_ids": [ + 2015, + 2225 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-SUSE-Manager-Proxy-4.3-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5500, + "installer_updates": false, + "name": "SLE-Module-SUSE-Manager-Proxy-4.3-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SUSE-Manager-Proxy/4.3/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-SUSE-Manager-Proxy-4.3-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5501, + "installer_updates": false, + "name": "SLE-Module-SUSE-Manager-Proxy-4.3-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-SUSE-Manager-Proxy/4.3/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SUSE-Manager-Proxy-4.3-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5502, + "installer_updates": false, + "name": "SLE-Module-SUSE-Manager-Proxy-4.3-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SUSE-Manager-Proxy/4.3/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SUSE-Manager-Proxy-4.3-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5503, + "installer_updates": false, + "name": "SLE-Module-SUSE-Manager-Proxy-4.3-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SUSE-Manager-Proxy/4.3/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-SUSE-Manager-Proxy-4.3-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5504, + "installer_updates": false, + "name": "SLE-Module-SUSE-Manager-Proxy-4.3-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-SUSE-Manager-Proxy/4.3/x86_64/product_source/" + } + ], + "shortname": "SUSE Manager Proxy 4.3 Module", + "version": "4.3" + } + ], + "former_identifier": "sle-module-server-applications", + "free": true, + "friendly_name": "Server Applications Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2307, + "identifier": "sle-module-server-applications", + "migration_extra": false, + "name": "Server Applications Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 1580, + 1780, + 1955, + 2153 + ], + "predecessor_ids": [ + 1580, + 1780, + 1955, + 2153 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5177, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5178, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5179, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5180, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5181, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Server-Applications-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-containers:15:sp4", + "description": "

This Module contains several packages revolving around containers and related tools.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-containers", + "free": true, + "friendly_name": "Containers Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2311, + "identifier": "sle-module-containers", + "migration_extra": false, + "name": "Containers Module", + "offline_predecessor_ids": [ + 1332 + ], + "online_predecessor_ids": [ + 1642, + 1790, + 1963, + 2157 + ], + "predecessor_ids": [ + 1642, + 1790, + 1963, + 2157 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Containers15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5197, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Containers15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5198, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5199, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5200, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5201, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Containers-Module", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:packagehub:15:sp4", + "description": "SUSE Package Hub is a free of charge module providing access to community maintained packages built to run on SUSE Linux Enterprise Server. Built from the same sources used in the openSUSE distributions, these quality packages provide additional software to what is found in the SUSE Linux Enterprise Server product. Packages from the Package Hub are delivered without L3 support from SUSE. General updates and fixes to the packages in SUSE Package Hub are provided by the openSUSE community based on their discretion, though SUSE will monitor and ensure that any known critical security issues will be addressed. Packages in the Package Hub are approved by SUSE for use with SUSE Linux Enterprise Server 15-SP4 and to not interfere with the supportability of SUSE Linux Enterprise Server, its modules and extensions. For more information about SUSE Package Hub please visit https://packagehub.suse.com.", + "eula_url": "", + "extensions": [], + "former_identifier": "PackageHub", + "free": true, + "friendly_name": "SUSE Package Hub 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2347, + "identifier": "PackageHub", + "migration_extra": false, + "name": "SUSE Package Hub", + "offline_predecessor_ids": [ + 1529, + 1813, + 1915 + ], + "online_predecessor_ids": [ + 1743, + 1871, + 1950, + 2191 + ], + "predecessor_ids": [ + 1743, + 1871, + 1950, + 2191 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP4-Backports-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5388, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Backports-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/standard/" + }, + { + "autorefresh": true, + "description": "SUSE-PackageHub-15-SP4-Backports-Debuginfo for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5389, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Backports-Debuginfo", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/standard_debug/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5390, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5391, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SUSE-PackageHub-15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5392, + "installer_updates": false, + "name": "SUSE-PackageHub-15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Backports/SLE-15-SP4_x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5393, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5394, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Packagehub-Subpackages15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5395, + "installer_updates": false, + "name": "SLE-Module-Packagehub-Subpackages15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Packagehub-Subpackages/15-SP4/x86_64/product_source/" + } + ], + "shortname": "SUSE-PackageHub-15", + "version": "15.4" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-module-python3:15:sp4", + "description": "

This module contains the Python 3 packages.

Access to the Python 3 Module is included in your SUSE Linux Enterprise subscription. The module has a different lifecycle than SUSE Linux Enterprise itself; please check the Release Notes for further details.

", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-module-python3", + "free": true, + "friendly_name": "Python 3 Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2405, + "identifier": "sle-module-python3", + "migration_extra": false, + "name": "Python 3 Module", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "MODULE", + "product_type": "module", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Python3-15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5582, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Python3/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Python3-15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5583, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Python3/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5584, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5585, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Python3-15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5586, + "installer_updates": false, + "name": "SLE-Module-Python3-15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Python3/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Python 3-Module", + "version": "15.4" + } + ], + "former_identifier": "sle-module-basesystem", + "free": true, + "friendly_name": "Basesystem Module 15 SP4 x86_64", + "friendly_version": "15 SP4", + "id": 2299, + "identifier": "sle-module-basesystem", + "migration_extra": false, + "name": "Basesystem Module", + "offline_predecessor_ids": [ + 1212, + 1368, + 1440 + ], + "online_predecessor_ids": [ + 1576, + 1772, + 1946, + 2145 + ], + "predecessor_ids": [ + 1576, + 1772, + 1946, + 2145 + ], + "product_class": "MODULE", + "product_type": "module", + "recommended": true, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5137, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Module-Basesystem15-SP4-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5138, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5139, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5140, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5141, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product_source/" + } + ], + "shortname": "Basesystem-Module", + "version": "15.4" + } + ], + "former_identifier": "SUSE-Manager-Proxy", + "free": false, + "friendly_name": "SUSE Manager Proxy 4.3 x86_64", + "friendly_version": "4.3", + "id": 2379, + "identifier": "SUSE-Manager-Proxy", + "migration_extra": false, + "name": "SUSE Manager Proxy", + "offline_predecessor_ids": [], + "online_predecessor_ids": [ + 2009, + 2223 + ], + "predecessor_ids": [ + 2009, + 2223 + ], + "product_class": "SMP", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5475, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5476, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5477, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5478, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5479, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product_source/" + } + ], + "shortname": "SUSE Manager Proxy 4.3", + "version": "4.3" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:res-manager-client:7", + "description": "SUSE Manager Client Tools for RHEL, Liberty and Clones 7", + "eula_url": "", + "extensions": [], + "former_identifier": "res-manager-client", + "free": false, + "friendly_name": "SUSE Manager Client Tools for RHEL, Liberty and Clones 7 x86_64", + "friendly_version": "7", + "id": 1683, + "identifier": "res-manager-client", + "migration_extra": false, + "name": "SUSE Manager Client Tools for RHEL, Liberty and Clones", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-M-T", + "product_type": "base", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "RES-7-SUSE-Manager-Tools for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 1746, + "installer_updates": false, + "name": "RES-7-SUSE-Manager-Tools", + "url": "https://updates.suse.com/repo/$RCE/RES7-SUSE-Manager-Tools/x86_64/" + } + ], + "shortname": "Manager-Tools", + "version": "7" + }, + { + "arch": "x86_64", + "cpe": "cpe:/o:suse:sle-manager-tools:15", + "description": "SUSE Manager Tools provide packages required to connect to a SUSE Manager Server.", + "eula_url": "", + "extensions": [], + "former_identifier": "sle-manager-tools", + "free": false, + "friendly_name": "SUSE Manager Client Tools for SLE 15 x86_64", + "friendly_version": "15", + "id": 1712, + "identifier": "sle-manager-tools", + "migration_extra": false, + "name": "SUSE Manager Client Tools for SLE", + "offline_predecessor_ids": [], + "online_predecessor_ids": [], + "predecessor_ids": [], + "product_class": "SLE-M-T", + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "release_type": null, + "repositories": [ + { + "autorefresh": true, + "description": "SLE-Manager-Tools15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2932, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/" + }, + { + "autorefresh": true, + "description": "SLE-Manager-Tools15-Debuginfo-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2933, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Debuginfo-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2934, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Debuginfo-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2935, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Debuginfo-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product_debug/" + }, + { + "autorefresh": false, + "description": "SLE-Manager-Tools15-Source-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 2936, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Source-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product_source/" + } + ], + "shortname": "Manager-Tools", + "version": "15" + } +] diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_repositories.json b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_repositories.json new file mode 100644 index 000000000000..235bfd9c595d --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_repositories.json @@ -0,0 +1,528 @@ +[ + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Product-SLES15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5103, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5100, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE15-SP4-Installer-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": false, + "id": 5102, + "installer_updates": true, + "name": "SLE15-SP4-Installer-Updates", + "url": "https://installer-updates.suse.com/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Module-Basesystem15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5139, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Module-Basesystem15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5137, + "installer_updates": false, + "name": "SLE-Module-Basesystem15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Module-Desktop-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5159, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Module-Desktop-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5157, + "installer_updates": false, + "name": "SLE-Module-Desktop-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Module-Server-Applications15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5179, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Module-Server-Applications15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5177, + "installer_updates": false, + "name": "SLE-Module-Server-Applications15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Module-DevTools15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5219, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Module-DevTools15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5217, + "installer_updates": false, + "name": "SLE-Module-DevTools15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Module-Containers15-SP4-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5199, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Module-Containers15-SP4-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5197, + "installer_updates": false, + "name": "SLE-Module-Containers15-SP4-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Product-SLES15-SP4-LTSS-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6717, + "installer_updates": false, + "name": "SLE-Product-SLES15-SP4-LTSS-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Manager-Tools-For-Micro5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6044, + "installer_updates": false, + "name": "SLE-Manager-Tools-For-Micro5-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Manager-Tools-For-Micro5-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6042, + "installer_updates": false, + "name": "SLE-Manager-Tools-For-Micro5-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SUSE-Manager-Proxy-5.0-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6805, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SUSE-Manager-Proxy-5.0-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6803, + "installer_updates": false, + "name": "SUSE-Manager-Proxy-5.0-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Micro-5.5-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6270, + "installer_updates": false, + "name": "SLE-Micro-5.5-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Micro/5.5/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Micro-5.5-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6268, + "installer_updates": false, + "name": "SLE-Micro-5.5-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Micro/5.5/x86_64/update/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": true, + "description": "openSUSE-Leap-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6189, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/oss/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": true, + "description": "openSUSE-Leap-15.5-NonOss-Updates", + "distro_target": null, + "enabled": false, + "id": 6190, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-NonOss-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/non-oss/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": false, + "description": "openSUSE-Leap-15.5-Pool", + "distro_target": null, + "enabled": true, + "id": 6193, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-Pool", + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/oss/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": false, + "description": "openSUSE-Leap-15.5-NonOss-Pool", + "distro_target": null, + "enabled": false, + "id": 6194, + "installer_updates": false, + "name": "openSUSE-Leap-15.5-NonOss-Pool", + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/non-oss/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": true, + "description": "openSUSE-SLE-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6197, + "installer_updates": false, + "name": "openSUSE-SLE-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/sle/" + }, + { + "arch": [ + "x86_64", + "aarch64", + "ppc64le", + "s390x" + ], + "autorefresh": true, + "description": "openSUSE-Backports-15.5-Updates", + "distro_target": null, + "enabled": true, + "id": 6198, + "installer_updates": false, + "name": "openSUSE-Backports-15.5-Updates", + "url": "http://download.opensuse.org/update/leap/15.5/backports/" + }, + { + "arch": [ + "amd64" + ], + "autorefresh": true, + "description": "Ubuntu-22.04-SUSE-Manager-Tools for amd64", + "distro_target": "amd64", + "enabled": true, + "id": 5940, + "installer_updates": false, + "name": "Ubuntu-22.04-SUSE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Updates/Ubuntu/22.04-CLIENT-TOOLS/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5475, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Product-SUSE-Manager-Proxy-4.3-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 5477, + "installer_updates": false, + "name": "SLE-Product-SUSE-Manager-Proxy-4.3-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6773, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SUSE-Manager-Retail-Branch-Server-5.0-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 6775, + "installer_updates": false, + "name": "SUSE-Manager-Retail-Branch-Server-5.0-Pool", + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Product-SLES_SAP15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2750, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Product-SLES_SAP15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2751, + "installer_updates": false, + "name": "SLE-Product-SLES_SAP15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Manager-Tools15-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2932, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Manager-Tools15-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 2934, + "installer_updates": false, + "name": "SLE-Manager-Tools15-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "SLE-Manager-Tools15-BETA-Updates for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3897, + "installer_updates": false, + "name": "SLE-Manager-Tools15-BETA-Updates", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "SLE-Manager-Tools15-BETA-Pool for sle-15-x86_64", + "distro_target": "sle-15-x86_64", + "enabled": true, + "id": 3908, + "installer_updates": false, + "name": "SLE-Manager-Tools15-BETA-Pool", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": true, + "description": "RES8-Manager-Tools-Updates for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 4311, + "installer_updates": false, + "name": "RES8-Manager-Tools-Updates", + "url": "https://updates.suse.com/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/" + }, + { + "arch": [ + "x86_64" + ], + "autorefresh": false, + "description": "RES8-Manager-Tools-Pool for x86_64", + "distro_target": "x86_64", + "enabled": true, + "id": 4313, + "installer_updates": false, + "name": "RES8-Manager-Tools-Pool", + "url": "https://updates.suse.com/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/" + } +] + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_subscriptions.json b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_subscriptions.json new file mode 100644 index 000000000000..63b07c0a369c --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/organizations_subscriptions.json @@ -0,0 +1,22 @@ +[ + { + "expires_at": "2033-01-25T11:15:19.806Z", + "id": 1234567, + "name": "Test subscription for SUSE Linux Enterprise Server", + "product_classes": [ + "OPENSUSE" + ], + "product_ids": [ + 111111 + ], + "regcode": "TEST1234567", + "skus": [], + "starts_at": "2021-11-21T12:05:08.197Z", + "status": "ACTIVE", + "system_limit": -1, + "systems": [], + "systems_count": 0, + "type": "test", + "virtual_count": null + } +] diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/product_tree.json b/testsuite/dockerfiles/server-all-in-one-dev/mirror/product_tree.json new file mode 100644 index 000000000000..12bcc6d52eba --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/product_tree.json @@ -0,0 +1,1072 @@ +[ + { + "channel_label": "sle-product-sles15-sp4-pool-x86_64", + "channel_name": "SLE-Product-SLES15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": 2292, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 5103, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Product-SLES", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-product-sles15-sp4-updates-x86_64", + "channel_name": "SLE-Product-SLES15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": null, + "product_id": 2292, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 5100, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Product-SLES", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle15-sp4-installer-updates-x86_64", + "channel_name": "SLE15-SP4-Installer-Updates for x86_64", + "gpg_info": [], + "mandatory": false, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": null, + "product_id": 2292, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 5102, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-INSTALLER", + "url": "https://installer-updates.suse.com/SUSE/Updates/SLE-INSTALLER/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-basesystem15-sp4-pool-x86_64", + "channel_name": "SLE-Module-Basesystem15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2292, + "product_id": 2299, + "product_type": "module", + "recommended": true, + "release_stage": "released", + "repository_id": 5139, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Basesystem", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Basesystem/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-module-basesystem15-sp4-updates-x86_64", + "channel_name": "SLE-Module-Basesystem15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2292, + "product_id": 2299, + "product_type": "module", + "recommended": true, + "release_stage": "released", + "repository_id": 5137, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Basesystem", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Basesystem/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-desktop-applications15-sp4-updates-x86_64", + "channel_name": "SLE-Module-Desktop-Applications15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2303, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5157, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Desktop-Applications", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Desktop-Applications/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-desktop-applications15-sp4-pool-x86_64", + "channel_name": "SLE-Module-Desktop-Applications15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2303, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5159, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Desktop-Applications", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Desktop-Applications/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-module-devtools15-sp4-updates-x86_64", + "channel_name": "SLE-Module-DevTools15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2303, + "product_id": 2315, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5217, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Development-Tools", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Development-Tools/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-devtools15-sp4-pool-x86_64", + "channel_name": "SLE-Module-DevTools15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2303, + "product_id": 2315, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5219, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Development-Tools", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Development-Tools/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-module-server-applications15-sp4-updates-x86_64", + "channel_name": "SLE-Module-Server-Applications15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2307, + "product_type": "module", + "recommended": true, + "release_stage": "released", + "repository_id": 5177, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Server-Applications", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Server-Applications/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-server-applications15-sp4-pool-x86_64", + "channel_name": "SLE-Module-Server-Applications15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2307, + "product_type": "module", + "recommended": true, + "release_stage": "released", + "repository_id": 5179, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Server-Applications", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Server-Applications/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-module-containers15-sp4-updates-x86_64", + "channel_name": "SLE-Module-Containers15-SP4-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2311, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5197, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Containers", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Module-Containers/15-SP4/x86_64/update/" + }, + { + "channel_label": "sle-module-containers15-sp4-pool-x86_64", + "channel_name": "SLE-Module-Containers15-SP4-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 2311, + "product_type": "module", + "recommended": false, + "release_stage": "released", + "repository_id": 5199, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Module-Containers", + "url": "https://updates.suse.com/SUSE/Products/SLE-Module-Containers/15-SP4/x86_64/product/" + }, + { + "channel_label": "sle-product-sles15-sp4-ltss-updates-x86_64", + "channel_name": "SLE-Product-SLES15-SP4-LTSS-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2292, + "product_id": 2696, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 6717, + "root_product_id": 2292, + "signed": false, + "tags": [], + "update_tag": "SLE-Product-SLES", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES/15-SP4-LTSS/x86_64/update/" + }, + { + "channel_label": "sle-product-suse-manager-proxy-4.3-pool-x86_64", + "channel_name": "SLE-Product-SUSE-Manager-Proxy-4.3-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": 2379, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 5477, + "root_product_id": 2379, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/product/" + }, + { + "channel_label": "sle-product-suse-manager-proxy-4.3-updates-x86_64", + "channel_name": "SLE-Product-SUSE-Manager-Proxy-4.3-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-suse-manager-proxy-4.3-pool-x86_64", + "parent_product_id": null, + "product_id": 2379, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 5475, + "root_product_id": 2379, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SUSE-Manager-Proxy/4.3/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools15-updates-x86_64-sp4", + "channel_name": "SLE-Manager-Tools15-Updates for x86_64 SP4", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 1712, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 2932, + "root_product_id": 2292, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools15-pool-x86_64-sp4", + "channel_name": "SLE-Manager-Tools15-Pool for x86_64 SP4", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 2299, + "product_id": 1712, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 2934, + "root_product_id": 2292, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/" + }, + { + "channel_label": "sle-manager-tools15-beta-updates-x86_64-sp4", + "channel_name": "SLE-Manager-Tools15-BETA-Updates for x86_64 SP4", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 1712, + "product_id": 1928, + "product_type": "extension", + "recommended": true, + "release_stage": "beta", + "repository_id": 3897, + "root_product_id": 2292, + "signed": false, + "tags": [ + "Beta" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools15-beta-pool-x86_64-sp4", + "channel_name": "SLE-Manager-Tools15-BETA-Pool for x86_64 SP4", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles15-sp4-pool-x86_64", + "parent_product_id": 1712, + "product_id": 1928, + "product_type": "extension", + "recommended": true, + "release_stage": "beta", + "repository_id": 3908, + "root_product_id": 2292, + "signed": false, + "tags": [ + "Beta" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/" + }, + { + "channel_label": "sle-product-sles_sap15-pool-x86_64", + "channel_name": "SLE-Product-SLES_SAP15-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": 1612, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 2751, + "root_product_id": 1612, + "signed": false, + "tags": [], + "update_tag": "SLE-Product-SLES_SAP", + "url": "https://updates.suse.com/SUSE/Products/SLE-Product-SLES_SAP/15/x86_64/product/" + }, + { + "channel_label": "sle-product-sles_sap15-updates-x86_64", + "channel_name": "SLE-Product-SLES_SAP15-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-product-sles_sap15-pool-x86_64", + "parent_product_id": null, + "product_id": 1612, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 2750, + "root_product_id": 1612, + "signed": false, + "tags": [], + "update_tag": "SLE-Product-SLES_SAP", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Product-SLES_SAP/15/x86_64/update/" + }, + { + "channel_label": "sle-micro-5.5-pool-x86_64", + "channel_name": "SLE-Micro-5.5-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": 2605, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6270, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0", + "Uyuni" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Products/SLE-Micro/5.5/x86_64/product/" + }, + { + "channel_label": "sle-micro-5.5-updates-x86_64", + "channel_name": "SLE-Micro-5.5-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2605, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6268, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0", + "Uyuni" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/SLE-Micro/5.5/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools-for-micro5-updates-x86_64-5.5", + "channel_name": "SLE-Manager-Tools-For-Micro5-Updates for x86_64 5.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2551, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 6042, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools-For-Micro-5", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools-For-Micro/5/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools-for-micro5-pool-x86_64-5.5", + "channel_name": "SLE-Manager-Tools-For-Micro5-Pool for x86_64 5.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2551, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 6044, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools-For-Micro-5", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools-For-Micro/5/x86_64/product/" + }, + { + "channel_label": "suse-manager-proxy-5.0-updates-x86_64", + "channel_name": "SUSE-Manager-Proxy-5.0-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2720, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 6803, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Proxy/5.0/x86_64/update/" + }, + { + "channel_label": "suse-manager-proxy-5.0-pool-x86_64", + "channel_name": "SUSE-Manager-Proxy-5.0-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2720, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 6805, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Proxy/5.0/x86_64/product/" + }, + { + "channel_label": "suse-manager-retail-branch-server-5.0-updates-x86_64", + "channel_name": "SUSE-Manager-Retail-Branch-Server-5.0-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2714, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 6773, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/update/" + }, + { + "channel_label": "suse-manager-retail-branch-server-5.0-pool-x86_64", + "channel_name": "SUSE-Manager-Retail-Branch-Server-5.0-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle-micro-5.5-pool-x86_64", + "parent_product_id": 2605, + "product_id": 2714, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 6775, + "root_product_id": 2605, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Products/SUSE-Manager-Retail-Branch-Server/5.0/x86_64/product/" + }, + { + "channel_label": "opensuse-leap-15.5-pool-x86_64", + "channel_name": "openSUSE-Leap-15.5-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6193, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/oss/" + }, + { + "channel_label": "opensuse-leap-15.5-updates-x86_64", + "channel_name": "openSUSE-Leap-15.5-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6189, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/update/leap/15.5/oss/" + }, + { + "channel_label": "opensuse-leap-15.5-nonoss-updates-x86_64", + "channel_name": "openSUSE-Leap-15.5-NonOss-Updates for x86_64", + "gpg_info": [], + "mandatory": false, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6190, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/update/leap/15.5/non-oss/" + }, + { + "channel_label": "opensuse-leap-15.5-nonoss-pool-x86_64", + "channel_name": "openSUSE-Leap-15.5-NonOss-Pool for x86_64", + "gpg_info": [], + "mandatory": false, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6194, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/distribution/leap/15.5/repo/non-oss/" + }, + { + "channel_label": "opensuse-sle-15.5-updates-x86_64", + "channel_name": "openSUSE-SLE-15.5-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6197, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/update/leap/15.5/sle/" + }, + { + "channel_label": "opensuse-backports-15.5-updates-x86_64", + "channel_name": "openSUSE-Backports-15.5-Updates for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": null, + "product_id": 2588, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": 6198, + "root_product_id": 2588, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://download.opensuse.org/update/leap/15.5/backports/" + }, + { + "channel_label": "sle-manager-tools15-updates-x86_64-opensuse-15.5", + "channel_name": "SLE-Manager-Tools15-Updates for x86_64 openSUSE 15.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": 2588, + "product_id": 1712, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 2932, + "root_product_id": 2588, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools15-pool-x86_64-opensuse-15.5", + "channel_name": "SLE-Manager-Tools15-Pool for x86_64 openSUSE 15.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": 2588, + "product_id": 1712, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 2934, + "root_product_id": 2588, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15/x86_64/product/" + }, + { + "channel_label": "sle-manager-tools15-beta-updates-x86_64-opensuse-15.5", + "channel_name": "SLE-Manager-Tools15-BETA-Updates for x86_64 openSUSE 15.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": 1712, + "product_id": 1928, + "product_type": "extension", + "recommended": true, + "release_stage": "beta", + "repository_id": 3897, + "root_product_id": 2588, + "signed": false, + "tags": [ + "Beta" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Updates/SLE-Manager-Tools/15-BETA/x86_64/update/" + }, + { + "channel_label": "sle-manager-tools15-beta-pool-x86_64-opensuse-15.5", + "channel_name": "SLE-Manager-Tools15-BETA-Pool for x86_64 openSUSE 15.5", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "opensuse-leap-15.5-pool-x86_64", + "parent_product_id": 1712, + "product_id": 1928, + "product_type": "extension", + "recommended": true, + "release_stage": "beta", + "repository_id": 3908, + "root_product_id": 2588, + "signed": false, + "tags": [ + "Beta" + ], + "update_tag": "SLE-Manager-Tools", + "url": "https://updates.suse.com/SUSE/Products/SLE-Manager-Tools/15-BETA/x86_64/product/" + }, + { + "channel_label": "rockylinux-8-x86_64", + "channel_name": "rockylinux-8 for x86_64", + "gpg_info": [ + { + "fingerprint": "7051C470A929F454CEBE37B715AF5DAC6D745A60", + "keyId": "6D745A60", + "url": "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial" + } + ], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": -24, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": -292, + "root_product_id": -24, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://mirrors.rockylinux.org/mirrorlist?repo=BaseOS-8&arch=x86_64" + }, + { + "channel_label": "rockylinux-8-appstream-x86_64", + "channel_name": "rockylinux-8-appstream for x86_64", + "gpg_info": [ + { + "fingerprint": "7051C470A929F454CEBE37B715AF5DAC6D745A60", + "keyId": "6D745A60", + "url": "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial" + } + ], + "mandatory": true, + "parent_channel_label": "rockylinux-8-x86_64", + "parent_product_id": null, + "product_id": -24, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": -293, + "root_product_id": -24, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://mirrors.rockylinux.org/mirrorlist?repo=AppStream-8&arch=x86_64" + }, + { + "channel_label": "res8-manager-tools-updates-x86_64-rocky", + "channel_name": "RES8-Manager-Tools-Updates for x86_64 Rocky", + "gpg_info": [ + { + "fingerprint": "FEAB502539D846DB2C0961CA70AF9E8139DB7C82", + "keyId": "39DB7C82", + "url": "file:///etc/pki/rpm-gpg/el-tools-gpg-pubkey-39db7c82.key" + } + ], + "mandatory": true, + "parent_channel_label": "rockylinux-8-x86_64", + "parent_product_id": -24, + "product_id": 2007, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 4311, + "root_product_id": -24, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/RES/8-CLIENT-TOOLS/x86_64/update/" + }, + { + "channel_label": "res8-manager-tools-pool-x86_64-rocky", + "channel_name": "RES8-Manager-Tools-Pool for x86_64 Rocky", + "gpg_info": [ + { + "fingerprint": "FEAB502539D846DB2C0961CA70AF9E8139DB7C82", + "keyId": "39DB7C82", + "url": "file:///etc/pki/rpm-gpg/el-tools-gpg-pubkey-39db7c82.key" + } + ], + "mandatory": true, + "parent_channel_label": "rockylinux-8-x86_64", + "parent_product_id": -24, + "product_id": 2007, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 4313, + "root_product_id": -24, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Products/RES/8-CLIENT-TOOLS/x86_64/product/" + }, + { + "channel_label": "ubuntu-2204-amd64-main-amd64", + "channel_name": "ubuntu-2204-amd64-main for amd64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": -33, + "product_type": "base", + "recommended": false, + "release_stage": "beta", + "repository_id": -385, + "root_product_id": -33, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "http://archive.ubuntu.com/ubuntu/dists/jammy/main/binary-amd64/" + }, + { + "channel_label": "ubuntu-2204-amd64-main-updates-amd64", + "channel_name": "ubuntu-2204-amd64-main-updates for amd64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "ubuntu-2204-amd64-main-amd64", + "parent_product_id": null, + "product_id": -33, + "product_type": "base", + "recommended": false, + "release_stage": "beta", + "repository_id": -397, + "root_product_id": -33, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "http://archive.ubuntu.com/ubuntu/dists/jammy-updates/main/binary-amd64/" + }, + { + "channel_label": "ubuntu-2204-amd64-main-security-amd64", + "channel_name": "ubuntu-2204-amd64-main-security for amd64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "ubuntu-2204-amd64-main-amd64", + "parent_product_id": null, + "product_id": -33, + "product_type": "base", + "recommended": false, + "release_stage": "beta", + "repository_id": -393, + "root_product_id": -33, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "http://security.ubuntu.com/ubuntu/dists/jammy-security/main/binary-amd64/" + }, + { + "channel_label": "ubuntu-22.04-suse-manager-tools-amd64", + "channel_name": "Ubuntu-22.04-SUSE-Manager-Tools for amd64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "ubuntu-2204-amd64-main-amd64", + "parent_product_id": -33, + "product_id": 2531, + "product_type": "extension", + "recommended": true, + "release_stage": "released", + "repository_id": 5940, + "root_product_id": -33, + "signed": false, + "tags": [ + "Beta", + "OESTest", + "SUMA4.2", + "SUMA4.3", + "SUMA5.0" + ], + "update_tag": null, + "url": "https://updates.suse.com/SUSE/Updates/Ubuntu/22.04-CLIENT-TOOLS/x86_64/update/" + }, + { + "channel_label": "rhel8-pool-x86_64", + "channel_name": "RHEL8-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": null, + "parent_product_id": null, + "product_id": -8, + "product_type": "base", + "recommended": false, + "release_stage": "released", + "repository_id": -82, + "root_product_id": -8, + "signed": false, + "tags": [], + "update_tag": null, + "url": "http://localhost/pub/repositories/empty/" + }, + + { + "channel_label": "sle-12-cloud-compute5-pool-x86_64", + "channel_name": "SLE-12-Cloud-Compute5-Pool for x86_64", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sles12-pool-x86_64", + "parent_product_id": 1117, + "product_id": 1317, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 1815, + "root_product_id": 1117, + "signed": false, + "tags": [], + "update_tag": "SLE12-CLOUD-5", + "url": "https://updates.suse.com/SUSE/Products/12-Cloud-Compute/5/x86_64/product/" + }, + { + "channel_label": "sle-we12-pool-x86_64-sap", + "channel_name": "SLE-WE12-Pool for x86_64 SAP", + "gpg_info": [], + "mandatory": true, + "parent_channel_label": "sle12-sap-pool-x86_64", + "parent_product_id": 1319, + "product_id": 1222, + "product_type": "extension", + "recommended": false, + "release_stage": "released", + "repository_id": 1654, + "root_product_id": 1319, + "signed": false, + "tags": [], + "update_tag": "SLE-WE", + "url": "https://updates.suse.com/SUSE/Products/SLE-WE/12/x86_64/product/" + } +] diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master/images/repo/Uyuni-Proxy-POOL-x86_64-Media1/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1737978736 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1737978736 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1737978736 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1737978736 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1737978736 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1737978736 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1737978736 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/get_rpms.sh b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/get_rpms.sh new file mode 100755 index 000000000000..60775cb51439 --- /dev/null +++ b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/get_rpms.sh @@ -0,0 +1,8 @@ +cd noarch +wget -c https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/mgr-push-5.1.1-2.1.uyuni.noarch.rpm . +wget -c https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-mgr-push-5.1.1-2.1.uyuni.noarch.rpm . +wget -c https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-rhnlib-5.1.1-3.1.uyuni.noarch.rpm . +wget -c https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm . +wget -c https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm . +cd - +createrepo . diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/mgr-push-5.1.1-2.1.uyuni.noarch.rpm b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/mgr-push-5.1.1-2.1.uyuni.noarch.rpm new file mode 100644 index 0000000000000000000000000000000000000000..41b805bea5ff165ee0c1551811554ae946fd39f5 GIT binary patch literal 21584 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 literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-mgr-push-5.1.1-2.1.uyuni.noarch.rpm b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-mgr-push-5.1.1-2.1.uyuni.noarch.rpm new file mode 100644 index 0000000000000000000000000000000000000000..8d358fdd9a6f667d7bd5a2843c3b82dbf1e650b2 GIT binary patch literal 33744 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 TAK4XYw&~v-0ssI2018=JB?lrW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-rhnlib-5.1.1-3.1.uyuni.noarch.rpm b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-rhnlib-5.1.1-3.1.uyuni.noarch.rpm new file mode 100644 index 0000000000000000000000000000000000000000..3b7c4247ccd11ba22562d52e77d185b2bd679c55 GIT binary patch literal 69756 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 literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/noarch/python3-spacewalk-client-tools-5.1.1-4.1.uyuni.noarch.rpm new file mode 100644 index 0000000000000000000000000000000000000000..26878dfd66798ddf2996c542148546361a5b04d8 GIT binary patch literal 44668 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 literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/334aaee30abde04d58ba1a7520b37061d0f9e72d3bad5cc1983dd1ed617942c0-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/334aaee30abde04d58ba1a7520b37061d0f9e72d3bad5cc1983dd1ed617942c0-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3ff6b21b8d77ed29a506d43dc274c554547ee886 GIT binary patch literal 3685 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 DU=4m< literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/4a94c427ecd5f1d7f23ccc757c1951cafb0ea837d37ec6f48418455122f73bc4-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/4a94c427ecd5f1d7f23ccc757c1951cafb0ea837d37ec6f48418455122f73bc4-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..16361592ee60e37a23d5f16d2db692a87c2a42f7 GIT binary patch literal 4375 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 P|Jmve6e+2=dV=?VHyxyv literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/6b8f920394c7c55b0ccda1ed635ae41c9f28f0483271d05fd28f37ad70aadd77-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/6b8f920394c7c55b0ccda1ed635ae41c9f28f0483271d05fd28f37ad70aadd77-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..474552cde68170b3bebc9a77dde73b68707cf25f GIT binary patch literal 1421 zcmV;81#EB&V(~NESChf%zebEndFsIp-66@$%!UM7OqX3hyo>GQ|1He2s<3O;?~hQW^o?3r z*v})lW&Db&n?+$RqbwC9O$AP?#0e)_%X8avf~6(I-{Op}CTmZS;B(Tm9@k0_q9 zX*?lt+0W>0@ex5XkoL|LZCK5HjjGz-TGv9BQPve@NH?n1V9g z!Y^j`u06rgBxdlp>u5YBqoc37Rdv76`hE?cW>OGLQo3)FjwU};VJB*9<(g9U$!Xde za?zYcWttv;uK1VBcWBY7xO7gH5D+TVVX}H4`2RxA^#eA zrEgl)*c#5=@69@AN{jxuLfY1Ckrz7DuyCkex`0CTW7g>J38hpp^3%iq*S_hT+IL)F zn#ANl?vl~*zlYp)4o;fBczIFU(^^Mh9^+k<@F_lulCbs&lsr%*L1Mu~vTv47@PSx? zpP^A}zv`I<;4?6bDgiz~94F+Q$`lK_>j!Y<=*NEeWGDQK*~ne{d@p38d1j4>8D|iz zh+`(hcg9l&OhFXRY0R~bg^4i-S7@G!m>SRtl5x4=`++Fg)>j8K5R11R8)PEKf7w*eu)SeQ3C{$ezgh z>?GDtq<~xw>r5b;`TX5LdN~~3;04E+(MRCr+aSJU9h9UX zi1L8UY#8rPSFRD9Lhs+rZ^VfT#K=9Y#y#F_k%`2;me2vuR-MsEA@!DpE za;PkzAxr^c>>uIB@yG$wyR*^2YJ(G3RRzuPs#F0X0FA!}83bOj4!qG8p7b+O)2_?Y zrBDzVFuU*11|C;sv2f_~y)dEG#bYXQoKIuI`5vEQK*PYNSH|?j;6d&I5F@igAz<^m zf4a@?x-7t@2GUWKCGxHx4>x1uRNQwgOdax+j(t`YuriA^)PmVK4D?Bsa;dY-rUpj+ zM1mmbgc{Cs!KG0k3CviK2nsQ=97JPR1sb^D-l_6tGNfnHdS5nARE79KRrt>^7YAV; z+TB=q4G64bX2Tq4PzAjUNy3gzw zNa}Rk&nPDc?d32jwQ2#Q%V4u`w%r(|B<6vH2BY((ze981g^6O`hck+NFST32HjfrD z;Ch8)t8&Q{260k^P@{2bGi)qRb3-(UoCGq`c`VXgrb07@t=7UCqBbIS7O%5-oyF@c bUT5(-i`Vms*X;gh`xpNL5OUcj=^p?9q_x!M literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/afac32044944a09d9c850d23d915237306c4525f3475aa32ce3e3b754d4e411d-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/afac32044944a09d9c850d23d915237306c4525f3475aa32ce3e3b754d4e411d-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..a1e4afa45b6837569b557ffb215b5cf948770c6d GIT binary patch literal 1472 zcmV;x1wZ;9iwFP!000001HGGBbK5o$fZzKoG<+9H@MgzK#!=kFQz!03_H_EB0Rix+ zNRTBUH_ERssKe21iCp$UBTL-H?;xdq@)>7M%we! zZ^J-)|L&KYILld{2`L6jo{N!|N?HAC7~H ziY;tY8fycN3pUbKo;bj&!6AYL<^Q zOZ`1x%z366OO?j|fm~FIOtV^hXD~?&u@I!>ah4c$%5Roqd=)+-(YzX$YH}bu7qt;( z+)!RO5+|Rp38$Y|g;i9=-t!&D8&Q$snyI-Wj0+}=O{|V$PskeM$3OnM|N7~SPJwyz z3N~Krfu8)>$ln<2i9bvMKk$efG3qdx4%Yon}0f z)2Uu9S~HrcWG}1>LM1zAM5>5(p{(Dh1e3IrJFlQ+4MLGrPOE1%1g^jtNTgn@PL$QE z(FHND@)FaBEb0W2SuVB!XV!?w4uTlFG-465Jd8+0kR4zYo7g12=USE>N5~HxY)7W+ zc?fw9vOPNvBijq3Xn&1RE+`LMt`PQHo5ckIXcIJJGI?kjZ(~y6THZglReu(&{+JOt z#-eS7o>{Z54W2?(i{)xDowju4Reu>&vJxKJo?cdRh?I-RH|-8!5afCm`|4uRcC zon9P2WdVZynzX%mevA&m{kboTejGnx00PZR9_1yOsSczc-%l8TK&#IWirgso_o9IS88$ z!*O6^Qymg9LKY=v$Rd+6H;gGF>aZEOo=IZI591*8iEW#V5T8+mH;2jI50R^1d-F1> zOR0va)6HPdo$KEE3HiLRu^P%4S3;*3{P=u2A_QbO)pt`_1SvhJawm?vN+}U~mY= z^!{si48Z^lfVrUneo)q(!EyiwpMLrPfB^_A1ITzb@6Lz;rZ>(27ywIA0+1pJKulAB zbWZ_dngYZ$1&BvR0T=)^mjTq=-vIS81K4F|Wp_pn5Rd$&JENEZFaT=50H_xp0Wbi@ z!U1xu1c*lkP%jlgJSu=(ujKT@x9*r4pmb}1Wmy1}odB2`@ecq4AXNpxQYHb?T>=~* zBtSgo0QvC(aE$qpPR9TZmBM`f9R&0A=arb98-N$pb&E;~p1-|F(o)D{;?0dr#&72` a)vH;4?80gJ)$$(`-u(w-t{_GGFaQ9r)V7}h literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/b826724f6eacd7eca5855c3dd7188615911bfe3c2b5207c8ae4fb764df1df891-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/b826724f6eacd7eca5855c3dd7188615911bfe3c2b5207c8ae4fb764df1df891-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..b1c75ae61e9d8c174717daab472539bf89dc88aa GIT binary patch literal 1971 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 si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/daeaa0460be890a1cea55c9a9a74d893e8533629f654e8e4566a4882da2930dc-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Master:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/daeaa0460be890a1cea55c9a9a74d893e8533629f654e8e4566a4882da2930dc-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..dad53c7929b1a492fd8d2c70ce47812aa89355a2 GIT binary patch literal 2815 zcmV%{jzZTd~fj|H?pa1{>001=vk?J(TGy#;_n@O298`LssJx>xpP@7ZJQ%p}& z$kgS!7mjDe{}paxG<$}$=<27ojG27mwn00000 z05kvq0000Q000OY8Z-k44F-XM00w~5AT$O60h3Jt01YrrG{FIrMnR(p05TXuOoR;$ z8Ucg`gFwK513+nz8Up};$)RFFBWfZW5#9HZh=#;JC)U6zHqdQ@ zLqMT{Kn5W@wWtwNOVB=gYS!JxI3SM#`;CV@Y$;f#WCaX{m2wF=EY@=AE58Xtfm;H8)jl`FIYVCiOj)n8LqO2qWjccJR+kD9VMB z-D_4&omZsZ(aVa(u99g*V;S-7pE3nLt{$9eg%-wXRHx4Urp$t^8N1fEUj}d0kO?6c z$D->%qadUOC|xxv6m?!{&E)d&*X{$!JC5K6hvgq6fV`qX0gOWjpkbGX!{GWFd|ewq z-(^gRs$T|g+WI1V{KwFjkYlQFKykq-J!J!vb6E`;GMD;vm^jfYSsF8p>@WYgI-M7B z>bF!o5e_Z{XjqRz#&B-dO4v7D%(u(Kk(?D`7Na&-yWWMaM7)$UzJ`WT_50`kv^2kt zwDl|h%Be$BO*+D!;M!z;l#z5iRw`V=Pqb?G0OjD&gVO_B{ROHex)E@;|X^z3D*VuwB^AO^LalOm2k0d-rSj^>TqimbQ@gM|^(Hb49#WG6z`Vs0 z-Ku%{>o#HYaTc177RzKzWbVb~$y_m9#xZcpCblxn6Q3Y6)C^L& zEXIJHu*y+uOb80+I+lt#@rYU*8mj>=%cLLd#?sX~^TU+dIE%X&NRZ4FJ-vQ_Ux75l z3>eb}GB5KxX5_sT*RtB5r~-f z6$S&4xGN_L%I+fq;zUux97AkvK1`Va51Uf+DiSL&7N1cU8-`;UGqfZ?i7}auO(e}V znu!stx@|IT@(TbP7!bhF~t{-YdbE zm`y7|ReFoeMFrVRMP@cYtfaCAP@tKVteFE4gCNsF7!_Pl8nA_WB*_QHp=9qZhw&x8$jzJqVKEi#`Xn?G&iOreKuiq!{sosJ5x63e4vU3jqf-Uh1>w(B5ujRbrkg0g|I;R>Xe z6G>hC$BI1uO9i3w|5LH*J$(ETwp^r7QZfsCiRtfvgQi5?7;+w*^xcroq0}aNV#JkI z`qf$A0C-U#BA(Z|UW*Z!^WrK!aIqMdbdv5*3<8DebtUbL55Lye& z1rsJ*dxLppGm;GCO6uKNm7o$l2#<=Gq5ng|2#g>?I)+ruj8FvTP$~nw08JFlXVx?_ z-r5g>VG*X8vMNp{;hF~e+BO{WSr}OpY@otw*ks}bN!3Qpvzarahlr^&Ni#`cGZ~>8 z$w;j=t6yy1ZNjz34GVxev)G+%8kv18pn~C4QYJ)15@lq>3n58Gjz!bMnywZsxz zYas~=s-VY+n6Q@>06@TWkwH>RT1rgc7Gs>vM#vG}Eh!EoV9ny9o#LX_MBnJdpsLd~ zriFRNqn&MkfY3v1f~IS1#H%8P6oY11O<(y^9MP9D`IWl{mN*g#e^hHF_d;qf=l|B+!=iDkW%wf)tl>s34e%(wa+mwBv_318|1Y)-1$? zK|qKCh81X#pfM0>9h?L~NeyO6P!$B&Eut|ROP+Bg5kGn{n8Oh?h>Ls!m|qR}C})A* zh@iGaj^B<798fXZaZ*U!H&g?#Vqwpjlm^B$%%Bj&j0HzLt!eRzkw~cD5HMA#8x6ph zIO@3g_~hXTLw-`oB$ffIMzt`#*~(g@l$A{xn{k%%CAfxxEXJ`>6-EF_L=?$`7&BQq z`KAJ8Dw0G}8w;kAn)f0FK~YiY=5vgS2d>}>Wi2BW=Znc*MMFhc+Cc%B#n%aDu}($; zfdwN%X_m+XNWdrjILeYMCD0>qtRVv-*54xCq@gasA_*w0DNIb#YbK;h0tIqh3hr(? zk_<*Numx)cB0w2gm}{0Y9?D1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1737647098 + + b826724f6eacd7eca5855c3dd7188615911bfe3c2b5207c8ae4fb764df1df891 + 54f69e45129a816944382927df2ef4c40f2e9bde200fe611347a06cee3355f69 + + 1737647097 + 1971 + 10187 + + + afac32044944a09d9c850d23d915237306c4525f3475aa32ce3e3b754d4e411d + 95370f202653f33b030b17538ed7ba923293a0f116f39226d75109f8e6982836 + + 1737647097 + 1472 + 12539 + + + 6b8f920394c7c55b0ccda1ed635ae41c9f28f0483271d05fd28f37ad70aadd77 + c97d5edc4b8e3268c4f68de1d6f28fe61bcd1533db526a162bfa3b2408153d08 + + 1737647097 + 1421 + 8169 + + + 4a94c427ecd5f1d7f23ccc757c1951cafb0ea837d37ec6f48418455122f73bc4 + 9e7c28c4b3f2b9c70d11608d285682d4bd1bc152f610bf00a61f5bafa4e8c2d4 + + 1737647098 + 4375 + 106496 + 10 + + + 334aaee30abde04d58ba1a7520b37061d0f9e72d3bad5cc1983dd1ed617942c0 + 01595d997b0f4bed2bfbf83e5f8bbcc725df979c914785f89188c09c58c0695e + + 1737647098 + 3685 + 36864 + 10 + + + daeaa0460be890a1cea55c9a9a74d893e8533629f654e8e4566a4882da2930dc + 3086378fda26566995ad86aa41550f411306d23824040a76ac68e2d63bb1d055 + + 1737647098 + 2815 + 32768 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/repositories/systemsmanagement:/Uyuni:/Stable:/openSUSE_Leap_15-Uyuni-Client-Tools/openSUSE_Leap_15.0/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1734692223 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1734692223 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1734692223 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1734692223 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1734692223 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1734692223 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1734692223 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-security/main/binary-amd64/Packages.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-security/main/binary-amd64/Packages.gz new file mode 100644 index 0000000000000000000000000000000000000000..da22d148a4d45af9a5098cc7cf1e90b332a42a25 GIT binary patch literal 29 dcmb2|=HNK4_co1zIUq4PJ25@An1PuA1^{}01}Fdk literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-updates/main/binary-amd64/Packages.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy-updates/main/binary-amd64/Packages.gz new file mode 100644 index 0000000000000000000000000000000000000000..bb59da6392d40bc5185e12c31c2413894a5ab50e GIT binary patch literal 29 dcmb2|=HS?^_co1zIUq4PJ25@An1PuA1^{_e1{?qY literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy/main/binary-amd64/Packages.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/ubuntu/dists/jammy/main/binary-amd64/Packages.gz new file mode 100644 index 0000000000000000000000000000000000000000..580b280aed60673a739a04dd26a1660f0e22593f GIT binary patch literal 29 dcmb2|=HO`1dz;3<9FUltotU0l%)rb50|0Z71>pby literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/backports/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819611 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819611 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819611 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819611 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819611 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819611 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819611 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/non-oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819617 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819617 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819617 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819617 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819617 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819617 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819617 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/oss/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819620 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819620 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819620 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819620 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819620 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819620 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819620 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f-primary.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..9d78448d427e7d34117e6ffe0bb48d08534b1025 GIT binary patch literal 1337 zcmV-91;+Y9T4*&fL0KkKSt;Swn*avJfBygf|N83p|LTAL{^-B||9CdQ1b{#S0Wd&7 z0T2KfPz7E`VA^4#fE7x^B{XR!X#;AF9-3+DX{qQ<>YLQm@c`0c1Jqz60ku!n2ABz^ zn1j)zH~;_u0000000000000000F=r^6#YcmO&WTbnE(I`BSxAHFoBVi)HDaAdV!&# zqeDi6fB*mh0000000000000002_Xao0%;hb>TO1V13&-|P#&fr7(f66Oq)~EHj^9B znFDr!Roj>fk`TFUB#@3RKrZI%ED$Rp#F7xEz?GG77l_J*h#WwHW^PoNt67JH@B+t@ zg$AW8tSxF7AD4c%U)AN~?r!1NocXt6SHk(9<(sL}Ng_<=-)fdD7qn>k=~I`&?Z^2o zXw#ccWh!t@sUsTKv8FuPYO>DMfJ=ACB{hl2^1JMM6`>%3#?Nz`s5@g>-DBdOF#-?@ zn`RV5n`+Waoqx)mZ#Ke#3KR(uN@dbiPPg{v>(!-4TO44-Qx!P)@Tp;zq3sCL!VZD< zu(G!~ByXT(49NikJ(d#nfa3pqA6!lIm7#2R#Rf=Na2NTl>z|kSm-1N z2l?2y8bfh4YJ&^VX426=DdD0a2K2QOkQT5hQeS!tK(MlmRnRbqL2OFPCn$;_(<)AM zqD18=h=@YzY|NuUfM@K!qCGZ*0?gKL2ZCZSh(k8)HcY0o!pI>>dV&U!gdre>KVqy0 z6CYkn(M7j5y!kft{c7e@)TuwqgM;qdoGkw1+DD9wYs5g3KzKWJNLM}F^aK_a$Vf<{ zyWfjmzO{I;A&M&4bUoGJ_1A_7YRhD=S5e<)w(g7C$GRhjg90LK1M>jIw218P&w#zUqW|{|kK~HRnH6>_u%Oqnusn>i z8iD}6fH-uP{=kdCpzAy6L97<64(SV7(aCm9{g-}I8ugh$#9Xn&7LsJHoZYO;-<1Ya_66Kmox1-GjVXMif&10-CV zRuxiJ+W{n-X*9$TlT5s2Koo`vIO*BOVW@+3of|pCT%cT#HNEUyF>qwQk^@O<#v8UG zLnxDE#(H~G;E&cWciX8ufV|kiwPKxS+ikX+O|guvPC#xC@I#BV0-L(bYgwR>EKmlf v5Ns7(gU>@Zw$2AR&Yw4%K7RW-4k`ufy4#-oMSuYS|Ha&qP81{xcy(sLeC|!q literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae-primary.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e7d0510cf7ad48e0b600beebe54c96034aa9f68 GIT binary patch literal 134 zcmb2|=3oE==GL>0e9a01tQYn!SJRQ#D_^7h)-`v3py zY$}8EZ}kftJruirfk(_2$29Ks&r7NgSeV!byY)+kJ}rufDDspKK06aMW literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8-other.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..90755e0c79ecdbc529e51c1872202127a97ba686 GIT binary patch literal 580 zcmV-K0=xY}T4*&fL0KkKSwh22_S|LXt${Ncav-)Nu!LIMCV0ssL3 z00=+<-Pv~?G&Gtiqa@L_4?!`c#9)R^7={F40KiP1lh8sSra^)LXaE2j0B8UJ000^h zG9f0@Q_^9kk*BB_0F4F+W+-3{4Kxq|B@;taO-v!60QCSg0009(4H{{n(V--aXYfZl z5Q)M_EwD%BAgLqcdVz>S6f6++2mzr?MiCecV*=vB3bn#zCSsiJy#w%-TP?9d{iFcG zoXe=WqcY3k6%=K&4Uqx70h}?uSg0(GG&?T*p>ZJ zJd`szh}E6xlZk))qhQ%K*)=hh#SkY*;t>SE^g#%y0$h>G*J9o6rcR&DCwTTa{}JH$ z6+#7xPby7F1{z_bJY!x%&OOYOjX}_g{V)+TiB&8rtfQDj6374rg)&VJ{}MPWqs}rB z!D1`B$FW#tsYgUDK<8^wK}L30vpiy8<^+!k)}czssamy97ic6;aK;7*MBzA6vbEN^ zRcY1Ks&KEgt)=vl#`-btK$@8^&hEi8o($Fv@e*W{wUR8Yc?rK__+AtQT7R5!yy1k? zNpZD^3?W9k2}Wz947{ODUepvQ83IG^())4D3Z)tKu-69cX;8T`2q)$#5L}g`s3M9* zWq^WLVmmOUgA#0wCZ^QemqkU%SAl~NIvIl^Z8d(fR?Ze^y7D0H0RTkMFi>kX@Cgeh SvXBx-_`8xR!i0hr9HNlFnETNH literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f-filelists.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..40471d4c2cf86b45008bc3efd7e82ca3d7d21c17 GIT binary patch literal 123 zcmb2|=3oE=X4f8TzGed+hjKr`%6upD5WyQ3j4}t5^tN)a2`+#1BPHwk_srkf-Os$! zAH~|(5=}#UmuG%xFTj%E{#q}wgDcdI|Ik{f>alERE&%ukv;#bRMq-+6e&N-7>oX literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c-filelists.sqlite.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..83c799794526348091690c46df4ce5431d9067a7 GIT binary patch literal 606 zcmV-k0-^mvT4*&fL0KkKS(z*ag#ZD*|Jwi4z>2_af9n75{Ncav-)JBJKmtH80stZi zKmq)nU=aipQy@>(F$a`rFakEFnHy1%WO@Q*U?xn513{)kO&Sq0MG!!NgxVr6+CIGdQGX28V^L!c_EY3Xgx=$(@!R#dYdUM zqc+4vEC_}4As-e%YNZ!tjxV{fOWh50An0Ad z9J6}}p5+dBh!g1OhUUuTWANH$ABb6jnG>i?zkL#n44-8rXuGBXXiBX*de||dRU7G; zFQ{Kh@GUpOZUNj&e}jh>FIv=>^(=_V<;K{R9;0fEN(rfdJ$B+sUDc}WoYBMYww`lq zl1rDGd%4QBMUjDZ3}J4A%r}rldSV@^e5cmeZYlrkEAz?0DX($=cm&DW(YsSVRo) si!BO literal 0 HcmV?d00001 diff --git a/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz b/testsuite/dockerfiles/server-all-in-one-dev/mirror/update/leap/15.5/sle/repodata/ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6-other.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..89d6635dbfe9e439c0f818c0b205765541977647 GIT binary patch literal 123 zcmb2|=3oE=X4^A{e9ZD1UsiNuqU2(JBg-E=wLhEI>CReVEI)6G&$lA08KK|JA4#diUR&O(`@2P2`>%+d a+!?>ePQvN&j&UFEZ!!N`XmY+1XeR&$;W5 + + 1726819603 + + 1cb61ea996355add02b1426ed4c1780ea75ce0c04c5d1107c025c3fbd7d8bcae + e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f + + 1726819602 + 134 + 167 + + + 95a4415d859d7120efb6b3cf964c07bebbff9a5275ca673e6e74a97bcbfb2a5f + bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310 + + 1726819602 + 123 + 125 + + + ef3e20691954c3d1318ec3071a982da339f4ed76967ded668b795c9e070aaab6 + e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc + + 1726819602 + 123 + 121 + + + 15f48f2468bb83e693bc7cca826979327546863680965cd43735f146e8187e2f + 3c556248a85f90ffd8dd54105240638c48a5ddc81d98fd184e4613c46a002276 + + 1726819603 + 1337 + 106496 + 10 + + + bbe7310d4f4a8a6e619ffdcc82603bdb701c32a70a5327ab9f5d7e31e4607d9c + f5f6518ea3ef8e7ae5f74a85db4c8eb6362fc3ac7f5b78653ef78d2d37342a09 + + 1726819603 + 606 + 28672 + 10 + + + 79b58e6ee2e2bb92fce1adbf9c5507a9ad3b5ffd85cf15cac58f82f6d80b7cf8 + ae5996be68fa4422603c7c6c9a7ff498871b7d3ab7ec1e051e9919f5b53c8d46 + + 1726819603 + 580 + 24576 + 10 + + diff --git a/testsuite/dockerfiles/ubuntu-minion/Dockerfile b/testsuite/dockerfiles/ubuntu-minion/Dockerfile index c251fa15cc6d..806bc7bf716d 100644 --- a/testsuite/dockerfiles/ubuntu-minion/Dockerfile +++ b/testsuite/dockerfiles/ubuntu-minion/Dockerfile @@ -1,10 +1,11 @@ FROM ubuntu:22.04 RUN echo "deb [trusted=yes] http://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Stable:/Ubuntu2204-Uyuni-Client-Tools/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/uyuni-tools.list RUN apt-get update && \ + apt-get -y install ca-certificates && \ apt-get -y install venv-salt-minion openssh-server openssh-client hostname iproute2 libopenscap8 scap-security-guide-ubuntu udev dmidecode tar \ prometheus-node-exporter prometheus-apache-exporter prometheus-postgres-exporter prometheus-exporter-exporter prometheus-apache-exporter prometheus-node-exporter && \ apt-get clean -RUN echo "deb [trusted=yes] https://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Test-Packages:/Pool/deb/ /" > /etc/apt/sources.list.d/test_repo_deb_pool.list +RUN echo "deb [trusted=yes] http://download.opensuse.org/repositories/systemsmanagement:/Uyuni:/Test-Packages:/Pool/deb/ /" > /etc/apt/sources.list.d/test_repo_deb_pool.list RUN mkdir /run/sshd COPY etc_pam.d_sshd /etc/pam.d/sshd CMD ssh-keygen -A && /usr/sbin/sshd -De diff --git a/testsuite/podman_runner/14_run_salt_rhlike_minion.sh b/testsuite/podman_runner/14_run_salt_rhlike_minion.sh index 1d0a4e87a5ed..94b8092db0b3 100755 --- a/testsuite/podman_runner/14_run_salt_rhlike_minion.sh +++ b/testsuite/podman_runner/14_run_salt_rhlike_minion.sh @@ -9,7 +9,6 @@ sudo -i podman run --privileged --rm -d --network network -p 9092:9090 -v /tmp/r # sleep 10 sudo -i podman exec rhlike_minion bash -c "ssh-keygen -A && /usr/sbin/sshd -e" sudo -i podman exec rhlike_minion bash -c "if [ ! -d /root/.ssh ];then mkdir /root/.ssh/;chmod 700 /root/.ssh;fi;cp /tmp/authorized_keys /root/.ssh/" -# sudo -i podman exec -d rhlike_minion prometheus sudo -i podman exec -d rhlike_minion node_exporter sudo -i podman exec -d rhlike_minion prometheus-apache_exporter sudo -i podman exec -d -e DATA_SOURCE_NAME="postgresql://user:passwd@localhost:5432/database?sslmode=disable" rhlike_minion prometheus-postgres_exporter From 87d34e2adc713eb7b4f5993a60bef88ff4293580 Mon Sep 17 00:00:00 2001 From: Jordi Massaguer Pla Date: Wed, 18 Dec 2024 13:43:53 +0000 Subject: [PATCH 19/28] CI: use HOSTNAME variable since hostname is not installed in the server container Signed-off-by: Jordi Massaguer Pla --- testsuite/features/support/remote_node.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/features/support/remote_node.rb b/testsuite/features/support/remote_node.rb index 9bb6fe87e6bf..91227b93d61e 100644 --- a/testsuite/features/support/remote_node.rb +++ b/testsuite/features/support/remote_node.rb @@ -28,7 +28,7 @@ def initialize(host, port: 22) @target = ENV.fetch(ENV_VAR_BY_HOST[@host], nil).to_s.strip # Remove /etc/motd, or any output from run will contain the content of /etc/motd ssh('rm -f /etc/motd && touch /etc/motd', host: @target) unless @host == 'localhost' - out, _err, _code = ssh('hostname', host: @target) + out, _err, _code = ssh('echo $HOSTNAME', host: @target) @hostname = out.strip raise LoadError, "We can't connect to #{@host} through SSH." if @hostname.empty? From 5a4b309f517aa05c826c3f5f30aea98a257e145c Mon Sep 17 00:00:00 2001 From: Jordi Massaguer Pla Date: Tue, 28 Jan 2025 09:57:19 +0000 Subject: [PATCH 20/28] CI: remove mgrctl from server This should not be installed in the server container, or the testsuite 'thinks' this is the host. Signed-off-by: Jordi Massaguer Pla --- testsuite/podman_runner/08_start_server.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testsuite/podman_runner/08_start_server.sh b/testsuite/podman_runner/08_start_server.sh index 570f7e4a14a3..bba26363b101 100755 --- a/testsuite/podman_runner/08_start_server.sh +++ b/testsuite/podman_runner/08_start_server.sh @@ -66,3 +66,7 @@ sudo -i podman run --cap-add AUDIT_CONTROL --rm \ ghcr.io/$UYUNI_PROJECT/uyuni/ci-test-server-all-in-one-dev:$UYUNI_VERSION sudo -i podman exec -d server prometheus +# mgrctl should not be installed in this container +sudo -i podman exec server bash -c "rm -f /usr/bin/mgrctl" + + From f0c97433a8f0f150f853798afb0f273662316b78 Mon Sep 17 00:00:00 2001 From: Konstantinos Tsamis Date: Wed, 22 Jan 2025 12:41:33 +0100 Subject: [PATCH 21/28] Remove refresh in testsuite --- testsuite/features/secondary/min_cve_audit.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/testsuite/features/secondary/min_cve_audit.feature b/testsuite/features/secondary/min_cve_audit.feature index 8a3a42e3e339..13eb4abfcfd8 100644 --- a/testsuite/features/secondary/min_cve_audit.feature +++ b/testsuite/features/secondary/min_cve_audit.feature @@ -91,7 +91,6 @@ Feature: CVE Audit on SLE Salt Minions And I follow "Patches" in the content area And I enter "milkyway" as the filtered synopsis And I click on the filter button - And I wait until I see "milkyway-dummy-2345" text, refreshing the page And I check "milkyway-dummy-2345" in the list And I click on "Apply Patches" And I click on "Confirm" From 7c8c48973df880a753f9e0c0287723c902c63578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= Date: Tue, 28 Jan 2025 08:49:05 +0100 Subject: [PATCH 22/28] Don't call taskomatic when creating the first org. Creating the first organization schedules a mgr-sync-refresh bunch using the taskomatic API. However this is now done in the setup container that has a short life. Only adding the bunch schedule in the database to let it be picked when taskomatic starts later. --- .../rhn/manager/org/CreateOrgCommand.java | 17 ++--- .../redhat/rhn/taskomatic/TaskoFactory.java | 74 +++++++++++++++++++ .../rhn/taskomatic/TaskoXmlRpcHandler.java | 36 +-------- java/spacewalk-java.changes.cbosdo.ci-fix | 1 + 4 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 java/spacewalk-java.changes.cbosdo.ci-fix diff --git a/java/code/src/com/redhat/rhn/manager/org/CreateOrgCommand.java b/java/code/src/com/redhat/rhn/manager/org/CreateOrgCommand.java index 5e0ee1d21dfb..0ac089d22f26 100644 --- a/java/code/src/com/redhat/rhn/manager/org/CreateOrgCommand.java +++ b/java/code/src/com/redhat/rhn/manager/org/CreateOrgCommand.java @@ -25,14 +25,16 @@ import com.redhat.rhn.domain.user.User; import com.redhat.rhn.manager.kickstart.crypto.CreateCryptoKeyCommand; import com.redhat.rhn.manager.user.CreateUserCommand; -import com.redhat.rhn.taskomatic.TaskomaticApi; -import com.redhat.rhn.taskomatic.TaskomaticApiException; +import com.redhat.rhn.taskomatic.NoSuchBunchTaskException; +import com.redhat.rhn.taskomatic.TaskoFactory; import com.suse.manager.webui.services.SaltStateGeneratorService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.quartz.SchedulerException; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -164,7 +166,6 @@ public ValidatorError[] store() { CryptoKey ssl = KickstartFactory.lookupCryptoKey("RHN-ORG-TRUSTED-SSL-CERT", defaultOrg); if (ssl != null && ssl.isSSL()) { - // TODO log.debug("Found a SSL key for the default org to copy: {}", ssl.getId()); CreateCryptoKeyCommand createCryptoKey = new CreateCryptoKeyCommand(createdOrg); @@ -177,15 +178,13 @@ public ValidatorError[] store() { ChannelFamilyFactory.lookupOrCreatePrivateFamily(createdOrg); if (firstOrg) { - Map params = new HashMap<>(); + Map params = new HashMap<>(); params.put("noRepoSync", "true"); try { - new TaskomaticApi().scheduleSingleSatBunch(newUser, - "mgr-sync-refresh-bunch", params); + TaskoFactory.addSingleBunchRun(null, "mgr-sync-refresh-bunch", params, new Date()); } - catch (TaskomaticApiException e) { - log.error("Problem when running Taskomatic mgr-sync-refresh job: {}", e.getMessage()); - // FIXME: return validator error ? + catch (NoSuchBunchTaskException | SchedulerException e) { + log.error("Failed to schedule mgr-sync-refresh job: {}", e.getMessage()); } } return null; diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java index b2ff8fe0bf96..c88cb5f4cfed 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java @@ -15,7 +15,10 @@ package com.redhat.rhn.taskomatic; +import static org.quartz.TriggerKey.triggerKey; + import com.redhat.rhn.common.hibernate.HibernateFactory; +import com.redhat.rhn.taskomatic.core.SchedulerKernel; import com.redhat.rhn.taskomatic.domain.TaskoBunch; import com.redhat.rhn.taskomatic.domain.TaskoRun; import com.redhat.rhn.taskomatic.domain.TaskoSchedule; @@ -503,4 +506,75 @@ public static List listRepoSyncSchedulesNewerThan(Date date) { return singleton.listObjectsByNamedQuery("TaskoSchedule.listNewerThanByBunch", Map.of("bunch_id", bunch.getId(), "date", date)); } + + protected static TaskoBunch checkBunchName(Integer orgId, String bunchName) throws NoSuchBunchTaskException { + TaskoBunch bunch; + if (orgId == null) { + bunch = TaskoFactory.lookupSatBunchByName(bunchName); + } + else { + bunch = TaskoFactory.lookupOrgBunchByName(bunchName); + } + if (bunch == null) { + throw new NoSuchBunchTaskException(bunchName); + } + return bunch; + } + + /** + * Get a unique label single job. + * + * @param orgId the organisation ID for the job + * @param bunchName the bunch name + * @return the unique job label + * + * @throws SchedulerException in case of internal scheduler error + * * * + * @throws SchedulerException in case of internal scheduler error + */ + protected static String getUniqueSingleJobLabel(Integer orgId, String bunchName) throws SchedulerException { + String jobLabel = "single-" + bunchName + "-"; + int count = 0; + while (!TaskoFactory.listSchedulesByOrgAndLabel(orgId, jobLabel + count).isEmpty() || + (SchedulerKernel.getScheduler() != null && SchedulerKernel.getScheduler() + .getTrigger(triggerKey(jobLabel + count, TaskoQuartzHelper.getGroupName(orgId))) != null)) { + count++; + } + return jobLabel + count; + } + + /** + * Create a new single bunch run in the database. + * + * @param orgId the organization ID + * @param bunchName the bunch name + * @param params the job parameters + * @param start the start date of the job + * @throws NoSuchBunchTaskException if the bunchName doesn't refer to an existing bunch + * @throws SchedulerException for internal scheduler errors + */ + public static void addSingleBunchRun(Integer orgId, String bunchName, Map params, Date start) + throws NoSuchBunchTaskException, SchedulerException { + TaskoBunch bunch = checkBunchName(orgId, bunchName); + String jobLabel = getUniqueSingleJobLabel(null, bunchName); + List taskoSchedules = TaskoFactory.listScheduleByLabel(jobLabel); + + TaskoSchedule schedule; + if (taskoSchedules.isEmpty()) { + // create schedule + schedule = new TaskoSchedule(orgId, bunch, jobLabel, params, start, null, null); + } + else { + // update existing schedule + schedule = taskoSchedules.get(0); + schedule.setBunch(bunch); + schedule.setDataMap(params); + schedule.setActiveFrom(start); + } + // Don't set active till until the job it actually runs. + schedule.setActiveTill(null); + TaskoFactory.save(schedule); + HibernateFactory.commitTransaction(); + log.info("Schedule created for {}.", jobLabel); + } } diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java index e133df558658..f5ab7d64bbb4 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java @@ -202,7 +202,7 @@ public Date scheduleSatBunch(String bunchName, String jobLabel, private TaskoBunch doBasicCheck(Integer orgId, String bunchName, String jobLabel) throws NoSuchBunchTaskException, InvalidParamException, SchedulerException { - TaskoBunch bunch = checkBunchName(orgId, bunchName); + TaskoBunch bunch = TaskoFactory.checkBunchName(orgId, bunchName); isAlreadyScheduled(orgId, jobLabel); return bunch; } @@ -307,7 +307,7 @@ public List scheduleRuns(String bunchName, String jobLabel, List scheduleRuns(Integer orgId, String bunchName, String jobLabel, List> paramsList) - throws NoSuchBunchTaskException, InvalidParamException { + throws NoSuchBunchTaskException { List scheduleDates = new ArrayList<>(); - TaskoBunch bunch = checkBunchName(orgId, bunchName); + TaskoBunch bunch = TaskoFactory.checkBunchName(orgId, bunchName); for (Map params : paramsList) { String label = getJobLabel(params, jobLabel); @@ -454,33 +453,6 @@ public Date scheduleSingleSatBunchRun(String bunchName, Map params) return scheduleSingleBunchRun(null, bunchName, params, new Date()); } - private String getUniqueSingleJobLabel(Integer orgId, String bunchName) throws SchedulerException { - String jobLabel = "single-" + bunchName + "-"; - int count = 0; - while (!TaskoFactory.listSchedulesByOrgAndLabel(orgId, jobLabel + count) - .isEmpty() || - (SchedulerKernel.getScheduler() - .getTrigger(triggerKey(jobLabel + count, - TaskoQuartzHelper.getGroupName(orgId))) != null)) { - count++; - } - return jobLabel + count; - } - - private TaskoBunch checkBunchName(Integer orgId, String bunchName) throws NoSuchBunchTaskException { - TaskoBunch bunch = null; - if (orgId == null) { - bunch = TaskoFactory.lookupSatBunchByName(bunchName); - } - else { - bunch = TaskoFactory.lookupOrgBunchByName(bunchName); - } - if (bunch == null) { - throw new NoSuchBunchTaskException(bunchName); - } - return bunch; - } - /** * lists all organizational schedules * @param orgId organization id diff --git a/java/spacewalk-java.changes.cbosdo.ci-fix b/java/spacewalk-java.changes.cbosdo.ci-fix new file mode 100644 index 000000000000..17676884f819 --- /dev/null +++ b/java/spacewalk-java.changes.cbosdo.ci-fix @@ -0,0 +1 @@ +- Don't require taskomatic during the setup From 064627eb795036ee2095e105a6730852fa58e577 Mon Sep 17 00:00:00 2001 From: Marina Latini Date: Wed, 29 Jan 2025 15:41:03 +0100 Subject: [PATCH 23/28] Automatic commit of package [spacewalk-java] release [5.1.8-0]. --- java/spacewalk-java.changes | 6 ++++++ java/spacewalk-java.changes.cbosdo.ci-fix | 1 - java/spacewalk-java.spec | 2 +- rel-eng/packages/spacewalk-java | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) delete mode 100644 java/spacewalk-java.changes.cbosdo.ci-fix diff --git a/java/spacewalk-java.changes b/java/spacewalk-java.changes index baedd9d0c5a8..ff4428ba311c 100644 --- a/java/spacewalk-java.changes +++ b/java/spacewalk-java.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jan 29 15:40:55 CET 2025 - marina.latini@suse.com + +- version 5.1.8-0 + * Don't require taskomatic during the setup + ------------------------------------------------------------------- Fri Jan 24 14:20:49 CET 2025 - marina.latini@suse.com diff --git a/java/spacewalk-java.changes.cbosdo.ci-fix b/java/spacewalk-java.changes.cbosdo.ci-fix deleted file mode 100644 index 17676884f819..000000000000 --- a/java/spacewalk-java.changes.cbosdo.ci-fix +++ /dev/null @@ -1 +0,0 @@ -- Don't require taskomatic during the setup diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec index 68c6326e7dcb..9d58a5b75720 100644 --- a/java/spacewalk-java.spec +++ b/java/spacewalk-java.spec @@ -57,7 +57,7 @@ %endif Name: spacewalk-java -Version: 5.1.7 +Version: 5.1.8 Release: 0 Summary: Java web application files for Spacewalk License: GPL-2.0-only diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java index 82a518bd32e2..94773de80e16 100644 --- a/rel-eng/packages/spacewalk-java +++ b/rel-eng/packages/spacewalk-java @@ -1 +1 @@ -5.1.7-0 java/ +5.1.8-0 java/ From 3e363060325763ccc04bccdeaba3b21c833681b7 Mon Sep 17 00:00:00 2001 From: Eric Bischoff Date: Thu, 30 Jan 2025 16:30:05 +0100 Subject: [PATCH 24/28] Temporary workaround: do not check events on build host --- testsuite/features/init_clients/buildhost_bootstrap.feature | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testsuite/features/init_clients/buildhost_bootstrap.feature b/testsuite/features/init_clients/buildhost_bootstrap.feature index 7d70933a04bf..593ab3980512 100644 --- a/testsuite/features/init_clients/buildhost_bootstrap.feature +++ b/testsuite/features/init_clients/buildhost_bootstrap.feature @@ -53,6 +53,10 @@ Feature: Bootstrap a build host via the GUI Then I should see a "[Container Build Host]" text Then I should see a "[OS Image Build Host]" text +# WORKAROUND +# Remove the skip tag when this PR is merged: +# https://github.com/uyuni-project/uyuni/pull/9707 +@skip Scenario: Check events history for failures on SLES build host Given I am on the Systems overview page of this "build_host" Then I check for failed events on history event page From d3317c6564270449ef822188ff16cb781b3fdd15 Mon Sep 17 00:00:00 2001 From: Ondrej Holecek Date: Thu, 30 Jan 2025 14:03:34 +0100 Subject: [PATCH 25/28] Copy generated CA rpms instead of moving them moving the file from container space to volume preserve SELinux context category (MCS) which them prevents access to them after container restart. Copying it stores the file with correct context. --- spacewalk/certs-tools/gen-rpm.sh | 4 ++-- .../spacewalk-certs-tools.changes.oholecek.copy-generated-rpm | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 spacewalk/certs-tools/spacewalk-certs-tools.changes.oholecek.copy-generated-rpm diff --git a/spacewalk/certs-tools/gen-rpm.sh b/spacewalk/certs-tools/gen-rpm.sh index f39f839fd25e..39f3d78e5a71 100755 --- a/spacewalk/certs-tools/gen-rpm.sh +++ b/spacewalk/certs-tools/gen-rpm.sh @@ -348,6 +348,6 @@ RPMOPTS="--define \"_topdir $RPM_BUILD_DIR\"\ eval "rpmbuild -ta $RPMOPTS --clean $RPM_BUILD_DIR/$TARBALL" || exit 1 -mv $RPM_BUILD_DIR/$ARCH/$NAME-$VERSION-$RELEASE.$ARCH.rpm . -mv $RPM_BUILD_DIR/$NAME-$VERSION-$RELEASE.src.rpm . +cp $RPM_BUILD_DIR/$ARCH/$NAME-$VERSION-$RELEASE.$ARCH.rpm . +cp $RPM_BUILD_DIR/$NAME-$VERSION-$RELEASE.src.rpm . rm -rf $RPM_BUILD_DIR diff --git a/spacewalk/certs-tools/spacewalk-certs-tools.changes.oholecek.copy-generated-rpm b/spacewalk/certs-tools/spacewalk-certs-tools.changes.oholecek.copy-generated-rpm new file mode 100644 index 000000000000..755764b41c26 --- /dev/null +++ b/spacewalk/certs-tools/spacewalk-certs-tools.changes.oholecek.copy-generated-rpm @@ -0,0 +1,2 @@ +- Copy generated CA rpms instead of moving them to prevent + SELinux context category issues From 72c759a23d6cb43473748a3781208778bfd7cce7 Mon Sep 17 00:00:00 2001 From: Karl Tarvas Date: Fri, 31 Jan 2025 11:05:35 +0100 Subject: [PATCH 26/28] Migrate proxy settings to React, fix input bugs and async issues (bsc#1235527) (#9644) --- .../strings/java/StringResource_en_US.xml | 2 +- .../admin/AdminViewsController.java | 18 +++ .../controllers/admin/templates/proxy.jade | 14 ++ .../com/suse/manager/webui/menu/MenuTree.java | 2 +- .../pages/admin/setup/proxy-settings.jsp | 60 -------- java/code/webapp/WEB-INF/struts-config.xml | 11 -- .../spacewalk-java.changes.eth.proxy-settings | 1 + web/html/javascript/spacewalk-essentials.js | 15 -- ...susemanager-setup-wizard-proxy-settings.js | 114 -------------- .../src/components/input/ControlledInput.tsx | 29 ++++ web/html/src/components/input/InputBase.tsx | 4 +- web/html/src/components/input/check/Check.tsx | 3 +- web/html/src/components/input/form/Form.tsx | 10 +- web/html/src/components/input/radio/Radio.tsx | 7 +- web/html/src/components/input/range/Range.tsx | 5 +- web/html/src/components/input/text/Text.tsx | 4 +- web/html/src/components/panels/Panel.tsx | 4 +- .../src/components/utils/loading/Loading.tsx | 6 +- web/html/src/imports.d.ts | 1 + web/html/src/manager/admin/index.ts | 1 + .../src/manager/admin/list-payg/list-payg.tsx | 57 +------ .../manager/admin/setup/products/products.tsx | 58 +------ .../admin/setup/proxy}/http-proxy.png | Bin .../admin/setup/proxy/proxy-settings.ts | 5 + .../admin/setup/proxy/proxy.renderer.tsx | 23 +++ .../src/manager/admin/setup/proxy/proxy.tsx | 143 ++++++++++++++++++ .../admin/setup/proxy/verification.tsx | 68 +++++++++ .../src/manager/admin/setup/setup-header.tsx | 47 ++++++ web/html/src/manager/index.ts | 4 +- web/html/src/package.json | 1 + .../src/vendors/npm.licenses.structured.js | 2 +- web/html/src/vendors/npm.licenses.txt | 7 + web/html/src/yarn.lock | 5 + web/spacewalk-web.changes.eth.proxy-settings | 1 + web/spacewalk-web.spec | 2 +- 35 files changed, 406 insertions(+), 328 deletions(-) create mode 100644 java/code/src/com/suse/manager/webui/controllers/admin/templates/proxy.jade delete mode 100644 java/code/webapp/WEB-INF/pages/admin/setup/proxy-settings.jsp create mode 100644 java/spacewalk-java.changes.eth.proxy-settings delete mode 100644 web/html/javascript/susemanager-setup-wizard-proxy-settings.js create mode 100644 web/html/src/components/input/ControlledInput.tsx rename web/html/src/{branding/img => manager/admin/setup/proxy}/http-proxy.png (100%) create mode 100644 web/html/src/manager/admin/setup/proxy/proxy-settings.ts create mode 100644 web/html/src/manager/admin/setup/proxy/proxy.renderer.tsx create mode 100644 web/html/src/manager/admin/setup/proxy/proxy.tsx create mode 100644 web/html/src/manager/admin/setup/proxy/verification.tsx create mode 100644 web/html/src/manager/admin/setup/setup-header.tsx create mode 100644 web/spacewalk-web.changes.eth.proxy-settings diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml index 196ea84874ea..308b2c287156 100644 --- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml +++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml @@ -5165,7 +5165,7 @@ user before attempting to deactivate their account. - You have just created your first @@PRODUCT_NAME@@ user. To finalize your installation please use the <a href="/rhn/admin/setup/ProxySettings.do">Setup Wizard</a>. + You have just created your first @@PRODUCT_NAME@@ user. To finalize your installation please use the <a href="/rhn/manager/admin/setup/proxy">Setup Wizard</a>. Navigation Menu diff --git a/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java b/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java index 63350ddf558e..b0959f0b5492 100644 --- a/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java +++ b/java/code/src/com/suse/manager/webui/controllers/admin/AdminViewsController.java @@ -24,6 +24,8 @@ import com.redhat.rhn.domain.cloudpayg.PaygSshData; import com.redhat.rhn.domain.cloudpayg.PaygSshDataFactory; import com.redhat.rhn.domain.user.User; +import com.redhat.rhn.manager.setup.ProxySettingsDto; +import com.redhat.rhn.manager.setup.ProxySettingsManager; import com.redhat.rhn.taskomatic.TaskomaticApi; import com.suse.manager.admin.PaygAdminManager; @@ -72,6 +74,8 @@ public static void initRoutes(JadeTemplateEngine jade) { withUserPreferences(withCsrfToken(withOrgAdmin(AdminViewsController::createPayg))), jade); get("/manager/admin/setup/payg/:id", withUserPreferences(withCsrfToken(withOrgAdmin(AdminViewsController::showPayg))), jade); + get("/manager/admin/setup/proxy", + withUserPreferences(withCsrfToken(withOrgAdmin(AdminViewsController::showProxy))), jade); } /** @@ -136,4 +140,18 @@ public static ModelAndView showPayg(Request request, Response response, User use } return new ModelAndView(data, "controllers/admin/templates/payg.jade"); } + + /** + * Show proxy tab. + * @param request http request + * @param response http response + * @param user current user + * @return the view to show + */ + public static ModelAndView showProxy(Request request, Response response, User user) { + Map data = new HashMap<>(); + ProxySettingsDto proxySettings = ProxySettingsManager.getProxySettings(); + data.put("proxySettings", GSON.toJson(proxySettings)); + return new ModelAndView(data, "controllers/admin/templates/proxy.jade"); + } } diff --git a/java/code/src/com/suse/manager/webui/controllers/admin/templates/proxy.jade b/java/code/src/com/suse/manager/webui/controllers/admin/templates/proxy.jade new file mode 100644 index 000000000000..6452e96f905c --- /dev/null +++ b/java/code/src/com/suse/manager/webui/controllers/admin/templates/proxy.jade @@ -0,0 +1,14 @@ +include /templates/common.jade + +#proxy + +script(type='text/javascript'). + window.csrfToken = "#{csrf_token}"; + +script(type='text/javascript'). + spaImportReactPage('admin/setup/proxy') + .then(function(module) { + module.renderer('proxy', { + proxySettings: !{proxySettings} + }); + }); diff --git a/java/code/src/com/suse/manager/webui/menu/MenuTree.java b/java/code/src/com/suse/manager/webui/menu/MenuTree.java index bbda519ced07..82da94c63f9f 100644 --- a/java/code/src/com/suse/manager/webui/menu/MenuTree.java +++ b/java/code/src/com/suse/manager/webui/menu/MenuTree.java @@ -406,7 +406,7 @@ private MenuItem getAdminNode(Map adminRoles) { .addChild(new MenuItem("Setup Wizard") .withVisibility(adminRoles.get("satellite")) .addChild(new MenuItem("HTTP Proxy") - .withPrimaryUrl("/rhn/admin/setup/ProxySettings.do")) + .withPrimaryUrl("/rhn/manager/admin/setup/proxy")) .addChild(new MenuItem("Mirror Credentials") .withPrimaryUrl("/rhn/admin/setup/MirrorCredentials.do")) .addChild(new MenuItem("Products") diff --git a/java/code/webapp/WEB-INF/pages/admin/setup/proxy-settings.jsp b/java/code/webapp/WEB-INF/pages/admin/setup/proxy-settings.jsp deleted file mode 100644 index d51f5bd61dc6..000000000000 --- a/java/code/webapp/WEB-INF/pages/admin/setup/proxy-settings.jsp +++ /dev/null @@ -1,60 +0,0 @@ -<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %> - - - - - -
- - Setup Wizard - - -
-
-
-
-
-
- -
-

- -
-
-
- -
-

- -
-
-
- -
-

- -
-
-
-
- -
-
- -
-
- - diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml index 102176eaffbd..859e562bfec7 100644 --- a/java/code/webapp/WEB-INF/struts-config.xml +++ b/java/code/webapp/WEB-INF/struts-config.xml @@ -7872,17 +7872,6 @@ - - - - - -
'); - } else { - jQuery('#http-proxy-verify').html(''); - } -} - -// verify the proxy settings on the server side, pass true to refresh the cache -function verifyProxySettings(forceRefresh) { - showSpinner('http-proxy-verify'); - ajax('verify-proxy-settings', { forceRefresh }, setProxySettingsVerified, 'application/json') -} - -// just sets the given settings in the form -function setProxySettings(settings) { - jQuery('#http-proxy-input-hostname').val(settings.hostname); - jQuery('p.http-proxy-hostname').html(settings.hostname); - - jQuery('#http-proxy-input-username').val(settings.username); - jQuery('p.http-proxy-username').html(settings.username); - - if (settings.hostname) { - jQuery('p.http-proxy-password').html(Array(8).join('●')); - } else { - jQuery('p.http-proxy-password').html(""); - } -} - -// Sets the spinner, retrieves the settings from the server -// and puts them in the UI, which ends in an editable form -// if there is no proxy set -function retrieveProxySettings() { - showSpinner('http-proxy-verify'); - - function onSuccess(settings) { - setProxySettings(settings); - - if (settings.hostname) { - verifyProxySettings(false); - } else { - setProxySettingsEditable(true); - } - } - - ajax('retrieve-proxy-settings', '', onSuccess, 'application/json') -} - -// Switches the proxy settings into an (non)editable form -function setProxySettingsEditable(editable) { - if (editable) { - jQuery('#http-proxy form p.form-control-static').hide(); - jQuery('#http-proxy form input.form-control').show(0); - jQuery('#http-proxy-edit').hide(0); - jQuery('#http-proxy-verify').hide(0); - jQuery('#http-proxy-save').show(0); - } else { - jQuery('#http-proxy form input.form-control').hide(); - jQuery('#http-proxy form p.form-control-static').show(0); - jQuery('#http-proxy-edit').show(0); - jQuery('#http-proxy-verify').show(0); - jQuery('#http-proxy-save').hide(0); - } -} - -// only relevant for the proxy settings -jQuery(document).ready(function() { - // set the edit button callback - jQuery('#http-proxy-edit').on("click", function() { - setProxySettingsEditable(true); - }); - - // set the save button callback - jQuery('#http-proxy-save').on("click", function() { - saveProxySettings(); - }); - - jQuery('#http-proxy-verify').on("click", function() { - verifyProxySettings(true); - }); - - setProxySettingsEditable(false); - retrieveProxySettings(); -}); diff --git a/web/html/src/components/input/ControlledInput.tsx b/web/html/src/components/input/ControlledInput.tsx new file mode 100644 index 000000000000..902ffe3ad8b6 --- /dev/null +++ b/web/html/src/components/input/ControlledInput.tsx @@ -0,0 +1,29 @@ +import { InputHTMLAttributes, useEffect, useState } from "react"; + +/** + * @deprecated This is a placeholder fix to ensure input values are always set synchronously. + * This is obsolete once we integrate Formik instead, see https://github.com/SUSE/spacewalk/issues/14250 + * and other related tickets for related info. + */ +export const ControlledInput = (props: InputHTMLAttributes) => { + const { value, ...rest } = props; + + const [internalValue, setInternalValue] = useState(value); + + useEffect(() => { + if (props.value !== internalValue) { + setInternalValue(props.value); + } + }, [props.value]); + + return ( + { + setInternalValue(event.target.value); + props.onChange?.(event); + }} + /> + ); +}; diff --git a/web/html/src/components/input/InputBase.tsx b/web/html/src/components/input/InputBase.tsx index cf4f649cbca3..0c3910f2c7eb 100644 --- a/web/html/src/components/input/InputBase.tsx +++ b/web/html/src/components/input/InputBase.tsx @@ -70,6 +70,8 @@ export type InputBaseProps = { * Takes a name and a value parameter. */ onChange?: (name: string | undefined, value: ValueType) => void; + + autoComplete?: string; }; type State = { @@ -265,7 +267,7 @@ export class InputBase extends React.Component 0) { - hints.push(
); + hints.push(
); } hints.push(hint); } diff --git a/web/html/src/components/input/check/Check.tsx b/web/html/src/components/input/check/Check.tsx index ef78bc7c3a19..bd99ce2543a0 100644 --- a/web/html/src/components/input/check/Check.tsx +++ b/web/html/src/components/input/check/Check.tsx @@ -1,5 +1,6 @@ import * as React from "react"; +import { ControlledInput } from "../ControlledInput"; import { FormContext } from "../form/Form"; import { InputBase, InputBaseProps } from "../InputBase"; @@ -28,7 +29,7 @@ export function Check(props: Props) { return (