Index: fedd/federation/emulab_access.py
===================================================================
--- fedd/federation/emulab_access.py	(revision cf00ddd87fd21643c02fdfda7a36c095ff90fed0)
+++ fedd/federation/emulab_access.py	(revision 53340444df2a6d0e1a519b10db10ea1fdb819caf)
@@ -131,6 +131,8 @@
 	# XXX: Configurable
 	self.exports = set(('SMB', 'seer', 'tmcd', 'userconfig', 
-	    'project_export', 'local_seer_control', 'seer_master'))
-	self.imports = set(('SMB', 'seer', 'userconfig', 'seer_master'))
+	    'project_export', 'local_seer_control', 'seer_master', 
+	    'hide_hosts'))
+	self.imports = set(('SMB', 'seer', 'userconfig', 'seer_master',
+	    'hide_hosts'))
 
 	if not self.local_seer_image or not self.local_seer_software:
@@ -583,5 +585,5 @@
 	return confid, confcert
 
-    def export_SMB(self, id, state, project, user):
+    def export_SMB(self, id, state, project, user, attrs):
 	return { 
 		'id': id,
@@ -596,5 +598,5 @@
 		}
 
-    def export_seer(self, id, state, project, user):
+    def export_seer(self, id, state, project, user, attrs):
 	return { 
 		'id': id,
@@ -604,5 +606,5 @@
 		}
 
-    def export_local_seer(self, id, state, project, user):
+    def export_local_seer(self, id, state, project, user, attrs):
 	return { 
 		'id': id,
@@ -612,5 +614,5 @@
 		}
 
-    def export_seer_master(self, id, state, project, user):
+    def export_seer_master(self, id, state, project, user, attrs):
 	return { 
 		'id': id,
@@ -620,5 +622,5 @@
 		}
 
-    def export_tmcd(self, id, state, project, user):
+    def export_tmcd(self, id, state, project, user, attrs):
 	return { 
 		'id': id,
@@ -628,5 +630,5 @@
 		}
 
-    def export_userconfig(self, id, state, project, user):
+    def export_userconfig(self, id, state, project, user, attrs):
 	if self.userconfdir and self.userconfcmd \
 		and self.userconfurl:
@@ -645,4 +647,13 @@
 	    return None
 
+    def export_hide_hosts(self, id, state, project, user, attrs):
+	return {
+		'id': id, 
+		'name': 'hide_hosts',
+		'visibility': 'export',
+		'fedAttr': [ x for x in attrs \
+			if x.get('attribute', "") == 'hosts'],
+		}
+
     def export_services(self, sreq, project, user):
 	exp = [ ]
@@ -653,27 +664,36 @@
 	    sname = s.get('name', '')
 	    svis = s.get('visibility', '')
+	    sattrs = s.get('fedAttr', [])
 	    if svis == 'export':
 		if sname in self.exports:
 		    id = s.get('id', 'no_id')
 		    if sname == 'SMB':
-			exp.append(self.export_SMB(id, state, project, user))
+			exp.append(self.export_SMB(id, state, project, user,
+			    sattrs))
 		    elif sname == 'seer':
-			exp.append(self.export_seer(id, state, project, user))
+			exp.append(self.export_seer(id, state, project, user,
+			    sattrs))
 		    elif sname == 'tmcd':
-			exp.append(self.export_tmcd(id, state, project, user))
+			exp.append(self.export_tmcd(id, state, project, user,
+			    sattrs))
 		    elif sname == 'userconfig':
 			exp.append(self.export_userconfig(id, state,
-			    project, user))
+			    project, user, sattrs))
 		    elif sname == 'project_export':
-			exp.append(self.export_SMB(id, state, project, user))
-			#exp.append(self.export_seer(id, state, project, user))
+			exp.append(self.export_SMB(id, state, project, user,
+			    sattrs))
+			#exp.append(self.export_seer(id, state, project, user,
+			#sattrs))
 			exp.append(self.export_userconfig(id, state,
-			    project, user))
+			    project, user, sattrs))
 		    elif sname == 'local_seer_control':
 			exp.append(self.export_local_seer(id, state, project,
-			    user))
+			    user, sattrs))
 		    elif sname == 'seer_master':
 			exp.append(self.export_seer_master(id, state, project,
-			    user))
+			    user, sattrs))
+		    elif sname == 'hide_hosts':
+			exp.append(self.export_hide_hosts(id, state, project,
+			    user, sattrs))
 	return (exp, state)
 
@@ -1094,4 +1114,9 @@
 		print >>f, "ProjectName: %s" % smbproj
 
+	def client_hide_hosts(f, s):
+	    for a in s.get('fedAttr', [ ]):
+		if a.get('attribute', "") == 'hosts':
+		    print >>f, "Hide: %s" % a.get('value', "")
+
 	client_service_out = {
 		'SMB': client_smb,
@@ -1101,4 +1126,5 @@
 		'project_export': client_null,
 		'seer_master': client_seer_master,
+		'hide_hosts': client_hide_hosts,
 	    }
 
@@ -1130,4 +1156,5 @@
 		'seer': server_seer,
 		'seer_master': server_port,
+		'hide_hosts': server_null,
 	    }
 	# XXX: end un hardcode this
