@Mapping(from = org.ovirt.engine.core.common.businessentities.Permission.class, to = Permission.class) public static Permission map(org.ovirt.engine.core.common.businessentities.Permission entity, Permission template) { Permission model = template != null ? template : new Permission(); model.setId(entity.getId().toString()); if (entity.getRoleId() != null) { model.setRole(new Role()); model.getRole().setId(entity.getRoleId().toString()); } if (entity.getAdElementId() != null && (template == null || !template.isSetGroup())) { model.setUser(new User()); model.getUser().setId(entity.getAdElementId().toString()); } if (entity.getObjectId() != null) { setObjectId(model, entity); } return model; }
@Override public V3Permission adapt(Permission from) { V3Permission to = new V3Permission(); if (from.isSetLinks()) { to.getLinks().addAll(adaptOut(from.getLinks())); if (from.isSetActions()) { to.setActions(adaptOut(from.getActions())); if (from.isSetCluster()) { to.setCluster(adaptOut(from.getCluster())); if (from.isSetComment()) { to.setComment(from.getComment()); if (from.isSetDataCenter()) { to.setDataCenter(adaptOut(from.getDataCenter())); if (from.isSetDescription()) { to.setDescription(from.getDescription()); if (from.isSetDisk()) { to.setDisk(adaptOut(from.getDisk())); if (from.isSetGroup()) { to.setGroup(adaptOut(from.getGroup())); if (from.isSetHost()) { to.setHost(adaptOut(from.getHost()));
@Override public Permission addParents(Permission permission) { // REVISIT for entity-level permissions we need an isUser // flag on the permissions entity in order to distinguish // between the user and group cases if (isGroupSubCollection() && permission.isSetUser() && permission.getUser().isSetId()) { permission.setGroup(new Group()); permission.getGroup().setId(permission.getUser().getId()); permission.setUser(null); } return permission; }
@Mapping(from = Permission.class, to = VdcObjectType.class) public static VdcObjectType map(Permission p, VdcObjectType template) { return p.isSetDataCenter() && p.getDataCenter().isSetId() ? VdcObjectType.StoragePool : p.isSetCluster() && p.getCluster().isSetId() ? VdcObjectType.Cluster : p.isSetHost() && p.getHost().isSetId() ? VdcObjectType.VDS : p.isSetStorageDomain() && p.getStorageDomain().isSetId() ? VdcObjectType.Storage : p.isSetVm() && p.getVm().isSetId() ? VdcObjectType.VM : p.isSetVmPool() && p.getVmPool().isSetId() ? VdcObjectType.VmPool : p.isSetTemplate() && p.getTemplate().isSetId() ? VdcObjectType.VmTemplate : template; }
if ( (permission.getRole()==null || permission.getRole().getId()==null) && (permission.getRole()==null || permission.getRole().getName()==null) ) { throw new ValidationException("Parameters 'permission.role.id' or 'permission.role.name' are mandatory but both were not provided."); && permission.getUser()!=null && permission.getUser().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addUserLevel", Permission.class); && permission.getVmPool()!=null && permission.getVmPool().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addVmPoolPermission", Permission.class); && permission.getTemplate()!=null && permission.getTemplate().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addTemplatePermission", Permission.class); && permission.getStorageDomain()!=null && permission.getStorageDomain().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addStorageDomainPermission", Permission.class); && permission.getGroup()!=null && permission.getGroup().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addGroupLevel", Permission.class); && permission.getCluster()!=null && permission.getCluster().getId()!=null ) { return AssignedPermissionsResource.class.getMethod("addClusterPermission", Permission.class); && permission.getHost()!=null && permission.getHost().getId()!=null ) {
break; case StoragePool : model.setDataCenter(new DataCenter()); model.getDataCenter().setId(id); break; case Cluster: model.setCluster(new Cluster()); model.getCluster().setId(id); break; case VDS : model.setHost(new Host()); model.getHost().setId(id); break; case Storage : model.setStorageDomain(new StorageDomain()); model.getStorageDomain().setId(id); break; case VM : model.setVm(new Vm()); model.getVm().setId(id); break; case VmPool : model.setVmPool(new VmPool()); model.getVmPool().setId(id); break; case VmTemplate : model.setTemplate(new Template()); model.getTemplate().setId(id); break;
@Override public Permission adapt(V3Permission from) { Permission to = new Permission(); if (from.isSetLinks()) { to.getLinks().addAll(adaptIn(from.getLinks())); to.setActions(adaptIn(from.getActions())); to.setCluster(adaptIn(from.getCluster())); to.setComment(from.getComment()); to.setDataCenter(adaptIn(from.getDataCenter())); to.setDescription(from.getDescription()); to.setDisk(adaptIn(from.getDisk())); to.setGroup(adaptIn(from.getGroup())); to.setHost(adaptIn(from.getHost())); to.setId(from.getId()); to.setHref(from.getHref()); to.setName(from.getName()); to.setRole(adaptIn(from.getRole()));
@Override protected Permission getModel() { Permission model = new Permission(); model.setDataCenter(new DataCenter()); model.getDataCenter().setId(GUIDS[2].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); return model; }
@Override protected void verify(Permission model, Permission transform) { assertNotNull(transform); assertTrue(transform.isSetId()); assertEquals(model.getId(), transform.getId()); assertTrue(transform.isSetRole()); assertEquals(model.getRole().getId(), transform.getRole().getId()); assertTrue(transform.isSetDataCenter()); assertEquals(model.getDataCenter().getId(), transform.getDataCenter().getId()); }
@Override protected Permission getModel() { Permission model = new Permission(); model.setUser(new User()); model.getUser().setId(GUIDS[1].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); return model; }
@Test public void testAddIncompletePermission() { Permission model = new Permission(); model.setGroup(new Group()); model.getGroup().setId(GUIDS[1].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); setUriInfo(setUpBasicUriExpectations()); verifyIncompleteException( assertThrows(WebApplicationException.class, () -> collection.add(model)), "Permission", "add", "dataCenter|cluster|host|storageDomain|vm|vmPool|template.id"); }
@Override protected void verifyModel(Permission model, int index) { super.verifyModel(model, index); if (index == 0) { assertTrue(model.isSetUser()); assertEquals(GUIDS[1].toString(), model.getUser().getId()); } else { assertTrue(model.isSetGroup()); assertEquals(GUIDS[1].toString(), model.getGroup().getId()); } } }
@Override protected void verifyModel(Permission model, int index) { assertEquals(GUIDS[index].toString(), model.getId()); assertTrue(model.isSetUser()); assertEquals(GUIDS[1].toString(), model.getUser().getId()); assertTrue(model.isSetRole()); assertEquals(GUIDS[2].toString(), model.getRole().getId()); }
/** * injects user/group base on permission owner type * @param entity the permission to map * @param user the permission owner * @return permission */ public Permission map(org.ovirt.engine.core.common.businessentities.Permission entity, DbUser user) { Permission template = new Permission(); if (entity.getAdElementId() != null) { if (isUser(user)) { template.setUser(new User()); template.getUser().setId(entity.getAdElementId().toString()); } else { template.setGroup(new Group()); template.getGroup().setId(entity.getAdElementId().toString()); } } return map(entity, template); }
@Test public void testCompleteSuperFieldAlternatives() { Permission permission = new Permission(); permission.setUser(new User()); permission.getUser().setName("joe"); CompletenessAssertor.validateParameters(permission, "vm|user.name"); }
@Mapping(from = Permission.class, to = org.ovirt.engine.core.common.businessentities.Permission.class) public static org.ovirt.engine.core.common.businessentities.Permission map( Permission model, org.ovirt.engine.core.common.businessentities.Permission template) { org.ovirt.engine.core.common.businessentities.Permission entity = template != null ? template : new org.ovirt.engine.core.common.businessentities.Permission(); if (model.isSetId()) { entity.setId(GuidUtils.asGuid(model.getId())); } if (model.isSetRole()) { Role role = model.getRole(); if (role.isSetId()) { entity.setRoleId(GuidUtils.asGuid(role.getId())); } if (role.isSetName()) { entity.setRoleName(role.getName()); } } entity.setObjectId(map(model, template != null ? template.getObjectId() : null)); entity.setObjectType(map(model, template != null ? template.getObjectType() : null)); return entity; }
@Test public void testMissingBothAlternatives() { Permission permission = new Permission(); permission.setVm(new Vm()); try { CompletenessAssertor.validateParameters(permission, "user|vm.name|id"); fail("expected WebApplicationException on incomplete model"); } catch (WebApplicationException wae) { verifyIncompleteException(wae, "Permission", "user|vm.name|id"); } }
@Override protected Permission addLinks(Permission model, Class<? extends BaseResource> suggestedParent, String... subCollectionMembersToExclude) { return super.addLinks(model, model.getUser() != null ? suggestedParentType : Group.class); }
/** * Create an instance of {@link Permission } * */ public Permission createPermission() { return new Permission(); }
@Override protected void verifyModel(Permission model, int index) { super.verifyModel(model, index); assertTrue(model.isSetGroup()); assertEquals(GUIDS[1].toString(), model.getGroup().getId()); }