dbplan.txt 3.08 KB
Newer Older
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
Table           Fields
=======================================================================

HARDWARE
--------
nodes		node_id, type
		(Should include switch(es))

node_types	type, proc, MHz, #IFs, HD, RAM
		(Should include switch(es) also)

Interfaces	node_id, IF, MAC
		(Should include switch ports)

IP_list		node_id, IF, IP

Wires		node_id1, IF1, node_id2, IF2

Reserved	node_id, eid
		(what node, what experiment has it)


SOFTWARE
--------
SW_Table	node_id, image_id, quick_clean, trusted
		(Link to DiskImages, mark it to be cleaned the
		quick way if possible when the experiment ends. This
		assumes that all custom OS's will have images stored.)

Fixed_List	node_id, fix_id
		(pairs of nodes and fixes that have been applied to them)

Disk_Images	image_id, desc, OS, ver, extras, free_space, free_space_type,
		time_install_exp, time_install_node, time_boot_exp,
		time_boot_node, time_???, path
		(This is for stock images, as well as "customs". 
		Extras would be for extra stuff built into the image.)

Fix_Compat	image_id, fix_id
		(stores pairs of images and compatible fixes)

Fixes_Table	fix_id, fix_name, fix_desc, fix_path
		(Keeps track of "fix" scripts for add-ins to the
		images)

LOGGING
-------
Logs_Table	entry_id, node_id, uid, timestamp, log_type, message
		(uid is user who initiated it, if it's something
		that can be initiated by a user, or user who had
		the machine reserved at the time) (Log_type is ENUM
		('powercycle', 'generic_message', etc. )(use mysql
		timestamp type and update with NULL) 
		This way we get the flexibility to do any logging
		in there that we want, but we can still pull out
		things like power cycle events.  Probably add other
		event types in as we come up with them.
		

USERS/GROUPS
------------
User_Table	uid, creation_date, expires_on, trust_level, 
		name, email, phone, fax, home_addr, encrypted_passwd
		(uid matches unix one. creation/expiration so we can clean up
		old stuff without worrying, but we might not want them)

Grp_Memb	uid, gid
		(pairs - a user and a group they are in)

Group_Table	gid, name, affiliation, type, URL, surf_mail_addr,
		group_head_uid, cntrl_node, creation_date, expires_on
		(cntrl_node assumes we're assigning each group a
		"control node" inside the testbed while they're here.)

Proj_Memb	uid, pid
		(pairs - a user and a project they are in)

Proj_Groups	pid, gid
		(pairs - a project and a group they are in)

Proj_Table	pid, name, proj_head_uid, creation_date, expires_on

Expt_Table	eid, pid, name, exp_head_uid, start, end 
		(start is when they should be set up, end is when
		they're released, and nodes should point to all nodes
		involved in this experiment. This assumes that we
		assign nodes to projects, and 1 per group for a control.)

NOT USED
--------
PatchPanel	? We're not going to have one of these, are we?

Cur_Switch_Conf	? SNMP has this... Do we really want to maintain a copy here?

Switch_Stats	? SNMP has this... Do we really want to maintain a copy here?

Sav_Switch_Conf	? Is this for IR files or something? What is it?

Shaping_Logs	? What things did we want to know about the shaping
		nodes? How do we get this data?