[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
DanteServer as an App: Unwanted Sideeffects?
Unfortunately, I still have a bone to pick with the DanteServer.
Why is it an app?
I'm assuming that DanteServer is something that I need to run
on each core node to which I want to allow edge nodes to attach
themselves. In the case of the public ANTS-2.0 topology on the ABone,
I'm assuming that we want (*at present*) to allow edges to attach to
any of the core nodes (if for no other reason than because it
simplifies setting up and maintaining our topology, I think).
Now, consider this line in "core/AppBooster.java":
localNode.setPrincipal(app.getPrincipal());
In the case of the DanteServer, it will make DanteServer' Principal
the Principal for the node. Is this appropriate? Node.setPrincipal(p)
includes these constraints:
void setPrincipal(Principal p)
{
Assert.require(p);
/*
* As we use it, the principal is only ever changed
* from the bootstrap user to something else.
*/
Assert.assert(p != SecurityDefaults.BOOTSTRAP_USER);
Assert.assert(this.principal == SecurityDefaults.BOOTSTRAP_USER);
this.principal = p;
}
Effectively, this makes setPrincipal(p) a one-time operation.
I can sort of understand that this kind of manipulation is OK
when dealing with an edge node that's running a single Application for
GUI interface, data insertion, etc. I wonder if it's appropriate for
a core node? Why is DanteServer so special?
Craig Milo Rogers
[ Janos ] [ OSKit ] [ Network Testbed ] [ Flick ] [ Fluke ]
Flux Research Group / Department of Computer Science / University of Utah