start python conversion
This commit is contained in:
parent
7602ae1a44
commit
b0bd9a8367
4
iso/py/.gitignore
vendored
Normal file
4
iso/py/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
*.so
|
19
iso/py/README.md
Normal file
19
iso/py/README.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
iso
|
||||||
|
===
|
||||||
|
|
||||||
|
scripts
|
||||||
|
-------
|
||||||
|
|
||||||
|
* sync-variant-pungi
|
||||||
|
* sync-variant-peridot
|
||||||
|
* sync-all-pungi
|
||||||
|
* sync-all-peridot
|
||||||
|
* sync-sig
|
||||||
|
* build-all-iso
|
||||||
|
* sign-repos-only
|
||||||
|
|
||||||
|
wrappers
|
||||||
|
--------
|
||||||
|
|
||||||
|
* lorax-generators
|
||||||
|
* sync-generators
|
57
iso/py/common.py
Normal file
57
iso/py/common.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# All imports are here
|
||||||
|
import platform
|
||||||
|
import time
|
||||||
|
import glob
|
||||||
|
import rpm
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
# These are a bunch of colors we may use in terminal output
|
||||||
|
class Color:
|
||||||
|
RED = '\033[91m'
|
||||||
|
GREEN = '\033[92m'
|
||||||
|
PURPLE = '\033[95m'
|
||||||
|
CYAN = '\033[96m'
|
||||||
|
DARKCYAN = '\033[36m'
|
||||||
|
BLUE = '\033[94m'
|
||||||
|
YELLOW = '\033[93m'
|
||||||
|
UNDERLINE = '\033[4m'
|
||||||
|
BOLD = '\033[1m'
|
||||||
|
END = '\033[0m'
|
||||||
|
|
||||||
|
# vars and additional checks
|
||||||
|
#RLVER = rpm.expandMacro('%rhel')
|
||||||
|
RLVER = '9'
|
||||||
|
rldict = {}
|
||||||
|
arch = platform.machine()
|
||||||
|
|
||||||
|
# Importing the config from yaml
|
||||||
|
for conf in glob.iglob('configs/*.yaml'):
|
||||||
|
with open(conf, 'r', encoding="utf-8") as file:
|
||||||
|
rldict.update(yaml.safe_load(file))
|
||||||
|
|
||||||
|
# The system needs to be a RHEL-like system. It cannot be Fedora or SuSE.
|
||||||
|
#if "%rhel" in RLVER:
|
||||||
|
# raise SystemExit(Color.BOLD + 'This is not a RHEL-like system.' + Color.END
|
||||||
|
# + '\n\nPlease verify you are running on a RHEL-like system that is '
|
||||||
|
# 'not Fedora nor SuSE. This means that the %rhel macro will be '
|
||||||
|
# 'defined with a value equal to the version you are targetting. RHEL'
|
||||||
|
# ' and its derivatives have this set.')
|
||||||
|
|
||||||
|
# Generic rlvars for the particular EL release we're on. This does not have to
|
||||||
|
# be used. A different one can be assigned based on script need.
|
||||||
|
rlvars = rldict[RLVER]
|
||||||
|
|
||||||
|
# Is our arch allowed for this particular release? Some previous releases do
|
||||||
|
# not support ppc or s390x
|
||||||
|
if arch not in rlvars['allowed_arches']:
|
||||||
|
raise SystemExit(Color.BOLD + 'This architecture is not supported.'
|
||||||
|
+ Color.END + '\n\nEnsure that the architecture you are building '
|
||||||
|
'for is supported for this compose process.')
|
||||||
|
|
||||||
|
date_stamp = time.strftime("%Y%m%d", time.localtime())
|
||||||
|
COMPOSE_ROOT = "/mnt/compose/" + RLVER
|
||||||
|
COMPOSE_ISO_WORKDIR = COMPOSE_ROOT + "work/" + arch + "/" + date_stamp
|
||||||
|
STAGING_ROOT = "/mnt/repos-staging"
|
||||||
|
PRODUCTION_ROOT = "/mnt/repos-production"
|
||||||
|
CATEGORY_STUB = "/mirror/pub/rocky"
|
||||||
|
REVISION = rlvars['revision'] + '-' + rlvars['rclvl']
|
45
iso/py/configs/el8.yaml
Normal file
45
iso/py/configs/el8.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
'8':
|
||||||
|
revision: '8.6'
|
||||||
|
rclvl: 'RC2'
|
||||||
|
allowed_arches:
|
||||||
|
- x86_64
|
||||||
|
- aarch64
|
||||||
|
provide_multilib: False
|
||||||
|
repo_url_list: []
|
||||||
|
required_packages:
|
||||||
|
- 'lorax'
|
||||||
|
- 'genisoimage'
|
||||||
|
- 'isomd5sum'
|
||||||
|
symlink_refs:
|
||||||
|
devel: 'Devel'
|
||||||
|
NFV: 'nfv'
|
||||||
|
all_repos:
|
||||||
|
- 'BaseOS'
|
||||||
|
- 'AppStream'
|
||||||
|
- 'HighAvailability'
|
||||||
|
- 'ResilientStorage'
|
||||||
|
- 'PowerTools'
|
||||||
|
- 'RT'
|
||||||
|
- 'NFV'
|
||||||
|
- 'extras'
|
||||||
|
- 'devel'
|
||||||
|
- 'plus'
|
||||||
|
- 'rockyrpi'
|
||||||
|
no_comps_or_groups:
|
||||||
|
- 'extras'
|
||||||
|
- 'devel'
|
||||||
|
- 'plus'
|
||||||
|
- 'rockyrpi'
|
||||||
|
comps_or_groups:
|
||||||
|
- 'BaseOS'
|
||||||
|
- 'AppStream'
|
||||||
|
- 'HighAvailability'
|
||||||
|
- 'ResilientStorage'
|
||||||
|
- 'PowerTools'
|
||||||
|
- 'RT'
|
||||||
|
- 'NFV'
|
||||||
|
has_modules:
|
||||||
|
- 'AppStream'
|
||||||
|
- 'PowerTools'
|
||||||
|
...
|
66
iso/py/configs/el9.yaml
Normal file
66
iso/py/configs/el9.yaml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
'9':
|
||||||
|
revision: '9.0'
|
||||||
|
rclvl: 'RC1'
|
||||||
|
allowed_arches:
|
||||||
|
- x86_64
|
||||||
|
- aarch64
|
||||||
|
- ppc64le
|
||||||
|
- s390x
|
||||||
|
provide_multilib: True
|
||||||
|
repo_url_list:
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/all'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/BaseOS'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/AppStream'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/CRB'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/HighAvailability'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/ResilientStorage'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/RT'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/NFV'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/SAP'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/SAPHANA'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/extras'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/devel'
|
||||||
|
- 'https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/plus'
|
||||||
|
required_packages:
|
||||||
|
- 'lorax'
|
||||||
|
- 'genisoimage'
|
||||||
|
- 'isomd5sum'
|
||||||
|
symlink_refs:
|
||||||
|
devel: 'Devel'
|
||||||
|
NFV: 'nfv'
|
||||||
|
renames:
|
||||||
|
all: 'nplb'
|
||||||
|
all_repos:
|
||||||
|
- 'nplb'
|
||||||
|
- 'BaseOS'
|
||||||
|
- 'AppStream'
|
||||||
|
- 'HighAvailability'
|
||||||
|
- 'ResilientStorage'
|
||||||
|
- 'CRB'
|
||||||
|
- 'RT'
|
||||||
|
- 'NFV'
|
||||||
|
- 'SAP'
|
||||||
|
- 'SAPHANA'
|
||||||
|
- 'extras'
|
||||||
|
- 'devel'
|
||||||
|
- 'plus'
|
||||||
|
no_comps_or_groups:
|
||||||
|
- 'nplb'
|
||||||
|
- 'extras'
|
||||||
|
- 'devel'
|
||||||
|
- 'plus'
|
||||||
|
comps_or_groups:
|
||||||
|
- 'BaseOS'
|
||||||
|
- 'AppStream'
|
||||||
|
- 'HighAvailability'
|
||||||
|
- 'ResilientStorage'
|
||||||
|
- 'CRB'
|
||||||
|
- 'RT'
|
||||||
|
- 'NFV'
|
||||||
|
- 'SAP'
|
||||||
|
- 'SAPHANA'
|
||||||
|
has_modules:
|
||||||
|
- 'AppStream'
|
||||||
|
- 'CRB'
|
||||||
|
...
|
6
iso/py/test.py
Normal file
6
iso/py/test.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from common import *
|
||||||
|
|
||||||
|
print(platform.machine())
|
||||||
|
print(arch)
|
38
iso/py/test2.py
Normal file
38
iso/py/test2.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import desert
|
||||||
|
from attrs import define, field
|
||||||
|
import typing as t
|
||||||
|
|
||||||
|
CONFIG = {
|
||||||
|
"8": {
|
||||||
|
"allowed_arches": ["x86_64", "aarch64"],
|
||||||
|
"repo_url_list": ["some", "shit", "here"]
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"allowed_arches": ["x86_64", "aarch64", "ppc64le", "s390x"],
|
||||||
|
"repo_url_list": ["some", "other", "shit", "here"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@define
|
||||||
|
class VersionConfig:
|
||||||
|
allowed_arches: t.List[str] = field()
|
||||||
|
repo_url_list: t.List[str] = field()
|
||||||
|
|
||||||
|
@allowed_arches.validator
|
||||||
|
def check(self, attribute, value):
|
||||||
|
if not all(v in ["x86_64", "aarch64", "ppc64le", "s390x"] for v in value):
|
||||||
|
raise ValueError("Architecture list does not match")
|
||||||
|
|
||||||
|
def new(version):
|
||||||
|
schema = desert.schema(VersionConfig)
|
||||||
|
config = CONFIG[str(version)]
|
||||||
|
return schema.load(config)
|
||||||
|
|
||||||
|
eight = new(8)
|
||||||
|
nine = new(9)
|
||||||
|
|
||||||
|
print(eight)
|
||||||
|
print(eight.allowed_arches)
|
||||||
|
print(nine)
|
Loading…
Reference in New Issue
Block a user