def create(request): try: response = json.loads(request.body) release = libioc.Release(response['release']) jail = libioc.Jail(data=dict(name=response['jail_name']), new=True) jail.create(release) except (libioc.errors.JailAlreadyExists): return JsonResponse( {'reason': '%s is already exists' % response['jail_name']}, status=409) return HttpResponse('OK')
def fetch_releases(request): try: distribution = libioc.Distribution() releases_json = [] for release in distribution.releases: release_dict = OrderedDict([ ('name', release.name), ('fetched', libioc.Release(release.name).fetched) ]) releases_json.append(release_dict) response = json.dumps(releases_json) except (libioc.errors.IocException): return HttpResponse('API Error', status=500) return HttpResponse(response)
def release_download(request): try: response = json.loads(request.body) if response['release'] is None: return HttpResponse( 'release was none. Please selection release version', status=500) release = libioc.Release(response['release']) if release.fetched is True: return HttpResponse( '%s was already downloaded. Skipping download.' % response['release'], status=409) release.fetch() except FileNotFoundError: release.destroy() return HttpResponse('File Download Error', status=404) except (libioc.errors.IocException): release.destroy() return HttpResponse('API Error', status=500) return HttpResponse(response)