forked from sig_core/toolkit
finish wrapper, start repoclosure
This commit is contained in:
parent
550526f535
commit
fc227c947e
@ -50,4 +50,31 @@
|
|||||||
has_modules:
|
has_modules:
|
||||||
- 'AppStream'
|
- 'AppStream'
|
||||||
- 'CRB'
|
- 'CRB'
|
||||||
|
repoclosure_map:
|
||||||
|
BaseOS: []
|
||||||
|
AppStream:
|
||||||
|
- BaseOS
|
||||||
|
CRB:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
HighAvailability:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
ResilientStorage:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
RT:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
NFV:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
SAP:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
- HighAvailability
|
||||||
|
SAPHANA:
|
||||||
|
- BaseOS
|
||||||
|
- AppStream
|
||||||
|
- HighAvailability
|
||||||
...
|
...
|
||||||
|
@ -1,18 +1,57 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# This is intended for doing "full" syncs, not periodic update syncs.
|
# This script can be called to do single syncs or full on syncs.
|
||||||
|
|
||||||
from common import *
|
|
||||||
import argparse
|
import argparse
|
||||||
|
from common import *
|
||||||
from util import Checks
|
from util import Checks
|
||||||
from util import RepoSync
|
from util import RepoSync
|
||||||
|
|
||||||
rlvars = rldict['9']
|
#rlvars = rldict['9']
|
||||||
|
#r = Checks(rlvars, config['arch'])
|
||||||
|
#r.check_valid_arch()
|
||||||
|
|
||||||
|
# Start up the parser baby
|
||||||
|
parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
|
||||||
|
|
||||||
|
# All of our options
|
||||||
|
parser.add_argument('--release', type=str, help="Major Release Version", required=True)
|
||||||
|
parser.add_argument('--repo', type=str, help="Repository name")
|
||||||
|
parser.add_argument('--arch', type=str, help="Architecture")
|
||||||
|
parser.add_argument('--ignore-debug', action='store_true')
|
||||||
|
parser.add_argument('--ignore-source', action='store_true')
|
||||||
|
parser.add_argument('--repoclosure', action='store_true')
|
||||||
|
parser.add_argument('--skip-all', action='store_true')
|
||||||
|
parser.add_argument('--dry-run', action='store_true')
|
||||||
|
parser.add_argument('--full-run', action='store_true')
|
||||||
|
parser.add_argument('--no-fail', action='store_true')
|
||||||
|
# I am aware this is confusing, I want podman to be the default option
|
||||||
|
parser.add_argument('--simple', action='store_false')
|
||||||
|
parser.add_argument('--logger', type=str)
|
||||||
|
|
||||||
|
# Parse them
|
||||||
|
results = parser.parse_args()
|
||||||
|
|
||||||
|
rlvars = rldict[results.release]
|
||||||
r = Checks(rlvars, config['arch'])
|
r = Checks(rlvars, config['arch'])
|
||||||
r.check_valid_arch()
|
r.check_valid_arch()
|
||||||
|
|
||||||
a = RepoSync(rlvars, config, major="9", repo="ResilientStorage", parallel=True, ignore_debug=False, ignore_source=False)
|
# Send them and do whatever I guess
|
||||||
|
a = RepoSync(
|
||||||
|
rlvars,
|
||||||
|
config,
|
||||||
|
major=results.release,
|
||||||
|
repo=results.repo,
|
||||||
|
arch=results.arch,
|
||||||
|
ignore_debug=results.ignore_debug,
|
||||||
|
ignore_source=results.ignore_source,
|
||||||
|
repoclosure=results.repoclosure,
|
||||||
|
skip_all=results.skip_all,
|
||||||
|
parallel=results.simple,
|
||||||
|
dryrun=results.dry_run,
|
||||||
|
fullrun=results.full_run,
|
||||||
|
nofail=results.no_fail,
|
||||||
|
logger=results.logger
|
||||||
|
)
|
||||||
|
|
||||||
a.run()
|
a.run()
|
||||||
#a.generate_conf()
|
|
||||||
#somedir = a.generate_compose_dirs()
|
|
||||||
#print(a.sync())
|
|
||||||
|
16
iso/py/sync-from-peridot-test
Executable file
16
iso/py/sync-from-peridot-test
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# This is a testing script to ensure the RepoSync class is working as intended.
|
||||||
|
|
||||||
|
from common import *
|
||||||
|
import argparse
|
||||||
|
from util import Checks
|
||||||
|
from util import RepoSync
|
||||||
|
|
||||||
|
rlvars = rldict['9']
|
||||||
|
r = Checks(rlvars, config['arch'])
|
||||||
|
r.check_valid_arch()
|
||||||
|
|
||||||
|
a = RepoSync(rlvars, config, major="9", repo="ResilientStorage", parallel=True, ignore_debug=False, ignore_source=False)
|
||||||
|
#a = RepoSync(rlvars, config, major="9", repo="ResilientStorage", parallel=True, ignore_debug=False, ignore_source=False, fullrun=True)
|
||||||
|
a.run()
|
@ -34,10 +34,11 @@ class RepoSync:
|
|||||||
major,
|
major,
|
||||||
repo=None,
|
repo=None,
|
||||||
arch=None,
|
arch=None,
|
||||||
ignore_debug=False,
|
ignore_debug: bool = False,
|
||||||
ignore_source=False,
|
ignore_source: bool = False,
|
||||||
skip_all=False,
|
repoclosure: bool = False,
|
||||||
parallel=False,
|
skip_all: bool = False,
|
||||||
|
parallel: bool = False,
|
||||||
dryrun: bool = False,
|
dryrun: bool = False,
|
||||||
fullrun: bool = False,
|
fullrun: bool = False,
|
||||||
nofail: bool = False,
|
nofail: bool = False,
|
||||||
@ -50,6 +51,7 @@ class RepoSync:
|
|||||||
self.ignore_debug = ignore_debug
|
self.ignore_debug = ignore_debug
|
||||||
self.ignore_source = ignore_source
|
self.ignore_source = ignore_source
|
||||||
self.skip_all = skip_all
|
self.skip_all = skip_all
|
||||||
|
self.repoclosure = repoclosure
|
||||||
# Enables podman syncing, which should effectively speed up operations
|
# Enables podman syncing, which should effectively speed up operations
|
||||||
self.parallel = parallel
|
self.parallel = parallel
|
||||||
# Relevant config items
|
# Relevant config items
|
||||||
@ -74,6 +76,9 @@ class RepoSync:
|
|||||||
if 'container' in rlvars and len(rlvars['container']) > 0:
|
if 'container' in rlvars and len(rlvars['container']) > 0:
|
||||||
self.container = rlvars['container']
|
self.container = rlvars['container']
|
||||||
|
|
||||||
|
if 'repoclosure_map' in rlvars and len(rlvars['repoclosure_map']) > 0:
|
||||||
|
self.repoclosure_map = rlvars['repoclosure_map']
|
||||||
|
|
||||||
self.staging_dir = os.path.join(
|
self.staging_dir = os.path.join(
|
||||||
config['staging_root'],
|
config['staging_root'],
|
||||||
config['category_stub'],
|
config['category_stub'],
|
||||||
@ -153,6 +158,12 @@ class RepoSync:
|
|||||||
)
|
)
|
||||||
sync_root = self.compose_latest_sync
|
sync_root = self.compose_latest_sync
|
||||||
|
|
||||||
|
# Verify if the link even exists
|
||||||
|
if not os.path.exists(self.compose_latest_dir):
|
||||||
|
self.log.error('!! Latest compose link is broken does not exist: %s' % self.compose_latest_dir)
|
||||||
|
self.log.error('!! Please perform a full run if you have not done so.')
|
||||||
|
raise SystemExit()
|
||||||
|
|
||||||
log_root = os.path.join(
|
log_root = os.path.join(
|
||||||
work_root,
|
work_root,
|
||||||
"logs"
|
"logs"
|
||||||
@ -167,6 +178,9 @@ class RepoSync:
|
|||||||
if self.fullrun:
|
if self.fullrun:
|
||||||
self.symlink_to_latest()
|
self.symlink_to_latest()
|
||||||
|
|
||||||
|
if self.repoclosure:
|
||||||
|
self.repoclosure_work(sync_root, work_root, log_root)
|
||||||
|
|
||||||
def sync(self, repo, sync_root, work_root, log_root, arch=None):
|
def sync(self, repo, sync_root, work_root, log_root, arch=None):
|
||||||
"""
|
"""
|
||||||
Calls out syncing of the repos. We generally sync each component of a
|
Calls out syncing of the repos. We generally sync each component of a
|
||||||
@ -369,13 +383,19 @@ class RepoSync:
|
|||||||
for r in repos_to_sync:
|
for r in repos_to_sync:
|
||||||
entry_name_list = []
|
entry_name_list = []
|
||||||
repo_name = r
|
repo_name = r
|
||||||
|
arch_sync = arches_to_sync
|
||||||
|
|
||||||
if r in self.repo_renames:
|
if r in self.repo_renames:
|
||||||
repo_name = self.repo_renames[r]
|
repo_name = self.repo_renames[r]
|
||||||
|
|
||||||
for a in arches_to_sync:
|
|
||||||
# There should be a check here that if it's "all" and multilib
|
|
||||||
# is on, i686 should get synced too.
|
|
||||||
|
|
||||||
|
if 'all' in r and 'x86_64' in arches_to_sync and self.multilib:
|
||||||
|
arch_sync.append('i686')
|
||||||
|
|
||||||
|
# There should be a check here that if it's "all" and multilib
|
||||||
|
# is on, i686 should get synced too.
|
||||||
|
|
||||||
|
for a in arch_sync:
|
||||||
entry_name = '{}-{}'.format(r, a)
|
entry_name = '{}-{}'.format(r, a)
|
||||||
debug_entry_name = '{}-debug-{}'.format(r, a)
|
debug_entry_name = '{}-debug-{}'.format(r, a)
|
||||||
|
|
||||||
@ -471,7 +491,7 @@ class RepoSync:
|
|||||||
"--download-metadata --repoid={}-source -p {} "
|
"--download-metadata --repoid={}-source -p {} "
|
||||||
"--norepopath | tee -a {}/{}-source-{}.log").format(
|
"--norepopath | tee -a {}/{}-source-{}.log").format(
|
||||||
self.dnf_config,
|
self.dnf_config,
|
||||||
repo_name,
|
r,
|
||||||
source_sync_path,
|
source_sync_path,
|
||||||
log_root,
|
log_root,
|
||||||
repo_name,
|
repo_name,
|
||||||
@ -704,6 +724,9 @@ class RepoSync:
|
|||||||
)
|
)
|
||||||
return cmd
|
return cmd
|
||||||
|
|
||||||
|
def repoclosure_work(self, sync_root, work_root, log_root):
|
||||||
|
pass
|
||||||
|
|
||||||
class SigRepoSync:
|
class SigRepoSync:
|
||||||
"""
|
"""
|
||||||
This helps us do reposync operations for SIG's. Do not use this for the
|
This helps us do reposync operations for SIG's. Do not use this for the
|
||||||
|
@ -44,7 +44,7 @@ for x in "${ARCHES[@]}"; do
|
|||||||
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}"
|
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}"
|
||||||
ret_val=$?
|
ret_val=$?
|
||||||
if [ "$ret_val" -eq 0 ]; then
|
if [ "$ret_val" -eq 0 ]; then
|
||||||
createrepo --update "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}" \
|
createrepo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}" \
|
||||||
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
|
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
|
||||||
--workers 8
|
--workers 8
|
||||||
sed -i '/<open-size><\/open-size>/d' \
|
sed -i '/<open-size><\/open-size>/d' \
|
||||||
|
Loading…
Reference in New Issue
Block a user