OVN provider's firewalld services deployment during engine setup
by Leon Goldberg
Hey,
We're trying to come up with a way to deploy OVN provider's firewalld
services during engine setup. The naive solution of querying the user
during customization and then installing during STAGE_PACKAGES fails as
firewalld configuration happens prior to it.
We thought of a couple of possible solutions we'd like your opinions on
(ordered in perceived level of difficulty):
1) Ship/require the packages with ovirt-engine without requiring user
input. This essentially couples engine with OVN and disregards a future
where OVN doesn't run alongside Engine.
2) Install the packages immediately following user input during
customization. A bit hacky and doesn't conceptually fit the stage of
customization.
3) Move user input to STAGE_INTERNAL_PACKAGES. Feels more disruptive than
#1 to the current otopi flow as STAGE_INTERNAL_PACKAGES is dedicated for
packages that are required for otopi itself to operate. Not only this
doesn't fit conceptually, it introduces user input to a stage that
shouldn't have any.
4) Move firewalld configuration to happen after STAGE_PACKAGES.
5) Refactor to prepare the grounds for OVN/Engine separation. At this point
this feels very ambiguous. We don't yet know how will containers be
accessed (is ssh guaranteed?) in the future or generally how should a
remote installation look like.
Any input/questions are appreciated.
Thanks,
Leon
7 years, 2 months
New design for the Gerrit UI
by Evgheni Dereveanchin
Hi everyone,
The Infra team is working on customizing the look of Gerrit to make it fit
better with other oVirt services. I want to share the result of this
effort. Hopefully we can gather some feedback before applying the design to
oVirt's instance of Gerrit.
Please visit the Staging instance to check it out:
https://gerrit-staging.phx.ovirt.org/
The new design is inspired by oVirt's main website. There is a known glitch
that the "Loading Gerrit Code Review" message is overlapped by the logo
when the UI is loading. If you spot any other issues or have ideas for
improvement feel free to respond to this thread or share your feedback in
the following JIRA ticket:
https://ovirt-jira.atlassian.net/browse/OVIRT-912
--
Regards,
Evgheni Dereveanchin
7 years, 2 months
Failing tests for storage-py27.
by Petr Kotas
Hi,
I have encountered an issue with VDSM master when running tests.
Maybe I am doing something wrong, or I am overlooking something.
This is a clear master without any modification pulled with the latest
commits.
Did anyone please encountered the same issue:
================================================== FAILURES
==================================================
______________________________________ TestDirectioChecker.test_path_ok
______________________________________
self = <storage.check_test.TestDirectioChecker testMethod=test_path_ok>
def test_path_ok(self):
self.checks = 1
with temporaryPath(data=b"blah") as path:
checker = check.DirectioChecker(self.loop, path, self.complete)
checker.start()
self.loop.run_forever()
pprint.pprint(self.results)
result = self.results[0]
> delay = result.delay()
storage/check_test.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <CheckResult path=/var/tmp/tmpPpV1Rj rc=0 err=bytearray(b'0+1
records in\n0+1 ... copied, 0,000496228 s, 8,1 kB/s\n') time=4299448.73
elapsed=0.00 at 0x3b72390>
def delay(self):
# TODO: Raising MiscFileReadException for all errors to keep the old
# behavior. Should probably use StorageDomainAccessError.
if self.rc != 0:
raise exception.MiscFileReadException(self.path, self.rc,
self.err)
if not self.err:
raise exception.MiscFileReadException(self.path, "no stats")
stats = self.err.splitlines()[-1]
match = self._PATTERN.match(stats)
if not match:
raise exception.MiscFileReadException(self.path,
> "no match: %r" % stats)
E MiscFileReadException: Internal file read failure:
('/var/tmp/tmpPpV1Rj', "no match: bytearray(b'4 bytes (4 B) copied,
0,000496228 s, 8,1 kB/s')")
../lib/vdsm/storage/check.py:372: MiscFileReadException
-------------------------------------------- Captured stdout call
--------------------------------------------
[<CheckResult path=/var/tmp/tmpPpV1Rj rc=0 err=bytearray(b'0+1 records
in\n0+1 records out\n4 bytes (4 B) copied, 0,000496228 s, 8,1 kB/s\n')
time=4299448.73 elapsed=0.00 at 0x3b72390>]
============================================ 93 tests deselected
=============================================
====================== 1 failed, 1166 passed, 6 skipped, 93 deselected in
86.13 seconds ======================
ERROR: InvocationError: '/vagrant/vdsm/.tox/storage-py27/bin/py.test -m not
(slow or stress) storage'
storage-py35 create: /vagrant/vdsm/.tox/storage-py35
ERROR: InterpreterNotFound: python3.5
storage-py36 create: /vagrant/vdsm/.tox/storage-py36
ERROR: InterpreterNotFound: python3.6
Thank You,
Petr
7 years, 3 months
[ OST Failure Report ] [ basic_suite_master ] [004_basic_sanity.disk_operations]
by Dusan Fodor
Hello all,
could you please take a look at this?
Test failed: 004_basic_sanity.disk_operations
Link to all test logs:
http://jenkins.ovirt.org/job/ovirt-master_change-queue-tester/1518/artifact/
Error snippet:
11:57:18 [basic-suit] Error while running thread
11:57:18 [basic-suit] Traceback (most recent call last):
11:57:18 [basic-suit] File
"/usr/lib/python2.7/site-packages/lago/utils.py", line 58, in _ret_via_queue
11:57:18 [basic-suit] queue.put({'return': func()})
11:57:18 [basic-suit] File
"/usr/lib/python2.7/site-packages/ovirtlago/testlib.py", line 59, in wrapper
11:57:18 [basic-suit] return func(get_test_prefix(), *args, **kwargs)
11:57:18 [basic-suit] File
"/usr/lib/python2.7/site-packages/ovirtlago/testlib.py", line 78, in wrapper
11:57:18 [basic-suit] prefix.virt_env.engine_vm().get_api(api_ver=4),
*args, **kwargs
11:57:18 [basic-suit] File
"/home/jenkins/workspace/ovirt-master_change-queue-tester/ovirt-system-tests/basic-suite-master/test-scenarios/004_basic_sanity.py",
line 330, in live_storage_migration
11:57:18 [basic-suit] disk_service.get().status, types.DiskStatus.OK)
11:57:18 [basic-suit] File
"/usr/lib/python2.7/site-packages/ovirtlago/testlib.py", line 251, in
assert_equals_within_long
11:57:18 [basic-suit] func, value, LONG_TIMEOUT,
allowed_exceptions=allowed_exceptions
11:57:18 [basic-suit] File
"/usr/lib/python2.7/site-packages/ovirtlago/testlib.py", line 217, in
assert_equals_within
11:57:18 [basic-suit] res = func()
11:57:18 [basic-suit] File
"/home/jenkins/workspace/ovirt-master_change-queue-tester/ovirt-system-tests/basic-suite-master/test-scenarios/004_basic_sanity.py",
line 329, in <lambda>
11:57:18 [basic-suit] len(vm_service.snapshots_service().list()) == 1
and \
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/services.py", line 17648, in
list
11:57:18 [basic-suit] return self._internal_get(headers, query, wait)
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/service.py", line 202, in
_internal_get
11:57:18 [basic-suit] return future.wait() if wait else future
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/service.py", line 53, in wait
11:57:18 [basic-suit] return self._code(response)
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/service.py", line 199, in
callback
11:57:18 [basic-suit] self._check_fault(response)
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/service.py", line 123, in
_check_fault
11:57:18 [basic-suit] self._raise_error(response, body)
11:57:18 [basic-suit] File
"/usr/lib64/python2.7/site-packages/ovirtsdk4/service.py", line 109, in
_raise_error
11:57:18 [basic-suit] raise error
11:57:18 [basic-suit] Error: Fault reason is "Operation Failed". Fault
detail is "Entity not found: null". HTTP response code is 404.
Thanks
7 years, 3 months
[engine 4.0->4.1 upgrade] How to effectively test an upgrade
by Tasdik Rahman
--_000_SG2PR02MB12777351799471CAB9907B89D9BB0SG2PR02MB1277apcp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
SGVsbG8gdGhlcmUsDQoNCkkgd2FzIHdvbmRlcmluZyBob3cgc2hvdWxkIG9uZSB0ZXN0IGFmdGVy
IHVwZ3JhZGluZyB0aGUgc3lzdGVtLiBUaGUgdmVyc2lvbnMgSSBhbSBhdCBoYW5kIHJpZ2h0IG5v
dyBpcyBmcm9tDQoNCiAgKiAgIDQuMCAtPiA0LjENCiAgKiAgIDQuMSAtID4gNC4yDQoNCkJ1dCBJ
IGFtIGd1ZXNzaW5nIHRoZSB0ZXN0aW5nIHNob3VsZCBub3QgZGlmZmVyIG11Y2ggYmV0d2VlbiB0
aGUgZGlmZmVyZW50IHZlcnNpb25zLg0KDQpTdWdnZXN0aW9ucyB3b3VsZCBiZSBhcHByZWNpYXRl
ZC4NCg0KVGhhbmtzLA0KVGFzZGlrDQo=
--_000_SG2PR02MB12777351799471CAB9907B89D9BB0SG2PR02MB1277apcp_
Content-Type: text/html; charset="utf-8"
Content-ID: <0A9BD53C31B67E4E9D2478F132F62BD4(a)apcprd02.prod.outlook.com>
Content-Transfer-Encoding: base64
PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHRleHQ9IiMwMDAwMDAi
IGJnY29sb3I9IiNGRkZGRkYiPg0KPHA+SGVsbG8gdGhlcmUsIDxicj4NCjxicj4NCkkgd2FzIHdv
bmRlcmluZyBob3cgc2hvdWxkIG9uZSB0ZXN0IGFmdGVyIHVwZ3JhZGluZyB0aGUgc3lzdGVtLiBU
aGUgdmVyc2lvbnMgSSBhbSBhdCBoYW5kIHJpZ2h0IG5vdyBpcyBmcm9tPGJyPg0KPC9wPg0KPHVs
Pg0KPGxpPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyBmb250LWZhbWlseToN
CiAgICAgICAgICAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksICZxdW90O1NlZ29lIFVJJnF1b3Q7
LCBIZWx2ZXRpY2EsDQogICAgICAgICAgQXJpYWwsIHNhbnMtc2VyaWYsICZxdW90O0FwcGxlIENv
bG9yIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZQ0KICAgICAgICAgIFVJIEVtb2ppJnF1b3Q7LCAm
cXVvdDtTZWdvZSBVSSBTeW1ib2wmcXVvdDs7IGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICBm
b250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsNCiAgICAg
ICAgICBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOw0KICAg
ICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0
YXJ0Ow0KICAgICAgICAgIHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3
aGl0ZS1zcGFjZTogbm9ybWFsOw0KICAgICAgICAgIHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAw
cHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsNCiAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi1zdHlsZToNCiAgICAg
ICAgICBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGRpc3BsYXk6IGlu
bGluZQ0KICAgICAgICAgICFpbXBvcnRhbnQ7IGZsb2F0OiBub25lOyI+NC4wDQogLSZndDsgNC4x
PC9zcGFuPiA8L2xpPjxsaT48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgZm9u
dC1mYW1pbHk6DQogICAgICAgICAgLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCAmcXVvdDtTZWdv
ZSBVSSZxdW90OywgSGVsdmV0aWNhLA0KICAgICAgICAgIEFyaWFsLCBzYW5zLXNlcmlmLCAmcXVv
dDtBcHBsZSBDb2xvciBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UNCiAgICAgICAgICBVSSBFbW9q
aSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgU3ltYm9sJnF1b3Q7OyBmb250LXNpemU6IDE0cHg7DQog
ICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3Jt
YWw7DQogICAgICAgICAgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5v
cm1hbDsNCiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0
LWFsaWduOiBzdGFydDsNCiAgICAgICAgICB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9y
bTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsNCiAgICAgICAgICB3aWRvd3M6IDI7IHdvcmQt
c3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7DQogICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tc3R5
bGU6DQogICAgICAgICAgaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBk
aXNwbGF5OiBpbmxpbmUNCiAgICAgICAgICAhaW1wb3J0YW50OyBmbG9hdDogbm9uZTsiPjQuMQ0K
IC0gJmd0OyA0LjI8L3NwYW4+IDwvbGk+PC91bD4NCjxwPkJ1dCBJIGFtIGd1ZXNzaW5nIHRoZSB0
ZXN0aW5nIHNob3VsZCBub3QgZGlmZmVyIG11Y2ggYmV0d2VlbiB0aGUgZGlmZmVyZW50IHZlcnNp
b25zLg0KPGJyPg0KPGJyPg0KU3VnZ2VzdGlvbnMgd291bGQgYmUgYXBwcmVjaWF0ZWQuPGJyPg0K
PGJyPg0KVGhhbmtzLCA8YnI+DQpUYXNkaWs8YnI+DQo8L3A+DQo8L2JvZHk+DQo8L2h0bWw+DQo=
--_000_SG2PR02MB12777351799471CAB9907B89D9BB0SG2PR02MB1277apcp_--
7 years, 3 months
Quartz -> ManagedScheduledExecutorService
by Ravi Shankar Nori
Hi,
We have been working on Threading related changes on engine to move from
java
ExecutorServices to JBoss ManagedExecutorServices. The dependency on quartz
for
running scheduled jobs is being phased out and we are moving to scheduling
jobs using
JBoss ManagedScheduledExecutorService.
As far as development goes it should be pretty straight forward.
Inject the JBoss ManagedScheduledExecutorService
@Inject
@ThreadPools(ThreadPools.ThreadPoolType.EngineScheduledThreadPool)
private ManagedScheduledExecutorService executorService;
and then in PostConstruct you can schedule the job on the executor service
using a cron
expression.
@PostConstruct
private void init() {
executor.schedule(this::cleanup, new
EngineCronTrigger(cronExpression));
}
To schedule a job to execute at regular intervals you can use the
scheduleWithFixedDelay
@PostConstruct
private void init() {
scheduledExecutorService.scheduleWithFixedDelay(this::cleanExpiredUsersSessions,
1,
1,
TimeUnit.MINUTES);
}
If you have any questions please feel free to contact me or Martin Perina (
mperina(a)redhat.com).
Thanks
Ravi
7 years, 3 months