[Et-mgmt-commits-list] [SCM] virt-factory branch, master now at 30a9c5d518771c5002b62d43a802a797af6972b4
Scott Seago
sseago at redhat.com
Wed Jun 6 23:03:07 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 30a9c5d518771c5002b62d43a802a797af6972b4 (commit)
via ddf01861c7a27b00603f42e293bd81ac7acde22c (commit)
via 481a0b049907ab1f7b081de3a00365e7375d62fb (commit)
via aceaff882217ec31c28268cde1521c260b638903 (commit)
via a2b30ccc857bab2f3e7bb5a15066b0acdf63af88 (commit)
via f961f801e21ac05ea2163974f0895888ed3eb0e1 (commit)
via 709e059d236e0bd8335410474441cfe16a886b56 (commit)
via c849c727ede06b3030e5ff557f561a6a5b5426cb (commit)
via 0fd1acd6accd0e13705c28895704c40cbd095193 (commit)
from 08aaf946c23e17bb6131f56cdd169f833d9a3c4f (commit)
- Log -----------------------------------------------------------------
commit 30a9c5d518771c5002b62d43a802a797af6972b4
Merge: ddf0186... 08aaf94...
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 19:01:22 2007 -0400
Merge with git+ssh://g-sseago@et.redhat.com/git/virt-factory
commit ddf01861c7a27b00603f42e293bd81ac7acde22c
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 19:00:55 2007 -0400
final changes for upgrades.
commit 481a0b049907ab1f7b081de3a00365e7375d62fb
Merge: aceaff8... 032bb9f...
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 16:02:46 2007 -0400
Merge with git+ssh://g-sseago@et.redhat.com/git/virt-factory
commit aceaff882217ec31c28268cde1521c260b638903
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 16:02:31 2007 -0400
initial upgrade schema
commit a2b30ccc857bab2f3e7bb5a15066b0acdf63af88
Merge: f961f80... 8bf3c44...
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 14:11:17 2007 -0400
Merge with git+ssh://g-sseago@et.redhat.com/git/virt-factory
commit f961f801e21ac05ea2163974f0895888ed3eb0e1
Merge: 709e059... 38c41af...
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 12:43:21 2007 -0400
Merge with git+ssh://g-sseago@et.redhat.com/git/virt-factory
commit 709e059d236e0bd8335410474441cfe16a886b56
Author: Scott Seago <sseago at redhat.com>
Date: Wed Jun 6 12:43:06 2007 -0400
most of the changes to get upgrade bits working with vf_create_db -- more
coming
commit c849c727ede06b3030e5ff557f561a6a5b5426cb
Merge: 0fd1acd... b6d0b8a...
Author: Scott Seago <sseago at redhat.com>
Date: Tue Jun 5 23:24:37 2007 -0400
Merge with git+ssh://g-sseago@et.redhat.com/git/virt-factory
commit 0fd1acd6accd0e13705c28895704c40cbd095193
Author: Scott Seago <sseago at redhat.com>
Date: Tue Jun 5 16:54:09 2007 -0400
removed old upgrade file
-----------------------------------------------------------------------
Diffstat:
service/db/schema/upgrade/0001.py | 171 +++++++++++++++++++++++
service/db/schema/upgrade/bootstrap-upgrade.sql | 17 ---
service/db/schema/upgrade/upgrades.conf | 4 +-
service/db/vf_create_db | 9 +-
service/db_upgrade/db_upgrade.py | 131 +++++++++++++-----
service/scripts/vf_import | 3 +-
service/server/db.py | 18 ++-
service/setup.py | 4 +
service/virt-factory-server.spec | 3 +
9 files changed, 295 insertions(+), 65 deletions(-)
diff --git a/service/db/schema/upgrade/0001.py b/service/db/schema/upgrade/0001.py
new file mode 100644
index 0000000..6641c38
--- /dev/null
+++ b/service/db/schema/upgrade/0001.py
@@ -0,0 +1,171 @@
+from sqlalchemy import *
+from migrate import *
+from migrate.changeset import *
+
+from datetime import datetime
+
+meta = BoundMetaData(migrate_engine)
+tables = []
+
+tables.append(Table('users', meta,
+ Column('id', Integer, Sequence('userid'), primary_key=True),
+ Column('username', String(255), nullable=False, unique=True),
+ Column('password', String(255), nullable=False),
+ Column('first', String(255)),
+ Column('middle', String(255)),
+ Column('last', String(255)),
+ Column('description', String(255)),
+ Column('email', String(255)),
+ useexisting=True,
+))
+
+tables.append(Table('distributions', meta,
+ Column('id', Integer, Sequence('distid'), primary_key=True),
+ Column('kernel', String(255)),
+ Column('initrd', String(255)),
+ Column('options', String(255)),
+ Column('kickstart', String(255)),
+ Column('name', String(255), unique=True),
+ Column('architecture', Integer),
+ Column('kernel_options', String(255)),
+ Column('kickstart_metadata', String(255)),
+ useexisting=True,
+))
+
+tables.append(Table('profiles', meta,
+ Column('id', Integer, Sequence('profileid'), primary_key=True),
+ Column('name', String(255), unique=True),
+ Column('version', String(255)),
+ Column('distribution_id',
+ Integer,
+ ForeignKey('distributions.id', ondelete="cascade"),
+ nullable=False),
+ Column('virt_storage_size', Integer),
+ Column('virt_ram', Integer),
+ Column('kickstart_metadata', String(255)),
+ Column('kernel_options', String(255)),
+ Column('valid_targets', Integer),
+ Column('is_container', Integer),
+ Column('puppet_classes', TEXT),
+ useexisting=True,
+))
+
+tables.append(Table('machines', meta,
+ Column('id', Integer, Sequence('machineid'), primary_key=True),
+ Column('hostname', String(255)),
+ Column('ip_address', String(255)),
+ Column('registration_token', String(255)),
+ Column('architecture', Integer),
+ Column('processor_speed', Integer),
+ Column('processor_count', Integer),
+ Column('memory', Integer),
+ Column('kernel_options', String(255)),
+ Column('kickstart_metadata', String(255)),
+ Column('list_group', String(255)),
+ Column('mac_address', String(255)),
+ Column('is_container', Integer),
+ Column('profile_id',
+ Integer,
+ ForeignKey('profiles.id', ondelete="cascade"),
+ nullable=False),
+ Column('puppet_node_diff', TEXT),
+ Column('netboot_enabled', Integer),
+ Column('is_locked', Integer),
+ useexisting=True,
+))
+
+tables.append(Table('deployments', meta,
+ Column('id', Integer, Sequence('deploymentid'), primary_key=True),
+ Column('hostname', String(255)),
+ Column('ip_address', String(255)),
+ Column('registration_token', String(255)),
+ Column('mac_address', String(255)),
+ Column('machine_id',
+ Integer,
+ ForeignKey('machines.id', ondelete="cascade"),
+ nullable=False),
+ Column('profile_id',
+ Integer,
+ ForeignKey('profiles.id', ondelete="cascade"),
+ nullable=False),
+ Column('state', Integer),
+ Column('display_name', String(255)),
+ Column('puppet_node_diff', TEXT),
+ Column('netboot_enabled', Integer),
+ Column('is_locked', Integer),
+ useexisting=True,
+))
+
+tables.append(Table('regtokens', meta,
+ Column('id', Integer, Sequence('regtokenid'), primary_key=True),
+ Column('token', String(255)),
+ Column('profile_id', Integer, ForeignKey('profiles.id')),
+ Column('uses_remaining', Integer),
+ useexisting=True,
+))
+
+tables.append(Table('sessions', meta,
+ Column('id', Integer, Sequence('ssnid'), primary_key=True),
+ Column('session_token', String(255), nullable=False, unique=True),
+ Column('user_id',
+ Integer,
+ ForeignKey('users.id', ondelete="cascade"),
+ nullable=False),
+ Column('session_timestamp',
+ DateTime,
+ nullable=False,
+ default=datetime.utcnow()),
+ useexisting=True,
+))
+
+tables.append(Table('tasks', meta,
+ Column('id', Integer, Sequence('taskid'), primary_key=True),
+ Column('user_id',
+ Integer,
+ ForeignKey('users.id', ondelete="cascade"),
+ nullable=False),
+ Column('action_type', Integer, nullable=False),
+ Column('machine_id',
+ Integer,
+ ForeignKey('machines.id', ondelete="cascade"),
+ nullable=False),
+ Column('deployment_id',
+ Integer,
+ ForeignKey('deployments.id', ondelete="cascade"),
+ nullable=False),
+ Column('state', Integer, nullable=False),
+ Column('time',
+ DateTime,
+ nullable=False,
+ default=datetime.utcnow()),
+ useexisting=True,
+))
+
+tables.append(Table('events', meta,
+ Column('id', Integer, Sequence('eventid'), primary_key=True),
+ Column('time', Integer, nullable=False),
+ Column('user_id',
+ Integer,
+ ForeignKey('users.id', ondelete="cascade"),
+ nullable=False),
+ Column('machine_id', Integer, ForeignKey('machines.id')),
+ Column('deployment_id', Integer, ForeignKey('deployments.id')),
+ Column('profile_id', Integer, ForeignKey('profiles.id')),
+ Column('severity', Integer, nullable=False),
+ Column('category', String(255), nullable=False),
+ Column('action', String(255), nullable=False),
+ Column('user_comment', String(255)),
+ useexisting=True,
+))
+
+def upgrade():
+ for t in tables:
+ t.create(checkfirst=True)
+
+
+def downgrade():
+ mylist = list(tables)
+ mylist.reverse()
+ for t in mylist:
+ t.drop(checkfirst=True)
+
diff --git a/service/db/schema/upgrade/bootstrap-upgrade.sql b/service/db/schema/upgrade/bootstrap-upgrade.sql
deleted file mode 100644
index a438f20..0000000
--- a/service/db/schema/upgrade/bootstrap-upgrade.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-CREATE TABLE schema_versions (
- id INTEGER PRIMARY KEY,
- version INTEGER,
- git_tag VARCHAR(100),
- install_timestamp REAL NOT NULL,
- status VARCHAR(20) NOT NULL,
- notes VARCHAR(4000)
-);
-
-create table upgrade_log_messages (
- id INTEGER PRIMARY KEY,
- action VARCHAR(50),
- message_type VARCHAR(50), --info, warning, error
- message_timestamp REAL NOT NULL,
- message VARCHAR(4000)
-);
-
diff --git a/service/db/schema/upgrade/upgrades.conf b/service/db/schema/upgrade/upgrades.conf
index d31b7ae..052d8b8 100644
--- a/service/db/schema/upgrade/upgrades.conf
+++ b/service/db/schema/upgrade/upgrades.conf
@@ -1,3 +1,3 @@
[upgrade.0001]
-notes=Initial upgrade creates the required tables for the upgrade infrastructure
-files=bootstrap-upgrade.sql
+notes=Initial schema creation
+files=0001.py
diff --git a/service/db/vf_create_db b/service/db/vf_create_db
index 0acba30..4a4d03b 100755
--- a/service/db/vf_create_db
+++ b/service/db/vf_create_db
@@ -5,6 +5,7 @@ import random
import sys
import distutils.sysconfig
import os
+import shutil
sys.path.append("%s/virt-factory" % distutils.sysconfig.get_python_lib())
from server import db as vfdb
@@ -38,6 +39,8 @@ CREATE_SCHEMA_SQL = """
GRANT ALL ON DATABASE %(DATABASE)s TO %(username)s;
"""
+MIGRATE_REPOSITORY = "/var/lib/virt-factory/db/migrate_repository"
+
def mkpasswd():
"""
Generates a random password using /dev/urandom and saves it in PW_FILE,
@@ -56,6 +59,8 @@ def createdb(drop=True):
# FIXME: error handling
if drop:
subprocess.call(["/usr/bin/dropdb",DATABASE])
+ if os.path.exists(MIGRATE_REPOSITORY):
+ shutil.rmtree(MIGRATE_REPOSITORY)
subprocess.call(["/usr/bin/createdb",DATABASE])
def setupdb(username,password):
@@ -98,6 +103,7 @@ def populatedb():
pwf.close()
connstr = "postgres://%(user)s:%(pass)s at localhost/virtfactory"
connvars = { "user": USERNAME, "pass" : pw }
+
database = vfdb.Database(connstr % connvars)
# database.drop() -- don't do this, user might run by accident
@@ -223,8 +229,7 @@ if __name__ == "__main__":
populatedb()
print "- initializing upgrade path"
- # FIXME -- commenting this out until this code can run with the postgres acct
- # initialize_upgrade_path()
+ initialize_upgrade_path()
print "- dB setup complete"
# the existance of this file keeps the db script from running again the next
diff --git a/service/db_upgrade/db_upgrade.py b/service/db_upgrade/db_upgrade.py
index 559c7ba..e56ead6 100644
--- a/service/db_upgrade/db_upgrade.py
+++ b/service/db_upgrade/db_upgrade.py
@@ -20,18 +20,27 @@ import ConfigParser
from codes import *
import config_data
-import re, sys
+import os, re, sys
from subprocess import *
from server import logger
-logger.logfilepath = "/var/lib/virt-factory/vf_upgrade_db.log"
import shutil
import string
MIGRATE = "/usr/bin/migrate"
UPGRADE_DIR = "/usr/share/virt-factory/db_schema/upgrade/"
-REPOSITORY = "/var/lib/virt-factory/migrate_repository"
+REPOSITORY = "/var/lib/virt-factory/db/migrate_repository"
+
+def interpolate_url_password(url):
+ if url is None:
+ raise SQLException(comment="no connection string specified")
+ if url.find("%(password)s") != -1:
+ pwfile = open("/etc/virt-factory/db/dbaccess")
+ read_pw = pwfile.read()
+ pwfile.close()
+ url = url % { "password" : read_pw }
+ return url
class Upgrade(object):
def __init__(self):
@@ -46,11 +55,11 @@ class Upgrade(object):
self.config = config_result
def __setup_db(self):
- self.dbpath = self.config["databases"]["secondary"]
+ self.dbpath = interpolate_url_password(self.config["databases"]["primary"])
def __init_log(self):
# lets see what happens when we c&p the stuff from server.py
- log = logger.Logger()
+ log = logger.Logger("/var/log/virt-factory/db/vf_upgrade_db.log")
self.logger = log.logger
def __setup_upgrade_config(self):
@@ -63,18 +72,19 @@ class Upgrade(object):
for section in self.upgrade_sections:
version = int(section[8:])
if (version != expected_version):
- raise ValueError("error loading upgrades from upgrades.conf. Version " + str(expected_version) + " was not found.")
+ raise ValueError("error loading upgrades from upgrades.conf. Version " + str(expected_version) + " was not found.(" + str(version) + ")")
files = self.upgrade_config.get(section, "files").split()
numfiles = len(files)
for onefile in files:
- pymatch = re.search('.py$', filename)
+ pymatch = re.search('.py$', onefile)
if (pymatch and (numfiles > 1)):
raise ValueError("invalid upgrade files specified for version " + str(version) + "Only one script allowed for python upgrades.")
- sqlmatch = re.search('-(\w+)-((up|down)grade).sql$', filename)
+ sqlmatch = re.search('-(\w+)-((up|down)grade).sql$', onefile)
if (not (pymatch or sqlmatch)):
- raise ValueError("invalid upgrade files specified for version " + str(version) + "script " + filename + " must be a python file or a sqlfile in the form upgradename-dbname-(up|down)grade.sql")
+ raise ValueError("invalid upgrade files specified for version " + str(version) + "script " + onefile + " must be a python file or a sqlfile in the form upgradename-dbname-(up|down)grade.sql")
self.versions[version] = section
+ expected_version += 1
def get_loaded_schema_version(self):
"""
@@ -94,19 +104,61 @@ class Upgrade(object):
"""
return self.versions.keys()[-1]
- def run_upgrades(self):
+ def run_upgrades(self, version_str = None):
"""
Apply each upgrade with a version number greater than the current schema version.
+ and less than the specified upgrade version
"""
fs_version = self.get_installed_schema_version()
db_version = self.get_loaded_schema_version()
- self.commit_versions(true)
+ if (version_str):
+ new_version = int(version_str)
+ if ((new_version > fs_version) or (new_version < db_version)):
+ raise ValueError("upgrade version " + str(new_version) +
+ " must be between " + str(db_version) +
+ " and " + str(fs_version))
+ else:
+ new_version = fs_version
- if (fs_version > db_version):
- print "upgrading to version ", fs_version
- output = self.migrate_cmd("upgrade", [self.dbpath, REPOSITORY, version])
+ if (new_version > db_version):
+ print "upgrading to version ", new_version
- def commit_versions(self, test_first):
+ repo_version = self.get_repository_schema_version()
+ for version in self.versions.keys():
+ if (version > new_version):
+ break
+ if (version > repo_version):
+ print "testing/loading version ", version
+ files = self.upgrade_config.get(self.versions[version], "files").split()
+ for upgrade_file in files:
+ pymatch = re.search('.py$', upgrade_file)
+ sqlmatch = re.search('-(\w+)-((up|down)grade).sql$', upgrade_file)
+
+ tmpfilename = "/tmp/migrate-" + os.path.basename(upgrade_file)
+ shutil.copy(UPGRADE_DIR + upgrade_file, tmpfilename)
+ if pymatch:
+ print self.migrate_cmd("test", [tmpfilename, REPOSITORY, self.dbpath])
+ print self.migrate_cmd("commit", [tmpfilename, REPOSITORY, str(version)])
+ elif sqlmatch:
+ print self.migrate_cmd("commit", [tmpfilename, REPOSITORY, sqlmatch.group(1), sqlmatch.group(2), str(version)])
+
+ if (version > db_version):
+ print self.migrate_cmd("upgrade", [self.dbpath, REPOSITORY, str(version)])
+
+ def run_downgrades(self, version):
+ """
+ Downgrade the database to the specified version
+ """
+ db_version = self.get_loaded_schema_version()
+ new_version = int(version)
+ if ((new_version > db_version) or (new_version < 0)):
+ raise ValueError("downgrade version " + str(new_version) +
+ " must be between 0 and " + str(db_version))
+ if (new_version < db_version):
+ print "downgrading to version ", new_version
+ print self.migrate_cmd("downgrade", [self.dbpath, REPOSITORY, str(new_version)])
+
+ def commit_versions(self):
fs_version = self.get_installed_schema_version()
repo_version = self.get_repository_schema_version()
@@ -115,17 +167,15 @@ class Upgrade(object):
print "testing/loading version ", version
files = self.upgrade_config.get(self.versions[version], "files").split()
for upgrade_file in files:
- pymatch = re.search('.py$', filename)
- sqlmatch = re.search('-(\w+)-((up|down)grade).sql$', filename)
+ pymatch = re.search('.py$', upgrade_file)
+ sqlmatch = re.search('-(\w+)-((up|down)grade).sql$', upgrade_file)
- tmpfilename = "/tmp/migrate-" + os.path.basename(filename)
- shutil.copy(filename, tmpfilename)
+ tmpfilename = "/tmp/migrate-" + os.path.basename(upgrade_file)
+ shutil.copy(UPGRADE_DIR + upgrade_file, tmpfilename)
if pymatch:
- if test_first:
- output = self.migrate_cmd("test", [tmpfilename, REPOSITORY, self.dbpath])
- output = self.migrate_cmd("commit", [tmpfilename, REPOSITORY, version])
+ print self.migrate_cmd("commit", [tmpfilename, REPOSITORY, str(version)])
elif sqlmatch:
- output = self.migrate_cmd("commit", [tmpfilename, REPOSITORY, sqlmatch.group(1), sqlmatch.group(2), version])
+ print self.migrate_cmd("commit", [tmpfilename, REPOSITORY, sqlmatch.group(1), sqlmatch.group(2), str(version)])
def initialize_schema_version(self):
"""
@@ -134,11 +184,11 @@ class Upgrade(object):
"""
# create a new repository
- self.migrate_cmd("create", [REPOSITORY, "virt-factory repository"])
+ print self.migrate_cmd("create", [REPOSITORY, "virt-factory repository"])
# add upgrade scripts to repo
- self.commit_versions(false)
+ self.commit_versions()
# add the database
- self.migrate_cmd("version_control", [self.dbpath, REPOSITORY, str(self.get_loaded_schema_version())])
+ print self.migrate_cmd("version_control", [self.dbpath, REPOSITORY, str(self.get_installed_schema_version())])
def migrate_cmd(self, command, args):
"""
@@ -147,19 +197,18 @@ class Upgrade(object):
sent to stdout), log the error output and throw an exception
"""
cmdline = [MIGRATE, command] + args
- self.logger.info("calling " + cmdline.join(' '))
+ self.logger.info("calling " + ' '.join(cmdline))
pipe = Popen(cmdline, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
cmd_output = pipe.stdout.read().strip()
error_msg = pipe.stderr.read().strip()
exitCode = pipe.wait()
- if (len(error_msg > 0) or exitCode != 0):
- self.logger.error("error in running " + cmdline)
+ if (exitCode != 0):
+ self.logger.error("error in running " + ' '.join(cmdline))
self.logger.error(error_msg)
raise Exception(error_msg)
else:
self.logger.info("returned " + cmd_output)
- print cmd_output
return cmd_output
def main(argv):
@@ -174,21 +223,35 @@ def main(argv):
parser.add_option("-i", "--initialize",
dest="initialize", action="store_true", default=False,
help="If specified, initialize the schema version field in the database and exit without attempting an upgrade.")
+ parser.add_option("-u", "--upgrade",
+ dest="upgrade", default=None,
+ help="Upgrade to a particular schema version")
+ parser.add_option("-d", "--downgrade",
+ dest="downgrade",
+ help="Downgrade to a particular schema version")
(options, args) = parser.parse_args()
upgrade = Upgrade()
+
if (options.query):
if (options.query in ["d", "db"]):
print upgrade.get_loaded_schema_version()
elif (options.query in ["r", "repository"]):
+ # currently printting is done
print upgrade.get_repository_schema_version()
elif (options.query in ["p", "package"]):
print upgrade.get_installed_schema_version()
- if (options.initialize):
+ elif (options.initialize):
upgrade.initialize_schema_version()
- if (not (options.query or options.initialize)):
- print "upgrading..."
- upgrade.run_upgrades()
+ elif (options.downgrade):
+ print "downgrading to version " + options.downgrade
+ upgrade.run_downgrades(options.downgrade)
+ else:
+ if (options.upgrade):
+ print "upgrading to version " + options.upgrade
+ else:
+ print "upgrading to latest version "
+ upgrade.run_upgrades(options.upgrade)
diff --git a/service/scripts/vf_import b/service/scripts/vf_import
index e2ad139..f0f61d9 100755
--- a/service/scripts/vf_import
+++ b/service/scripts/vf_import
@@ -54,7 +54,6 @@ sys.path.append("%s/virt-factory" % distutils.sysconfig.get_python_lib())
from server.codes import *
from server import logger
-logger.logfilepath = "/var/log/virt-factory/vf_import.log"
from server.modules import distribution
from server.modules import profile
from server.modules import provisioning
@@ -88,7 +87,7 @@ class VirtFactoryImporter:
self.module_name = module_name
self.module_dir = module_dir
self.manifest = manifest
- log = logger.Logger()
+ log = logger.Logger("/var/log/virt-factory/vf_import.log")
self.logger = log.logger
self.profile = parse(self.module_dir + '/' + self.module_name + "/profile.xml")
diff --git a/service/server/db.py b/service/server/db.py
index 6daf23d..c122775 100644
--- a/service/server/db.py
+++ b/service/server/db.py
@@ -314,6 +314,15 @@ mappers =\
ormbindings =\
dict([(m.class_,[c.name for c in m.local_table.columns]) for m in mappers ])
+def interpolate_url_password(url):
+ if url is None:
+ raise SQLException(comment="no connection string specified")
+ if url.find("%(password)s") != -1:
+ pwfile = open("/etc/virt-factory/db/dbaccess")
+ read_pw = pwfile.read()
+ pwfile.close()
+ url = url % { "password" : read_pw }
+ return url
class Database:
"""
@@ -331,14 +340,7 @@ class Database:
@type url: string
"""
Database.primary = self
- if url is None:
- raise SQLException(comment="no connection string specified")
- if url.find("%(password)s") != -1:
- pwfile = open("/etc/virt-factory/db/dbaccess")
- read_pw = pwfile.read()
- pwfile.close()
- url = url % { "password" : read_pw }
- global_connect(url, echo=True)
+ global_connect(interpolate_url_password(url), echo=True)
def create(self):
"""
diff --git a/service/setup.py b/service/setup.py
index 4b63a64..b375399 100644
--- a/service/setup.py
+++ b/service/setup.py
@@ -19,7 +19,9 @@ if __name__ == "__main__":
wwwpath = "/var/www/%s" % NAME
initpath = "/etc/init.d/"
logpath = "/var/log/%s/" % NAME
+ logpathdb = "/var/log/%s/db/" % NAME
settingspath = "/var/lib/%s/" % NAME
+ migraterepopath = "/var/lib/%s/db/" % NAME
schemapath = "/usr/share/%s/db_schema/" % NAME
upgradepath = schemapath + "upgrade/"
puppetpath = "/usr/share/%s/puppet-config/" % NAME
@@ -57,6 +59,8 @@ if __name__ == "__main__":
(etcpath, ["settings"]),
(etcpathdb, []),
(logpath, []),
+ (logpathdb, []),
+ (migraterepopath, []),
(upgradepath, ["db/schema/upgrade/upgrades.conf"] +
glob.glob("db/schema/upgrade/*.sql") +
glob.glob("db/schema/upgrade/*.py")),
diff --git a/service/virt-factory-server.spec b/service/virt-factory-server.spec
index 7890923..f890722 100644
--- a/service/virt-factory-server.spec
+++ b/service/virt-factory-server.spec
@@ -51,6 +51,7 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
%{_bindir}/vf_gen_profile_stub
/etc/init.d/virt-factory-server
%dir /var/lib/virt-factory
+%dir %attr(755,postgres,postgres) /var/lib/virt-factory/db
%config(noreplace) /etc/virt-factory/settings
# kickstart templaces
%config(noreplace) /var/lib/virt-factory/kick-fc6.ks
@@ -68,6 +69,7 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
%dir /usr/share/virt-factory/db_schema/upgrade
/usr/share/virt-factory/db_schema/upgrade/upgrades.conf
/usr/share/virt-factory/db_schema/upgrade/*.sql
+/usr/share/virt-factory/db_schema/upgrade/*.py*
%dir /usr/share/virt-factory/puppet-config
/etc/puppet/manifests/site.pp
/usr/share/virt-factory/puppet-config/puppetmaster
@@ -78,6 +80,7 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
/usr/share/virt-factory/profile-template/vf-profile-template.spec
/usr/share/virt-factory/profile-template/init.pp
%dir /var/log/virt-factory
+%dir %attr(755,postgres,postgres) /var/log/virt-factory/db
%defattr(2770,postgres,postgres)
%dir /etc/virt-factory/db
hooks/update
---
Git Source Code Management System
hooks/update refs/heads/master \
08aaf946c23e17bb6131f56cdd169f833d9a3c4f \
30a9c5d518771c5002b62d43a802a797af6972b4
More information about the Et-mgmt-commits-list
mailing list