Example #1
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.OK:
         return plist.load(result)
     else:
         raise connlib.UnknownNode()
Example #2
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.OK:
         return plist.load(result)
     else:
         raise connlib.UnknownNode()
Example #3
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 = plist.load(result)
                self._title_cache.update_attr(attr)
                return attr
            except Exception, e:
                raise connlib.ConnectionError(
                    "unexpected error '%s'" % str(e), e)
Example #4
0
    def index_raw(self, query):

        # POST /?index
        # query plist encoded
        body_content = plist.dumps(query).encode("utf8")
        self._request(
            'POST', format_node_path(self._prefix) + "?index", body_content)
        result = self._conn.getresponse()
        if result.status == httplib.OK:
            try:
                return plist.load(result)
            except Exception, e:
                raise connlib.ConnectionError(
                    "unexpected response '%s'" % str(e), e)
Example #5
0
    def test_read_write_file(self):
        data = {
            'aaa': 444,
            '11': True,
        }
        plist_xml = ("<dict><key>aaa</key><integer>444</integer>"
                     "<key>11</key><true/></dict>")

        elm = plist.load(StringIO(plist_xml))
        self.assertEqual(elm, data)

        out = StringIO()
        plist.dump(elm, out)
        self.assertEqual(out.getvalue(), plist_xml)
Example #6
0
    def index_raw(self, query):

        # POST /?index
        # query plist encoded
        body_content = plist.dumps(query).encode("utf8")
        self._request('POST',
                      format_node_path(self._prefix) + "?index", body_content)
        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)
Example #7
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 = plist.load(result)
                self._title_cache.update_attr(attr)
                return attr
            except Exception as e:
                raise connlib.ConnectionError("unexpected error '%s'" % str(e),
                                              e)
        else:
            raise connlib.UnknownNode(nodeid)
Example #8
0
    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, e:
                raise connlib.ConnectionError(
                    "unexpected response '%s'" % str(e), e)
Example #9
0
    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")
Example #10
0
 def load_data(self, stream):
     if self._version == 2:
         return json.loads(stream.read())
     else:
         return plist.load(stream)