{"id":29356905,"url":"https://github.com/cesnet/pocci","last_synced_at":"2025-10-09T01:11:18.829Z","repository":{"id":57453857,"uuid":"38253794","full_name":"CESNET/pOCCI","owner":"CESNET","description":"OCCI Compliance Tests","archived":false,"fork":false,"pushed_at":"2017-03-27T15:11:49.000Z","size":196,"stargazers_count":6,"open_issues_count":9,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-30T19:52:54.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CESNET.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-29T15:04:00.000Z","updated_at":"2017-03-07T13:04:47.000Z","dependencies_parsed_at":"2022-08-29T06:51:20.750Z","dependency_job_id":null,"html_url":"https://github.com/CESNET/pOCCI","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/CESNET/pOCCI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CESNET%2FpOCCI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CESNET%2FpOCCI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CESNET%2FpOCCI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CESNET%2FpOCCI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CESNET","download_url":"https://codeload.github.com/CESNET/pOCCI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CESNET%2FpOCCI/sbom","scorecard":{"id":25855,"data":{"date":"2025-08-11","repo":{"name":"github.com/CESNET/pOCCI","commit":"5354e20a5702dcc08d8a87a9690b4204a8388765"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T17:51:18.079Z","repository_id":57453857,"created_at":"2025-08-14T17:51:18.079Z","updated_at":"2025-08-14T17:51:18.079Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000725,"owners_count":26082894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-09T05:40:49.844Z","updated_at":"2025-10-09T01:11:18.824Z","avatar_url":"https://github.com/CESNET.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/CESNET/pOCCI.svg?branch=master)](https://travis-ci.org/CESNET/pOOCI) [![Coverage](https://img.shields.io/coveralls/CESNET/pOCCI.svg)](https://coveralls.io/r/CESNET/pOCCI)\n\n#pOCCI—OCCI Compliance Test Suite\n\n##Introduction\n\nThe European Telecommunication Standards Institute (ETSI) describes a set of tests to verify the compliance of cloud management frameworks with OCCI or CDMI protocols. The title of the document is [CLOUD; Test Descriptions for Cloud Interoperability](http://www.etsi.org/deliver/etsi_ts/103100_103199/103142/01.01.01_60/ts_103142v010101p.pdf).\n\nThe pOCCI test suite implements a real-world subset of tests described in the document. In essence, each test that can be carried out with real-world resources (Compute, Storage, Network) is implemented. Tests for abstract OCCI concepts that have no real-world counterpart (such as an OCCI Resource) are omitted because no real-world Cloud Management Framework can be asked to create a \"Resource\".\n\nOriginally conceived for use by [INDIGO-DataCloud](https://www.indigo-datacloud.eu) service developers, the test suite runs against an existing, OCCI-enabled cloud service and produces a compliance report, detailing tests passed or failed.\n\nThe pOCCI test suite is intended for the following user groups, ordered by importance (meaning 1 is the main audience while 3 is a group that might be interested but not primarily targeted):\n\n1. Developers of OCCI-compliant services for compliance testing, ideally to be used as a part of their continuous integration process. For their purpose, pOCCI may be used either as a client against a remote service but it may also be used in a local mode just to validate OCCI messages for compliance with the standard.\n2. Administrators (integrators) of cloud service sites with OCCI interfaces. Note that in this scenario, pOCCI is intended mainly for *preliminary* testing while the site is being set up. It may be potentially destructive to virtual resources already created in the cloud site.\n3. Prospective user groups that use OCCI-compliant clients and wish to verify OCCI compliance of the server side.\n\n##Features\n\nBasic features:\n\n- OCCI testing\n- OCCI messages parsing\n- partial OCCI client library for python\n\nAuthentication:\n\n- basic auth\n- X509\n- keystone\n\nCloud providers:\n\n- dummy (rOCCI server)\n- OpenNebula\n- Amazon EC2\n- OpenStack\n\n##Installation\n\nFrom sources:\n\n    git clone https://github.com/CESNET/pOCCI/ \u0026\u0026 cd pOCCI\n    python setup.py install\n\nFrom pypi:\n\n    pip install pOCCI\n\nFrom [INDIGO Repository](http://repo.indigo-datacloud.eu/#two):\n\n    yum install python2-pOCCI\n    # OR\n    apt-get install python-pocci\n\n##Usage\n\n**OCCI compliance tests**:\n\nSet parameters in *~/.pOCCI.cfg*.\n\nExample config file:\n\n    [main]\n    url = 'https://example.com:11443'\n    authtype = 'basic'\n    ignoressl = True\n    user = 'oneadmin'\n    passwd = 'good-password'\n    mimetype = 'text/plain'\n    curlverbose = False\n    #outputformat = 'plain'\n    outputformat = 'json'\n    connectiontimeout = 60\n    timeout = 120\n    occi.tests.entity = {'occi.core.title': 'My Machine'}\n\nLaunch tests:\n\n    pOCCI\n\nSee manual page for all options.\n\n**OCCI message parser**\n\nExample:\n\n    echo 'Category: entity;scheme=\"http://schemas.ogf.org/occi/core#\";class=\"kind\"' | pOCCI-parse\n\n    curl -u $user:$password -H 'Accept: text/plain' https://occi.example.com:11443/-/ | pOCCI-parse\n    curl -u $user:$password -H 'Accept: text/plain' https://occi.example.com:11443/compute/ | pOCCI-parse -t entities -o text/occi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcesnet%2Fpocci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcesnet%2Fpocci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcesnet%2Fpocci/lists"}