On Fri, Apr 01, 2016 at 12:44:08PM +0000, Hejral, VaclavX wrote: > Hello, > > running Zuul version: 2.1.1.dev131, I want to configure multiple gerrit > connections, so gerrit account reporting back will differ based on pipeline. > Having just one gerrit account (connection) works without problems. > > Original /etc/zuul/zuul.conf contained just one gerrit connection as below > > >> > [gerrit] > server=review.openstack.org > user=intel-nfv-ci > sshkey=/var/lib/zuul/ssh/id_rsa > >> > > "gerrit" is used in /etc/zuul/layout/layout.conf > and everything works well. > > I thought the solution is to add additional connection section into > /etc/zuul/zuul.conf and use connection in laoyut.yaml itself. > I have troubles with that. > > After adding next section, e.g. my_gerrit into /etc/zuul/zuul.conf > >> > [my_gerrit] > server=review.openstack.org > user=intel-networking-ci > sshkey=/var/lib/zuul/ssh/[email protected] > >> > > and using "my_gerrit" in /etc/zuul/layout/layout.yaml > zuul refuses to start, and also validation via > zuul-server -t fails. > > I ended with configuration of /etc/zuul/zuul.conf as follows (I added > "connection" string and "driver" parameter to both my gerrit connections) > > >> > [connection gerrit] > driver=gerrit > server=review.openstack.org > user=intel-nfv-ci > sshkey=/var/lib/zuul/ssh/id_rsa > > [connection my_gerrit] > driver=gerrit > server=review.openstack.org > user=intel-networking-ci > sshkey=/var/lib/zuul/ssh/[email protected] > >> > > No change. Still, zuul-server doesn't know about "my_gerrit" > So now, I have /etc/zuul/zuul.conf with 2 gerrit connections defined, > but the 2nd - my_gerrit I am unable to use in /etc/zuul/layout/layout.yaml > > excerpt from working /etc/zuul/layout/layout.yaml > >> > source: gerrit > trigger: > gerrit: > - event: patchset-created > success: > gerrit: > verified: 1 > >> > This works well. > > excerpt from non-working /etc/zuul/layout/layout.yaml > >> > source: gerrit > trigger: > gerrit: > - event: patchset-created > success: > my_gerrit: > verified: 1 > >> > > zuul-server -t > Traceback (most recent call last): > File "/usr/local/bin/zuul-server", line 10, in <module> > sys.exit(main()) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 218, > in main > sys.exit(server.test_config(path)) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 96, > in test_config > self.connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 286, > in testConfig > return self._parseConfig(config_path, connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 402, > in _parseConfig > validator.validate(data, connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/layoutvalidator.py", line > 328, in validate > schema(data) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 337, in > __call__ > return self._compiled([], data) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 635, in > validate_dict > return base_validate(path, iteritems(data), out) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 471, in > validate_mapping > raise MultipleInvalid(errors) > voluptuous.MultipleInvalid: extra keys not allowed @ > data['pipelines'][0]['success']['my_gerrit'] > > I tried to modify, source:, trigger:, success: > seems anything except 1st gerrit connection "gerrit" is not knownn to zuul. > > excerpt from non-working /etc/zuul/layout/layout.yaml > >> > source: my_gerrit > trigger: > my_gerrit: > - event: patchset-created > success: > gerrit: > verified: 1 > >> > > zuul-server -t > Traceback (most recent call last): > File "/usr/local/bin/zuul-server", line 10, in <module> > sys.exit(main()) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 218, > in main > sys.exit(server.test_config(path)) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 96, > in test_config > self.connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 286, > in testConfig > return self._parseConfig(config_path, connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 444, > in _parseConfig > params) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 384, > in _getReporterDriver > return self._getDriver('reporter', connection_name, driver_config) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 369, > in _getDriver > driver = drivers[dtype][driver_name].split(':') > KeyError: 'my_gerrit' > > I tried vice versa, to keep just "my_gerrit" in /etc/zuul/zuul.conf > I got similar issue - that zuul does not know "gerrit" now > > zuul-server -t > Traceback (most recent call last): > File "/usr/local/bin/zuul-server", line 10, in <module> > sys.exit(main()) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 218, > in main > sys.exit(server.test_config(path)) > File "/usr/local/lib/python2.7/dist-packages/zuul/cmd/server.py", line 96, > in test_config > self.connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 286, > in testConfig > return self._parseConfig(config_path, connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/scheduler.py", line 402, > in _parseConfig > validator.validate(data, connections) > File "/usr/local/lib/python2.7/dist-packages/zuul/layoutvalidator.py", line > 328, in validate > schema(data) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 337, in > __call__ > return self._compiled([], data) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 635, in > validate_dict > return base_validate(path, iteritems(data), out) > File "/usr/local/lib/python2.7/dist-packages/voluptuous.py", line 471, in > validate_mapping > raise MultipleInvalid(errors) > voluptuous.MultipleInvalid: extra keys not allowed @ > data['pipelines'][0]['success']['gerrit'] > > Is it known this scenario shouldn't work or am I doing something wrong? > Any ideas? > > Thanks, > Vaclav > While I haven't tested it personally, we do have an example test fixture documenting[1][2] what is needed for multiple gerrit servers.
My only comment would be to ensure you are using commit 352264b3c22b501ae53c1643e31df2ccdfc89388[3] or later, since that introduced the new connection concept. [1] https://git.openstack.org/cgit/openstack-infra/zuul/tree/tests/fixtures/layouts/good_connections1.conf [2] https://git.openstack.org/cgit/openstack-infra/zuul/tree/tests/fixtures/layouts/good_connections1.yaml [3] https://git.openstack.org/cgit/openstack-infra/zuul/commit/?id=352264b3c22b501ae53c1643e31df2ccdfc89388 _______________________________________________ OpenStack-Infra mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
