[Et-mgmt-commits-list] [SCM] virt-factory branch, master now at bff94fba953ef0b3f9c2bea56909f9016ff7796b
Michael DeHaan
mdehaan at redhat.com
Thu May 3 21:28:05 UTC 2007
Hello,
This is an automated email from the git hooks/update script, it was
generated because a ref change was pushed to the repository.
Updating branch, master,
via bff94fba953ef0b3f9c2bea56909f9016ff7796b (commit)
from e80b6ee6223c51da81cdba2c5606c79d01bbb9f9 (commit)
- Log -----------------------------------------------------------------
commit bff94fba953ef0b3f9c2bea56909f9016ff7796b
Author: Michael DeHaan <mdehaan at mdehaan.rdu.redhat.com>
Date: Thu May 3 17:29:22 2007 -0400
This is ongoing work to move the startup scripts to Postgres.
It turns out that the "upgrade init" scripts we have earlier need root,
which doesn't currently work in the DB as we have to be sudo'd to postgres
to get the scripts to run.
We can probably fix this by either (A) tweaking postgres or (B) making
the upgrade init scripts just use SQL and not have dependencies on the
server modules which need root.
-----------------------------------------------------------------------
Diffstat:
misc/{create.py => create_old.py} | 0
{service/db => misc}/schema/populate.sql | 0
{service/db => misc}/schema/schema.sql | 30 ++++++++++++
.../schema/upgrade/bootstrap-upgrade.sql | 4 ++
{service/db => misc}/schema/upgrade/upgrades.conf | 0
misc/vf_create_db.sh | 49 ++++++++++++++++++++
6 files changed, 83 insertions(+), 0 deletions(-)
diff --git a/misc/create.py b/misc/create_old.py
similarity index 100%
rename from misc/create.py
rename to misc/create_old.py
diff --git a/service/db/schema/populate.sql b/misc/schema/populate.sql
similarity index 100%
copy from service/db/schema/populate.sql
copy to misc/schema/populate.sql
diff --git a/service/db/schema/schema.sql b/misc/schema/schema.sql
similarity index 79%
copy from service/db/schema/schema.sql
copy to misc/schema/schema.sql
index 821b226..cfbce5b 100755
--- a/service/db/schema/schema.sql
+++ b/misc/schema/schema.sql
@@ -1,3 +1,11 @@
+CREATE SCHEMA virtfactory;
+
+CREATE ROLE virtfactory LOGIN PASSWORD '%(password)s'
+NOINHERIT
+VALID UNTIL 'infinity';
+
+ALTER ROLE virtfactory SET search_path=virtfactory,public;
+
CREATE TABLE tasks (
id INTEGER PRIMARY KEY,
user_id INTEGER NOT NULL,
@@ -8,6 +16,8 @@ CREATE TABLE tasks (
time REAL NOT NULL
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE tasks TO virtfactory;
+
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username VARCHAR (255) UNIQUE NOT NULL,
@@ -19,6 +29,8 @@ CREATE TABLE users (
email VARCHAR (255) NOT NULL
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE users TO virtfactory;
+
CREATE TABLE events (
id INTEGER PRIMARY KEY,
time INTEGER NOT NULL,
@@ -32,6 +44,8 @@ CREATE TABLE events (
user_comment VARCHAR (255)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE events TO virtfactory;
+
CREATE TABLE distributions (
id INTEGER PRIMARY KEY,
kernel VARCHAR(255) NOT NULL,
@@ -44,6 +58,8 @@ CREATE TABLE distributions (
kickstart_metadata VARCHAR(255)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE distributions TO virtfactory;
+
CREATE TABLE profiles (
id INTEGER PRIMARY KEY,
name VARCHAR (255) UNIQUE,
@@ -58,6 +74,8 @@ CREATE TABLE profiles (
puppet_classes TEXT
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE profiles TO virtfactory;
+
CREATE TABLE deployments (
id INTEGER PRIMARY KEY,
hostname VARCHAR(255),
@@ -73,6 +91,8 @@ CREATE TABLE deployments (
is_locked INTEGER
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE deployments TO virtfactory;
+
CREATE TABLE machines (
id INTEGER PRIMARY KEY,
hostname VARCHAR(255),
@@ -93,6 +113,8 @@ CREATE TABLE machines (
is_locked INTEGER
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE machines TO virtfactory;
+
CREATE TABLE regtokens (
id INTEGER PRIMARY KEY,
token VARCHAR(255),
@@ -100,11 +122,15 @@ CREATE TABLE regtokens (
uses_remaining INTEGER
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE regtokens TO virtfactory;
+
CREATE TABLE sessions (
session_token VARCHAR(255) UNIQUE NOT NULL,
user_id INTEGER NOT NULL,
session_timestamp REAL NOT NULL
);
+
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE sessions TO virtfactory;
CREATE TABLE schema_versions (
id INTEGER PRIMARY KEY,
@@ -115,6 +141,8 @@ CREATE TABLE schema_versions (
notes VARCHAR(4000)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE schema_versions TO virtfactory;
+
create table upgrade_log_messages (
id INTEGER PRIMARY KEY,
action VARCHAR(50),
@@ -123,3 +151,5 @@ create table upgrade_log_messages (
message VARCHAR(4000)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE upgrade_log_messages TO virtfactory;
+
diff --git a/service/db/schema/upgrade/bootstrap-upgrade.sql b/misc/schema/upgrade/bootstrap-upgrade.sql
similarity index 76%
copy from service/db/schema/upgrade/bootstrap-upgrade.sql
copy to misc/schema/upgrade/bootstrap-upgrade.sql
index a438f20..9670f59 100644
--- a/service/db/schema/upgrade/bootstrap-upgrade.sql
+++ b/misc/schema/upgrade/bootstrap-upgrade.sql
@@ -7,6 +7,8 @@ CREATE TABLE schema_versions (
notes VARCHAR(4000)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE schema_versions TO virtfactory;
+
create table upgrade_log_messages (
id INTEGER PRIMARY KEY,
action VARCHAR(50),
@@ -15,3 +17,5 @@ create table upgrade_log_messages (
message VARCHAR(4000)
);
+GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE upgrade_log_messages TO virtfactory;
+
diff --git a/service/db/schema/upgrade/upgrades.conf b/misc/schema/upgrade/upgrades.conf
similarity index 100%
copy from service/db/schema/upgrade/upgrades.conf
copy to misc/schema/upgrade/upgrades.conf
diff --git a/misc/vf_create_db.sh b/misc/vf_create_db.sh
new file mode 100644
index 0000000..68fc385
--- /dev/null
+++ b/misc/vf_create_db.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+
+import subprocess
+import random
+
+######################################
+# CONFIG SECTION
+
+# must be chown postgres, chmod 550
+DATABASE = "virtfactory"
+PW_FILE = "/etc/virt-factory/dbaccess"
+SCHEMA_FILE = "/var/lib/virt-factory/db_schema/schema.sql"
+POPULATE_FILE = "/var/lib/virt-factory/db_schema/populate.sql"
+
+######################################
+
+def createdb():
+ dvr = open("/dev/urandom","r")
+ r = random.Random(dvr.read(255))
+ dvr.close()
+ password = "".join([ chr(x) for x in r.sample(range(ord('a'),ord('z')),10) ])
+ pwf = open(PW_FILE, "w+")
+ pwf.write(password)
+ pwf.close()
+
+ sf = open(SCHEMA_FILE, "r")
+ data = sf.read() % { "password" : password }
+ __runsql(data)
+
+def populate():
+ data = open(POPULATE_FILE, "r")
+ __runsql(data)
+
+def initialize_upgrade_path():
+ p = subprocess.Popen("/usr/bin/vf_upgrade_db --initialize", shell=True)
+ p.communicate()
+
+def __runsql(data):
+ print data
+ p = subprocess.Popen("psql --dbname %s" % (DATABASE), shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+ (stdout, stderr) = p.communicate(data)
+
+if __name__ == "__main__":
+ createdb()
+ initialize_upgrade_path()
+ populate()
+
+
+
hooks/update
---
Git Source Code Management System
hooks/update refs/heads/master \
e80b6ee6223c51da81cdba2c5606c79d01bbb9f9 \
bff94fba953ef0b3f9c2bea56909f9016ff7796b
More information about the Et-mgmt-commits-list
mailing list