jetconf issueshttps://gitlab.nic.cz/labs/jetconf/-/issues2019-11-15T10:25:14+01:00https://gitlab.nic.cz/labs/jetconf/-/issues/40Getting 'Invalid HTTP/2 preamble' when 'DISABLE_SSL: true'2019-11-15T10:25:14+01:00rmanusGetting 'Invalid HTTP/2 preamble' when 'DISABLE_SSL: true'I have my jetconf server working fine with 'DISABLE_SSL: false'
When I try to use jetconf with http instead of https, it fails with 'Invalid HTTP/2 preamble'
So, I set 'DISABLE_SSL: true' and restart jetconf server
```
/usr/local/bin...I have my jetconf server working fine with 'DISABLE_SSL: false'
When I try to use jetconf with http instead of https, it fails with 'Invalid HTTP/2 preamble'
So, I set 'DISABLE_SSL: true' and restart jetconf server
```
/usr/local/bin/curl --http2 -v http://localhost:8443/restconf/data/jnas:nas/storage/disk
* Trying ::1:8443...
* TCP_NODELAY set
* Connected to localhost (::1) port 8443 (#0)
> GET /restconf/data/jnas:nas/storage/disk HTTP/1.1
> Host: localhost:8443
> User-Agent: curl/7.67.0-DEV
> Accept: */*
> Connection: Upgrade, HTTP2-Settings
> Upgrade: h2c
> HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
```
```
2019-11-12 16:41:38,514 INFO Jetconf version 0.3.7.dev3+g487d7a5.d20191112
2019-11-12 16:41:38,517 INFO Using config:
GLOBAL:
BACKEND_PACKAGE: jnas
CLIENT_CN: false
DATA_JSON_FILE: data.json
LOGFILE: '-'
LOG_DBG_MODULES:
GLOBAL:
- '*'
LOG_LEVEL: debug
PERSISTENT_CHANGES: true
PIDFILE: /tmp/jetconf.pid
TIMEZONE: Europe/Paris
VALIDATE_TRANSACTIONS: true
YANG_LIB_DIR: models/
HTTP_SERVER:
API_ROOT: /restconf
API_ROOT_RUNNING: /restconf_running
CA_CERT: /root/my_ca_cert/ca_localhost.pem
DBG_DISABLE_CERT: true
DISABLE_SSL: true
DOC_DEFAULT_NAME: index.html
DOC_ROOT: doc-root
LISTEN_LOCALHOST_ONLY: false
PORT: 8443
SERVER_NAME: jnas-server
SERVER_SSL_CERT: /root/my_ca_cert/server_localhost.crt
SERVER_SSL_PRIVKEY: /root/my_ca_cert/server_localhost.key
UPLOAD_SIZE_LIMIT: 1
NACM:
ALLOWED_USERS:
- example@mail.cz
ENABLED: false
2019-11-12 16:41:38,693 INFO Backend: init
2019-11-12 16:41:38,700 INFO Server started on ('::', 8443, 0, 0)
2019-11-12 16:41:44,240 ERROR Fatal error: protocol.data_received() call failed.
protocol: <jetconf.rest_server.H2Protocol object at 0x7f2fdfaac358>
transport: <_SelectorSocketTransport fd=9 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/selector_events.py", line 813, in _read_ready__data_received
self._protocol.data_received(data)
File "/root/jetconf/jetconf/rest_server.py", line 76, in data_received
events = self.conn.receive_data(data)
File "/root/jetconf/lib/python3.7/site-packages/h2/connection.py", line 1448, in receive_data
self.incoming_buffer.add_data(data)
File "/root/jetconf/lib/python3.7/site-packages/h2/frame_buffer.py", line 52, in add_data
raise ProtocolError("Invalid HTTP/2 preamble.")
h2.exceptions.ProtocolError: Invalid HTTP/2 preamble.
```
Am I missing something ?https://gitlab.nic.cz/labs/jetconf/-/issues/36While giving PUT command request getting an error traceback in code2018-02-07T12:41:53+01:00MonalisaWhile giving PUT command request getting an error traceback in codeIf by mistake the PUT command request formed incorrectly, instead of throwing error it is giving error in code.
Following is the wrong request formed mistakenly
PUT https://10.102.3.244:8443/restconf/data/ModuleName:MainContainer/subcon...If by mistake the PUT command request formed incorrectly, instead of throwing error it is giving error in code.
Following is the wrong request formed mistakenly
PUT https://10.102.3.244:8443/restconf/data/ModuleName:MainContainer/subcontainer/mynode/
{
{
"ModuleName:subcontainer":{
"mynode" : "myValue"
}
}
This request is raising following error in code.
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 125, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 669, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 506, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/restconf-0.3.4.dev2+g1be0916.d20180206-py3.5.egg/jetconf/rest_server.py", line 118, in data_received
self.run_request_handler(headers, event.stream_id, body)
File "/usr/local/lib/python3.5/dist-packages/restconf-0.3.4.dev2+g1be0916.d20180206-py3.5.egg/jetconf/rest_server.py", line 190, in run_request_handler
resp = h(headers, data, self.client_cert)
File "/usr/local/lib/python3.5/dist-packages/restconf-0.3.4.dev2+g1be0916.d20180206-py3.5.egg/jetconf/http_handlers.py", line 613, in put_api
http_resp = self._put(api_pth, username, data)
File "/usr/local/lib/python3.5/dist-packages/restconf-0.3.4.dev2+g1be0916.d20180206-py3.5.egg/jetconf/http_handlers.py", line 565, in _put
new_root = self.ds.update_node_rpc(staging_root, rpc1, json_data)
File "/usr/local/lib/python3.5/dist-packages/restconf-0.3.4.dev2+g1be0916.d20180206-py3.5.egg/jetconf/data.py", line 567, in update_node_rpc
new_n = n.update(input_member_value, raw=True)
File "/home/monalisa/.local/lib/python3.5/site-packages/yangson/instance.py", line 269, in update
newval = self.schema_node.from_raw(value, self.json_pointer()) if raw else value
File "/home/monalisa/.local/lib/python3.5/site-packages/yangson/schemanode.py", line 756, in from_raw
raise RawTypeError(jptr, self.type.name + " value")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Kindly provide support to resolve the issue.https://gitlab.nic.cz/labs/jetconf/-/issues/34Not retriving orphan instance.2018-02-07T06:30:11+01:00MonalisaNot retriving orphan instance.GET https://10.102.3.37:8443/restconf/data/modulename:maincontainer/subcontainer/leafnode
While retrieving above mentioned leafnode for state data, where config is set to false(in yang file),it is throwing below exception while creating...GET https://10.102.3.37:8443/restconf/data/modulename:maincontainer/subcontainer/leafnode
While retrieving above mentioned leafnode for state data, where config is set to false(in yang file),it is throwing below exception while creating orphan instance in data.py
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 125, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 669, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 506, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/jetconf-0.3.4.dev2+g1be0916.d20180116-py3.5.egg/jetconf/rest_server.py", line 115, in data_received
self.run_request_handler(headers, event.stream_id, None)
File "/usr/local/lib/python3.5/dist-packages/jetconf-0.3.4.dev2+g1be0916.d20180116-py3.5.egg/jetconf/rest_server.py", line 190, in run_request_handler
resp = h(headers, data, self.client_cert)
File "/usr/local/lib/python3.5/dist-packages/jetconf-0.3.4.dev2+g1be0916.d20180116-py3.5.egg/jetconf/http_handlers.py", line 366, in get_api_staging
http_resp = self._get(headers, api_pth, username, staging=True)
File "/usr/local/lib/python3.5/dist-packages/jetconf-0.3.4.dev2+g1be0916.d20180116-py3.5.egg/jetconf/http_handlers.py", line 260, in _get
n = self.ds.get_node_rpc(rpc1, staging)
File "/usr/local/lib/python3.5/dist-packages/jetconf-0.3.4.dev2+g1be0916.d20180116-py3.5.egg/jetconf/data.py", line 260, in get_node_rpc
state_root_n = sdh.schema_node.orphan_instance(state_handler_val)
File "/usr/local/lib/python3.5/dist-packages/yangson-1.3.22-py3.5.egg/yangson/schemanode.py", line 657, in orphan_instance
return ObjectMember(self.iname(), {}, val, None, self, val.timestamp)
AttributeError: 'str' object has no attribute 'timestamp'
Same behavior is observed in jukebox-example for song-count or album count leaf node.https://gitlab.nic.cz/labs/jetconf/-/issues/33Broken link2018-01-22T10:00:16+01:00Ghost UserBroken linkAt public page https://gitlab.labs.nic.cz/labs/jetconf/wikis/home
Found broken link to jc-browser. Perhaps this is a private project but is not mentioned anywhere.At public page https://gitlab.labs.nic.cz/labs/jetconf/wikis/home
Found broken link to jc-browser. Perhaps this is a private project but is not mentioned anywhere.https://gitlab.nic.cz/labs/jetconf/-/issues/12Knot instrumentation2018-01-22T09:54:29+01:00Ladislav LhotkaKnot instrumentationImplement all supported RESTCONF operations via _libdan_ API.Implement all supported RESTCONF operations via _libdan_ API.RESTCONF server prototypeDominik TaborskyDominik Taborskyhttps://gitlab.nic.cz/labs/jetconf/-/issues/25Merge everything to master.2017-12-07T13:00:53+01:00Ladislav LhotkaMerge everything to master.Beta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/26Prepare packaging with setuptools2017-12-07T13:00:53+01:00Ladislav LhotkaPrepare packaging with setuptoolsBeta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/27Document REST API2017-12-07T13:00:53+01:00Ladislav LhotkaDocument REST APIThis can mainly refer to [RESTCONF](https://tools.ietf.org/html/draft-ietf-netconf-restconf-18), but we need to document our extensions (commit).
Documentation should also provide pointers to data models (NACM, dns server configuration, ...This can mainly refer to [RESTCONF](https://tools.ietf.org/html/draft-ietf-netconf-restconf-18), but we need to document our extensions (commit).
Documentation should also provide pointers to data models (NACM, dns server configuration, zone data).Beta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/28Make GitLab repo public and set up GitHub mirror.2017-12-07T13:00:53+01:00Ladislav LhotkaMake GitLab repo public and set up GitHub mirror.Petr Černohouz will help with this one.Petr Černohouz will help with this one.Beta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/29Test installation of JetConf + Knot2017-12-07T13:00:53+01:00Ladislav LhotkaTest installation of JetConf + Knot* Dominik's machine or another server (in Prague)?
* Should be open to interested external testers
* How shall we provide users with certificates?* Dominik's machine or another server (in Prague)?
* Should be open to interested external testers
* How shall we provide users with certificates?Beta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/30Upload JetConf package to PyPI2017-12-07T13:00:53+01:00Ladislav LhotkaUpload JetConf package to PyPIBeta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/31Make documentation publicly accessible2017-12-07T13:00:53+01:00Ladislav LhotkaMake documentation publicly accessible[Read the Docs](https://readthedocs.org) might be a good place.[Read the Docs](https://readthedocs.org) might be a good place.Beta version of RESTCONF serverhttps://gitlab.nic.cz/labs/jetconf/-/issues/32ValueError: not enough values to unpack2017-05-16T16:00:17+02:00Ladislav LhotkaValueError: not enough values to unpack```
2017-03-24 09:50:50,155 INFO [lojza@mail.cz] api_get: /restconf/data?depth=2
2017-03-24 09:50:50,155 ERROR Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Tr...```
2017-03-24 09:50:50,155 INFO [lojza@mail.cz] api_get: /restconf/data?depth=2
2017-03-24 09:50:50,155 ERROR Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/selector_events.py", line 731, in _read_ready
self._protocol.data_received(data)
File "/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/sslproto.py", line 516, in data_received
self._app_protocol.data_received(chunk)
File "/Users/lhotka/Projects/jetconf/jetconf/rest_server.py", line 115, in data_received
self.run_request_handler(headers, event.stream_id, None)
File "/Users/lhotka/Projects/jetconf/jetconf/rest_server.py", line 170, in run_request_handler
resp = h(headers, data, self.client_cert)
File "/Users/lhotka/Projects/jetconf/jetconf/http_handlers.py", line 276, in get_api_closure
ns = DataHelpers.path_first_ns(api_pth)
File "/Users/lhotka/Projects/jetconf/jetconf/helpers.py", line 54, in path_first_ns
ns1, sel1 = first_seg.split(":", maxsplit=1)
ValueError: not enough values to unpack (expected 2, got 1)
```https://gitlab.nic.cz/labs/jetconf/-/issues/1review existing configuration model2017-05-02T20:28:14+02:00Ladislav Lhotkareview existing configuration modelMake sure that it fits the current Knot configuration.Make sure that it fits the current Knot configuration.Consolidated data model for DNS serverLadislav LhotkaLadislav Lhotkahttps://gitlab.nic.cz/labs/jetconf/-/issues/2Extend the model with state data, operations and notifications.2017-05-02T20:28:14+02:00Ladislav LhotkaExtend the model with state data, operations and notifications.Discuss with Dan what Knot currently provides, and implement it in the data model.Discuss with Dan what Knot currently provides, and implement it in the data model.Consolidated data model for DNS serverLadislav LhotkaLadislav Lhotkahttps://gitlab.nic.cz/labs/jetconf/-/issues/3What granularity shall we use for entity tags?2017-05-02T20:28:14+02:00Ladislav LhotkaWhat granularity shall we use for entity tags?A RESTCONF server MUST maintain an entity tag for the datastore resource {+restconf}/data, but it can do it also for any subordinate data resources.A RESTCONF server MUST maintain an entity tag for the datastore resource {+restconf}/data, but it can do it also for any subordinate data resources.JetConf server architecture specificationLadislav LhotkaLadislav Lhotkahttps://gitlab.nic.cz/labs/jetconf/-/issues/4Granularity for Last-Modified2017-05-02T20:28:14+02:00Ladislav LhotkaGranularity for Last-ModifiedA RESTCONF server MUST maintain a last-modified timestamp for the datastore resource {+restconf}/data, but it can do it also for any subordinate data resources.A RESTCONF server MUST maintain a last-modified timestamp for the datastore resource {+restconf}/data, but it can do it also for any subordinate data resources.JetConf server architecture specificationLadislav LhotkaLadislav Lhotkahttps://gitlab.nic.cz/labs/jetconf/-/issues/6Handover of client name from TLS2017-05-02T20:28:14+02:00Ladislav LhotkaHandover of client name from TLSThe name of the client authenticated via TLS has to be passed to the JetConf application.The name of the client authenticated via TLS has to be passed to the JetConf application.Integration of NACMhttps://gitlab.nic.cz/labs/jetconf/-/issues/7Datastore for NACM2017-05-02T20:28:14+02:00Ladislav LhotkaDatastore for NACMImplementation of a datastore for access control data.
- [x] reading
- [ ] writingImplementation of a datastore for access control data.
- [x] reading
- [ ] writingIntegration of NACMhttps://gitlab.nic.cz/labs/jetconf/-/issues/8Instrumentation for access control2017-05-02T20:28:14+02:00Ladislav LhotkaInstrumentation for access controlThe JetConf server has to determine whether the authenticated client has the right to perform a requested action.
The procedures are described in [RFC 6536](https://datatracker.ietf.org/doc/rfc6536/).The JetConf server has to determine whether the authenticated client has the right to perform a requested action.
The procedures are described in [RFC 6536](https://datatracker.ietf.org/doc/rfc6536/).Integration of NACM