/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.ceph; import java.util.List; import com.emc.storageos.ceph.model.ClusterInfo; import com.emc.storageos.ceph.model.PoolInfo; import com.emc.storageos.ceph.model.SnapInfo; public interface CephClient extends AutoCloseable { @Override public default void close() throws Exception {}; public ClusterInfo getClusterInfo() throws CephException; public List<PoolInfo> getPools() throws CephException; public void createImage(String pool, String name, long size) throws CephException; public void deleteImage(String pool, String name) throws CephException; public void resizeImage(String pool, String name, long size) throws CephException; public void flattenImage(String pool, String image) throws CephException; public void createSnap(String pool, String imageName, String snapName) throws CephException; public void deleteSnap(String pool, String imageName, String snapName) throws CephException; public List<SnapInfo> getSnapshots(String pool, String image) throws CephException; public void cloneSnap(String pool, String parentImage, String parentSnap, String childName) throws CephException; public void protectSnap(String pool, String parentImage, String snapName) throws CephException; public void unprotectSnap(String pool, String parentImage, String snapName) throws CephException; public boolean snapIsProtected(String pool, String parentImage, String snapName) throws CephException; public List<String> getChildren(String pool, String parentImage, String snapName) throws CephException; }