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

« back to all changes in this revision

Viewing changes to source/libs/mir/sge_sharetree_mirror.c

  • 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
#include "sge.h"
 
34
#include "sgermon.h"
 
35
#include "sge_log.h"
 
36
 
 
37
#include "sge_sharetree.h"
 
38
 
 
39
#include "msg_mirlib.h"
 
40
 
 
41
#include "sge_mirror.h"
 
42
#include "sge_sharetree_mirror.h"
 
43
 
 
44
/****** Eventmirror/sharetree/sharetree_update_master_list() *******************
 
45
*  NAME
 
46
*     sharetree_update_master_list() -- update the master sharetree list
 
47
*
 
48
*  SYNOPSIS
 
49
*     bool 
 
50
*     sharetree_update_master_list(sge_object_type type, sge_event_action action,
 
51
*                                  lListElem *event, void *clientdata)
 
52
*
 
53
*  FUNCTION
 
54
*     Update the global master list for the sharetree
 
55
*     based on an event.
 
56
*     The function is called from the event mirroring interface.
 
57
*     Sharetree events always contain the whole sharetree, that
 
58
*     replaces an existing sharetree in the master list.
 
59
*
 
60
*  INPUTS
 
61
*     sge_object_type type     - event type
 
62
*     sge_event_action action - action to perform
 
63
*     lListElem *event        - the raw event
 
64
*     void *clientdata        - client data
 
65
*
 
66
*  RESULT
 
67
*     bool - true, if update is successfull, else false
 
68
*
 
69
*  NOTES
 
70
*     The function should only be called from the event mirror interface.
 
71
*
 
72
*  SEE ALSO
 
73
*     Eventmirror/--Eventmirror
 
74
*******************************************************************************/
 
75
sge_callback_result
 
76
sharetree_update_master_list(sge_evc_class_t *evc, object_description *object_base, sge_object_type type, sge_event_action action,
 
77
                             lListElem *event, void *clientdata)
 
78
{
 
79
   lList **list = NULL;
 
80
   lList *src = NULL;
 
81
 
 
82
   DENTER(TOP_LAYER, "sharetree_update_master_list");
 
83
 
 
84
   /* remove old share tree */
 
85
   list = sge_master_list(object_base, type); /*<== need update */
 
86
   lFreeList(list);
 
87
   
 
88
 
 
89
   if ((src = lGetList(event, ET_new_version))) {
 
90
      
 
91
      /* install new one */
 
92
      *list = lCreateList("share tree", lGetElemDescr(lFirst(lGetList(event, ET_new_version))));
 
93
      lAppendElem(*list, lDechainElem(src, lFirst(src)));
 
94
   }
 
95
 
 
96
   DEXIT;
 
97
   return SGE_EMA_OK;
 
98
}
 
99