跳转到主要内容

GA4GH DRS服务器实现的可靠性工具报告系统。支持GA4GH DRS版本 - 1.2.0

项目描述

drs-compliance-suite

用于验证DRS实现与GA4GH数据存储库服务(DRS)规范一致性的测试。此合规性套件目前支持以下DRS版本,并计划在未来支持更多DRS版本。

  • DRS 1.2.0

安装

  • 要本地运行DRS合规性套件或使用PyPI包,需要Python 3.x。
  • 要使用Docker镜像运行DRS合规性套件,需要Docker Desktop。

运行DRS合规性套件

1. 本地运行

从requirements.txt中安装包

cd drs-compliance-suite
pip3 install -r requirements.txt

将PYTHONPATH添加到环境变量

export PYTHONPATH=<absolute path to drs-compliance-suite>

运行合规性套件

python3 compliance_suite/report_runner.py --server_base_url "http://localhost:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_basic.json" --serve --serve_port 56565

注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。

2. 使用PyPI包

使用pip3安装最新版本的drs-compliance-suite PyPI包

pip3 install drs-compliance-suite --upgrade

运行合规性套件

drs-compliance-suite --server_base_url "http://localhost:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_basic.json" --serve --serve_port 56565

注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。

3. 使用Docker

从dockerhub拉取最新docker镜像

docker pull ga4gh/drs-compliance-suite:1.0.3

使用Docker镜像运行合规性套件

docker run -d --name drs-compliance-suite -v $(PWD)/output/:/usr/src/app/output/ -p 57568:57568 ga4gh/drs-compliance-suite:1.0.3: --server_base_url "http://host.docker.internal:8085/ga4gh/drs/v1" --platform_name "ga4gh starter kit drs" --platform_description "GA4GH reference implementation of DRS specification" --report_path "./output/test-report.json" --drs_version "1.2.0" --config_file "compliance_suite/config/config_samples/config_none.json" --serve --serve_port 57568

注意:此特定命令是运行合规性套件在运行在端口8085上的本地DRS部署的示例。
运行合规性套件时,根据要测试的特定DRS实现配置命令行参数很重要。请参阅命令行参数部分,以了解每个参数的详细信息。

命令行参数

命令行参数 描述 可选/必需 默认值
--server_base_url 合规套件正在测试的DRS实现的基本URL。 必需 不适用
--platform_name 托管DRS服务器的平台名称。 必需 不适用
--platform_description 托管DRS服务器的平台描述。 必需 不适用
--drs_version 正在合规性测试中实现的DRS服务器版本。可以是以下之一:"1.2.0"。 必需 不适用
--config_file JSON配置文件的文件路径。配置文件必须包含服务-info端点和不同DRS对象的认证信息。有关更多详细信息,请参阅配置文件部分。 必需 不适用
--report_path 输出JSON报告文件的路径。 可选 "./output/drs_compliance_report.json"
--serve 如果此标志设置为True,则输出报告作为由--serve_port指定的端口的HTML网页提供服务。 可选 False
--serve-port 输出报告HTML部署的端口。 可选 57568

配置文件

合规套件通过用户提供的JSON配置文件提供测试DRS服务器所需的信息。此文件包括以下详细信息

  • 服务-info端点的认证信息
  • 存在于DRS服务器中的几个DRS对象ID
  • 每个这些DRS对象的认证信息
  • 指示DRS对象是包还是单个blob

以下是一个配置文件模板,可用于配置这些详细信息

{
  "service_info": {
      "auth_type": "basic",
      "auth_token": "dXNlcm5hbWU6cGFzc3dvcmQ="
  },
  "drs_objects" : [
      {
          "drs_id": "697907bf-d5bd-433e-aac2-1747f1faf366",
          "auth_type": "none",
          "auth_token": "",
          "is_bundle": false
      },
      {
          "drs_id": "0bb9d297-2710-48f6-ab4d-80d5eb0c9eaa",
          "auth_type": "basic",
          "auth_token": "dXNlcm5hbWU6cGFzc3dvcmQ=",
          "is_bundle": false
      },
      {
          "drs_id" : "41898242-62a9-4129-9a2c-5a4e8f5f0afb",
          "auth_type": "bearer",
          "auth_token": "secret-bearer-token-1",
          "is_bundle": true
      },
      {
          "drs_id" : "a1dd4ae2-8d26-43b0-a199-342b64c7dff6",
          "auth_type": "passport",
          "auth_token": "43b-passport-a1d",
          "is_bundle": true
      }
  ]
}
  • "auth_type"指定认证类型,可以是以下之一:["基本", "携带者", "护照", "无"]
  • "auth_token"字段包含相应的认证令牌值。
  • 如果"auth_type"设置为"基本",则可以使用base64编码创建"auth_token"。
  • 如果"auth_type"设置为"无",则"auth_token"字段应留空,值为""。
  • "is_bundle"标志指示DRS对象是包还是单个blob。如果设置为True,则对象是包,如果设置为False,则对象是单个blob。

您可以在此处找到一些示例配置文件

单元测试

使用覆盖率运行单元测试

pytest --cov=compliance_suite unittests/

变更日志

v1.0.3

  • 提供为DRS对象和DRS访问端点提供不同认证信息的灵活性
  • 删除错误的跳过状态设置

v1.0.2

  • 通过使用python:3.11-slim-bullseye而不是python:3减少Docker镜像大小

v1.0.1

  • 修复了DRS合规套件Docker部署中的一个错误
  • 更新README文档

v1.0.0

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。

源分布

drs-compliance-suite-1.0.3.tar.gz (26.8 kB 查看哈希)

上传时间

构建分布

drs_compliance_suite-1.0.3-py3-none-any.whl (32.6 kB 查看哈希值)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面