~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/libs/jgdi/test/com/sun/grid/jgdi/util/shell/editor/JGDIGEObjectEditorTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//*___INFO__MARK_BEGIN__*/
 
2
/*************************************************************************
 
3
 *
 
4
 *  The Contents of this file are made available subject to the terms of
 
5
 *  the Sun Industry Standards Source License Version 1.2
 
6
 *
 
7
 *  Sun Microsystems Inc., March, 2001
 
8
 *
 
9
 *
 
10
 *  Sun Industry Standards Source License Version 1.2
 
11
 *  =================================================
 
12
 *  The contents of this file are subject to the Sun Industry Standards
 
13
 *  Source License Version 1.2 (the "License"); You may not use this file
 
14
 *  except in compliance with the License. You may obtain a copy of the
 
15
 *  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
 
16
 *
 
17
 *  Software provided under this License is provided on an "AS IS" basis,
 
18
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 
19
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 
20
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 
21
 *  See the License for the specific provisions governing your rights and
 
22
 *  obligations concerning the Software.
 
23
 *
 
24
 *   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 
25
 *
 
26
 *   Copyright: 2001 by Sun Microsystems, Inc.
 
27
 *
 
28
 *   All Rights Reserved.
 
29
 *
 
30
 ************************************************************************/
 
31
/*___INFO__MARK_END__*/
 
32
 
 
33
package com.sun.grid.jgdi.util.shell.editor;
 
34
 
 
35
import com.sun.grid.jgdi.BaseTestCase;
 
36
import com.sun.grid.jgdi.JGDI;
 
37
import com.sun.grid.jgdi.JGDIException;
 
38
import com.sun.grid.jgdi.configuration.UserSet;
 
39
import com.sun.grid.jgdi.configuration.UserSetImpl;
 
40
import java.util.Arrays;
 
41
import com.sun.grid.jgdi.configuration.*;
 
42
 
 
43
/**
 
44
 *
 
45
 */
 
46
public class JGDIGEObjectEditorTest extends BaseTestCase {
 
47
    private JGDI jgdi;
 
48
    
 
49
    private ClusterQueue cq1;
 
50
    private Project prj1, prj2, prj3, prj4;
 
51
    private UserSet us1, us2, us3;
 
52
    private ParallelEnvironmentImpl pe1, pe2;
 
53
    private HostgroupImpl hg1, hg2;
 
54
    
 
55
    public JGDIGEObjectEditorTest(String testName) {
 
56
        super(testName);
 
57
    }
 
58
    
 
59
    protected synchronized void setUp() throws Exception {
 
60
        super.setUp();
 
61
        jgdi = createJGDI();
 
62
        init();
 
63
    }
 
64
    
 
65
    private void init() throws JGDIException {
 
66
        ClusterQueue cq;
 
67
        cq1 = new ClusterQueueImpl(true);
 
68
        cq1.setName("testQueue_1");
 
69
        cq1.addHostlist("@allhosts");
 
70
        
 
71
        if ((cq = jgdi.getClusterQueue(cq1.getName())) != null) {
 
72
            jgdi.deleteClusterQueue(cq);
 
73
        }
 
74
        jgdi.addClusterQueue(cq1);
 
75
        
 
76
        Project prj;
 
77
        prj1 = new ProjectImpl("newProjectName");
 
78
        prj2 = new ProjectImpl("project2");
 
79
        prj3 = new ProjectImpl("project3");
 
80
        prj4 = new ProjectImpl("project4");
 
81
        if ((prj = jgdi.getProject("ProjectName")) != null) {
 
82
            jgdi.deleteProject(prj);
 
83
        }
 
84
        if ((prj = jgdi.getProject(prj1.getName())) != null) {
 
85
            jgdi.deleteProject(prj);
 
86
        }
 
87
        if ((prj = jgdi.getProject(prj2.getName())) != null) {
 
88
            jgdi.deleteProject(prj);
 
89
        }
 
90
        if ((prj = jgdi.getProject(prj3.getName())) != null) {
 
91
            jgdi.deleteProject(prj);
 
92
        }
 
93
        if ((prj = jgdi.getProject(prj4.getName())) != null) {
 
94
            jgdi.deleteProject(prj);
 
95
        }
 
96
        
 
97
        Hostgroup hg;
 
98
        hg1 = new HostgroupImpl("@hgroup1");
 
99
        if ((hg = jgdi.getHostgroup(hg1.getName())) != null) {
 
100
            jgdi.deleteHostgroup(hg);
 
101
        }
 
102
        
 
103
        UserSet us;
 
104
        us1 = new UserSetImpl("user1");
 
105
        us2 = new UserSetImpl("user2");
 
106
        us3 = new UserSetImpl("user3");
 
107
        if ((us = jgdi.getUserSet("user1")) != null) {
 
108
            jgdi.deleteUserSet(us);
 
109
        }
 
110
        if ((us = jgdi.getUserSet("user2")) != null) {
 
111
            jgdi.deleteUserSet(us);
 
112
        }
 
113
        if ((us = jgdi.getUserSet("user3")) != null) {
 
114
            jgdi.deleteUserSet(us);
 
115
        }
 
116
        
 
117
        ParallelEnvironment pe;
 
118
        pe1 = new ParallelEnvironmentImpl(true);
 
119
        pe1.setName("oldPe");
 
120
        pe2 = new ParallelEnvironmentImpl(true);
 
121
        pe2.setName("myPe");
 
122
        if ((pe = jgdi.getParallelEnvironment(pe1.getName())) != null) {
 
123
            jgdi.deleteParallelEnvironment(pe);
 
124
        }
 
125
        if ((pe = jgdi.getParallelEnvironment(pe2.getName())) != null) {
 
126
            jgdi.deleteParallelEnvironment(pe);
 
127
        }
 
128
        
 
129
        jgdi.addProject(prj1);
 
130
        jgdi.addProject(prj2);
 
131
        jgdi.addProject(prj3);
 
132
        jgdi.addProject(prj4);
 
133
        jgdi.addHostgroup(hg1);
 
134
        jgdi.addUserSet(us1);
 
135
        jgdi.addUserSet(us2);
 
136
        jgdi.addUserSet(us3);
 
137
        jgdi.addParallelEnvironment(pe1);
 
138
        jgdi.addParallelEnvironment(pe2);
 
139
    }
 
140
    
 
141
    protected void tearDown() throws Exception {
 
142
        jgdi.close();
 
143
    }
 
144
    
 
145
    public void testUpdateObjectWithText_SetProjectAcl() throws Exception {
 
146
        System.out.println("testUpdateObjectWithText_SetProjectAcl");
 
147
        GEObjectEditor.updateObjectWithText(jgdi, prj1, "acl user1 user2 user3");
 
148
        jgdi.updateProject(prj1);
 
149
        assertEquals(Arrays.asList(new Object[] {new UserSetImpl("user1"), new UserSetImpl("user2"), new UserSetImpl("user3")}), jgdi.getProject(prj1.getName()).getAclList());
 
150
    }
 
151
    
 
152
    public void testUpdateObjectWithText_SetProjectAll1() throws Exception {
 
153
        Project newProject = new ProjectImpl(true);
 
154
        System.out.println("testUpdateObjectWithText_SetProjectAll1");
 
155
        String text = "name ProjectName\n oticket 1566\n fshare 666 \n acl user1 user2 \n xacl user3";
 
156
        GEObjectEditor.updateObjectWithText(jgdi, newProject, text);
 
157
        jgdi.addProject(newProject);
 
158
        assertEquals("ProjectName", jgdi.getProject(newProject.getName()).getName());
 
159
        assertEquals(1566 ,jgdi.getProject(newProject.getName()).getOticket());
 
160
        assertEquals(666 ,jgdi.getProject(newProject.getName()).getFshare());
 
161
        assertEquals(2, jgdi.getProject(newProject.getName()).getAclCount());
 
162
        assertTrue(jgdi.getProject(newProject.getName()).getAcl(0).equalsCompletely(new UserImpl("user1")));
 
163
        assertTrue(jgdi.getProject(newProject.getName()).getAcl(1).equalsCompletely(new UserImpl("user2")));
 
164
        assertEquals(1, jgdi.getProject(newProject.getName()).getXaclCount());
 
165
        assertTrue(jgdi.getProject(newProject.getName()).getXacl(0).equalsCompletely(new UserImpl("user3")));
 
166
        assertEquals(Arrays.asList(new Object[] {new UserSetImpl("user1"), new UserSetImpl("user2")}), jgdi.getProject(newProject.getName()).getAclList());
 
167
        assertEquals(Arrays.asList(new Object[] {new UserSetImpl("user3")}), jgdi.getProject(newProject.getName()).getXaclList());
 
168
        jgdi.deleteProject(newProject);
 
169
    }
 
170
    
 
171
    public void testUpdateObjectWithText_FailUpdateClusterQueueName() {
 
172
        System.out.print("testUpdateObjectWithText_FailUpdateClusterQueueName");
 
173
        try {
 
174
            GEObjectEditor.updateObjectWithText(jgdi, cq1, "name newQueueName");
 
175
            jgdi.updateClusterQueue(cq1);
 
176
            fail();
 
177
        } catch (JGDIException ex) {
 
178
            System.out.print(" - " + ex.getMessage());
 
179
        }
 
180
    }
 
181
    
 
182
    //MapList with NONE
 
183
    public void testUpdateObjectWithText_SetClusterQueuePeWithNone() throws Exception {
 
184
        System.out.println("testUpdateObjectWithText_SetClusterQueuePeWithNone");
 
185
        GEObjectEditor.updateObjectWithText(jgdi, cq1, "pe_list  NONE,[@hgroup1=oldPe myPe]");
 
186
        jgdi.updateClusterQueue(cq1);
 
187
        
 
188
        assertEquals(0, jgdi.getClusterQueue(cq1.getName()).getPeCount("@/"));
 
189
        
 
190
        assertEquals(2, jgdi.getClusterQueue(cq1.getName()).getPeCount("@hgroup1"));
 
191
        assertEquals("oldPe", jgdi.getClusterQueue(cq1.getName()).getPe("@hgroup1",0));
 
192
        assertEquals("myPe", jgdi.getClusterQueue(cq1.getName()).getPe("@hgroup1",1));
 
193
    }
 
194
    //Map with NONE
 
195
    public void testUpdateObjectWithText_SetClusterQueuePrologWithNone() throws Exception {
 
196
        System.out.println("testUpdateObjectWithText_SetClusterQueuePrologWithNone");
 
197
        GEObjectEditor.updateObjectWithText(jgdi, cq1, "prolog                secret,[@hgroup1=/bin/sh],[host_to_be_added=NONE],[unknown1=/bin/tcsh],[new5=unknown]");
 
198
        jgdi.updateClusterQueue(cq1);
 
199
        assertEquals("secret", jgdi.getClusterQueue(cq1.getName()).getProlog("@/"));
 
200
        assertEquals("/bin/sh", jgdi.getClusterQueue(cq1.getName()).getProlog("@hgroup1"));
 
201
        assertEquals("NONE", jgdi.getClusterQueue(cq1.getName()).getProlog("host_to_be_added"));
 
202
        assertEquals("/bin/tcsh", jgdi.getClusterQueue(cq1.getName()).getProlog("unknown1"));
 
203
        assertEquals("unknown", jgdi.getClusterQueue(cq1.getName()).getProlog("new5"));
 
204
    }
 
205
    
 
206
    public void testUpdateObjectWithText_SetClusterQueueAll_1() throws Exception {
 
207
        System.out.println("testUpdateObjectWithText_SetClusterQueueAll_1");
 
208
        GEObjectEditor.updateObjectWithText(jgdi, cq1, "name "+cq1.getName()+"\n"+
 
209
                "projects "+prj1.getName()+" "+prj2.getName()+
 
210
                ",["+hg1.getName()+"="+prj1.getName()+" "+prj4.getName()+
 
211
                "],[host1="+prj3.getName()+" "+prj1.getName()+" "+prj4.getName()+"]\n" +
 
212
                " pe   make,["+hg1.getName()+"="+pe1.getName()+" "+pe2.getName()+"]\n"+
 
213
                " load_thresholds np_load_avg=1.75,qname="+cq1.getName()+",rerun=true,s_rss=3k,h_rss=NONE \\\n" +"["+hg1.getName()+"=qname="+cq1.getName()+",swap_free=1G]\n");
 
214
        jgdi.updateClusterQueue(cq1);
 
215
        
 
216
        assertEquals("testQueue_1", jgdi.getClusterQueue(cq1.getName()).getName());
 
217
        //PROJECT
 
218
        assertEquals(2,jgdi.getClusterQueue(cq1.getName()).getProjectsCount("@/"));
 
219
        assertEquals(prj1.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects("@/",0).getName());
 
220
        assertEquals(prj2.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects("@/",1).getName());
 
221
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects("@/",0).equalsCompletely(new ProjectImpl(prj1.getName())));
 
222
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects("@/",1).equalsCompletely(new ProjectImpl(prj2.getName())));
 
223
        
 
224
        assertEquals(2,jgdi.getClusterQueue(cq1.getName()).getProjectsCount(hg1.getName()));
 
225
        assertEquals(prj1.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects(hg1.getName(),0).getName());
 
226
        assertEquals(prj4.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects(hg1.getName(),1).getName());
 
227
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects(hg1.getName(),0).equalsCompletely(new ProjectImpl(prj1.getName())));
 
228
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects(hg1.getName(),1).equalsCompletely(new ProjectImpl(prj4.getName())));
 
229
        
 
230
        assertEquals(3,jgdi.getClusterQueue(cq1.getName()).getProjectsCount("host1"));
 
231
        assertEquals(prj3.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects("host1",0).getName());
 
232
        assertEquals(prj1.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects("host1",1).getName());
 
233
        assertEquals(prj4.getName(), jgdi.getClusterQueue(cq1.getName()).getProjects("host1",2).getName());
 
234
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects("host1",0).equalsCompletely(new ProjectImpl(prj3.getName())));
 
235
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects("host1",1).equalsCompletely(new ProjectImpl(prj1.getName())));
 
236
        assertTrue(jgdi.getClusterQueue(cq1.getName()).getProjects("host1",2).equalsCompletely(new ProjectImpl(prj4.getName())));
 
237
        
 
238
        //PE
 
239
        assertEquals(1,jgdi.getClusterQueue(cq1.getName()).getPeCount("@/"));
 
240
        assertEquals("make", jgdi.getClusterQueue(cq1.getName()).getPe("@/",0));
 
241
        
 
242
        assertEquals(2,jgdi.getClusterQueue(cq1.getName()).getPeCount(hg1.getName()));
 
243
        assertEquals(pe1.getName(), jgdi.getClusterQueue(cq1.getName()).getPe(hg1.getName(),0));
 
244
        assertEquals(pe2.getName(), jgdi.getClusterQueue(cq1.getName()).getPe(hg1.getName(),1));
 
245
        
 
246
        //Load thresholds
 
247
        assertEquals(5, jgdi.getClusterQueue(cq1.getName()).getLoadThresholdsCount("@/"));
 
248
        assertEquals("np_load_avg",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",0).getName());
 
249
        assertEquals("1.75",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",0).getStringval());
 
250
        
 
251
        assertEquals("qname",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",1).getName());
 
252
        assertEquals(cq1.getName(),jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",1).getStringval());
 
253
        
 
254
        assertEquals("rerun",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",2).getName());
 
255
        assertEquals("true",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",2).getStringval());
 
256
        
 
257
        assertEquals("s_rss",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",3).getName());
 
258
        assertEquals("3k",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",3).getStringval());
 
259
        
 
260
        assertEquals("h_rss",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",4).getName());
 
261
        assertEquals("NONE",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds("@/",4).getStringval());
 
262
        
 
263
        assertEquals(2, jgdi.getClusterQueue(cq1.getName()).getLoadThresholdsCount(hg1.getName()));
 
264
        assertEquals("qname",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds(hg1.getName(),0).getName());
 
265
        assertEquals(cq1.getName(),jgdi.getClusterQueue(cq1.getName()).getLoadThresholds(hg1.getName(),0).getStringval());
 
266
        
 
267
        assertEquals("swap_free",jgdi.getClusterQueue(cq1.getName()).getLoadThresholds(hg1.getName(),1).getName());
 
268
        assertEquals("1G", jgdi.getClusterQueue(cq1.getName()).getLoadThresholds(hg1.getName(),1).getStringval());
 
269
    }
 
270
    
 
271
    public static void main(String[] args) throws Exception {
 
272
        GEObjectEditorTest g = new GEObjectEditorTest("testClusterQueue");
 
273
        g.setUp();
 
274
        g.tearDown();
 
275
    }
 
276
}