File: mountsparameters.py

package info (click to toggle)
moosefs 4.58.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,644 kB
  • sloc: ansic: 129,204; python: 12,419; sh: 5,874; javascript: 2,273; makefile: 838
file content (122 lines) | stat: -rw-r--r-- 6,817 bytes parent folder | download | duplicates (2)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
from common.utils import *
from common.utilsgui import *

def render(dp, fields, vld, readonly):
	MSorder = fields.getint("MSorder", 0)
	MSrev = fields.getint("MSrev", 0)

	out = []
	out.append("""<div class="tab_title">Active mounts (parameters)</div>""")
	out.append("""<table class="acid_tab acid_tab_zebra_C1_C2 acid_tab_storageid_mfsmounts">""")
	out.append("""	<tr>""")
	out.append("""		<th rowspan="2" class="acid_tab_enumerate">#</th>""")
	out.append("""		<th rowspan="2" class="wrap">Session id</th>""")
	out.append("""		<th rowspan="2">Host</th>""")
	out.append("""		<th rowspan="2">IP</th>""")
	out.append("""		<th rowspan="2" class="wrap">Mount point</th>""")
	out.append("""		<th rowspan="2" class="wrap">Open files</th>""")
	out.append("""		<th rowspan="2" class="wrap">Number of connections</th>""")
	out.append("""		<th rowspan="2">Version</th>""")
	out.append("""		<th rowspan="2">Root dir</th>""")
	out.append("""		<th rowspan="2">RO/RW</th>""")
	out.append("""		<th rowspan="2" class="wrap">Restricted IP</th>""")
	out.append("""		<th rowspan="2" class="wrap">Ignore gid</th>""")
	out.append("""		<th rowspan="2">Admin</th>""")
	out.append("""		<th colspan="2">Map&nbsp;root</th>""")
	out.append("""		<th colspan="2">Map&nbsp;users</th>""")
	out.append("""		<th rowspan="2">Allowed&nbsp;sclasses</th>""")
	out.append("""		<th colspan="2">Trashretention&nbsp;limits</th>""")
	if dp.master().has_feature(FEATURE_EXPORT_UMASK):
		out.append("""		<th rowspan="2" class="wrap">Global umask</th>""")
	if dp.master().has_feature(FEATURE_EXPORT_DISABLES):
		out.append("""		<th rowspan="2" class="wrap">Disables mask</th>""")
	out.append("""	</tr>""")
	out.append("""	<tr>""")
	out.append("""		<th>uid</th>""")
	out.append("""		<th>gid</th>""")
	out.append("""		<th>uid</th>""")
	out.append("""		<th>gid</th>""")
	out.append("""		<th>min</th>""")
	out.append("""		<th>max</th>""")
	out.append("""	</tr>""")

	sessions,dsessions = dp.get_sessions_by_state(MSorder, MSrev)

	# Show active mounts
	for ses in sessions:
		out.append("""	<tr>""")
		out.append("""		<td align="right"></td>""")
		out.append("""		<td align="center">%s</td>""" % ses.get_sessionstr())
		out.append("""		<td align="left">%s</td>""" % ses.host)
		out.append("""		<td align="center"><span class="sortkey">%s </span>%s</td>""" % (ses.sortip,ses.strip))
		out.append("""		<td align="left">%s</td>""" % htmlentities(ses.info))
		out.append("""		<td align="center">%s</td>""" % decimal_number_html(ses.openfiles))
		out.append("""		<td align="center">%s</td>""" % decimal_number_html(ses.nsocks))
		issues = vld.check_mount_version(ses)
		out.append("""		<td align="center"><span class="sortkey">%s</span>%s</td>""" % (ses.sortver,issues.span(ses.strver.replace("PRO","<small>PRO</small>"))))
		out.append("""		<td align="left">%s</td>""" % (".&nbsp;(META)" if ses.meta else htmlentities(ses.path)))
		out.append("""		<td align="center">%s</td>""" % ("ro" if ses.sesflags&1 else "rw"))
		out.append("""		<td align="center">%s</td>""" % ("no" if ses.sesflags&2 else "yes"))
		out.append("""		<td align="center">%s</td>""" % ("-" if ses.meta else "yes" if ses.sesflags&4 else "no"))
		out.append("""		<td align="center">%s</td>""" % ("-" if ses.meta else "yes" if ses.sesflags&8 else "no"))
		if ses.meta:
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
		else:
			out.append("""		<td align="right">%u</td>""" % ses.rootuid)
			out.append("""		<td align="right">%u</td>""" % ses.rootgid)
		if ses.meta or (ses.sesflags&16)==0:
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
		else:
			out.append("""		<td align="right">%u</td>""" % ses.mapalluid)
			out.append("""		<td align="right">%u</td>""" % ses.mapallgid)
		out.append("""		<td align="center"><span class="sortkey">%u</span>%s</td>""" % (ses.get_sclassgroups_sort(),ses.get_sclassgroups_str()))
		if ses.mintrashretention!=None and ses.maxtrashretention!=None:
			out.append("""		<td align="right"><span class="sortkey">%u </span><a style="cursor:default" title="%s">%s</a></td>""" % (ses.mintrashretention,timeduration_to_fullstr(ses.mintrashretention),timeduration_to_shortstr(ses.mintrashretention)))
			out.append("""		<td align="right"><span class="sortkey">%u </span><a style="cursor:default" title="%s">%s</a></td>""" % (ses.maxtrashretention,timeduration_to_fullstr(ses.maxtrashretention),timeduration_to_shortstr(ses.maxtrashretention)))
		else:
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
			out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
		if dp.master().has_feature(FEATURE_EXPORT_UMASK):
			if ses.umaskval==None:
				out.append("""		<td align="center"><span class="sortkey">-1 </span>-</td>""")
			else:
				out.append("""		<td align="center">%03o</td>""" % ses.umaskval)
		if dp.master().has_feature(FEATURE_EXPORT_DISABLES):
			out.append("""		<td align="center"><span class="sortkey">%u </span><a style="cursor:default" title="%s">%08X</a></td>""" % (ses.disables,disablesmask_to_string(ses.disables),ses.disables))
		out.append("""	</tr>""")
	out.append("""</table>""")
	
	# Show inactive mounts
	if len(dsessions)>0:
		out.append("""<div class="tab_title" data-tt="mnt_inactive_list">Inactive mounts (parameters)</div>""")
		out.append("""<table class="acid_tab acid_tab_zebra_C1_C2 acid_tab_storageid_mfsmounts">""")
		out.append("""	<tr>""")
		out.append("""		<th class="acid_tab_enumerate">#</th>""")
		out.append("""		<th>Session&nbsp;id</th>""")
		out.append("""		<th>Host</th>""")
		out.append("""		<th>IP</th>""")
		out.append("""		<th>Mount&nbsp;point</th>""")
		out.append("""		<th>Open files</th>""")
		out.append("""		<th>Expires</th>""")
		if (not readonly):
			out.append("""		<th>cmd</th>""")
		out.append("""	</tr>""")
		
		issues = vld.issue('mnt_inactive')
		for ses in dsessions:
			out.append("""	<tr>""")
			out.append("""		<td align="right"></td>""")
			out.append("""		<td align="center">%s</td>""" % issues.span(str(ses.sessionid)))
			out.append("""		<td align="left">%s</td>""" % ses.host)
			out.append("""		<td align="center"><span class="sortkey">%s </span>%s</td>""" % (ses.sortip,ses.strip))
			out.append("""		<td align="left">%s</td>""" % ses.info)
			out.append("""		<td align="center">%u</td>""" % ses.openfiles)
			out.append("""		<td align="center">%s s</td>""" % decimal_number_html(ses.expire))
			if (not readonly):
				out.append("""		<td align="center"><a href="%s">click to remove</a></td>""" % fields.createhtmllink({"MSremove":("%u" % (ses.sessionid))}))
			out.append("""	</tr>""")
		out.append("""</table>""")

	return out