Example #1
0
def index2(request):
    resp = HttpResponse('Здесь будет',
                        content_type='text/plain; charset=utf-8')
    resp.write(' главная')
    resp.writelines({' страница', ' сайта'})
    resp['keywords'] = 'Python, Django'
    return resp
Example #2
0
def get_dump_json(search_pk, filename):
    reports, fieldnames = get_serial_reports_by_search(search_pk, False), get_dump_fieldnames()
    response = HttpResponse(content_type='application/json; charset=utf8')
    response['Content-Disposition'] = f'attachment; filename="{filename}"'
    response.writelines(json.dumps(cast_features_results(reports)))

    return response
Example #3
0
def books_list_plaintext(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=books.txt'
    books = Book.objects.all()
    for book in books:
        response.writelines(book.title + '\r\n')
    return response
Example #4
0
def venue_text(request):
    """
    :param name: request- render text file
    :param type: url
    :return: text
    """
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=venues.txt'
    # Designate The Model
    venues = Venue.objects.all()

    # Create blank list
    lines = []
    # Loop Thu and output
    for venue in venues:
        lines.append(
            f'{venue.name}\n{venue.address}\n{venue.zip_code}\n{venue.phone}\n{venue.web}\n{venue.email_address}\n\n\n'
        )

    #lines = ["This is line 1\n",
    #"This is line 2\n",
    #"This is line 3\n\n",
    #"John Elder Is Awesome!\n"]

    # Write To TextFile
    response.writelines(lines)
    return response
Example #5
0
def index3(request):
    """функция формирует страницу на низком уровне"""
    resp = HttpResponse("Здесь будет",
                        content_type='text/plain; charset=utf-8')
    resp.write(' главная')
    resp.writelines((' страница', ' сайта'))
    resp['keywords'] = 'Python Django'
    return resp
Example #6
0
def rsp_attr(request):
    """手动构造响应"""
    rsp = HttpResponse(content='django 教程', content_type='text/html', charset='utf8')
    rsp.content = 'web 全栈'
    rsp.write('django 网站开发')
    rsp.writelines(['aaa', 'bbb', 'ccc'])
    rsp.flush()
    return rsp
Example #7
0
    def test_stream_interface(self):
        r = HttpResponse('asdf')
        self.assertEqual(r.getvalue(), b'asdf')

        r = HttpResponse()
        self.assertIs(r.writable(), True)
        r.writelines(['foo\n', 'bar\n', 'baz\n'])
        self.assertEqual(r.content, b'foo\nbar\nbaz\n')
Example #8
0
    def test_stream_interface(self):
        r = HttpResponse("asdf")
        self.assertEqual(r.getvalue(), b"asdf")

        r = HttpResponse()
        self.assertEqual(r.writable(), True)
        r.writelines(["foo\n", "bar\n", "baz\n"])
        self.assertEqual(r.content, b"foo\nbar\nbaz\n")
Example #9
0
def commandLine(request):
    command = request.GET['command']
    response = HttpResponse()
    if (command == "start"):
        response.writelines("run")
        return response
    else:
        return HttpResponse("unkown command: " + request.GET['command'])
Example #10
0
    def test_stream_interface(self):
        r = HttpResponse('asdf')
        self.assertEqual(r.getvalue(), b'asdf')

        r = HttpResponse()
        self.assertEqual(r.writable(), True)
        r.writelines(['foo\n', 'bar\n', 'baz\n'])
        self.assertEqual(r.content, b'foo\nbar\nbaz\n')
Example #11
0
    def test_stream_interface(self):
        r = HttpResponse("asdf")
        self.assertEqual(r.getvalue(), b"asdf")

        r = HttpResponse()
        self.assertIs(r.writable(), True)
        r.writelines(["foo\n", "bar\n", "baz\n"])
        self.assertEqual(r.content, b"foo\nbar\nbaz\n")
Example #12
0
def index_2(request):
    """Низкоуровневая отрисовка главной страницы"""
    resp = HttpResponse('Здесь будет',
                        content_type='text/plain; charset=utf-8')
    resp.write(' главная')
    resp.writelines((' страница', ' сайта'))
    resp['keywords'] = 'Python, Django'
    return resp
Example #13
0
def _post(url, body, headers):
    """
    Send a post request to DataCite.

    Args:
        url (str): The URL to call
        body (str): The data
        headers (dict): A dictionary of headers to use

    Return:
        a HTTPResponse

    """
    _set_timeout()
    opener = get_opener()
    auth_string = (base64.encodestring(DATACITE_USER_NAME + ':'
                                       + DATACITE_PASSWORD)).rstrip()
    headers.update({'Authorization':'Basic ' + auth_string})

    # If the request body is a string, urllib2 attempts to concatenate the url,
    # body and headers. If the url is unicode, the request body can get
    # converted unicode. This has resulted in issues where there are characters
    # with diacritic marks in the request body. To avoid these issues the url is
    # UTF-8 encoded.
    url_encode = url.encode('utf-8')

    req = urllib2.Request(url_encode, data=body, headers=headers)
    try:
        response = opener.open(req)
    except (urllib2.HTTPError) as ex:
        msg = ex.readlines()
        LOGGING.warn('HTTPError error getting %s. %s', url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib2.URLError) as ex:
        LOGGING.warn('Timeout or URLError error getting %s. %s', url, ex.reason)
        return get_response(ex.reason, 500)
    except (SSLError) as ex:
        LOGGING.warn('SSLError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    except UnicodeDecodeError as ex:
        LOGGING.info('UnicodeDecodeError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if response.headers.has_key('Content-Type'):
        ret_response = HttpResponse(content_type=
                                    response.headers.get('Content-Type'))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    if response.headers.has_key('location'):
        ret_response.setdefault('Location', response.headers.get('location'))
    return ret_response
Example #14
0
def gen_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename="bart.txt"'
    lines = [
        "I will not expose the ignorance of the faculty.\n",
        "I will not conduct my own fire drills.\n",
        "I will not prescribe medication.\n",
    ]
    response.writelines(lines)
    return response
Example #15
0
def get_text(request):
    response = HttpResponse(content_type="text/plain")
    response["Content-Disposition"] = 'attachment; filename="bart.txt"'
    lines = [
        "green eggs and ham\n",
        "green eggs and spam\n",
        "green eggs and flan\n",
    ]
    response.writelines(lines)
    return response
Example #16
0
def get(request_method, url, headers):
    """
    Send a get or head request to DataCite.

    Args:
        request_method (str): This should be 'GET' or 'HEAD'
        url (str): The URL to call
        headers (dict): A dictionary of headers to use

    Return:
        a HTTPResponse

    """
    LOGGING.info("get(%s,%s,%s)", request_method, url, headers)
    _set_timeout()
    opener = get_opener()
    auth_string = ((base64.encodebytes(
        (DATACITE_USER_NAME + ":" +
         DATACITE_PASSWORD).encode())).decode("utf-8").rstrip())
    headers.update({"Authorization": "Basic " + auth_string})
    req = urllib.request.Request(url, data=None, headers=headers)
    if request_method == "HEAD":
        req.get_method = lambda: "HEAD"
    try:
        response = opener.open(req)
    except urllib.error.HTTPError as ex:
        msg = ex.readlines()
        if ex.code in [404, 410]:
            LOGGING.info("HTTPError error getting %s. %s", url, msg)
        else:
            LOGGING.warning("HTTPError error getting %s. %s", url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib.error.URLError) as ex:
        LOGGING.warning("Timeout or URLError error getting %s. %s", url,
                        ex.reason)
        if isinstance(ex.reason, Exception):
            ex = ex.reason
            LOGGING.warning("Nested exception %s. %s", ex, ex.reason)
        return get_response(ex.reason, 500)
    except SSLError as ex:
        LOGGING.warning("SSLError error getting %s. %s", url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if "Content-Type" in response.headers:
        ret_response = HttpResponse(
            content_type=response.headers.get("Content-Type"))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #17
0
    def get(self, request, username, *args, **kwargs):
        """
        This request returns the roles of the user.
        The user must be active.

        """
        user = get_object_or_404(User, username=username)
        if not user.is_active:
            raise Http404('User not active')
        user_info = _UserInfo(user)
        response = HttpResponse(content_type='application/json')
        # pylint: disable=maybe-no-member
        response.writelines(user_info.get_json())
        return response
Example #18
0
def get(request_method, url, headers):
    """
    Send a get or head request to DataCite.

    Args:
        request_method (str): This should be 'GET' or 'HEAD'
        url (str): The URL to call
        headers (dict): A dictionary of headers to use

    Return:
        a HTTPResponse

    """
    LOGGING.info('get(%s,%s,%s)', request_method, url, headers)
    _set_timeout()
    opener = get_opener()
    auth_string = (base64.encodestring(DATACITE_USER_NAME + ':' +
                                       DATACITE_PASSWORD)).rstrip()
    headers.update({'Authorization': 'Basic ' + auth_string})
    req = urllib2.Request(url, data=None, headers=headers)
    if request_method == "HEAD":
        req.get_method = lambda: 'HEAD'
    try:
        response = opener.open(req)
    except (urllib2.HTTPError) as ex:
        msg = ex.readlines()
        if ex.code in [404, 410]:
            LOGGING.info('HTTPError error getting %s. %s', url, msg)
        else:
            LOGGING.warn('HTTPError error getting %s. %s', url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib2.URLError) as ex:
        LOGGING.warn('Timeout or URLError error getting %s. %s', url,
                     ex.reason)
        return get_response(ex.reason, 500)
    except (SSLError) as ex:
        LOGGING.warn('SSLError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if response.headers.has_key('Content-Type'):
        ret_response = HttpResponse(
            content_type=response.headers.get('Content-Type'))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #19
0
def get(request_method, url, headers):
    """
    Send a get or head request to DataCite.

    Args:
        request_method (str): This should be 'GET' or 'HEAD'
        url (str): The URL to call
        headers (dict): A dictionary of headers to use

    Return:
        a HTTPResponse

    """
    LOGGING.info('get(%s,%s,%s)', request_method, url, headers)
    _set_timeout()
    opener = get_opener()
    auth_string = (base64.encodestring(DATACITE_USER_NAME + ':'
                                       + DATACITE_PASSWORD)).rstrip()
    headers.update({'Authorization':'Basic ' + auth_string})
    req = urllib2.Request(url, data=None, headers=headers)
    if request_method == "HEAD":
        req.get_method = lambda: 'HEAD'
    try:
        response = opener.open(req)
    except (urllib2.HTTPError) as ex:
        msg = ex.readlines()
        if ex.code in [404, 410]:
            LOGGING.info('HTTPError error getting %s. %s', url, msg)
        else:
            LOGGING.warn('HTTPError error getting %s. %s', url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib2.URLError) as ex:
        LOGGING.warn('Timeout or URLError error getting %s. %s', url, ex.reason)
        return get_response(ex.reason, 500)
    except (SSLError) as ex:
        LOGGING.warn('SSLError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if response.headers.has_key('Content-Type'):
        ret_response = HttpResponse(content_type=
                                    response.headers.get('Content-Type'))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #20
0
def generate_text_file(request):
	response = HttpResponse(content_type="text/plain")
	response["Content-Disposition"] = "attachment; filename=generated_task_list.txt"

	lines = []
	item_list = TaskModel.objects.filter(user=request.user.id)

	for item in item_list:
		if item.complete == True:
			lines.append(f"Task Name: {item.title}\n Status: Completed!\n\n\n")
		else:
			lines.append(f" Task Name: {item.title}\n Status: Not Completed!\n\n\n")
	response.writelines(lines)

	return response
Example #21
0
def events_to_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=events.txt'

    # Designate the Model
    events =  Event.objects.all()
    lines = []
    for event in events:
        lines.append(f'Name: {event.name}\nDate: {event.event_date}\nStart Time: {event.start_time}\nEnd Time: {event.end_time}\n'
                     f'Manager: {event.manager}\nContact Phone: {event.man_phone}\nDescription: {event.eve_description}\n'
                     f'Venue: {event.venue}\nAtendees: {event.attendees}\n\n')

    # Write to text file
    response.writelines(lines)
    return response
Example #22
0
def venue_to_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=venues.txt'

    # Designate the Model
    venues =  Venue.objects.all()
    lines = []
    for venue in venues:
        lines.append(f'Name: {venue.name}\nAddress: {venue.address}\nPost Code: {venue.post_code}\nContact phone: {venue.phone}\n'
                     f'WebSite: {venue.web}\nEmail: {venue.email}\nDescription: {venue.ven_description}\nRating: {venue.booking_rates}\n'
                     f'Open hours: {venue.from_hour} - {venue.to_hour}\nSquare(m^2): {venue.flour_size}\n\n')

    # Write to text file
    response.writelines(lines)
    return response
Example #23
0
def get_response(message, code):
    """
    Create a response.

    Args:
        message (str): The message to include in the response
        code (str): The return code to include in the response

    Return:
        a dict, if present key = 'Accept'

    """
    response = HttpResponse(status=code)
    # pylint: disable=no-member
    response.writelines(message)
    return response
Example #24
0
def hello(request):
    response = HttpResponse()
    # response 常见方法
    response.write("Welcome to Django1!")
    response.write("Welcome to Django2!")
    response.writelines(
        ["Welcome to Django3!", "Welcome to Django4!", "Welcome to Django5!"])
    print(response.getvalue())
    print(response.writable())
    response.__setitem__("age", "30")
    print(response.has_header("age"))
    print(response.__getitem__("age"))
    print(response.get("age"))
    response.__delitem__("age")
    response['address'] = "北京"
    print(response.get("address"))
    return response
Example #25
0
def getMessenger(request, id):
    comment = Comment.objects.filter(ContributeID_id=id)
    html = []
    for i in comment:
        if getAuthGroup(i.UserID_id) == "Coordinator":
            html.append("<span class='you first'>" + i.Comment +
                        " <span class='time'>" +
                        i.DateComment.strftime("%m/%d/%y, %H:%M:%S") +
                        "</span></span>")
        if getAuthGroup(i.UserID_id) == "Student":
            html.append("<span class='friend last'>" + i.Comment +
                        "<span class='time'>" +
                        i.DateComment.strftime("%m/%d/%y, %H:%M:%S") +
                        "</span></span>")
    response = HttpResponse()
    response.writelines(html)
    return response
Example #26
0
def issue_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=issues.txt'

    #create blank list
    lines = []

    #Designate the issues
    issues = Issue.objects.all()
    #loop thro and output
    for issue in issues:
        lines.append(
            f'{issue.issue_id}\n {issue.issue_code}\n{issue.username}\n{issue.cluster_code}\n{issue.center_code}{issue.issue_description}\n{issue.urgent}\n{issue.issue_date}\n\n\n'
        )

    #write to file
    response.writelines(lines)
    return response
Example #27
0
def _delete(url):
    """
    Send a delete request to DataCite.

    Args:
        url (str): The URL to call

    Return:
        a HTTPResponse

    """
    _set_timeout()
    opener = get_opener()
    auth_string = ((base64.encodebytes(
        (DATACITE_USER_NAME + ":" +
         DATACITE_PASSWORD).encode())).decode("utf-8").rstrip())
    headers = {"Authorization": "Basic " + auth_string}
    req = urllib.request.Request(url, data=None, headers=headers)
    req.get_method = lambda: "DELETE"
    try:
        response = opener.open(req)
    except urllib.error.HTTPError as ex:
        msg = ex.readlines()
        LOGGING.warning("HTTPError error getting %s. %s", url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib.error.URLError) as ex:
        LOGGING.warning("Timeout or URLError error getting %s. %s", url,
                        ex.reason)
        return get_response(ex.reason, 500)
    except SSLError as ex:
        LOGGING.warning("SSLError error getting %s. %s", url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if "Content-Type" in response.headers:
        ret_response = HttpResponse(
            content_type=response.headers.get("Content-Type"))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #28
0
def venue_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=venues.txt'

    # Designate the Model
    venues = Venue.objects.all()

    # Create blank list
    lines = []

    # Loop through and output
    for venue in venues:
        lines.append(
            f'{venue.name}\n{venue.address}\n{venue.zip_code}\n{venue.phone}\n{venue.web}\n{venue.email_address}\n\n'
        )

    # Write to TextFile
    response.writelines(lines)
    return response
Example #29
0
def _delete(url):
    """
    Send a delete request to DataCite.

    Args:
        url (str): The URL to call

    Return:
        a HTTPResponse

    """
    _set_timeout()
    opener = get_opener()
    auth_string = (base64.encodestring(DATACITE_USER_NAME + ':' +
                                       DATACITE_PASSWORD)).rstrip()
    headers = {'Authorization': 'Basic ' + auth_string}
    req = urllib2.Request(url, data=None, headers=headers)
    req.get_method = lambda: 'DELETE'
    try:
        response = opener.open(req)
    except (urllib2.HTTPError) as ex:
        msg = ex.readlines()
        LOGGING.warn('HTTPError error getting %s. %s', url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib2.URLError) as ex:
        LOGGING.warn('Timeout or URLError error getting %s. %s', url,
                     ex.reason)
        return get_response(ex.reason, 500)
    except (SSLError) as ex:
        LOGGING.warn('SSLError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if response.headers.has_key('Content-Type'):
        ret_response = HttpResponse(
            content_type=response.headers.get('Content-Type'))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #30
0
def _delete(url):
    """
    Send a delete request to DataCite.

    Args:
        url (str): The URL to call

    Return:
        a HTTPResponse

    """
    _set_timeout()
    opener = get_opener()
    auth_string = (base64.encodestring(DATACITE_USER_NAME + ':'
                                       + DATACITE_PASSWORD)).rstrip()
    headers = {'Authorization':'Basic ' + auth_string}
    req = urllib2.Request(url, data=None, headers=headers)
    req.get_method = lambda: 'DELETE'
    try:
        response = opener.open(req)
    except (urllib2.HTTPError) as ex:
        msg = ex.readlines()
        LOGGING.warn('HTTPError error getting %s. %s', url, msg)
        return get_response(msg, ex.code)
    except (socket.timeout, urllib2.URLError) as ex:
        LOGGING.warn('Timeout or URLError error getting %s. %s', url, ex.reason)
        return get_response(ex.reason, 500)
    except (SSLError) as ex:
        LOGGING.warn('SSLError error getting %s. %s', url, ex)
        return get_response(ex, 500)
    finally:
        _close(opener)
    if response.headers.has_key('Content-Type'):
        ret_response = HttpResponse(content_type=
                                    response.headers.get('Content-Type'))
    else:
        ret_response = HttpResponse()
    ret_response.status_code = response.code
    ret_response.reason_phrase = response.msg
    # pylint: disable=maybe-no-member
    ret_response.writelines(response.readlines())
    return ret_response
Example #31
0
def venue_text(request):
    response = HttpResponse(content_type='text/plain')
    response['Content-Disposition'] = 'attachment; filename=venues-list.txt'

    # designate the mode
    # takes everything from venue object
    venues = Venue.objects.all()

    lines = []
    # loop through it
    for venue in venues:
        # adds everything to lines array
        lines.append(
            f'{venue.name}\n{venue.address}\n{venue.phone}\n{venue.zip_code}\n{venue.phone}\n{venue.web}\n{venue.email_address}\n\n')
    # lines = ["This is line 1\n ", "This is on the line two \n", "this is line three \n"]

    #      write to the text file

    response.writelines(lines)
    return response
Example #32
0
def index(request):
    # bam model moi
    server_hashcode = hashModelH5.hashModel()
    data = {}
    if request.method == 'GET':

        response = HttpResponse()
        ana_hashcode = request.GET['q']
        
        # so khop voi model vua duoc gui den 
        response.writelines("server:"+server_hashcode)
        if hashModelH5.compareModel(server_hashcode,ana_hashcode):
            data = {
                'link':'https://raw.githubusercontent.com/ErikHorus1249/Web_Tutorials/master/DjangoTurtorial/turtorial1/home/model/hashModelH5.py'
            }
        else:
            data = {
                'link':'invalid'
            }
        return JsonResponse(data)
Example #33
0
    def retrieve(self, request, pk=None):
        try:
            obj = ZipRequest.objects.get(token=pk)
        except ObjectDoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)

        response = HttpResponse(content_type='application/zip')
        date = datetime.now()
        file_name = 'uc2_dms_download_' + date.strftime("%Y%m%d_%H%M.zip")
        response['Content-Disposition'] = 'attachment; filename={}'.format(file_name)
        response['X-Archive-Files'] = "zip"
        if not obj.check_result:
            # start with small files to make sending the first bytes faster
            obs = obj.uc2observations.order_by('file_size')
        else:
            obs = obj.uc2observations.all()

        lines = []
        for x in obs:
            if obj.check_result:
                if x.check_result_file:
                    display_name = x.file_standard_name[:-3] + "_check_result.txt"
                    file_path = x.check_result_file.name
                    size = x.check_result_size
                    crc = x.check_result_crc32
                else:
                    continue
            else:
                display_name = x.file_standard_name
                file_path = x.file.name
                size = x.file_size
                crc = x.file_crc32

            path = f"/protected/{os.path.basename(file_path)}"
            s = " ".join([crc, str(size), path, display_name]) + "\r\n"
            lines.append(s)

        response.writelines(lines)
        return response
Example #34
0
def get_response(request):
    """Return information about HttpResponse object."""

    a_dict = {}
    m_dict = {}
    context = {}
    response = HttpResponse()

    # Attributes:
    response.content = "some content"
    a_dict["content"] = response.content
    a_dict["charset"] = response.charset
    a_dict["status_code"] = response.status_code
    a_dict["reason_phrese"] = response.reason_phrase
    a_dict["streaming"] = response.streaming
    a_dict["closed"] = response.closed

    # Methods:
    m_dict["__setitem__(header, value)"] = response.__setitem__("test", "Test")
    m_dict["__getitem__(header)"] = response.__getitem__("test")
    m_dict["__delitem__(header)"] = response.__delitem__("test")
    m_dict["has_header(header)"] = response.has_header("test")
    m_dict["setdefault(headre, value)"] = response.setdefault("t", "test")
    m_dict["set_cookie(key, value='', max_age=None,\
            expres=None, path='/', domain=None,\
            secure=False, httponly=False,\
            samesite=None)"] = response.set_cookie("some", "foo")
    m_dict["set_signed_cookie(key, value='', max_age=None,\
            expres=None, path='/', domain=None,\
            secure=False, httponly=False,\
            samesite=None)"] = response.set_signed_cookie("foo", "foo")
    m_dict["delete_cookie(key, path='/', domain=None)"] =\
        response.delete_cookie("foo")
    m_dict["close()"] = response.close()
    m_dict["write(content)"] = response.write("<p>CONTENT</p>")
    m_dict["flush()"] = response.flush()
    m_dict["tell()"] = response.tell()
    m_dict["getvalue()"] = response.getvalue()
    m_dict["readable()"] = response.readable()
    m_dict["seekable()"] = response.seekable()
    m_dict["writable()"] = response.writable()
    m_dict["writelines(lines)"] = response.writelines([" one",
                                                       " two", " three"])
    m_dict["lines"] = response.getvalue()

    context["a_dict"] = a_dict
    context["m_dict"] = m_dict

    return render(request, "response_object/response.html", context)
Example #35
0
def render_add_flut(request):
    """
    This view render function accepts a user name and a text string to add as a flut/tweet for the specifying user.
    """
    assert isinstance(request, HttpRequest)
    user_name = request.POST['user_name'] if 'user_name' in request.POST else None
    flut_text = request.POST['flut_text'] if 'flut_text' in request.POST else None
    if None == user_name or None == flut_text:
        response = HttpResponse(status = 400)
        return response.writelines('The save/post request for your user name, and for your flut text both cannot be empty.')
    else:
        flut_object = logic.save_submitted_user_flut_post(user_name, flut_text)
    return render(
        request,
        'flutter_twitterclone/acknowledgement.html',
        context_instance = RequestContext(request,
        {
            'title':'Your flut was saved',
            'user_name':flut_object.user_author,
            'flut_text':flut_object.text,
            'timestamp':flut_object.timestamp,
        })
    )
Example #36
0
def instances(request):
    """
    :param request:
    :return:
    """

    error_messages = []
    all_host_vms = {}
    all_user_vms = {}
    computes = Compute.objects.all()

    if not request.user.is_superuser:
        user_instances = UserInstance.objects.filter(user_id=request.user.id)
        for usr_inst in user_instances:
            if connection_manager.host_is_up(usr_inst.instance.compute.type,
                                             usr_inst.instance.compute.hostname):
                conn = wvmHostDetails(usr_inst.instance.compute,
                                      usr_inst.instance.compute.login,
                                      usr_inst.instance.compute.password,
                                      usr_inst.instance.compute.type)
                all_user_vms[usr_inst] = conn.get_user_instances(usr_inst.instance.name)
                all_user_vms[usr_inst].update({'compute_id': usr_inst.instance.compute.id})
    else:
        for comp in computes:
            if connection_manager.host_is_up(comp.type, comp.hostname):
                try:
                    conn = wvmHostDetails(comp, comp.login, comp.password, comp.type)
                    if conn.get_host_instances():
                        all_host_vms[comp.id, comp.name] = conn.get_host_instances()
                        for vm, info in conn.get_host_instances().items():
                            try:
                                check_uuid = Instance.objects.get(compute_id=comp.id, name=vm)
                                if check_uuid.uuid != info['uuid']:
                                    check_uuid.save()
                                all_host_vms[comp.id, comp.name][vm]['is_template'] = check_uuid.is_template
                            except Instance.DoesNotExist:
                                check_uuid = Instance(compute_id=comp.id, name=vm, uuid=info['uuid'])
                                check_uuid.save()
                    conn.close()
                except libvirtError as lib_err:
                    error_messages.append(lib_err)

    if request.method == 'POST':
        name = request.POST.get('name', '')
        compute_id = request.POST.get('compute_id', '')
        instance = Instance.objects.get(compute_id=compute_id, name=name)
        try:
            conn = wvmInstances(instance.compute.hostname,
                                instance.compute.login,
                                instance.compute.password,
                                instance.compute.type)
            if 'poweron' in request.POST:
                msg = _("Power On")
                addlogmsg(request.user.username, instance.name, msg)
                conn.start(name)
                return HttpResponseRedirect(request.get_full_path())

            if 'poweroff' in request.POST:
                msg = _("Power Off")
                addlogmsg(request.user.username, instance.name, msg)
                conn.shutdown(name)
                return HttpResponseRedirect(request.get_full_path())

            if 'powercycle' in request.POST:
                msg = _("Power Cycle")
                conn.force_shutdown(name)
                conn.start(name)
                addlogmsg(request.user.username, instance.name, msg)
                return HttpResponseRedirect(request.get_full_path())
            
            if 'getvvfile' in request.POST:
                msg = _("Send console.vv file")
                addlogmsg(request.user.username, instance.name, msg)
                response = HttpResponse(content='', content_type='application/x-virt-viewer', status=200, reason=None, charset='utf-8')
                response.writelines('[virt-viewer]\n')
                response.writelines('type=' + conn.graphics_type(name) + '\n')
                response.writelines('host=' + conn.graphics_listen(name) + '\n')
                response.writelines('port=' + conn.graphics_port(name) + '\n')
                response.writelines('title=' + conn.domain_name(name) + '\n')
                response.writelines('password='******'\n')
                response.writelines('enable-usbredir=1\n')
                response.writelines('disable-effects=all\n')
                response.writelines('secure-attention=ctrl+alt+ins\n')
                response.writelines('release-cursor=ctrl+alt\n')
                response.writelines('fullscreen=1\n')
                response.writelines('delete-this-file=1\n')
                response['Content-Disposition'] = 'attachment; filename="console.vv"'
                return response

            if request.user.is_superuser:

                if 'suspend' in request.POST:
                    msg = _("Suspend")
                    addlogmsg(request.user.username, instance.name, msg)
                    conn.suspend(name)
                    return HttpResponseRedirect(request.get_full_path())

                if 'resume' in request.POST:
                    msg = _("Resume")
                    addlogmsg(request.user.username, instance.name, msg)
                    conn.resume(name)
                    return HttpResponseRedirect(request.get_full_path())

        except libvirtError as lib_err:
            error_messages.append(lib_err)
            addlogmsg(request.user.username, instance.name, lib_err.message)

    return render(request, 'instances.html', locals())
Example #37
0
def instances(request):
    """
    :param request:
    :return:
    """

    error_messages = []
    all_host_vms = {}
    all_user_vms = {}
    computes = Compute.objects.all().order_by("name")

    def get_userinstances_info(instance):
        info = {}
        uis = UserInstance.objects.filter(instance=instance)
        info['count'] = uis.count()
        if info['count'] > 0:
            info['first_user'] = uis[0]
        else:
            info['first_user'] = None
        return info

    def refresh_instance_database(comp, vm, info):
        instances = Instance.objects.filter(name=vm)
        if instances.count() > 1:
            for i in instances:
                user_instances_count = UserInstance.objects.filter(instance=i).count()
                if user_instances_count == 0:
                    addlogmsg(request.user.username, i.name, _("Deleting due to multiple records."))
                    i.delete()
        
        try:
            check_uuid = Instance.objects.get(compute_id=comp["id"], name=vm)
            if check_uuid.uuid != info['uuid']:
                check_uuid.save()

            all_host_vms[comp["id"],
                         comp["name"],
                         comp["status"],
                         comp["cpu"],
                         comp["mem_size"],
                         comp["mem_perc"]][vm]['is_template'] = check_uuid.is_template
            all_host_vms[comp["id"],
                         comp["name"],
                         comp["status"],
                         comp["cpu"],
                         comp["mem_size"],
                         comp["mem_perc"]][vm]['userinstances'] = get_userinstances_info(check_uuid)
        except Instance.DoesNotExist:
            check_uuid = Instance(compute_id=comp["id"], name=vm, uuid=info['uuid'])
            check_uuid.save()
    
    if not request.user.is_superuser:
        user_instances = UserInstance.objects.filter(user_id=request.user.id)
        for usr_inst in user_instances:
            if connection_manager.host_is_up(usr_inst.instance.compute.type,
                                             usr_inst.instance.compute.hostname):
                conn = wvmHostDetails(usr_inst.instance.compute,
                                      usr_inst.instance.compute.login,
                                      usr_inst.instance.compute.password,
                                      usr_inst.instance.compute.type)
                all_user_vms[usr_inst] = conn.get_user_instances(usr_inst.instance.name)
                all_user_vms[usr_inst].update({'compute_id': usr_inst.instance.compute.id})
    else:
        for comp in computes:
            status = connection_manager.host_is_up(comp.type, comp.hostname)
            if status:
                try:
                    conn = wvmHostDetails(comp, comp.login, comp.password, comp.type)
                    comp_node_info = conn.get_node_info()
                    comp_mem = conn.get_memory_usage()
                    comp_instances = conn.get_host_instances(True)

                    if comp_instances:
                        comp_info= {
                            "id": comp.id,
                            "name": comp.name,
                            "status": status,
                            "cpu": comp_node_info[3],
                            "mem_size": comp_node_info[2],
                            "mem_perc": comp_mem['percent']
                        }
                        all_host_vms[comp_info["id"], comp_info["name"], comp_info["status"], comp_info["cpu"],
                                     comp_info["mem_size"], comp_info["mem_perc"]] = comp_instances
                        for vm, info in comp_instances.items():
                            refresh_instance_database(comp_info, vm, info)

                    conn.close()
                except libvirtError as lib_err:
                    error_messages.append(lib_err)

    if request.method == 'POST':
        name = request.POST.get('name', '')
        compute_id = request.POST.get('compute_id', '')
        instance = Instance.objects.get(compute_id=compute_id, name=name)
        try:
            conn = wvmInstances(instance.compute.hostname,
                                instance.compute.login,
                                instance.compute.password,
                                instance.compute.type)
            if 'poweron' in request.POST:
                msg = _("Power On")
                addlogmsg(request.user.username, instance.name, msg)
                conn.start(name)
                return HttpResponseRedirect(request.get_full_path())

            if 'poweroff' in request.POST:
                msg = _("Power Off")
                addlogmsg(request.user.username, instance.name, msg)
                conn.shutdown(name)
                return HttpResponseRedirect(request.get_full_path())

            if 'powercycle' in request.POST:
                msg = _("Power Cycle")
                conn.force_shutdown(name)
                conn.start(name)
                addlogmsg(request.user.username, instance.name, msg)
                return HttpResponseRedirect(request.get_full_path())

            if 'getvvfile' in request.POST:
                msg = _("Send console.vv file")
                addlogmsg(request.user.username, instance.name, msg)
                response = HttpResponse(content='', content_type='application/x-virt-viewer', status=200, reason=None, charset='utf-8')
                response.writelines('[virt-viewer]\n')
                response.writelines('type=' + conn.graphics_type(name) + '\n')
                response.writelines('host=' + conn.graphics_listen(name) + '\n')
                response.writelines('port=' + conn.graphics_port(name) + '\n')
                response.writelines('title=' + conn.domain_name(name) + '\n')
                response.writelines('password='******'\n')
                response.writelines('enable-usbredir=1\n')
                response.writelines('disable-effects=all\n')
                response.writelines('secure-attention=ctrl+alt+ins\n')
                response.writelines('release-cursor=ctrl+alt\n')
                response.writelines('fullscreen=1\n')
                response.writelines('delete-this-file=1\n')
                response['Content-Disposition'] = 'attachment; filename="console.vv"'
                return response

            if request.user.is_superuser:

                if 'suspend' in request.POST:
                    msg = _("Suspend")
                    addlogmsg(request.user.username, instance.name, msg)
                    conn.suspend(name)
                    return HttpResponseRedirect(request.get_full_path())

                if 'resume' in request.POST:
                    msg = _("Resume")
                    addlogmsg(request.user.username, instance.name, msg)
                    conn.resume(name)
                    return HttpResponseRedirect(request.get_full_path())

        except libvirtError as lib_err:
            error_messages.append(lib_err)
            addlogmsg(request.user.username, instance.name, lib_err.message)

    view_style = settings.VIEW_INSTANCES_LIST_STYLE

    return render(request, 'instances.html', locals())