[3/3] incubator-trafficcontrol git commit: This closes #198

2017-01-19 Thread mitchell852
This closes #198


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/6f8a062c
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/6f8a062c
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/6f8a062c

Branch: refs/heads/master
Commit: 6f8a062c7294948ebf4a4d4dbfd223b3de62a629
Parents: c104cef
Author: Jeremy Mitchell 
Authored: Thu Jan 19 08:21:56 2017 -0700
Committer: Jeremy Mitchell 
Committed: Thu Jan 19 08:21:56 2017 -0700

--

--




[1/3] incubator-trafficcontrol git commit: createdb creates user if doesn't exist; relies on user connected as db admin

2017-01-19 Thread mitchell852
Repository: incubator-trafficcontrol
Updated Branches:
  refs/heads/master 03f565fa0 -> 6f8a062c7


createdb creates user if doesn't exist; relies on user connected as db admin


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/c104ceff
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/c104ceff
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/c104ceff

Branch: refs/heads/master
Commit: c104ceffcc209e8a6c0a745bf1b1c442202f92bd
Parents: 3d43215
Author: Dan Kirkwood 
Authored: Wed Jan 18 15:32:06 2017 -0700
Committer: Dan Kirkwood 
Committed: Wed Jan 18 15:34:57 2017 -0700

--
 traffic_ops/app/db/admin.pl | 51 ++--
 1 file changed, 38 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/c104ceff/traffic_ops/app/db/admin.pl
--
diff --git a/traffic_ops/app/db/admin.pl b/traffic_ops/app/db/admin.pl
index dd19b0f..d1cd85d 100755
--- a/traffic_ops/app/db/admin.pl
+++ b/traffic_ops/app/db/admin.pl
@@ -93,6 +93,7 @@ if ( defined($argument) ) {
seed();
}
elsif ( $argument eq 'setup' ) {
+   createuser();
dropdb();
createdb();
load_schema();
@@ -158,43 +159,67 @@ sub migrate {
my ($command) = @_;
 
print "Migrating database...\n";
-   system( 'goose --env=' . $environment . ' ' . $command );
+   if ( system( "goose --env=$environment $command" ) != 0 ) {
+   die "Can't run goose\n";
+   }
 }
 
 sub seed {
print "Seeding database.\n";
-   system("psql -h $host_ip -p $host_port -d $db_name -U $db_username -e < 
db/seeds.sql");
+   if ( system("psql -h $host_ip -p $host_port -d $db_name -U $db_username 
-e < db/seeds.sql") != 0 ) {
+   die "Can't seed database\n";
+   }
 }
 
 sub load_schema {
print "Creating database tables.\n";
-   system("psql -h $host_ip -p $host_port -d $db_name -U $db_username -e < 
db/create_tables.sql");
+   if ( system("psql -h $host_ip -p $host_port -d $db_name -U $db_username 
-e < db/create_tables.sql") != 0 ) {
+   die "Can't create database tables\n";
+   }
 }
 
 sub dropdb {
-   system("dropdb -h $host_ip -p $host_port -U $db_username -e --if-exists 
$db_name;");
+   if ( system("dropdb -h $host_ip -p $host_port -U $db_username -e 
--if-exists $db_name;") != 0 ) {
+   die "Can't drop db $db_name\n";
+   }
 }
 
 sub createdb {
-   system("createdb -h $host_ip -p $host_port -U $db_username -e 
$db_name;");
+   createuser();
+   my $db_exists = `psql -tAc "SELECT 1 FROM pg_database WHERE 
datname='$db_name'"`;
+   if ( $db_exists ) {
+   print "Database $db_name already exists\n";
+   return;
+   }
+
+   if ( system("createdb -h $host_ip -p $host_port -U $db_username -e 
$db_name;") != 0 ) {
+   die "Can't create db $db_name\n";
+   }
 }
 
 sub createuser {
-   my $user_exists = system("psql postgres -tAc "SELECT 1 FROM pg_roles 
WHERE rolname='USR_NAME'" | grep -q 1 || createuser ...
-
-   system("createuser -U traffic_ops -h $host_ip -p $host_port -P -e 
--superuser $db_username;");
-   system("createdb -U traffic_ops -h $host_ip -p $host_port -U 
$db_username -e $db_name;");
-   system("psql -U traffic_ops -h  $host_ip -p $host_port -e -c 'GRANT ALL 
PRIVILEGES ON DATABASE $db_name TO $db_username;'");
-   system("psql $db_name -U traffic_ops -h  $host_ip -p $host_port -e -c 
'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO $db_username;'");
+   my $user_exists = `psql postgres -tAc "SELECT 1 FROM pg_roles WHERE 
rolname='$db_username'"`;
+   if ( $user_exists ) {
+   print "Role $db_username already exists\n";
+   return;
+   }
 
+   my $cmd = "CREATE USER $db_username WITH SUPERUSER CREATEROLE CREATEDB 
ENCRYPTED PASSWORD '$db_password'";
+   if ( system( qq{psql -h $host_ip -p $host_port -tAc "$cmd"} ) != 0 ) {
+   die "Can't create user $db_username\n";
+   }
 }
 
 sub dropuser {
-   system("dropuser -U traffic_ops -h $host_ip -p $host_port -i -e 
$db_username;");
+   if ( system("dropuser -h $host_ip -p $host_port -i -e $db_username;") 
!= 0 ) {
+   die "Can't drop user $db_username\n";
+   }
 }
 
 sub showusers {
-   system("psql postgres -c '\\du';");
+   if ( system("psql postgres -ec '\\du';") != 0 ) {
+   die "Can't show users";
+   }
 }
 
 sub reverse_schema {



[2/3] incubator-trafficcontrol git commit: createuser creates db and sets perms in psql

2017-01-19 Thread mitchell852
createuser creates db and sets perms in psql


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/3d432154
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/3d432154
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/3d432154

Branch: refs/heads/master
Commit: 3d432154dd1c47df9ca82e8555f28dc9b61b5c26
Parents: 03f565f
Author: Dan Kirkwood 
Authored: Mon Jan 16 16:04:28 2017 -0700
Committer: Dan Kirkwood 
Committed: Wed Jan 18 15:34:57 2017 -0700

--
 traffic_ops/app/db/admin.pl | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/3d432154/traffic_ops/app/db/admin.pl
--
diff --git a/traffic_ops/app/db/admin.pl b/traffic_ops/app/db/admin.pl
index 324044e..dd19b0f 100755
--- a/traffic_ops/app/db/admin.pl
+++ b/traffic_ops/app/db/admin.pl
@@ -180,11 +180,17 @@ sub createdb {
 }
 
 sub createuser {
-   system("createuser -h $host_ip -p $host_port -P -e --superuser 
$db_username;");
+   my $user_exists = system("psql postgres -tAc "SELECT 1 FROM pg_roles 
WHERE rolname='USR_NAME'" | grep -q 1 || createuser ...
+
+   system("createuser -U traffic_ops -h $host_ip -p $host_port -P -e 
--superuser $db_username;");
+   system("createdb -U traffic_ops -h $host_ip -p $host_port -U 
$db_username -e $db_name;");
+   system("psql -U traffic_ops -h  $host_ip -p $host_port -e -c 'GRANT ALL 
PRIVILEGES ON DATABASE $db_name TO $db_username;'");
+   system("psql $db_name -U traffic_ops -h  $host_ip -p $host_port -e -c 
'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO $db_username;'");
+
 }
 
 sub dropuser {
-   system("dropuser -h $host_ip -p $host_port -i -e $db_username;");
+   system("dropuser -U traffic_ops -h $host_ip -p $host_port -i -e 
$db_username;");
 }
 
 sub showusers {