#!/usr/bin/env python # $ARGV[0] = clustername # $ARGV[1] = uid from apac.pl # $ARGV[2] = MIP config dir import os, sys import apac_lib as lib if __name__ == '__main__': c = lib.read_config(sys.argv[3]) lib.assert_contains(c, sys.argv[1]) lib.assert_contains(c[sys.argv[1]], 'Cluster') lib.assert_contains(c[sys.argv[1]].Cluster, sys.argv[2]) config = c[sys.argv[1]].Cluster[sys.argv[2]] # standard glue keys for key in ('WNTmpDir', 'TmpDir'): if lib.contains(config, key): print "<%s>%s</%s>" % (key, config.__dict__[key], key) if lib.contains(config, 'Name') and config.__dict__['Name'] is not None: print "<Name>%s</Name>" % config.__dict__['Name'] else: print "<Name>%s</Name>" % sys.argv[2]
#!/usr/bin/env python # $ARGV[0] = clustername # $ARGV[1] = uid from apac.pl # $ARGV[2] = MIP config dir import os, sys import apac_lib as lib if __name__ == '__main__': c = lib.read_config(sys.argv[3]) lib.assert_contains(c, sys.argv[1]) lib.assert_contains(c[sys.argv[1]], 'StorageElement') lib.assert_contains(c[sys.argv[1]].StorageElement, sys.argv[2]) config = c[sys.argv[1]].StorageElement[sys.argv[2]] # vlad's workaround to the max limit of int32 maxInt32 = 2147483647 if config.RootDirectory is not None and os.path.exists(config.RootDirectory): lines = lib.run_command(['df', '-k', config.RootDirectory]) if len(lines) == 3: free_index = 2 total_index = 0 else: free_index = 3 total_index = 1 if config.SizeTotal is None: total_space = int(lines[-1].split()[total_index])
#!/usr/bin/env python # $ARGV[0] = clustername # $ARGV[1] = uid from apac.pl # $ARGV[2] = MIP config dir import os, sys, copy import apac_lib as lib if __name__ == "__main__": c = lib.read_config(sys.argv[3]) lib.assert_contains(c, sys.argv[1]) lib.assert_contains(c[sys.argv[1]], "Site") lib.assert_contains(c[sys.argv[1]].Site, sys.argv[2]) config = c[sys.argv[1]].Site[sys.argv[2]] c = copy.deepcopy(config) # standard glue keys if lib.contains(config, "Contact"): for key in ("SysAdminContact", "UserSupportContact", "SecurityContact"): c.__dict__[key] = config.__dict__["Contact"] for key in ("SysAdminContact", "UserSupportContact", "SecurityContact"): if lib.contains(config, key) and config.__dict__[key] is not None: c.__dict__[key] = config.__dict__[key] for key in ( "Name",
ce.FreeCPUs += np if node_info.has_key('jobs'): ce.FreeCPUs -= len(node_info['jobs']) # for key, value in node_info.items(): # print "%s: %s" % (key, value) if __name__ == '__main__': #sys.stderr.write('in the computing element calculation\n') c = lib.read_config(sys.argv[3]) lib.assert_contains(c, sys.argv[1]) lib.assert_contains(c[sys.argv[1]], 'ComputingElement') lib.assert_contains(c[sys.argv[1]].ComputingElement, sys.argv[2]) config = c[sys.argv[1]].ComputingElement[sys.argv[2]] ce = lib.ComputingElement() ce.users = [] # caclculate the number of cpus and free cpus, ie ce.TotalCPUs and ce.FreeCPUs if config.LRMSType == "Torque" or config.LRMSType == "PBSPro": #sys.stderr.write('in the Torque / PBSPro number of cpus section\n') if config.pbsnodes is not None and os.path.isfile(config.pbsnodes): ce.TotalCPUs = 0 ce.FreeCPUs = 0