On Fri, Oct 7, 2016 at 10:44 PM, Yaniv Kaul <ykaul@redhat.com> wrote:
I'm trying on FC24, using python-ovirt-engine-sdk4-4.1.0-0.0.20161003git056315d.fc24.x86_64 to add a DC, and failing - against master. The client is unhappy:
File "/home/ykaul/ovirt-system-tests/basic-suite-master/test-scenarios/002_bootstrap.py", line 98, in add_dc4
    version=sdk4.types.Version(major=DC_VER_MAJ,minor=DC_VER_MIN),
  File "/usr/lib64/python2.7/site-packages/ovirtsdk4/services.py", line 4347, in add
    response = self._connection.send(request)
  File "/usr/lib64/python2.7/site-packages/ovirtsdk4/__init__.py", line 276, in send
    return self.__send(request)
  File "/usr/lib64/python2.7/site-packages/ovirtsdk4/__init__.py", line 298, in __send
    self._sso_token = self._get_access_token()
  File "/usr/lib64/python2.7/site-packages/ovirtsdk4/__init__.py", line 460, in _get_access_token
    sso_response = self._get_sso_response(self._sso_url, post_data)
  File "/usr/lib64/python2.7/site-packages/ovirtsdk4/__init__.py", line 498, in _get_sso_response
    return json.loads(body_buf.getvalue().decode('utf-8'))
  File "/usr/lib64/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.7/json/decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded


Surprisingly, I now can't find that RPM of this SDK in resources.ovirt.org now.


- same result.

Did not see anything obvious on server or engine logs.
The code:
def add_dc4(api):
    nt.assert_true(api != None)
    dcs_service = api.system_service().data_centers_service()
    nt.assert_true(
        dc = dcs_service.add(
            sdk4.types.DataCenter(
                name=DC_NAME4,
                description='APIv4 DC',
                local=False,
                version=sdk4.types.Version(major=DC_VER_MAJ,minor=DC_VER_MIN),
            ),
        )
    )


And the api object is from:
            return sdk4.Connection(
                url=url,
                username=constants.ENGINE_USER,
                password=str(self.metadata['ovirt-engine-password']),
                insecure=True,
                debug=True,
            )


The clue is actually on the HTTPd logs:
192.168.203.1 - - [12/Oct/2016:17:56:27 -0400] "POST /ovirt-engine/sso/oauth/token HTTP/1.1" 404 74

And indeed, from the deubg log:
begin captured logging << --------------------\n
root: DEBUG: Trying 192.168.203.3...\n
root: DEBUG: Connected to 192.168.203.3 (192.168.203.3) port 443 (#0)\n
root: DEBUG: Initializing NSS with certpath: sql:/etc/pki/nssdb\n
root: DEBUG: skipping SSL peer certificate verification\n
root: DEBUG: ALPN/NPN, server did not agree to a protocol\n
root: DEBUG: SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\n
root: DEBUG: Server certificate:\n
root: DEBUG: subject: CN=engine,O=Test,C=US\n
root: DEBUG: start date: Oct 11 21:55:29 2016 GMT\n
root: DEBUG: expire date: Sep 16 21:55:29 2021 GMT\n
root: DEBUG: common name: engine\nroot: DEBUG: issuer: CN=engine.38998,O=Test,C=US\n
root: DEBUG: POST /ovirt-engine/sso/oauth/token HTTP/1.1\n
root: DEBUG: Host: 192.168.203.3\n
root: DEBUG: User-Agent: PythonSDK/4.1.0a0\n
root: DEBUG: Accept: application/json\n
root: DEBUG: Content-Length: 78\n
root: DEBUG: Content-Type: application/x-www-form-urlencoded\nroot: DEBUG: username=admin%40internal&scope=ovirt-app-api&password=123&grant_type=password\n
root: DEBUG: upload completely sent off: 78 out of 78 bytes\n
root: DEBUG: HTTP/1.1 404 Not Found\n
root: DEBUG: Date: Wed, 12 Oct 2016 21:56:27 GMT\n
root: DEBUG: Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips\n
root: DEBUG: Content-Length: 74\n
root: DEBUG: Content-Type: text/html; charset=UTF-8\n
root: DEBUG: \n
root: DEBUG: <html><head><title>Error</title></head><body>404 - Not Found</body></html>\n
root: DEBUG: Connection #0 to host 192.168.203.3 left intact\n
--------------------- >> end captured logging