我试图像这样使用vijava获得虚拟机的权限:
ManagedEntity me = new
InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmName);
                VirtualMachine vm = (VirtualMachine) me;
for (Permission permission : vm.getPermission()) {
                System.out.println(permission.getPrincipal());
}这样,我获得的权限仅适用于此vm。
如何获得虚拟机的全部权限,包括继承的权限?
发布于 2015-09-22 12:09:27
要获得所有继承的权限,您应该获得如下所示的所有父级权限:
  while (me.getParent() != null) {
        me = me.getParent();
        Permission[] permissions = me.getPermission();
        if (permissions != null) {
            for (Permission p : permissions) {
                // do stuff....
            }
        }
    }发布于 2015-09-21 17:46:13
我不确定这是否可行,因为每个权限列表都与特定的实体(即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();我希望这能帮上忙。
https://stackoverflow.com/questions/32692661
复制相似问题