On Tue, Feb 9, 2021 at 7:24 AM <[email protected]> wrote: > > Project: > https://jenkins.ovirt.org/job/ovirt-system-tests_basic-suite-master_nightly/ > Build: > https://jenkins.ovirt.org/job/ovirt-system-tests_basic-suite-master_nightly/857/ > Build Number: 857 > Build Status: Still Failing > Triggered By: Started by timer > > ------------------------------------- > Changes Since Last Success: > ------------------------------------- > Changes for Build #855 > [Eitan Raviv] network: remove fqdn from /etc/hosts > > > Changes for Build #856 > [Eitan Raviv] network: remove fqdn from /etc/hosts > > > Changes for Build #857 > [Eitan Raviv] network: remove fqdn from /etc/hosts > > > > > ----------------- > Failed Tests: > ----------------- > 1 tests failed. > FAILED: > basic-suite-master.test-scenarios.test_002_bootstrap.test_add_nfs_master_storage_domain > > Error Message: > AssertionError: False != True after 600 seconds > > Stack Trace: > engine = <ovirtsdk4.services.SystemService object at 0x7fda58b32828> > event_id = [956] > > @contextlib.contextmanager > def wait_for_event(engine, event_id): > ''' > event_id could either be an int - a single > event ID or a list - multiple event IDs > that all will be checked > ''' > events = engine.events_service() > last_event = int(events.list(max=2)[0].id) > try: > > yield > > ../ost_utils/ost_utils/engine_utils.py:38: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > api = <ovirtsdk4.Connection object at 0x7fda58b32748> > domain = <ovirtsdk4.types.StorageDomain object at 0x7fda58d1fac8> > dc_name = 'test-dc' > > def add(api, domain, dc_name): > system_service = api.system_service() > sds_service = system_service.storage_domains_service() > with engine_utils.wait_for_event(system_service, 956): # > USER_ADD_STORAGE_DOMAIN(956) > > sd = sds_service.add(domain) > > ../ost_utils/ost_utils/storage_utils/domain.py:33: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <ovirtsdk4.services.StorageDomainsService object at 0x7fda57ca4f60> > storage_domain = <ovirtsdk4.types.StorageDomain object at 0x7fda58d1fac8> > headers = None, query = {}, wait = True, kwargs = {} > > def add( > self, > storage_domain, > headers=None, > query=None, > wait=True, > **kwargs > ): > """ > Adds a new storage domain. > Creation of a new <<types/storage_domain,StorageDomain>> requires the > `name`, `type`, `host`, and `storage` > attributes. Identify the `host` attribute with the `id` or `name` > attributes. In {product-name} 3.6 and > later you can enable the wipe after delete option by default on the > storage domain. To configure this, specify > `wipe_after_delete` in the POST request. This option can be edited > after the domain is created, but doing so will > not change the wipe after delete property of disks that already exist. > To add a new storage domain with specified `name`, `type`, > `storage.type`, `storage.address`, and `storage.path`, > and using a host with an id `123`, send a request like this: > [source] > ---- > POST /ovirt-engine/api/storageDomains > ---- > With a request body like this: > [source,xml] > ---- > <storage_domain> > <name>mydata</name> > <type>data</type> > <storage> > <type>nfs</type> > <address>mynfs.example.com</address> > <path>/exports/mydata</path> > </storage> > <host> > <name>myhost</name> > </host> > </storage_domain> > ---- > To create a new NFS ISO storage domain send a request like this: > [source,xml] > ---- > <storage_domain> > <name>myisos</name> > <type>iso</type> > <storage> > <type>nfs</type> > <address>mynfs.example.com</address> > <path>/export/myisos</path> > </storage> > <host> > <name>myhost</name> > </host> > </storage_domain> > ---- > To create a new iSCSI storage domain send a request like this: > [source,xml] > ---- > <storage_domain> > <name>myiscsi</name> > <type>data</type> > <storage> > <type>iscsi</type> > <logical_units> > <logical_unit id="3600144f09dbd050000004eedbd340001"/> > <logical_unit id="3600144f09dbd050000004eedbd340002"/> > </logical_units> > </storage> > <host> > <name>myhost</name> > </host> > </storage_domain> > ---- > > > This method supports the following parameters: > > `storage_domain`:: The storage domain to add. > > `headers`:: Additional HTTP headers. > > `query`:: Additional URL query parameters. > > `wait`:: If `True` wait for the response. > """ > # Check the types of the parameters: > Service._check_types([ > ('storage_domain', storage_domain, types.StorageDomain), > ]) > > # Build the URL: > query = query or {} > > # Send the request and wait for the response: > > return self._internal_add(storage_domain, headers, query, wait) > > /usr/lib64/python3.6/site-packages/ovirtsdk4/services.py:26182: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <ovirtsdk4.services.StorageDomainsService object at 0x7fda57ca4f60> > object = <ovirtsdk4.types.StorageDomain object at 0x7fda58d1fac8>, headers = > {} > query = {}, wait = True > > def _internal_add(self, object, headers=None, query=None, wait=None): > """ > Executes an `add` method. > """ > # Populate the headers: > headers = headers or {} > > # Send the request and wait for the response: > request = http.Request(method='POST', path=self._path, query=query, > headers=headers) > request.body = writer.Writer.write(object, indent=True) > context = self._connection.send(request) > > def callback(response): > if response.code in [200, 201, 202]: > return self._internal_read_body(response) > else: > self._check_fault(response) > > future = Future(self._connection, context, callback) > > return future.wait() if wait else future > > /usr/lib64/python3.6/site-packages/ovirtsdk4/service.py:232: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <ovirtsdk4.service.Future object at 0x7fda57ca49b0> > > def wait(self): > """ > Waits till the result of the operation that created this future is > available. > """ > response = self._connection.wait(self._context) > > return self._code(response) > > /usr/lib64/python3.6/site-packages/ovirtsdk4/service.py:55: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > response = <ovirtsdk4.http.Response object at 0x7fda57ca4f98> > > def callback(response): > if response.code in [200, 201, 202]: > return self._internal_read_body(response) > else: > > self._check_fault(response) > > /usr/lib64/python3.6/site-packages/ovirtsdk4/service.py:229: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <ovirtsdk4.services.StorageDomainsService object at 0x7fda57ca4f60> > response = <ovirtsdk4.http.Response object at 0x7fda57ca4f98> > > def _check_fault(self, response): > """ > Reads the response body assuming that it contains a fault message, > converts it to an exception and raises it. > > This method is intended for internal use by other > components of the SDK. Refrain from using it directly, > as backwards compatibility isn't guaranteed. > """ > > body = self._internal_read_body(response) > if isinstance(body, types.Fault): > > self._raise_error(response, body) > > /usr/lib64/python3.6/site-packages/ovirtsdk4/service.py:132: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > response = <ovirtsdk4.http.Response object at 0x7fda57ca4f98> > detail = <ovirtsdk4.types.Fault object at 0x7fda57ca44e0> > > @staticmethod > def _raise_error(response, detail=None): > """ > Creates and raises an error containing the details of the given HTTP > response and fault. > > This method is intended for internal use by other components of the > SDK. Refrain from using it directly, as backwards compatibility isn't > guaranteed. > """ > fault = detail if isinstance(detail, types.Fault) else None > > msg = '' > if fault: > if fault.reason: > if msg: > msg += ' ' > msg = msg + 'Fault reason is "%s".' % fault.reason > if fault.detail: > if msg: > msg += ' ' > msg = msg + 'Fault detail is "%s".' % fault.detail > if response: > if response.code: > if msg: > msg += ' ' > msg = msg + 'HTTP response code is %s.' % response.code > if response.message: > if msg: > msg += ' ' > msg = msg + 'HTTP response message is "%s".' % > response.message > > if isinstance(detail, six.string_types): > if msg: > msg += ' ' > msg = msg + detail + '.' > > class_ = Error > if response is not None: > if response.code in [401, 403]: > class_ = AuthError > elif response.code == 404: > class_ = NotFoundError > > error = class_(msg) > error.code = response.code if response else None > error.fault = fault > > raise error > E ovirtsdk4.Error: Fault reason is "Operation Failed". Fault detail is > "[Network error during communication with the Host.]". HTTP response code is > 400.
Did anyone check this? It started failing yesterday. Also for me, e.g.: https://jenkins.ovirt.org/job/ovirt-system-tests_standard-check-patch/15458/ Thanks and best regards, > > /usr/lib64/python3.6/site-packages/ovirtsdk4/service.py:118: Error > > During handling of the above exception, another exception occurred: > > engine_api = <ovirtsdk4.Connection object at 0x7fda58b32748> > sd_nfs_host_storage_ip = '192.168.202.2' > > @order_by(_TEST_LIST) > @pytest.mark.skipif(MASTER_SD_TYPE != 'nfs', reason='not using nfs') > def test_add_nfs_master_storage_domain(engine_api, > sd_nfs_host_storage_ip): > > add_nfs_storage_domain(engine_api, sd_nfs_host_storage_ip) > > ../basic-suite-master/test-scenarios/test_002_bootstrap.py:545: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > ../basic-suite-master/test-scenarios/test_002_bootstrap.py:554: in > add_nfs_storage_domain > nfs_version='v4_2') > ../ost_utils/ost_utils/storage_utils/nfs.py:62: in add_domain > domain.add(engine_api, p, dc_name) > ../ost_utils/ost_utils/storage_utils/domain.py:37: in add > lambda: sd_service.get().status == > sdk4.types.StorageDomainStatus.UNATTACHED > /usr/lib64/python3.6/contextlib.py:99: in __exit__ > self.gen.throw(type, value, traceback) > ../ost_utils/ost_utils/engine_utils.py:44: in wait_for_event > lambda: > ../ost_utils/ost_utils/assertions.py:98: in assert_true_within_long > assert_equals_within_long(func, True, allowed_exceptions) > ../ost_utils/ost_utils/assertions.py:83: in assert_equals_within_long > func, value, LONG_TIMEOUT, allowed_exceptions=allowed_exceptions > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > func = <function wait_for_event.<locals>.<lambda> at 0x7fda57c9c2f0> > value = True, timeout = 600, allowed_exceptions = [], initial_wait = 0 > error_message = 'False != True after 600 seconds' > > def assert_equals_within( > func, value, timeout, allowed_exceptions=None, initial_wait=10, > error_message=None > ): > allowed_exceptions = allowed_exceptions or [] > res = '<no-result-obtained>' > with _EggTimer(timeout) as timer: > while not timer.elapsed(): > try: > res = func() > if res == value: > return > except Exception as exc: > if _instance_of_any(exc, allowed_exceptions): > time.sleep(3) > continue > > LOGGER.exception("Unhandled exception in %s", func) > raise > > if initial_wait == 0: > time.sleep(3) > else: > time.sleep(initial_wait) > initial_wait = 0 > try: > if error_message is None: > error_message = '%s != %s after %s seconds' % (res, value, > timeout) > > raise AssertionError(error_message) > E AssertionError: False != True after 600 seconds > > ../ost_utils/ost_utils/assertions.py:61: > AssertionError_______________________________________________ > Infra mailing list -- [email protected] > To unsubscribe send an email to [email protected] > Privacy Statement: https://www.ovirt.org/privacy-policy.html > oVirt Code of Conduct: > https://www.ovirt.org/community/about/community-guidelines/ > List Archives: > https://lists.ovirt.org/archives/list/[email protected]/message/ND5KFKIA7BNG7AQPXBXQ2GROEZNRA5SO/ -- Didi _______________________________________________ Devel mailing list -- [email protected] To unsubscribe send an email to [email protected] Privacy Statement: https://www.ovirt.org/privacy-policy.html oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/ List Archives: https://lists.ovirt.org/archives/list/[email protected]/message/K3I6RQRUFZHLR3KUGFD2QLXAFLUPVQ2J/
