DMTF / Redfish-Protocol-Validator

The Redfish Protocol Validator tests the HTTP protocol behavior of a Redfish service to validate that it conforms to the Redfish specification.
Other
14 stars 12 forks source link

Unhandled connection errors with HTTP redirect attempts and SSE streams #9

Closed scottbusi closed 3 years ago

scottbusi commented 3 years ago

Continue to crash during execution python3 rf_protocol_validator.py --user Administrator --password superuser -r https//10.8.1.164 --no-cert-check

Python 3.6 Name: urllib3 Version: 1.14 Name: requests Version: 2.9.1

/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning)

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 376, in _make_request httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen body=body, headers=headers) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 378, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 376, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 609, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/retry.py", line 247, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/packages/six.py", line 309, in reraise raise value.with_traceback(tb) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen body=body, headers=headers) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 378, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 95, in main perform_tests(sut) File "rf_protocol_validator.py", line 33, in perform_tests service_requests.test_service_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1372, in test_service_requests test_request_headers(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1263, in test_request_headers test_accept_header(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 73, in test_accept_header test_header(sut, header, header_values, uri, assertion, stream=True) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 21, in test_header stream=stream) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 480, in get return self.request('GET', url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 468, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 426, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) [root@scottsys Redfish-Protocol-Validator-master]# /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning:

billdodd commented 3 years ago

That's a really old version of requests (2.9.1 is from 2015). Can you try updating to the latest requests package?

scottbusi commented 3 years ago

Thank you for the replay, looks like that resolved that issue but now getting another failure

Name: urllib3 Version: 1.26.3 Name: requests Version: 2.9.1

InsecureRequestWarning) /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 137, in _new_conn (self.host, self.port), self.timeout, **extra_kw) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 91, in create_connection raise err File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 81, in create_connection sock.connect(sa) TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen body=body, headers=headers) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 353, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/lib64/python3.6/http/client.py", line 1254, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1300, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1249, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1036, in _send_output self.send(msg) File "/usr/lib64/python3.6/http/client.py", line 974, in send self.connect() File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 162, in connect conn = self._new_conn() File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 146, in _new_conn self, "Failed to establish a new connection: %s" % e) requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 376, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 609, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/retry.py", line 273, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) requests.packages.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 92, in main resources.http_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/resources.py", line 404, in http_requests verify=sut.verify) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 67, in get return request('get', url, params=params, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 53, in request return session.request(method=method, url=url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 468, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 437, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out',)) [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Thursday, January 28, 2021 11:48 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

That's a really old version of requests (2.9.1 is from 2015). Can you try updating to the latest requests package?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-769332992, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETN6CEEGDE6AY4MRJETS4G5QNANCNFSM4WXS46VQ.

scottbusi commented 3 years ago

Sorry missed the entire failure, no latest version of requests did not solve this

/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 376, in _make_request httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Scott Busi Sent: Thursday, January 28, 2021 1:49 PM To: 'DMTF/Redfish-Protocol-Validator' reply@reply.github.com Subject: RE: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Thank you for the replay, looks like that resolved that issue but now getting another failure

Name: urllib3 Version: 1.26.3 Name: requests Version: 2.9.1

InsecureRequestWarning) /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 137, in _new_conn (self.host, self.port), self.timeout, **extra_kw) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 91, in create_connection raise err File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 81, in create_connection sock.connect(sa) TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen body=body, headers=headers) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 353, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/lib64/python3.6/http/client.py", line 1254, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1300, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1249, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1036, in _send_output self.send(msg) File "/usr/lib64/python3.6/http/client.py", line 974, in send self.connect() File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 162, in connect conn = self._new_conn() File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 146, in _new_conn self, "Failed to establish a new connection: %s" % e) requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 376, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 609, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/util/retry.py", line 273, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) requests.packages.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 92, in main resources.http_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/resources.py", line 404, in http_requests verify=sut.verify) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 67, in get return request('get', url, params=params, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 53, in request return session.request(method=method, url=url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 468, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 437, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc909b4aef0>: Failed to establish a new connection: [Errno 110] Connection timed out',)) [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com<mailto:notifications@github.com> Sent: Thursday, January 28, 2021 11:48 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com<mailto:Redfish-Protocol-Validator@noreply.github.com> Cc: Scott Busi scott.busi@ztsystems.com<mailto:scott.busi@ztsystems.com>; Author author@noreply.github.com<mailto:author@noreply.github.com> Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

That's a really old version of requests (2.9.1 is from 2015). Can you try updating to the latest requests package?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-769332992, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETN6CEEGDE6AY4MRJETS4G5QNANCNFSM4WXS46VQ.

billdodd commented 3 years ago

/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 376, in _make_request httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

From the traceback in the above output, I can see that this is still the old 2.9.1 version of requests. It looks like you updated urllib3 from 1.14 to 1.26.3. But the requests package is still at 2.9.1. The latest version of requests is 2.25.1.

scottbusi commented 3 years ago

Sorry mistake on my part, sorry to keep bothering you but still no luck, not sure if something is wrong on our side "RedfishVersion": "1.8.0", "RtpVersion": "1.8.0" [root@scottsys unittests]# uname -a Linux scottsys 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

[root@scottsys Redfish-Protocol-Validator-master]# pip3.6 install requests==2.25.1 WARNING: Running pip install with root privileges is generally not a good idea. Try pip3.6 install --user instead. Requirement already satisfied: requests==2.25.1 in /usr/local/lib/python3.6/site-packages Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.6/site-packages (from requests==2.25.1) Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/site-packages (from requests==2.25.1) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/site-packages (from requests==2.25.1) Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.6/site-packages (from requests==2.25.1)

[root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 170, in _new_conn (self._dns_host, self.port), self.timeout, **extra_kw File "/usr/local/lib/python3.6/site-packages/urllib3/util/connection.py", line 96, in create_connection raise err File "/usr/local/lib/python3.6/site-packages/urllib3/util/connection.py", line 86, in create_connection sock.connect(sa) TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 394, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 234, in request super(HTTPConnection, self).request(method, url, body=body, headers=headers) File "/usr/lib64/python3.6/http/client.py", line 1254, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1300, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1249, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib64/python3.6/http/client.py", line 1036, in _send_output self.send(msg) File "/usr/lib64/python3.6/http/client.py", line 974, in send self.connect() File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 200, in connect conn = self._new_conn() File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 182, in _new_conn self, "Failed to establish a new connection: %s" % e urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f9450ad32e8>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 756, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 573, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f9450ad32e8>: Failed to establish a new connection: [Errno 110] Connection timed out',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 92, in main resources.http_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/resources.py", line 404, in http_requests verify=sut.verify) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 76, in get return request('get', url, params=params, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 516, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.8.1.164', port=80): Max retries exceeded with url: /redfish/v1/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f9450ad32e8>: Failed to establish a new connection: [Errno 110] Connection timed out',)) [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Thursday, January 28, 2021 2:34 PM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) /usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 376, in _make_request httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

From the traceback in the above output, I can see that this is still the old 2.9.1 version of requests. It looks like you updated urllib3 from 1.14 to 1.26.3. But the requests package is still at 2.9.1. The latest version of requests is 2.25.1.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-769443768, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETMX3WGENHR6CEBEB4TS4HQ53ANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Thanks. That output is helpful.

One of the tests sends a GET request to an HTTP URL to try to trigger a redirect and see how it behaves. It looks like your service is not responding to the request at all, hence the timeout. I may need to update the code to handle this case.

In the meantime, can you try adding the --avoid-http-redirect option to your command line:

python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect

scottbusi commented 3 years ago

Tried the –avoid-http-redirect , no luck

[root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 756, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 531, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.6/site-packages/urllib3/packages/six.py", line 734, in reraise raise value.with_traceback(tb) File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 95, in main perform_tests(sut) File "rf_protocol_validator.py", line 33, in perform_tests service_requests.test_service_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1372, in test_service_requests test_request_headers(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1263, in test_request_headers test_accept_header(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 73, in test_accept_header test_header(sut, header, header_values, uri, assertion, stream=True) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 21, in test_header stream=stream) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 555, in get return self.request('GET', url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 498, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Thursday, January 28, 2021 8:58 PM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Thanks. That output is helpful.

One of the tests sends a GET request to an HTTP URL to try to trigger a redirect and see how it behaves. It looks like your service is not responding to the request at all, hence the timeout. I may need to update the code to handle this case.

In the meantime, can you try adding the --avoid-http-redirect option to your command line:

python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-769574899, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETKOWOSPFLQKKWGMPH3S4I56HANCNFSM4WXS46VQ.

billdodd commented 3 years ago

It did get further with the --avoid-http-redirect option. But then it got an unexpected exception trying to open the Server-Sent Event stream. I'll look into how to better handle cases like that.

scottbusi commented 3 years ago

Any luck on a update to handle the non responsive service?

billdodd commented 3 years ago

Any luck on a update to handle the non responsive service?

I should have a test PR ready tomorrow (or maybe later tonight).

scottbusi commented 3 years ago

Thanks, I may of work past the problem, looks like it ran. Did get some warnings and errors.

root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect WARNING:root:Creating Redfish session failed with status 401; using Basic authentication status 401WARNING:root:session POST status: 401, response: {"error":{"@Message.ExtendedInfo":[{"@odata.type":"#Message.v1_0_8.Message","Message":"While attempting to establish a connection to /redfish/v1/SessionService/Sessions, the service was denied access.","MessageArgs":["/redfish/v1/SessionService/Sessions"],"MessageId":"Security.1.0.AccessDenied","Resolution":"Attempt to ensure that the URI is correct and that the service has the appropriate credentials.","Severity":"Critical"}],"code":"Security.1.0.AccessDenied","message":"While attempting to establish a connection to /redfish/v1/SessionService/Sessions, the service was denied access."}} ERROR:root:No accounts collection found WARNING:root:session POST status: 401, response: {"error":{"@Message.ExtendedInfo":[{"@odata.type":"#Message.v1_0_8.Message","Message":"While attempting to establish a connection to /redfish/v1/SessionService/Sessions, the service was denied access.","MessageArgs":["/redfish/v1/SessionService/Sessions"],"MessageId":"Security.1.0.AccessDenied","Resolution":"Attempt to ensure that the URI is correct and that the service has the appropriate credentials.","Severity":"Critical"}],"code":"Security.1.0.AccessDenied","message":"While attempting to establish a connection to /redfish/v1/SessionService/Sessions, the service was denied access."}} ERROR:root:No accounts collection found ERROR:root:No accounts collection found Summary - PASS: 126, WARN: 0, FAIL: 23, NOT_TESTED: 63 Report output: reports/RedfishProtocolValidationReport_02_02_2021_145242.tsv reports/RedfishProtocolValidationReport_02_02_2021_145242.html Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Tuesday, February 2, 2021 2:36 PM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Any luck on a update to handle the non responsive service?

I should have a test PR ready tomorrow (or maybe later tonight).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-772058516, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETKWCN35QCC6CS3PH6TS5B43TANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Glad to hear you got a complete run in.

I created PR #10 with fixes to avoid the unhandled exceptions for the redirect attempts and the opening of the SSE stream. Please give it try and let me know if you still get any crashes.

scottbusi commented 3 years ago

Thank you will do, did run into a problem that is in our code where we can not to a post or get on /SessionService/Session. Not sure how this effects the tool

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Tuesday, February 2, 2021 4:34 PM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Glad to hear you got a complete run in.

I created PR #10https://github.com/DMTF/Redfish-Protocol-Validator/pull/10 with fixes to avoid the unhandled exceptions for the redirect attempts and the opening of the SSE stream. Please give it try and let me know if you still get any crashes.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-772114033, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETPLCOK7OIHWOTWJP3LS5CKYXANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Thank you will do, did run into a problem that is in our code where we can not to a post or get on /SessionService/Session. Not sure how this effects the tool

If the POST to create a session fails, the tool will fall back to using BasicAuth. So it should still be able to access protected resources. But there are some tests that, for example, create a session with POST and DELETE it to test DELETE functionality. But if the POST fails, it can't perform the DELETE test, so you should see those tests showing a NOT_TESTED result.

scottbusi commented 3 years ago

Again thank you, sometimes it looks like we do not get a response, would this be related?

[root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.150 --no-cert-check --avoid-http-redirect Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Tuesday, February 2, 2021 9:56 PM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Thank you will do, did run into a problem that is in our code where we can not to a post or get on /SessionService/Session. Not sure how this effects the tool

If the POST to create a session fails, the tool will fall back to using BasicAuth. So it should still be able to access protected resources. But there are some tests that, for example, create a session with POST and DELETE it to test DELETE functionality. But if the POST fails, it can't perform the DELETE test, so you should see those tests showing a NOT_TESTED result.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-772253137, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETI4IHI3ZY27XW4553TS5DQOLANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Yes, that looks like another case where the service closed the connection without sending a response.

For these types of traceback output, there should normally be one or two or three additional stanzas like:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "...", line NNN, in xyz
  ...

If you could capture the full set of all those tracebacks, I can see where in the tool I may need to add additional try/except.

scottbusi commented 3 years ago

[root@scottsys urllib3]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect python3.6: can't open file 'rf_protocol_validator.py': [Errno 2] No such file or directory [root@scottsys urllib3]# cd .. [root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 756, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 531, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.6/site-packages/urllib3/packages/six.py", line 734, in reraise raise value.with_traceback(tb) File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 95, in main perform_tests(sut) File "rf_protocol_validator.py", line 33, in perform_tests service_requests.test_service_requests(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1372, in test_service_requests test_request_headers(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1263, in test_request_headers test_accept_header(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 73, in test_accept_header test_header(sut, header, header_values, uri, assertion, stream=True) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 21, in test_header stream=stream) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 555, in get return self.request('GET', url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 498, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) [root@scottsys Redfish-Protocol-Validator-master]# Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Wednesday, February 3, 2021 11:16 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

Yes, that looks like another case where the service closed the connection without sending a response.

For these types of traceback output, there should normally be one or two or three additional stanzas like:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "...", line NNN, in xyz

...

If you could capture the full set of all those tracebacks, I can see where in the tool I may need to add additional try/except.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-772752663, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETOT6FHZMUOFHO3GOZDS5GOHRANCNFSM4WXS46VQ.

billdodd commented 3 years ago

File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1372, in test_service_requests test_request_headers(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1263, in test_request_headers test_accept_header(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 73, in test_accept_header test_header(sut, header, header_values, uri, assertion, stream=True) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 21, in test_header stream=stream)

This call stack indicates you are running with the code from the master branch. This exception should be resolved by the PR I submitted last night. Please try this with the code in PR #10.

scottbusi commented 3 years ago

Looks like we got further then got another timeoue

[root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect WARNING:root:Attempt to PATCH /redfish/v1/Managers/Self/NetworkProtocol to restore the original NTPServers array failed with status 401; PATCH payload: {'NTP': {'NTPServers': ['time.nist.gov', 'pool.ntp.org']}} Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 756, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 531, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.6/site-packages/urllib3/packages/six.py", line 734, in reraise raise value.with_traceback(tb) File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status raise RemoteDisconnected("Remote end closed connection without" urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "rf_protocol_validator.py", line 110, in main() File "rf_protocol_validator.py", line 95, in main perform_tests(sut) File "rf_protocol_validator.py", line 35, in perform_tests service_details.test_service_details(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_details.py", line 1126, in test_service_details test_server_sent_events(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_details.py", line 1106, in test_server_sent_events response, event_dest = test_sse_open_creates_event_dest(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_details.py", line 823, in test_sse_open_creates_event_dest response, event_dest_uri = utils.get_sse_stream(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/utils.py", line 108, in get_sse_stream r = sut.session.get(sut.rhost + sut.subscriptions_uri) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 555, in get return self.request('GET', url, kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 498, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Wednesday, February 3, 2021 11:47 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1372, in test_service_requests test_request_headers(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 1263, in test_request_headers test_accept_header(sut) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 73, in test_accept_header test_header(sut, header, header_values, uri, assertion, stream=True) File "/Redfish_Protocol_Validator/Redfish-Protocol-Validator-master/assertions/service_requests.py", line 21, in test_header stream=stream)

This call stack indicates you are running with the code from the master branch. This exception should be resolved by the PR I submitted last night. Please try this with the code in PR #10https://github.com/DMTF/Redfish-Protocol-Validator/pull/10.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-772774964, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETOLCDE3C6YPNGDKRZLS5GRZ7ANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Got it. I'll make an update to the PR to cover this case as well. Should have it ready tomorrow morning sometime. I'll add a comment here when it is ready.

billdodd commented 3 years ago

I just updated PR #10 with an additional fix for the most recent exception. Please download the PR code again and give it a try.

scottbusi commented 3 years ago

Looks like those fixes worked, we can now execute with no exceptions

[root@scottsys Redfish-Protocol-Validator-master]# python3.6 rf_protocol_validator.py --user Administrator --password superuser --rhost https://10.8.1.164 --no-cert-check --avoid-http-redirect WARNING:root:Attempt to PATCH /redfish/v1/Managers/Self/NetworkProtocol to restore the original NTPServers array failed with status 401; PATCH payload: {'NTP': {'NTPServers': ['time.nist.gov', 'pool.ntp.org']}} WARNING:root:Caught ConnectionError while opening SSE stream and getting EventDestination URI ERROR:root:Deleting session /redfish/v1/SessionService/Sessions/d1e1ff8a62b4a8148dad9c3263d1efee returned status 401 Summary - PASS: 311, WARN: 2, FAIL: 19, NOT_TESTED: 40 Report output: reports/RedfishProtocolValidationReport_02_04_2021_094708.tsv reports/RedfishProtocolValidationReport_02_04_2021_094708.html [root@scottsys Redfish-Protocol-Validator-master]#

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Thursday, February 4, 2021 8:30 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

I just updated PR #10https://github.com/DMTF/Redfish-Protocol-Validator/pull/10 with an additional fix for the most recent exception. Please download the PR code again and give it a try.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-773437413, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETMQ262CDHJYL4DJE23S5LDSBANCNFSM4WXS46VQ.

scottbusi commented 3 years ago

There is one warning and during execution and the same warning is a failure for the test results with a patch to PATCH /redfish/v1/Managers/Self/NetworkProtocol WARNING:root:Attempt to PATCH /redfish/v1/Managers/Self/NetworkProtocol to restore the original NTPServers array failed with status 401; PATCH payload: {'NTP': {'NTPServers': ['time.nist.gov', 'pool.ntp.org']}}

We are able to PATCH /redfish/v1/Managers/Self/NetworkProtocol [root@scottsys ~]# curl --globoff -L -w "%{http_code} %{url_effective}\n" -ku Administrator:superuser -H "Content-Type: application/json" -H 'If-None-Match: ""' -d '{"NTP": {"NTPServers": ["time.nist.gov", "pool.ntp.org"]}}' -X PATCH https://10.8.1.164/redfish/v1/Managers/Self/NetworkProtocol 204 https://10.8.1.164/redfish/v1/Managers/Self/NetworkProtocol

Is the validator using payload : {'NTP': {'NTPServers': ['time.nist.gov', 'pool.ntp.org']}}? With ‘ ‘ around the string? Should those me “ “ around the string?

Scott Busi Senior Staff Engineer M: 919-219-2705

[ZT Systems]http://www.ztsystems.com/

This email and any files transmitted with it are privileged/confidential and intended solely for the use of the individual to whom they are addressed. If you have received this email in error, you are not authorized to distribute it in whole or in part. This communication does not constitute a contract offer, amendment, or acceptance of a contract offer, unless explicitly stated.

From: Bill Dodd notifications@github.com Sent: Thursday, February 4, 2021 8:30 AM To: DMTF/Redfish-Protocol-Validator Redfish-Protocol-Validator@noreply.github.com Cc: Scott Busi scott.busi@ztsystems.com; Author author@noreply.github.com Subject: Re: [DMTF/Redfish-Protocol-Validator] TypeError: getresponse() got an unexpected keyword argument 'buffering' (#9)

I just updated PR #10https://github.com/DMTF/Redfish-Protocol-Validator/pull/10 with an additional fix for the most recent exception. Please download the PR code again and give it a try.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/DMTF/Redfish-Protocol-Validator/issues/9#issuecomment-773437413, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASUAETMQ262CDHJYL4DJE23S5LDSBANCNFSM4WXS46VQ.

billdodd commented 3 years ago

Looks like those fixes worked, we can now execute with no exceptions

That's great news. Thanks for testing the PR!

billdodd commented 3 years ago

We are able to PATCH /redfish/v1/Managers/Self/NetworkProtocol [root@scottsys ~]# curl --globoff -L -w "%{http_code} %{url_effective}\n" -ku Administrator:superuser -H "Content-Type: application/json" -H 'If-None-Match: ""' -d '{"NTP": {"NTPServers": ["time.nist.gov", "pool.ntp.org"]}}' -X PATCH https://10.8.1.164/redfish/v1/Managers/Self/NetworkProtocol 204 https://10.8.1.164/redfish/v1/Managers/Self/NetworkProtocol

Is the validator using payload : {'NTP': {'NTPServers': ['time.nist.gov', 'pool.ntp.org']}}? With ‘ ‘ around the string? Should those me “ “ around the string?

Here, the representation of the payload is a python dict, which gets passed to the requests package. It is converted to a JSON string by requests before being sent. So the single quotes will be converted to double-quotes.

I'm not sure why the service would be returning a 401 Unauthorized.