[Erp5-report] r45932 guillaume.bottex - in /slapos/trunk/util: slapos.tool.nosqltester_mana...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Jun 21 11:33:54 CEST 2011


Author: guillaume.bottex
Date: Tue Jun 21 11:33:54 2011
New Revision: 45932

URL: http://svn.erp5.org?rev=45932&view=rev
Log:
Modification for ERP5 multi-user.

Modified:
    slapos/trunk/util/slapos.tool.nosqltester_manager.erp5/src/slapos/tool/nosqltester_manager/erp5/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.kumo/src/slapos/tool/nosqltester_manager/kumo/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py

Modified: slapos/trunk/util/slapos.tool.nosqltester_manager.erp5/src/slapos/tool/nosqltester_manager/erp5/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.erp5/src/slapos/tool/nosqltester_manager/erp5/__init__.py?rev=45932&r1=45931&r2=45932&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.erp5/src/slapos/tool/nosqltester_manager/erp5/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.erp5/src/slapos/tool/nosqltester_manager/erp5/__init__.py [utf8] Tue Jun 21 11:33:54 2011
@@ -34,10 +34,10 @@ class ERP5ScalabilityTesterManager(NoSQL
 
   def __init__(self, params):
     NoSQLTesterManager.__init__(self, params)
-    self.host_address = params['address']
     
-    argv = sys.argv[16:]
+    self.host_address = params['address']
     
+    #argv = sys.argv[16:]
     # self.computer_guids = self.computer_partition.getConnectionParameter('computer_guid_list').split(':')
 
   def _erp5_init(self):

Modified: slapos/trunk/util/slapos.tool.nosqltester_manager.kumo/src/slapos/tool/nosqltester_manager/kumo/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.kumo/src/slapos/tool/nosqltester_manager/kumo/__init__.py?rev=45932&r1=45931&r2=45932&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.kumo/src/slapos/tool/nosqltester_manager/kumo/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.kumo/src/slapos/tool/nosqltester_manager/kumo/__init__.py [utf8] Tue Jun 21 11:33:54 2011
@@ -34,7 +34,8 @@ class KumoTesterManager(NoSQLTesterManag
 
   def __init__(self, params):
     NoSQLTesterManager.__init__(self, params)
-    # self.software_release_type = 'kumo'
+    
+    self.node_type = "server"
     self.host_address = params['address']
     
     argv = sys.argv[16:]
@@ -60,11 +61,11 @@ class KumoTesterManager(NoSQLTesterManag
       self.logger.debug("Kumo manager guid: "+self.computer_guids[0])
 
       self.logger.debug("Kumo server 1")
-      self.computer_partition.request(self.software_release_url, 'kumo_server', 'kumo_server'+str(self.server_count),
+      self.computer_partition.request(self.software_release_url, 'kumo_server', 'kumo_server'+str(self.node_count),
                    partition_parameter_kw={'manager_address':manager_computer_partition.getConnectionParameter('address'),
                                            'manager_port':manager_computer_partition.getConnectionParameter('port')},
-                   filter_kw={'computer_guid':self.computer_guids[self.max_manager+self.server_count-1]})
-      self.logger.debug("Kumo server 1 guid: "+self.computer_guids[self.max_manager+self.server_count-1])
+                   filter_kw={'computer_guid':self.computer_guids[self.max_manager+self.node_count-1]})
+      self.logger.debug("Kumo server 1 guid: "+self.computer_guids[self.max_manager+self.node_count-1])
 
 
       tester_computer_partition = []
@@ -99,11 +100,11 @@ class KumoTesterManager(NoSQLTesterManag
   def _add_kumo_server_node(self):
     try:
       self.logger.debug("Adding a Kumo server node")
-      partition = self.computer_partition.request(self.software_release_url, 'kumo_server', 'kumo_server'+str(self.server_count),
+      partition = self.computer_partition.request(self.software_release_url, 'kumo_server', 'kumo_server'+str(self.node_count),
                    partition_parameter_kw={'manager_address':self.manager_computer_partition.getConnectionParameter('address'),
                                            'manager_port':self.manager_computer_partition.getConnectionParameter('port')},
-                   filter_kw={'computer_guid':self.computer_guids[self.max_manager+self.server_count-1]})
-      self.logger.debug("Kumo server "+str(self.server_count)+" guid: "+self.computer_guids[self.max_manager+self.server_count-1])
+                   filter_kw={'computer_guid':self.computer_guids[self.max_manager+self.node_count-1]})
+      self.logger.debug("Kumo server "+str(self.node_count)+" guid: "+self.computer_guids[self.max_manager+self.node_count-1])
       # line made to crash the function call until we call slapgrid
       partition.getConnectionParameter('address')
       return True

Modified: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py?rev=45932&r1=45931&r2=45932&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py [utf8] Tue Jun 21 11:33:54 2011
@@ -34,6 +34,8 @@ class SheepdogTesterManager(NoSQLTesterM
 
   def __init__(self, params):
     NoSQLTesterManager.__init__(self, params)
+
+    self.node_type = "server"
     self.host_address = params['address']
     
     argv = sys.argv[16:]

Modified: slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py?rev=45932&r1=45931&r2=45932&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py [utf8] Tue Jun 21 11:33:54 2011
@@ -69,6 +69,8 @@ class NoSQLTesterManager(object):
     self.testers_status = []
     self.todo = 0
     self.reports = []
+    self.nb_init_server = int(params['nb_server_init'])
+    self.nb_init_tester = int(params['nb_tester_init'])
     self.max_server = int(params['nb_server_max'])
     self.max_tester = int(params['nb_tester_max'])
 
@@ -82,11 +84,13 @@ class NoSQLTesterManager(object):
     self.slap = slap.slap()
     self.slap.initializeConnection(self.server_url, self.key_file, self.cert_file)
     self.computer_partition = self.slap.registerComputerPartition(self.computer_id, self.computer_partition_id)
-    self.server_count = 1
+    self.node_count = 1
     self.manager_computer_partition = None
     self.write_pipe = -1
     self.software_release_type = params['plugin_name']
 
+    self.node_type = ""
+
     # Logger initialization
     self.logger = logging.getLogger("slap.tool.nosqltester_manager")
     if params['debug']:
@@ -114,21 +118,23 @@ class NoSQLTesterManager(object):
       self.testers_status = ['STOPPED' for url in self.tester_urls]
       self.todo = self.tester_urls.__len__()
 
-  def add_server_node(self):
+  def add_node(self):
     """
-    Adds a new server node by calling the *_add_<plugin_name>_server_node*
+    Adds a new node by calling the *_add_<plugin_name>_<node_type>_node*
     function if it exists.
     
     .. note::
-      The *_add_<plugin_name>_server_node* must be defined the plugin
+      The *_add_<plugin_name>_<node_type>_node* should be defined the plugin
       named *<plugin_name>*.
     """
     
+    function_name = "_add_%s_%s_node" % (self.software_release_type,  self.node_type)
+    
     if self.software_release_type == None:
       pass
-    elif "_add_%s_server_node" % self.software_release_type in dir(self) and \
-      callable(getattr(self, "_add_%s_server_node" % self.software_release_type)):
-      while not getattr(self, "_add_%s_server_node" % self.software_release_type)():
+    elif function_name in dir(self) and \
+      callable(getattr(self, function_name)):
+      while not getattr(self, function_name)():
         time.sleep(1)
 
   def setWritePipe(self, write_pipe):
@@ -232,7 +238,7 @@ class NoSQLTesterManager(object):
           results.append(item)
         
         web_page = render_template('ui.html', tester_urls = self.tester_urls, manager_url = manager_url, \
-                                   done  = self.server_count-1, total = self.max_server, results=results, \
+                                   done  = self.node_count-1, total = self.max_server, results=results, \
                                    testers_status = self.testers_status)
       except:
         web_page = str(sys.exc_info())
@@ -320,12 +326,12 @@ class NoSQLTesterManager(object):
               self.todo -= 1
             
             if self.todo == 0:
-              self.writeCSV(self.reports, os.path.join(self.log_directory, 'report'+str(self.server_count)+'.csv'))
+              self.writeCSV(self.reports, os.path.join(self.log_directory, 'report'+str(self.node_count)+'.csv'))
               self.reports = []
-              self.server_count += 1
+              self.node_count += 1
               
-              if self.server_count <= self.max_server:
-                self.add_server_node()
+              if self.node_count <= getattr(self, "max_%s" % self.node_type):
+                self.add_node()
                 self.todo = self.tester_urls.__len__()
                 os.write(self.write_pipe, "GO")
               else:
@@ -353,7 +359,7 @@ class NoSQLTesterManager(object):
     """
     Writes a CSV file.
     The :class:`NoSQLTesterManager`'s method does nothing.
-    This method **must** be overridden by an inheritance plugin.
+    This method should be overridden by an inheritance plugin.
     """
     
     pass
@@ -411,6 +417,8 @@ def main(argv=None):
     'server_url':None,
     'nb_server_max':3,
     'nb_tester_max':3,
+    'nb_server_init':1,
+    'nb_tester_init':3,
     'key_file':None,
     'cert_file':None,
     'computer_id':None,
@@ -426,8 +434,10 @@ def main(argv=None):
     argv = sys.argv[1:]
 
   try:
-    opts, args = getopt.getopt(argv, "a:dp:r:s:t:", \
-                                    ["address=", "debug", "port=", "report-path=", "nb-server-max=", "nb-tester-max="])
+    opts, args = getopt.getopt(argv, "a:dp:r:s:t:i:n:m:", \
+                                    ["address=", "debug", "port=", "report-path=", \
+                                     "nb-server-max=", "nb-tester-max=", "node-increment=", \
+                                     "nb-server-init=", "nb-tester-init="])
   except getopt.GetoptError:
     usage()
     sys.exit()
@@ -445,6 +455,12 @@ def main(argv=None):
       params['nb_server_max'] = arg
     elif opt in ("-t", "--nb-tester-max"):
       params['nb_tester_max'] = arg
+    elif opt in ("-n", "--nb-server-init"):
+      params['nb_server_init'] = arg
+    elif opt in ("-m", "--nb-tester-init"):
+      params['nb_tester_init'] = arg
+    elif opt in ("-i", "--node-increment"):
+      params['node_increment'] = int(arg)
 
   if args.__len__() < 7:
     usage()



More information about the Erp5-report mailing list