protected ImageStoragePoolMap getMap(Image image, long poolId) { return mapDao.findNonRemoved(ImageStoragePoolMap.class, Image.class, image.getId(), StoragePool.class, poolId); }
protected ImageStoragePoolMap associate(Image image, long poolId) { ImageStoragePoolMap map = getMap(image, poolId); if (map == null) { map = getObjectManager().create(ImageStoragePoolMap.class, IMAGE_STORAGE_POOL_MAP.STORAGE_POOL_ID, poolId, IMAGE_STORAGE_POOL_MAP.IMAGE_ID, image.getId()); } return map; }
protected void activateImageInPool(Volume volume, final Image image, final long poolId, Map<String, Object> data) { if (image == null) { return; } activate(image, data); ImageStoragePoolMap map = getMap(image, poolId); if (map == null) { map = lockManager.lock(new ImageAssociateLock(image.getId(), poolId), new LockCallback<ImageStoragePoolMap>() { @Override public ImageStoragePoolMap doWithLock() { return associate(image, poolId); } }); } create(map, data); activate(map, data); }
@Override public Image createImageForInstance(Instance instance) { String uuid = (String) DataAccessor.fields(instance).withKey(InstanceConstants.FIELD_IMAGE_UUID).get(); Image image = storageService.registerRemoteImage(uuid); if (image != null) { objectManager.setFields(instance, INSTANCE.IMAGE_ID, image.getId()); long currentAccount = instance.getAccountId(); Long id = instance.getRegistryCredentialId(); image = objectManager.loadResource(Image.class, instance.getImageId()); if (id == null) { for (ImageCredentialLookup imageLookup: imageCredentialLookups){ Credential cred = imageLookup.getDefaultCredential(uuid, currentAccount); if (cred == null){ continue; } if (cred.getId() != null){ objectManager.setFields(instance, INSTANCE.REGISTRY_CREDENTIAL_ID, cred.getId()); break; } } } if (instance.getRegistryCredentialId() != null) { objectManager.setFields(image, IMAGE.REGISTRY_CREDENTIAL_ID, instance.getRegistryCredentialId()); } } return image; }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Image from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setUrl(from.getUrl()); setIsPublic(from.getIsPublic()); setPhysicalSizeMb(from.getPhysicalSizeMb()); setVirtualSizeMb(from.getVirtualSizeMb()); setChecksum(from.getChecksum()); setFormat(from.getFormat()); setInstanceKind(from.getInstanceKind()); setRegistryCredentialId(from.getRegistryCredentialId()); }