mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jcambon
15.15.2008 dedcdc99f8ad8075d7971c09fafcf2965ba71491
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../shared/stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<stax>
 
  <defaultcall function="modifyLoadParser"/>
 
 
  <!-- ************************************************************ -->
  <!-- Client Parser -->
  <!-- This function must NOT have scope=local has its variables may -->
  <!-- be used by the caller -->
  <function name="modifyLoadParser">
    <function-map-args>
      <function-arg-def name="client"     type="required"/>
      <function-arg-def name="instances"  type="required"/>
      <function-arg-def name="duration"   type="required"/>
      <function-arg-def name="suffix"     type="required"/>
    </function-map-args>
    
    <sequence>
      <script>
        compilDir = '%s/%s_%s' % \
                    (client.getPath(),client.getHost(),client.getId())
        
        #
        # Extract client parameters from client.getParams()
        #
        cParams = client.getParams()
        try:
          serverInstanceFromClient = cParams[0][1]
        except IndexError:
          serverInstanceFromClient = NOT_DEFINED
          msg = '%s\nERROR: serverInstanceFromClient undefined,mandatory' % msg
        try:
          baseDn = cParams[1][1]
        except IndexError:
          baseDn = NOT_DEFINED
          msg = '%s\nERROR: baseDn undefined,mandatory' % msg
        try:
          nbCnx = cParams[2][1]
        except IndexError:
          nbCnx = NOT_DEFINED
          msg = '%s\nERROR: nbCnx undefined,mandatory' % msg
        try:
          nbMaxModify = cParams[3][1]
        except IndexError:
          nbMaxModify = NOT_DEFINED
          msg = '%s\nERROR: nbMaxOperations undefined,mandatory' % msg
        try:
          attributeName = cParams[4][1]
        except IndexError:
          attributeName = NOT_DEFINED
        
        #
        # setup parms to run the client
        #
        if serverInstanceFromClient != NOT_DEFINED:
          sys.path.append("%s/phases/scheduler" % TESTS_DIR )
          from scheduler import getInstance
          serverInstance = getInstance(serverInstanceFromClient,instances)
          if (serverInstance == 'ERROR'):
            msg = '%s\nERROR: cant find client instance named' % msg
            msg = '%s %s in server instance list' % \
                  (msg,serverInstanceFromClient)
            
          else:
            # remove sec, try to finish before timer kill -9 the client
            duration = duration - 20
            
            parms=[]
            parms.append('-h %s -p %s' % \
                       (serverInstance.getHost(),serverInstance.getLDAPPort()))
            parms.append('-b "%s"' % baseDn)
            parms.append('-D "%s" -w "%s"' % \
                        (DIRECTORY_INSTANCE_DN,DIRECTORY_INSTANCE_PSWD))
            parms.append('-t %s -M %s -d %s' % (nbCnx,nbMaxModify,duration))
            if attributeName != NOT_DEFINED:
              parms.append('-a %s' % attributeName)
            parms = ' '.join(parms)
      </script>
    </sequence>
  </function>
 
</stax>