!64 [sync] PR-63: 修改由于二进制包和源码包映射规则不合适导致查询被依赖失败问题

From: @openeuler-sync-bot
Reviewed-by: @solarhu
Signed-off-by: @solarhu
This commit is contained in:
openeuler-ci-bot 2021-09-03 04:03:58 +00:00 committed by Gitee
commit a7ba7f4baf
2 changed files with 855 additions and 1 deletions

View File

@ -0,0 +1,848 @@
diff --git a/packageship/application/initialize/binary.json b/packageship/application/initialize/binary.json
index ebaa681a890a370745fc8a1282b8519fa1d3c734..a3abb5afd41085a83839ef3b2231f7efc4f9658f 100644
--- a/packageship/application/initialize/binary.json
+++ b/packageship/application/initialize/binary.json
@@ -135,18 +135,6 @@
"ignore_above": 256,
"index": false
},
- "relation": {
- "properties": {
- "bin_name": {
- "type": "keyword",
- "ignore_above": 256
- },
- "src_name": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- },
"release": {
"type": "keyword",
"ignore_above": 256
diff --git a/packageship/application/initialize/integration.py b/packageship/application/initialize/integration.py
index f7cd38f6258c3a0f0e05a2d2fea8317e269e2833..788b2f79edcab39a08e4d1094c48027db145c986 100644
--- a/packageship/application/initialize/integration.py
+++ b/packageship/application/initialize/integration.py
@@ -201,20 +201,21 @@ class InitializeService:
"""
sources = []
- for src_pack_name, src_pack in self._src_pack.items():
+ for _, src_pack in self._src_pack.items():
es_json = ESJson()
es_json.update(src_pack)
es_json["requires"] = self._build_requires(
src_pack['pkgKey'])
try:
- for bin_pack in self._bin_pack['sources'].pop(src_pack_name):
+ location_href = src_pack["location_href"].split('/')[-1]
+ for bin_pack in self._bin_pack['sources'].get(location_href):
_subpacks = dict(
name=bin_pack["name"], version=bin_pack["version"])
try:
es_json["subpacks"].append(_subpacks)
except TypeError:
es_json["subpacks"] = [_subpacks]
- except KeyError:
+ except TypeError:
es_json["subpacks"] = None
sources.append(self._es_json("-source", es_json))
helpers.bulk(self._session.client, sources)
@@ -227,6 +228,10 @@ class InitializeService:
binarys = []
be_depends = []
for _, bin_pack in self._bin_pack["packages"].items():
+ bin_pack["src_name"] = self._src_location[bin_pack["src_name"]]["name"]
+ if isinstance(bin_pack["src_name"], ESJson):
+ bin_pack["src_name"] = None
+
be_depends.append(self._be_depend(bin_pack))
es_json = ESJson()
es_json.update(bin_pack)
@@ -275,7 +280,9 @@ class InitializeService:
try:
for require in self._bin_requires.get(provide["name"]):
_bin_pack = self._bin_pack["pkg_key"][require["pkgKey"]]
- _src_pack = self._src_pack[_bin_pack["src_name"]]
+ _src_pack = self._src_location[_bin_pack["src_name"]]
+ if not _src_pack:
+ _src_pack = self._src_pack[_bin_pack["src_name"]]
component_json["install_require"].append({
"req_bin_name": _bin_pack["name"],
"req_bin_version": _bin_pack["version"],
@@ -373,7 +380,7 @@ class InitializeService:
return {
"_index": str(self._repo["dbname"] + index).lower(),
"_type": _type,
- "_source": source
+ "_source": dict(source)
}
def _relation(self, key):
@@ -407,7 +414,6 @@ class InitializeService:
except (KeyError, TypeError):
return build_requires
for src_require in requires:
- src_require["relation"] = self._relation(src_require['name'])
src_require["requires_type"] = "build"
build_requires.append(src_require)
return build_requires
@@ -422,7 +428,6 @@ class InitializeService:
install_requires = list()
try:
for bin_require in self._bin_requires.get(bin_pack['pkgKey']):
- bin_require["relation"] = self._relation(bin_require['name'])
bin_require["requires_type"] = "install"
install_requires.append(bin_require)
@@ -465,6 +470,14 @@ class InitializeService:
self._data.src_pkgkeys[src_pack["pkgKey"]] = src_pack
return self._data.src_pkgkeys
+ @property
+ def _src_location(self):
+ if not self._data.src_location:
+ for _, package in self._src_pack.items():
+ key = package["location_href"].split('/')[-1]
+ self._data["src_location"][key] = package
+ return self._data.src_location
+
@property
def _src_requires(self):
"""
@@ -549,22 +562,16 @@ class InitializeService:
"""
def combination_binary(row_data):
- try:
- src_package_name = None
- _pkgs = row_data.get('rpm_sourcerpm').split(
- '-' + row_data.get('version'))
- if len(_pkgs) != 1:
- src_package_name = ''.join(_pkgs[0:-1])
- except AttributeError:
- src_package_name = None
- row_data["src_name"] = src_package_name
+
+ rpm_sourcerpm = row_data.get('rpm_sourcerpm')
+ row_data["src_name"] = rpm_sourcerpm
self._data[table]['packages'][row_data[key]] = row_data
self._data[table]["pkg_key"][row_data["pkgKey"]] = row_data
- if src_package_name:
- if isinstance(self._data[table]["sources"][src_package_name], ESJson):
- self._data[table]["sources"][src_package_name] = [row_data]
+ if rpm_sourcerpm:
+ if isinstance(self._data[table]["sources"][rpm_sourcerpm], ESJson):
+ self._data[table]["sources"][rpm_sourcerpm] = [row_data]
else:
- self._data[table]["sources"][src_package_name].append(
+ self._data[table]["sources"][rpm_sourcerpm].append(
row_data)
def others(row_data, dict_key):
diff --git a/packageship/application/initialize/source.json b/packageship/application/initialize/source.json
index 5ee3544dd897b0469eee9c109c934221f6e3ba0c..12049bfd110baf885a06ead363ff4609f05ed21c 100644
--- a/packageship/application/initialize/source.json
+++ b/packageship/application/initialize/source.json
@@ -26,18 +26,6 @@
"type": "keyword",
"ignore_above": 256
},
- "relation": {
- "properties": {
- "bin_name": {
- "type": "keyword",
- "ignore_above": 256
- },
- "src_name": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- },
"release": {
"type": "keyword",
"ignore_above": 256
diff --git a/test/cli/init_command/comparison_relation_case/relationship/binary.json b/test/cli/init_command/comparison_relation_case/relationship/binary.json
index 5e202ba4819ad842d8ba5b344ebbf15f851da563..09a87898e08e787b571cfc35122cb0eca4f5251c 100644
--- a/test/cli/init_command/comparison_relation_case/relationship/binary.json
+++ b/test/cli/init_command/comparison_relation_case/relationship/binary.json
@@ -1,230 +1,212 @@
{
- "pkgKey": 35,
- "pkgId": "df487e3623660d477f556899fce77ac650322c4362d82e047c6efc013e07ae5b",
- "name": "Judy",
- "arch": "aarch64",
- "version": "1.0.5",
- "epoch": "0",
- "release": "19.oe1",
- "summary": "C library array",
- "description": "The package provides the most advanced core technology, the main\nadvantages are scalability, high performance and memory efficiency.",
- "url": "http://sourceforge.net/projects/judy/",
- "time_file": 1601219934,
- "time_build": 1601219910,
- "rpm_license": "LGPLv2+",
- "rpm_vendor": "http://openeuler.org",
- "rpm_group": "Unspecified",
- "rpm_buildhost": "obs-worker-0016",
- "rpm_sourcerpm": "Judy-1.0.5-19.oe1.src.rpm",
- "rpm_header_start": 5096,
- "rpm_header_end": 8772,
- "rpm_packager": "http://openeuler.org",
- "size_package": 114276,
- "size_installed": 356971,
- "size_archive": 358048,
- "location_href": "Packages/Judy-1.0.5-19.oe1.aarch64.rpm",
- "location_base": null,
- "checksum_type": "sha256",
- "src_name": "Judy",
- "provides": [
- {
- "name": "Judy",
- "flags": "EQ",
- "epoch": "0",
- "version": "1.0.5",
- "release": "19.oe1",
- "pkgKey": 35
- },
- {
- "name": "Judy(aarch-64)",
- "flags": "EQ",
- "epoch": "0",
- "version": "1.0.5",
- "release": "19.oe1",
- "pkgKey": 35
- },
- {
- "name": "libJudy.so.1()(64bit)",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35
- }
- ],
- "files": [
- {
- "name": "/etc/ima/digest_lists/0-metadata_list-compact-Judy-1.0.5-19.oe1.aarch64",
- "type": "file",
- "pkgKey": 35
- },
- {
- "name": "/etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-Judy-1.0.5-19.oe1.aarch64",
- "type": "file",
- "pkgKey": 35
- }
- ],
- "filelists": [
- {
- "pkgKey": 35,
- "dirname": "/usr/share/licenses",
- "filenames": "Judy",
- "filetypes": "d"
- },
- {
- "pkgKey": 35,
- "dirname": "/usr/share/licenses/Judy",
- "filenames": "COPYING",
- "filetypes": "f"
- },
- {
- "pkgKey": 35,
- "dirname": "/etc/ima/digest_lists.tlv",
- "filenames": "0-metadata_list-compact_tlv-Judy-1.0.5-19.oe1.aarch64",
- "filetypes": "f"
- },
- {
- "pkgKey": 35,
- "dirname": "/usr/lib64",
- "filenames": "libJudy.so.1/libJudy.so.1.0.3",
- "filetypes": "ff"
- },
- {
- "pkgKey": 35,
- "dirname": "/etc/ima/digest_lists",
- "filenames": "0-metadata_list-compact-Judy-1.0.5-19.oe1.aarch64",
- "filetypes": "f"
- }
- ],
- "src_version": "1.0.5",
- "requires": [
- {
- "name": "coreutils",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 14,
- "pre": "FALSE",
- "relation": [{ "bin_name": "coreutils", "src_name": "coreutils" }],
- "requires_type": "build"
- },
- {
- "name": "gawk",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 14,
- "pre": "FALSE",
- "relation": [{ "bin_name": "gawk", "src_name": "gawk" }],
- "requires_type": "build"
- },
- {
- "name": "gcc",
- "flags": "GE",
- "epoch": "0",
- "version": "4.1",
- "release": null,
- "pkgKey": 14,
- "pre": "FALSE",
- "relation": [{ "bin_name": "gcc", "src_name": "gcc" }],
- "requires_type": "build"
- },
- {
- "name": "make",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 14,
- "pre": "FALSE",
- "relation": [{ "bin_name": "make", "src_name": "make" }],
- "requires_type": "build"
- },
- {
- "name": "sed",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 14,
- "pre": "FALSE",
- "relation": [{ "bin_name": "sed", "src_name": "sed" }],
- "requires_type": "build"
- },
- {
- "name": "/bin/sh",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "TRUE",
- "relation": [
- { "bin_name": "bash", "src_name": "bash" },
- { "bin_name": "coreutils", "src_name": "coreutils" }
- ],
- "requires_type": "install"
- },
- {
- "name": "/bin/sh",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "FALSE",
- "relation": [
- { "bin_name": "bash", "src_name": "bash" },
- { "bin_name": "coreutils", "src_name": "coreutils" }
- ],
- "requires_type": "install"
- },
- {
- "name": "ld-linux-aarch64.so.1()(64bit)",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "FALSE",
- "relation": [{ "bin_name": "glibc", "src_name": "glibc" }],
- "requires_type": "install"
- },
- {
- "name": "ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "FALSE",
- "relation": [{ "bin_name": "glibc", "src_name": "glibc" }],
- "requires_type": "install"
- },
- {
- "name": "rtld(GNU_HASH)",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "FALSE",
- "relation": [{ "bin_name": "glibc", "src_name": "glibc" }],
- "requires_type": "install"
- },
- {
- "name": "libc.so.6(GLIBC_2.17)(64bit)",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 35,
- "pre": "FALSE",
- "relation": [{ "bin_name": "glibc", "src_name": "glibc" }],
- "requires_type": "install"
- }
- ]
- }
-
\ No newline at end of file
+ "pkgKey": 35,
+ "pkgId": "df487e3623660d477f556899fce77ac650322c4362d82e047c6efc013e07ae5b",
+ "name": "Judy",
+ "arch": "aarch64",
+ "version": "1.0.5",
+ "epoch": "0",
+ "release": "19.oe1",
+ "summary": "C library array",
+ "description": "The package provides the most advanced core technology, the main\nadvantages are scalability, high performance and memory efficiency.",
+ "url": "http://sourceforge.net/projects/judy/",
+ "time_file": 1601219934,
+ "time_build": 1601219910,
+ "rpm_license": "LGPLv2+",
+ "rpm_vendor": "http://openeuler.org",
+ "rpm_group": "Unspecified",
+ "rpm_buildhost": "obs-worker-0016",
+ "rpm_sourcerpm": "Judy-1.0.5-19.oe1.src.rpm",
+ "rpm_header_start": 5096,
+ "rpm_header_end": 8772,
+ "rpm_packager": "http://openeuler.org",
+ "size_package": 114276,
+ "size_installed": 356971,
+ "size_archive": 358048,
+ "location_href": "Packages/Judy-1.0.5-19.oe1.aarch64.rpm",
+ "location_base": null,
+ "checksum_type": "sha256",
+ "src_name": "Judy",
+ "provides": [
+ {
+ "name": "Judy",
+ "flags": "EQ",
+ "epoch": "0",
+ "version": "1.0.5",
+ "release": "19.oe1",
+ "pkgKey": 35
+ },
+ {
+ "name": "Judy(aarch-64)",
+ "flags": "EQ",
+ "epoch": "0",
+ "version": "1.0.5",
+ "release": "19.oe1",
+ "pkgKey": 35
+ },
+ {
+ "name": "libJudy.so.1()(64bit)",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35
+ }
+ ],
+ "files": [
+ {
+ "name": "/etc/ima/digest_lists/0-metadata_list-compact-Judy-1.0.5-19.oe1.aarch64",
+ "type": "file",
+ "pkgKey": 35
+ },
+ {
+ "name": "/etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-Judy-1.0.5-19.oe1.aarch64",
+ "type": "file",
+ "pkgKey": 35
+ }
+ ],
+ "filelists": [
+ {
+ "pkgKey": 35,
+ "dirname": "/usr/share/licenses",
+ "filenames": "Judy",
+ "filetypes": "d"
+ },
+ {
+ "pkgKey": 35,
+ "dirname": "/usr/share/licenses/Judy",
+ "filenames": "COPYING",
+ "filetypes": "f"
+ },
+ {
+ "pkgKey": 35,
+ "dirname": "/etc/ima/digest_lists.tlv",
+ "filenames": "0-metadata_list-compact_tlv-Judy-1.0.5-19.oe1.aarch64",
+ "filetypes": "f"
+ },
+ {
+ "pkgKey": 35,
+ "dirname": "/usr/lib64",
+ "filenames": "libJudy.so.1/libJudy.so.1.0.3",
+ "filetypes": "ff"
+ },
+ {
+ "pkgKey": 35,
+ "dirname": "/etc/ima/digest_lists",
+ "filenames": "0-metadata_list-compact-Judy-1.0.5-19.oe1.aarch64",
+ "filetypes": "f"
+ }
+ ],
+ "src_version": "1.0.5",
+ "requires": [
+ {
+ "name": "coreutils",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 14,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "gawk",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 14,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "gcc",
+ "flags": "GE",
+ "epoch": "0",
+ "version": "4.1",
+ "release": null,
+ "pkgKey": 14,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "make",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 14,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "sed",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 14,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "/bin/sh",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "TRUE",
+ "requires_type": "install"
+ },
+ {
+ "name": "/bin/sh",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "FALSE",
+ "requires_type": "install"
+ },
+ {
+ "name": "ld-linux-aarch64.so.1()(64bit)",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "FALSE",
+ "requires_type": "install"
+ },
+ {
+ "name": "ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "FALSE",
+ "requires_type": "install"
+ },
+ {
+ "name": "rtld(GNU_HASH)",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "FALSE",
+ "requires_type": "install"
+ },
+ {
+ "name": "libc.so.6(GLIBC_2.17)(64bit)",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 35,
+ "pre": "FALSE",
+ "requires_type": "install"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/test/cli/init_command/comparison_relation_case/relationship/source.json b/test/cli/init_command/comparison_relation_case/relationship/source.json
index 664add83ce8467e7d40d0f0f36676579e68775c6..e09f3cb33648a139e8f0a81ff831a55c83f1270b 100644
--- a/test/cli/init_command/comparison_relation_case/relationship/source.json
+++ b/test/cli/init_command/comparison_relation_case/relationship/source.json
@@ -1,72 +1,74 @@
{
- "pkgKey": 3,
- "pkgId": "a2c8963c6d5bdea8d3c9dc1bfa609db643c5a17077eff4eca21aa6e33ff9d4e5",
- "name": "CUnit",
- "arch": "src",
- "version": "2.1.3",
- "epoch": "0",
- "release": "21.oe1",
- "summary": "A Unit Testing Framework for C",
- "description": "CUnit is a lightweight system for writing, administering, and running unit tests in C\nIt provides C programmers a basic testing functionality with a flexible variety of user\ninterfaces.\n\nCUnit is built as a static library which is linked with the user's testing code. It\nuses a simple framework for building test structures, and provides a rich set of\nassertions for testing common data types. In addition, several different interfaces are\nprovided for running tests and reporting results.",
- "url": "http://cunit.sourceforge.net/",
- "time_file": 1601215538,
- "time_build": 1601215498,
- "rpm_license": "LGPLv2+",
- "rpm_vendor": "http://openeuler.org",
- "rpm_group": "Unspecified",
- "rpm_buildhost": "obs-worker-009",
- "rpm_sourcerpm": "",
- "rpm_header_start": 5096,
- "rpm_header_end": 7552,
- "rpm_packager": "http://openeuler.org",
- "size_package": 523353,
- "size_installed": 516791,
- "size_archive": 517172,
- "location_href": "Packages/CUnit-2.1.3-21.oe1.src.rpm",
- "location_base": null,
- "checksum_type": "sha256",
- "requires": [
- {
- "name": "automake",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 3,
- "pre": "FALSE",
- "relation": [{ "bin_name": "automake", "src_name": "automake" }],
- "requires_type": "build"
- },
- {
- "name": "git",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 3,
- "pre": "FALSE",
- "relation": [
- { "bin_name": "git", "src_name": "git" },
- { "bin_name": "git", "src_name": "git" }
- ],
- "requires_type": "build"
- },
- {
- "name": "libtool",
- "flags": null,
- "epoch": null,
- "version": null,
- "release": null,
- "pkgKey": 3,
- "pre": "FALSE",
- "relation": [{ "bin_name": "libtool", "src_name": "libtool" }],
- "requires_type": "build"
- }
- ],
- "subpacks": [
- { "name": "CUnit", "version": "2.1.3" },
- { "name": "CUnit-devel", "version": "2.1.3" },
- { "name": "CUnit-help", "version": "2.1.3" }
- ]
- }
-
\ No newline at end of file
+ "pkgKey": 3,
+ "pkgId": "a2c8963c6d5bdea8d3c9dc1bfa609db643c5a17077eff4eca21aa6e33ff9d4e5",
+ "name": "CUnit",
+ "arch": "src",
+ "version": "2.1.3",
+ "epoch": "0",
+ "release": "21.oe1",
+ "summary": "A Unit Testing Framework for C",
+ "description": "CUnit is a lightweight system for writing, administering, and running unit tests in C\nIt provides C programmers a basic testing functionality with a flexible variety of user\ninterfaces.\n\nCUnit is built as a static library which is linked with the user's testing code. It\nuses a simple framework for building test structures, and provides a rich set of\nassertions for testing common data types. In addition, several different interfaces are\nprovided for running tests and reporting results.",
+ "url": "http://cunit.sourceforge.net/",
+ "time_file": 1601215538,
+ "time_build": 1601215498,
+ "rpm_license": "LGPLv2+",
+ "rpm_vendor": "http://openeuler.org",
+ "rpm_group": "Unspecified",
+ "rpm_buildhost": "obs-worker-009",
+ "rpm_sourcerpm": "",
+ "rpm_header_start": 5096,
+ "rpm_header_end": 7552,
+ "rpm_packager": "http://openeuler.org",
+ "size_package": 523353,
+ "size_installed": 516791,
+ "size_archive": 517172,
+ "location_href": "Packages/CUnit-2.1.3-21.oe1.src.rpm",
+ "location_base": null,
+ "checksum_type": "sha256",
+ "requires": [
+ {
+ "name": "automake",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 3,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "git",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 3,
+ "pre": "FALSE",
+ "requires_type": "build"
+ },
+ {
+ "name": "libtool",
+ "flags": null,
+ "epoch": null,
+ "version": null,
+ "release": null,
+ "pkgKey": 3,
+ "pre": "FALSE",
+ "requires_type": "build"
+ }
+ ],
+ "subpacks": [
+ {
+ "name": "CUnit",
+ "version": "2.1.3"
+ },
+ {
+ "name": "CUnit-devel",
+ "version": "2.1.3"
+ },
+ {
+ "name": "CUnit-help",
+ "version": "2.1.3"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/test/cli/init_command/comparison_relation_case/test_relationship.py b/test/cli/init_command/comparison_relation_case/test_relationship.py
index 7e389297339217f58438053e472b65030fd76fe2..147bb9823cadd0bfb3aec1dae8c62bf443a9042c 100644
--- a/test/cli/init_command/comparison_relation_case/test_relationship.py
+++ b/test/cli/init_command/comparison_relation_case/test_relationship.py
@@ -11,6 +11,7 @@
# See the Mulan PSL v2 for more details.
# ******************************************************************************/
# -*- coding:utf-8 -*-
+import json
import os
import shutil
from pathlib import Path
diff --git a/test/unpack/compress_files/gz_error.txt b/test/unpack/compress_files/gz_error.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9ea415ee96ce4459710a2c5cab997053cb5c207f
--- /dev/null
+++ b/test/unpack/compress_files/gz_error.txt
@@ -0,0 +1 @@
+gz error file
\ No newline at end of file
diff --git a/test/unpack/compress_files/tar_error.txt b/test/unpack/compress_files/tar_error.txt
new file mode 100644
index 0000000000000000000000000000000000000000..beb36750c7e906599a4765ec8debf914f4c0d035
--- /dev/null
+++ b/test/unpack/compress_files/tar_error.txt
@@ -0,0 +1 @@
+tar file error
\ No newline at end of file
diff --git a/test/unpack/compress_files/xz_error.txt b/test/unpack/compress_files/xz_error.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3fd014f7e5ccf3864da047743a6af767355c4937
--- /dev/null
+++ b/test/unpack/compress_files/xz_error.txt
@@ -0,0 +1 @@
+xz file error
\ No newline at end of file
diff --git a/test/unpack/test_unpack.py b/test/unpack/test_unpack.py
index 64ad3381e58867c83e1c10a9f125341771e2c454..90bcae8dcba6e27375467c292e675e84a64d1e9b 100644
--- a/test/unpack/test_unpack.py
+++ b/test/unpack/test_unpack.py
@@ -34,13 +34,13 @@ class TestUnpack(TestCase):
def test_gz_unpack(self):
"""unpack gz file"""
with self.assertRaises(UnpackError):
- Unpack.dispatch(".gz", file_path=os.path.join(self.path, "bz2_error.txt"),
+ Unpack.dispatch(".gz", file_path=os.path.join(self.path, "gz_error.txt"),
save_file=os.path.join(self.path, "bz2_unpack.sqlite"))
def test_error_tar(self):
"""error tar file"""
with self.assertRaises(IOError):
- Unpack.dispatch(".tar", file_path=os.path.join(self.path, "bz2_error.txt"),
+ Unpack.dispatch(".tar", file_path=os.path.join(self.path, "tar_error.txt"),
save_file=os.path.join(self.path, "bz2_unpack.sqlite"))
def test_tar_unpack(self):
@@ -50,9 +50,14 @@ class TestUnpack(TestCase):
def test_error_zip_unpack(self):
"""unpack error zip file"""
+ file = os.path.join(self.path, "zip_error.txt")
+ with open(file, "w", encoding="utf-8") as f:
+ f.write("error zip file")
with self.assertRaises(IOError):
- Unpack.dispatch(".zip", file_path=os.path.join(self.path, "bz2_error.txt"),
+ Unpack.dispatch(".zip", file_path=file,
save_file=os.path.join(self.path, "zip_file.sqlite"))
+ if os.path.exists(file):
+ os.remove(file)
def test_zip_unpack(self):
"""unpack zip file"""
@@ -64,7 +69,7 @@ class TestUnpack(TestCase):
def test_xz_unpack(self):
"""unpack xz file"""
with self.assertRaises(UnpackError):
- Unpack.dispatch(".xz", file_path=os.path.join(self.path, "bz2_error.txt"),
+ Unpack.dispatch(".xz", file_path=os.path.join(self.path, "xz_error.txt"),
save_file=os.path.join(self.path, "xz.sqlite"))
def test_file_path_none(self):

View File

@ -1,12 +1,13 @@
Name: pkgship
Version: 2.2.0
Release: 3
Release: 4
Summary: Pkgship implements rpm package dependence ,maintainer, patch query and so on.
License: Mulan 2.0
URL: https://gitee.com/openeuler/pkgship
Source0: https://gitee.com/openeuler/pkgship-%{version}.tar.gz
Patch0001: 0001-bugfix-pkginfo.patch
Patch0002: 0002-fix-install-and-start-script-info.patch
Patch0003: 0003-bugfix-binary-name-mapping-source.patch
BuildArch: noarch
@ -112,6 +113,11 @@ create_dir_file /var/log/pkgship-operation 700 d
%attr(0640,pkgshipuser,pkgshipuser) /lib/systemd/system/pkgship.service
%changelog
* Fri Sep 3 2021 Haiwei Li <lihaiwei8@huawei.com> - 2.2.0-4
- Due to the inappropriate mapping rules between the binary package and the source package,
- the source package corresponding to the binary package cannot be found when the query bedepend require,
- and an error is reported.
* Thu Sep 2 2021 Haiwei Li <lihaiwei8@huawei.com> - 2.2.0-3
- When the input parameters of the script that executes the installation of es and redis are incorrect,
- the prompt message is incorrect.