1 Star 0 Fork 0

slacrey / edx-certificates

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 3.37 KB
一键复制 编辑 原始数据 按行查看 历史

edx-certificates

This is the code we use the generate certificates at edX.

Generate edX certificates

This script will continuously monitor an xqueue queue for the purpose of generating a course certificate for a user.

Generating sample certificates

  1. Create a new python virtualenv
mkvirtualenv certificates
  1. Clone the certificate repo
git clone git@github.com:edx/edx-certificates
  1. Clone the internal certificate repo for templates and private data (optional)
git clone git@github.com:edx/edx-certificates-internal
  1. Install the python requirements into the virtualenv
pip install -r edx-certificates/requirements.txt
  1. In order to generate sample certificates that are uploaded to S3 you will need access to the verify-test bucket, create a ~/.boto file in your home directory
[Credentials]
aws_access_key_id = *****
aws_secret_access_key = ****

Or for edX use the boto.example in the edx-certificates-interal repo:

cp edx-certificates-internal/boto.example ~/.boto
  1. Set an environment variable to point to the internal repo for certificate templates
export CERT_PRIVATE_DIR=/path/to/edx-certificates-internal
  1. In the edx-certificates directory generate a sample certificate:
cd edx-certificates
python create_pdfs.py -c some/course/id -n Guido

some/course/id should be a valid course id found in `edx-certificates-internal/cert-data.yml

Overview

This script will continuously monitor a queue for certificate generation, it does the following:

  • Connect to the xqueue server
  • Pull a single certificate request
  • Process the request
  • Post a result back to the xqueue server

A global exception handler will catch any error during the certificate generation process and post a result back to the LMS via the xqueue server indicating there was a problem.

optional arguments:
  -h, --help         show this help message and exit
  --aws-id AWS_ID    AWS ID for write access to the S3 bucket
  --aws-key AWS_KEY  AWS KEY for write access to the S3 bucket

Generation overview

Logging:

Logging is setup similar to Django logging, logsettings.py will generate a configuration dict for logging where in a production environment all log messages are sent through rsyslog

Tests:

To run the test suite:

  1. Configure your credential information in settings.py. You will need to specify:

     CERT_KEY_ID = # The id for the key which will be used by gpg to sign certificates
     CERT_AWS_ID = # Amazon Web Services ID
     CERT_AWS_KEY = # Amazon Web Services Key
     CERT_BUCKET = # Amazon Web Services S3 bucket name

    It is also acceptable to leave the AWS KEY and ID values as none and instead use .boto file or run this code from a server that has an IAM role that gives it write access to the bucket in the configuration.

  2. To run all of the tests from the certificates directory, run:

     nosetests

    Note that this will run tests that will fail unless AWS credentials are setup. To run just the tests for local on-disk publishing run:

     nosetests tests.gen_cert_test:test_cert_gen

Troubleshooting: If tests fail with errors, try running:

pip install -r requirements.txt

to install necessary requirements.

In addition, you must install gpg. See gnugp for instructions.

1
https://gitee.com/slacrey/edx-certificates.git
git@gitee.com:slacrey/edx-certificates.git
slacrey
edx-certificates
edx-certificates
master

搜索帮助