~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/lib/server_mgmt/server_management.py

  • Committer: patrick crews
  • Date: 2011-06-23 19:18:02 UTC
  • mto: (2429.2.1 dbqp_revamp)
  • mto: This revision was merged to the branch mainline in revision 2435.
  • Revision ID: gleebix@gmail.com-20110623191802-oxuq4imluo1llub4
Believed to be last tweaks needed to have different code trees / basedirs in a single dbqp run.  Now to code for new servers : )

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
    """
39
39
 
40
40
    def __init__(self, system_manager, variables):
41
 
        self.skip_keys = [ 'ld_lib_paths'
42
 
                         , 'system_manager'
 
41
        self.skip_keys = [ 'system_manager'
 
42
                         , 'env_manager'
 
43
                         , 'code_manager'
43
44
                         , 'logging'
44
45
                         , 'gdb'
45
46
                         ]
51
52
        self.no_secure_file_priv = variables['nosecurefilepriv']
52
53
        self.system_manager = system_manager
53
54
        self.code_manager = system_manager.code_manager
 
55
        self.env_manager = system_manager.env_manager
54
56
        self.logging = system_manager.logging
55
57
        self.gdb  = self.system_manager.gdb
56
58
        self.default_storage_engine = variables['defaultengine']
57
59
        self.default_server_type = variables['defaultservertype']
58
60
        self.user_server_opts = variables['drizzledoptions']
59
61
        self.servers = {}
60
 
        # We track this
61
 
        self.ld_lib_paths = system_manager.ld_lib_paths
 
62
 
62
63
        self.mutex = thread.allocate_lock()
63
64
        self.timer_increment = .5
64
65
        self.libeatmydata = variables['libeatmydata']
131
132
    def start_servers(self, requester, working_environ, expect_fail):
132
133
        """ Start all servers for the requester """
133
134
        bad_start = 0
134
 
        if self.libeatmydata:
135
 
            # We want to use libeatmydata to disable fsyncs
136
 
            # this speeds up test execution, but we only want
137
 
            # it to happen for the servers' environments
138
 
            libeatmydata_data = {'LD_PRELOAD':self.libeatmydata_path}
139
 
            self.system_manager.env_manager.update_environment_vars( libeatmydata_data
140
 
                                                       , working_environ)
141
135
 
142
136
        for server in self.get_server_list(requester):
143
137
            if server.status == 0:
161
155
            start up
162
156
 
163
157
        """
 
158
        # take care of any environment updates we need to do
 
159
        self.handle_environment_reqs(server, working_environ)
164
160
 
165
161
        self.logging.verbose("Starting server: %s.%s" %(server.owner, server.name))
166
162
        start_cmd = server.get_start_cmd()
538
534
            if server.failed_test:
539
535
                self.reset_server(server)
540
536
 
541
 
 
 
537
    def handle_environment_reqs(self, server, working_environ):
 
538
        """ We update the working_environ as we need to
 
539
            before starting the server.
 
540
 
 
541
            This includes things like libeatmydata, ld_preloads, etc
 
542
 
 
543
        """
 
544
        environment_reqs = {}
 
545
 
 
546
        if self.libeatmydata:
 
547
            # We want to use libeatmydata to disable fsyncs
 
548
            # this speeds up test execution, but we only want
 
549
            # it to happen for the servers' environments
 
550
 
 
551
            environment_reqs.update({'LD_PRELOAD':self.libeatmydata_path})
 
552
 
 
553
        # handle ld_preloads
 
554
        ld_lib_paths = self.env_manager.join_env_var_values(server.code_tree.ld_lib_paths)
 
555
        environment_reqs.update({'LD_LIBRARY_PATH' : self.env_manager.append_env_var( 'LD_LIBRARY_PATH'
 
556
                                                                                    , ld_lib_paths
 
557
                                                                                    , suffix = 0
 
558
                                                                                    , quiet = 1
 
559
                                                                                    )
 
560
                                , 'DYLD_LIBRARY_PATH' : self.env_manager.append_env_var( 'DYLD_LIBRARY_PATH'
 
561
                                                                                       , ld_lib_paths
 
562
                                                                                       , suffix = 0
 
563
                                                                                       , quiet = 1
 
564
                                                                                       )
 
565
 
 
566
                                 })
 
567
        self.env_manager.update_environment_vars(environment_reqs)
542
568
 
543
569
 
544
570