Kb150

Emulab FAQ: Testbed Operations: How do we partition nodes administratively into multiple "types"?

Emulab FAQ: Testbed Operations: How do we partition nodes administratively into multiple "types"?

> If we have partitioned the nodes administratively into multiple
> "types", can we adminstratively determine what node types a particular
> project can allocate?

First off, there is no web page that indicates what node types a project can use. I will put that on the TODO list.

The Node Status summary page shows what node types a particular user is allowed to use (by virtue of them being listed on the page), but the user might be in multiple projects.

Locally, we partition nodes by leaving them as class "pc" but giving them a different node "type". For example, "pcwifi". We then put entries into the nodetypeXpid_permissions table using the grantnodetype script in the sbin directory:

grantnodetype -p testbed pcwifi

Without at least one entry, the type is considered available for use by anyone. Eventually we want a more explicit allow/deny framework, but the current setup works okay for what we need. Multiple projects can be granted permission to use a node type; just rerun the above command for each project you want to grant to.

Note: Later, the nodetypeXpid_permissions table became a "cache" of permissions stored in the group_policies table. The grantnodetype script updates the group_policies table, and runs the update_permissions script to update the cache.