我正在尝试使用vijava获取虚拟机的权限,如下所示:
ManagedEntity me = new
InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmName);
VirtualMachine vm = (VirtualMachine) me;
for (Permission permission : vm.getPermission()) {
System.out.println(permission.getPrincipal());
}
有了这个,我获得的权限仅适用于此vm。
如何获得虚拟机的总权限,包括继承?
答案 0 :(得分:0)
我不确定这是否可行,因为每个权限列表都与特定实体(即VirtualMachine,HostSystem等)相关联。
我这样做的方法是获取虚拟机的底层实体并获取其权限。例如,由于您拥有VirtualMachine对象,因此获取底层HostSystem并检索其权限,等等。
ManagedEntity me = new
InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmName);
VirtualMachine vm = (VirtualMachine) me;
// Assuming that you have a ServiceInstance object si.
HostSystem host = (HostSystem)MorUtil.createExactManagedEntity(si
.getServerConnection(),vm.getRuntime().host);
Permission[] hostPermissions = host.getPermission();
我希望有所帮助。
答案 1 :(得分:0)
要获得所有继承权限,您应该获得所有父母的权限:
while (me.getParent() != null) {
me = me.getParent();
Permission[] permissions = me.getPermission();
if (permissions != null) {
for (Permission p : permissions) {
// do stuff....
}
}
}