@Mapping(from = CinderVolumeType.class, to = OpenStackVolumeType.class) public static OpenStackVolumeType map(CinderVolumeType entity, OpenStackVolumeType template) { OpenStackVolumeType model = template != null ? template: new OpenStackVolumeType(); if (entity.getId() != null) { model.setId(entity.getId()); } if (entity.getName() != null) { model.setName(entity.getName()); } if (entity.getExtraSpecs() != null) { model.setProperties(CustomPropertiesParser.fromMap(entity.getExtraSpecs())); } return model; }
@Mapping(from = OpenStackVolumeType.class, to = CinderVolumeType.class) public static CinderVolumeType map(OpenStackVolumeType model, CinderVolumeType template) { CinderVolumeType entity = template != null ? template: new CinderVolumeType(); if (model.isSetId()) { entity.setId(model.getId()); } if (model.isSetName()) { entity.setName(model.getName()); } if (model.isSetProperties()) { entity.setExtraSpecs(CustomPropertiesParser.toMap(model.getProperties())); } return entity; } }
@Override public OpenStackVolumeType get() { Guid storageDomainId = BackendOpenStackStorageProviderHelper.getStorageDomainId(this, providerId); IdQueryParameters parameters = new IdQueryParameters(storageDomainId); List<CinderVolumeType> volumeTypes = getBackendCollection( CinderVolumeType.class, QueryType.GetCinderVolumeTypesByStorageDomainId, parameters); return volumeTypes.stream() .filter(v -> v.getId().equals(id)) .findFirst() .map(v -> addLinks(populate(map(v), v))) .orElseGet(this::notFound); }
protected void updateCinderVolumeTypes() { StorageDomain storageDomain = getStorageDomain().getSelectedItem(); if (storageDomain == null || storageDomain.getStorageType() != StorageType.CINDER) { return; } AsyncDataProvider.getInstance().getCinderVolumeTypesList(new AsyncQuery<>(cinderVolumeTypes -> { List<String> volumeTypesNames = new ArrayList<>(); for (CinderVolumeType cinderVolumeType : cinderVolumeTypes) { volumeTypesNames.add(cinderVolumeType.getName()); } getCinderVolumeType().setItems(volumeTypesNames); }), storageDomain.getId()); }