From: Sanziana Voicu <sanzi.vo...@yahoo.com> Signed-off-by: Sanziana Voicu <sanzi.vo...@yahoo.com> --- meta-cgl-common/classes/cgl-calc.bbclass | 21 ++++ .../recipes-cgl/corosync/corosync_1.4.7.bb | 7 +- .../recipes-cgl/pacemaker/pacemaker_1.1.13.bb | 7 +- scripts/script.py | 117 +++++++++++++++++++++ 4 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 meta-cgl-common/classes/cgl-calc.bbclass create mode 100755 scripts/script.py
diff --git a/meta-cgl-common/classes/cgl-calc.bbclass b/meta-cgl-common/classes/cgl-calc.bbclass new file mode 100644 index 0000000..81660d6 --- /dev/null +++ b/meta-cgl-common/classes/cgl-calc.bbclass @@ -0,0 +1,21 @@ + +do_cgl_calc() { + NO_COMPLY="NO" + if [ -z "${CGL_ID}" ]; then + echo "${NO_COMPLY}" > calculator.txt + else + echo "${CGL_ID}" > calculator.txt + fi + if [ -z "${PRIORITY}" ]; then + echo "${NO_COMPLY}" >> calculator.txt + else + echo "${PRIORITY}" >> calculator.txt + fi + if [ -z "${DISCLOSURE}" ]; then + echo "${NO_COMPLY}" >> calculator.txt + else + echo "${DISCLOSURE}" >> calculator.txt + fi +} + +addtask cgl_calc after do_fetch before do_build diff --git a/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb b/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb index 019a2f4..98b75e6 100644 --- a/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb +++ b/meta-cgl-common/recipes-cgl/corosync/corosync_1.4.7.bb @@ -4,7 +4,7 @@ several default APIs and libraries, default configuration files, and an init \ script." HOMEPAGE = "http://corosync.github.io/corosync/" -inherit autotools pkgconfig update-rc.d useradd +inherit autotools pkgconfig update-rc.d useradd cgl-calc SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BPN}-${PV}.tar.gz \ file://groff-desc-path.patch \ @@ -58,3 +58,8 @@ USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "haclient" USERADD_PARAM_${PN} = "-M --home ${localstatedir}/lib/heartbeat -g haclient hacluster" +CGL_ID="CFH.2.0,CCM.2.2" +PRIORITY="P1,P1" +DISCLOSURE="${PN},${PN}" + + diff --git a/meta-cgl-common/recipes-cgl/pacemaker/pacemaker_1.1.13.bb b/meta-cgl-common/recipes-cgl/pacemaker/pacemaker_1.1.13.bb index d2e2395..84c8c84 100755 --- a/meta-cgl-common/recipes-cgl/pacemaker/pacemaker_1.1.13.bb +++ b/meta-cgl-common/recipes-cgl/pacemaker/pacemaker_1.1.13.bb @@ -26,7 +26,7 @@ SRC_URI = "https://github.com/ClusterLabs/${PN}/archive/Pacemaker-${PV}.zip \ SRC_URI[md5sum] = "d84a5173306727a981a4f87e36007595" SRC_URI[sha256sum] = "e963bc59a5d98a3e3441ea5cccb42aa67f9d7934b80c8818e19ae91c5da48331" -inherit autotools-brokensep pkgconfig systemd python-dir useradd +inherit autotools-brokensep pkgconfig systemd python-dir useradd cgl-calc S="${WORKDIR}/pacemaker-Pacemaker-${PV}" @@ -90,3 +90,8 @@ SYSTEMD_SERVICE_${PN}-remote += "pacemaker_remote.service" USERADD_PACKAGES = "${PN}" USERADD_PARAM_${PN} = "-r -g haclient -s ${base_sbindir}/nologin hacluster" GROUPADD_PARAM_${PN} = "-r haclient" + +CGL_ID="AVL.25.0,CAF.2.1,CAF.2.2" +PRIORITY="P1,P1,P1" +DISCLOSURE="${PN},${PN},${PN}" + diff --git a/scripts/script.py b/scripts/script.py new file mode 100755 index 0000000..e033fa4 --- /dev/null +++ b/scripts/script.py @@ -0,0 +1,117 @@ +#!/usr/bin/python + +import os, sys + +# The value represents the total number of P! requirements available +# inside the CGL 5.0 template +p1_reqs = 113 +files_no = 0 +cnt = 0 +nr = 0 + +def compliance_calc(reqs_len): + number_p1=0; + for i in range(0,reqs_len): + number_p1=number_p1+1 + procent=float(number_p1)/p1_reqs*100. + print "CGL compliance: %.2f%%" % procent + +build_dir = os.environ.get('BUILDDIR') +if not build_dir: + print "Source the build environment before executing this script!" + sys.exit(1) +director = build_dir + "/tmp/work" + +def populate_compl(content, files): + temp = content.split('\n') + global cnt + + for j in range(0, len(temp[0].split(",")) ): + ID[cnt] = temp[0].split(",")[j] + P[cnt] = temp[1].split(",")[j] + D[cnt] = temp[2].split(",")[j] + + if ID[cnt].split('.')[0] == "AVL": + shadow[cnt]=1 + if ID[cnt].split('.')[0] == "CFH": + shadow[cnt]=2 + if ID[cnt].split('.')[0] == "CSM": + shadow[cnt]=3 + if ID[cnt].split('.')[0] == "CCM": + shadow[cnt]=4 + if ID[cnt].split('.')[0] == "CAF": + shadow[cnt]=5 + if ID[cnt].split('.')[0] == "CDIAG": + shadow[cnt]=6 + if ID[cnt].split('.')[0] == "SMM": + shadow[cnt]=7 + if ID[cnt].split('.')[0] == "SPM": + shadow[cnt]=8 + if ID[cnt].split('.')[0] == "SFA": + shadow[cnt]=9 + if ID[cnt].split('.')[0] == "PRF": + shadow[cnt]=10 + if ID[cnt].split('.')[0] == "STD": + shadow[cnt]=12 + if ID[cnt].split('.')[0] == "SEC": + shadow[cnt]=13 + if ID[cnt].split('.')[0] == "PMS": + shadow[cnt]=14 + cnt=cnt+1 + +def sort_reqs(): + for i in range(0, nr-1): + for j in range(i+1, nr): + if shadow[i] > shadow[j]: + aux=shadow[i] + shadow[i]=shadow[j] + shadow[j]=aux + aux=ID[i] + ID[i]=ID[j] + ID[j]=aux + aux=P[i] + P[i]=P[j] + P[j]=aux + aux=D[i] + D[i]=D[j] + D[j]=aux; + else: + if shadow[i]==shadow[j]: + if ID[i]>ID[j]: + aux=shadow[i] + shadow[i]=shadow[j] + shadow[j]=aux + aux=ID[i] + ID[i]=ID[j] + ID[j]=aux + aux=P[i] + P[i]=P[j] + P[j]=aux + aux=D[i] + D[i]=D[j] + D[j]=aux + +for root, dirs, files in os.walk(director): + for file in files: + if file == "calculator.txt" : + files_no = files_no + 1 + + f = open(os.path.join(root, file)) + temp = f.read().split('\n') + nr=nr+len(temp[1].split(",")) + +ID = [None] * nr +P = [None] * nr +D = [None] * nr +shadow = [0] * nr + +for root, dirs, files in os.walk(director): + for file in files: + if file == "calculator.txt" : + f = open(os.path.join(root, file)) + content=f.read() + populate_compl(content, files_no) + f.close() + +sort_reqs() +compliance_calc(nr) -- 2.5.0 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto