示例#1
0
#!/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]

示例#2
0
#!/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])
示例#3
0
文件: site.py 项目: nesi/ARCS-systems
#!/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",
示例#4
0
	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