コード例 #1
0
ファイル: http.py プロジェクト: InfosecSapper/keepnote
    def delete_node(self, nodeid):

        self._request('DELETE', format_node_path(self._prefix, nodeid))
        result = self._conn.getresponse()
        if result.status != httplib.OK:
            raise connlib.ConnectionError()
        self._title_cache.remove(nodeid)
コード例 #2
0
ファイル: http.py プロジェクト: InfosecSapper/keepnote
    def update_node(self, nodeid, attr):

        body_content = plist.dumps(attr).encode("utf8")
        self._request('POST', format_node_path(self._prefix, nodeid),
                      body_content)
        result = self._conn.getresponse()
        if result.status != httplib.OK:
            raise connlib.ConnectionError()
        self._title_cache.update_attr(attr)
コード例 #3
0
    def update_node(self, nodeid, attr):

        body_content = self.dumps_data(attr).encode("utf8")
        self._request('PUT', format_node_path(self._prefix, nodeid),
                      body_content)
        result = self._conn.getresponse()
        if result.status == httplib.NOT_FOUND:
            raise connlib.UnknownNode()
        elif result.status != httplib.OK:
            raise connlib.ConnectionError()
        self._title_cache.update_attr(attr)
コード例 #4
0
    def read_node(self, nodeid):

        self._request('GET', format_node_path(self._prefix, nodeid))
        result = self._conn.getresponse()
        if result.status == httplib.OK:
            try:
                attr = self.load_data(result)
                self._title_cache.update_attr(attr)
                return attr
            except Exception, e:
                raise connlib.ConnectionError(
                    "unexpected error '%s'" % str(e), e)
コード例 #5
0
    def create_node(self, nodeid, attr):

        body_content = self.dumps_data(attr).encode("utf8")
        self._request('POST', format_node_path(self._prefix, nodeid),
                      body_content)
        result = self._conn.getresponse()
        if result.status == httplib.FORBIDDEN:
            raise connlib.NodeExists()
        elif result.status != httplib.OK:
            raise connlib.ConnectionError("unexpected error")

        self._title_cache.update_attr(attr)
コード例 #6
0
 def index_raw(self, query):
     # POST /?index
     # query plist encoded
     body_content = self.dumps_data(query).encode("utf8")
     self._request(
         'POST', format_node_path(self._notebook_prefix) + "?index",
         body_content)
     result = self._conn.getresponse()
     if result.status == httplib.OK:
         try:
             return self.load_data(result)
         except Exception, e:
             raise connlib.ConnectionError(
                 "unexpected response '%s'" % str(e), e)
コード例 #7
0
    def get_rootid(self):
        """Returns nodeid of notebook root node"""
        # GET /
        self._request('GET', format_node_path(self._prefix))
        result = self._conn.getresponse()

        if result.status == httplib.NOT_FOUND:
            raise connlib.UnknownNode()
        if result.status != httplib.OK:
            raise connlib.ConnectionError()

        # Currently only the first rootid is returned.
        data = self.load_data(result)
        rootid = data['rootids'][0]
        return rootid
コード例 #8
0
ファイル: http.py プロジェクト: InfosecSapper/keepnote
    def list_dir(self, nodeid, filename="/"):
        """
        List data files in node
        """

        # GET nodeid/dir/
        if not filename.endswith("/"):
            filename += "/"
        self._request('GET', format_node_path(self._prefix, nodeid, filename))
        result = self._conn.getresponse()
        if result.status == httplib.OK:
            try:
                return plist.load(result)
            except Exception as e:
                raise connlib.ConnectionError(
                    "unexpected response '%s'" % str(e), e)
        else:
            raise connlib.FileError("cannot list node")
コード例 #9
0
    def list_dir(self, nodeid, filename="/"):
        """
        List data files in node
        """
        # Cannot list files.
        if not filename.endswith("/"):
            raise connlib.FileError()

        # GET nodeid/dir/
        self._request(
            'GET', format_node_path(self._prefix, nodeid, filename))
        result = self._conn.getresponse()
        if result.status == httplib.OK:
            try:
                if self._version == 1:
                    return self.load_data(result)
                else:
                    data = self.load_data(result)
                    return data['files']
            except Exception, e:
                raise connlib.ConnectionError(
                    "unexpected response '%s'" % str(e), e)