> On Aug. 22, 2016, 4:18 p.m., Jonathan Hurley wrote:
> > ambari-server/src/test/python/unitTests.py, lines 207-208
> > <https://reviews.apache.org/r/51284/diff/1/?file=1480589#file1480589line207>
> >
> >     This doesn't seem like a good test anymore.

oh no, my big fail, will remove that :(


> On Aug. 22, 2016, 4:18 p.m., Jonathan Hurley wrote:
> > ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql, 
> > line 28
> > <https://reviews.apache.org/r/51284/diff/1/?file=1480586#file1480586line28>
> >
> >     Can you verify that this will ensure that commands run as the Ambari DB 
> > user are automatically scoped to the `ambari` schema?

Yes, it works as expected.


> On Aug. 22, 2016, 4:18 p.m., Jonathan Hurley wrote:
> > ambari-server/src/main/python/ambari_server/dbConfiguration_linux.py, lines 
> > 839-841
> > <https://reviews.apache.org/r/51284/diff/1/?file=1480584#file1480584line839>
> >
> >     Why not just use the return code here to see if the command succeeded? 
> > Do we get a 0 return code on failed SQL statements?

I think that it will return some code in case of errors, but I think that 
"ALTER TABLE" check is more safe than checking code. I remember that sometimes 
in some big scripts some of statements are failed but psql was returning 0.


- Eugene


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/51284/#review146363
-----------------------------------------------------------


On Aug. 22, 2016, 9:39 a.m., Andrew Onischuk wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/51284/
> -----------------------------------------------------------
> 
> (Updated Aug. 22, 2016, 9:39 a.m.)
> 
> 
> Review request for Ambari, Jonathan Hurley and Vitalyi Brodetskyi.
> 
> 
> Bugs: AMBARI-18226
>     https://issues.apache.org/jira/browse/AMBARI-18226
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> There are currently two SQL files which are being used to initialized Postgres
> databases.
> 
>   * 
> [Ambari-DDL-Postgres-CREATE.sql](https://github.com/apache/ambari/blob/trunk/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql)
>   * 
> [Ambari-DDL-Postgres-EMBEDDED-CREATE.sql](https://github.com/apache/ambari/blob/trunk/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql)
> 
> There should be no need to duplicate all of the SQL DDL/DML between these two
> files. It's error-prone and cumbersome to maintain.
> 
> Instead, the problem seems to be that the embedded SQL doesn't actually switch
> users after it bootstraps everything:
> 
>     
>     
>     
>     CREATE DATABASE :dbname;
>     \connect :dbname;
>     
>     ALTER ROLE :username LOGIN ENCRYPTED PASSWORD :password;
>     CREATE ROLE :username LOGIN ENCRYPTED PASSWORD :password;
>     
>     GRANT ALL PRIVILEGES ON DATABASE :dbname TO :username;
>     
>     CREATE SCHEMA ambari AUTHORIZATION :username;
>     ALTER SCHEMA ambari OWNER TO :username;
>     ALTER ROLE :username SET search_path TO 'ambari';
>     
>     ------create tables and grant privileges to db user---------
>     CREATE TABLE ambari.stack(
>       stack_id BIGINT NOT NULL,
>     ...
>     GRANT ALL PRIVILEGES ON TABLE ambari.stack TO :username;
>     
> 
> This causes several problems:
> 
>   * Because tables are being creating from the `postgres` user instead of 
> `:username`, they need to be altered to have privileges granted.
>   * Because tables are being creating from the `postgres` user instead of 
> `:username`, the default `search_path` is wrong and needs to be prefixed to 
> all calls.
> 
> Instead, the embedded SQL should leverage the remote SQL for all of the table
> creation and data seeding. The embedded SQL should only be responsible for
> bootstrapping the database, schema, and user.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/python/ambari_server/dbConfiguration_linux.py 
> c595e41 
>   ambari-server/src/main/python/ambari_server/serverConfiguration.py 65bf55c 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql 
> 43bdef9 
>   ambari-server/src/main/resources/scripts/change_owner.sh 6f0ac3d 
>   ambari-server/src/test/python/TestAmbariServer.py a45a4bd 
>   ambari-server/src/test/python/unitTests.py 037b6a5 
> 
> Diff: https://reviews.apache.org/r/51284/diff/
> 
> 
> Testing
> -------
> 
> mvn clean test
> 
> 
> Thanks,
> 
> Andrew Onischuk
> 
>

Reply via email to