Merge pull request #1565 from edx/jarv/ungencertificates-http-optione

adds a new option to ungenerated_certs to use http in the callback url
This commit is contained in:
John Jarvis
2013-11-04 13:16:36 -08:00
3 changed files with 22 additions and 2 deletions

View File

@@ -19,6 +19,11 @@ class Command(BaseCommand):
dest='noop',
default=False,
help="Don't grade or add certificate requests to the queue"),
make_option('--insecure',
action='store_true',
dest='insecure',
default=False,
help="Don't use https for the callback url to the LMS, useful in http test environments"),
make_option('-c', '--course',
metavar='COURSE_ID',
dest='course',
@@ -52,6 +57,8 @@ class Command(BaseCommand):
if not options['noop']:
# Add the certificate request to the queue
xq = XQueueCertInterface()
if options['insecure']:
xq.use_https = False
ret = xq.regen_cert(student, course_id, course=course)
print '{0} - {1}'.format(student, ret)
else:

View File

@@ -29,6 +29,11 @@ class Command(BaseCommand):
dest='noop',
default=False,
help="Don't add certificate requests to the queue"),
make_option('--insecure',
action='store_true',
dest='insecure',
default=False,
help="Don't use https for the callback url to the LMS, useful in http test environments"),
make_option('-c', '--course',
metavar='COURSE_ID',
dest='course',
@@ -83,6 +88,8 @@ class Command(BaseCommand):
"groups").order_by('username')
xq = XQueueCertInterface()
if options['insecure']:
xq.use_https = False
total = enrolled_students.count()
count = 0
start = datetime.datetime.now(UTC)

View File

@@ -74,6 +74,7 @@ class XQueueCertInterface(object):
)
self.whitelist = CertificateWhitelist.objects.all()
self.restricted = UserProfile.objects.filter(allow_certificate=False)
self.use_https = True
def regen_cert(self, student, course_id, course=None):
"""(Re-)Make certificate for a particular student in a particular course
@@ -216,9 +217,14 @@ class XQueueCertInterface(object):
def _send_to_xqueue(self, contents, key):
if self.use_https:
proto = "https"
else:
proto = "http"
xheader = make_xheader(
'https://{0}/update_certificate?{1}'.format(
settings.SITE_NAME, key), key, settings.CERT_QUEUE)
'{0}://{1}/update_certificate?{2}'.format(
proto, settings.SITE_NAME, key), key, settings.CERT_QUEUE)
(error, msg) = self.xqueue_interface.send_to_queue(
header=xheader, body=json.dumps(contents))