Merge lp:~patrick-crews/drizzle/bug786568 into lp:~drizzle-trunk/drizzle/development

Proposed by Patrick Crews
Status: Merged
Approved by: Brian Aker
Approved revision: 2315
Merged at revision: 2318
Proposed branch: lp:~patrick-crews/drizzle/bug786568
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: 46 lines (+10/-1)
2 files modified
tests/lib/server_mgmt/server.py (+1/-0)
tests/lib/server_mgmt/server_management.py (+9/-1)
To merge this branch: bzr merge lp:~patrick-crews/drizzle/bug786568
Reviewer Review Type Date Requested Status
Drizzle Merge Team Pending
Review via email: mp+62350@code.launchpad.net

Description of the change

Fixed a bug in dbqp where server settings could be borked by the use of an external data dir.

We now properly track such situations and mark then as needing a server reset for subsequent tests (to ensure the expected 'clean' state).

To post a comment you must log in.
lp:~patrick-crews/drizzle/bug786568 updated
2315. By Patrick Crews

Fix to unset reset switch post-reset

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/lib/server_mgmt/server.py'
--- tests/lib/server_mgmt/server.py 2011-03-24 00:44:40 +0000
+++ tests/lib/server_mgmt/server.py 2011-05-25 21:02:01 +0000
@@ -78,6 +78,7 @@
78 self.failed_test = 0 # was the last test a failure? our state is suspect78 self.failed_test = 0 # was the last test a failure? our state is suspect
79 self.server_start_timeout = 60 * self.valgrind_time_buffer79 self.server_start_timeout = 60 * self.valgrind_time_buffer
80 self.pid = None80 self.pid = None
81 self.need_reset = False
8182
82 def initialize_databases(self):83 def initialize_databases(self):
83 """ Call schemawriter to make db.opt files """84 """ Call schemawriter to make db.opt files """
8485
=== modified file 'tests/lib/server_mgmt/server_management.py'
--- tests/lib/server_mgmt/server_management.py 2011-04-22 22:41:58 +0000
+++ tests/lib/server_mgmt/server_management.py 2011-05-25 21:02:01 +0000
@@ -339,14 +339,19 @@
339 datadir_requests = []339 datadir_requests = []
340340
341 for index,server in enumerate(current_servers):341 for index,server in enumerate(current_servers):
342
343 desired_server_options = server_requirements[index]342 desired_server_options = server_requirements[index]
344 # We add in any user-supplied options here343 # We add in any user-supplied options here
345 desired_server_options = desired_server_options + self.user_server_opts344 desired_server_options = desired_server_options + self.user_server_opts
346345
346 # We handle a reset in case we need it:
347 if server.need_reset:
348 self.reset_server(server)
349 server.need_reset = False
350
347 # Do our checking for config-specific madness we need to do351 # Do our checking for config-specific madness we need to do
348 if config_reader and config_reader.has_section(server.name):352 if config_reader and config_reader.has_section(server.name):
349 # mark server for restart in case it hasn't yet353 # mark server for restart in case it hasn't yet
354 # this method is a bit hackish - need better method later
350 if '--restart' not in desired_server_options:355 if '--restart' not in desired_server_options:
351 desired_server_options.append('--restart')356 desired_server_options.append('--restart')
352 # We handle various scenarios357 # We handle various scenarios
@@ -409,6 +414,9 @@
409 source_dir_path = os.path.join(server.vardir,'std_data_ln',source_dir)414 source_dir_path = os.path.join(server.vardir,'std_data_ln',source_dir)
410 self.system_manager.remove_dir(server.datadir)415 self.system_manager.remove_dir(server.datadir)
411 self.system_manager.copy_dir(source_dir_path, server.datadir)416 self.system_manager.copy_dir(source_dir_path, server.datadir)
417 # We need to signal that the server will need to be reset as we're
418 # using a non-standard datadir
419 server.need_reset = True
412420
413421
414 def process_server_count(self, requester, desired_count, workdir, server_reqs):422 def process_server_count(self, requester, desired_count, workdir, server_reqs):