1+ package org .apache .cloudstack .storage .driver ;
2+
3+
4+ import com .cloud .agent .api .to .DataStoreTO ;
5+ import com .cloud .agent .api .to .DataTO ;
6+ import com .cloud .host .Host ;
7+ import com .cloud .storage .Storage ;
8+ import com .cloud .storage .StoragePool ;
9+ import com .cloud .storage .Volume ;
10+ import com .cloud .utils .Pair ;
11+ import org .apache .cloudstack .engine .subsystem .api .storage .ChapInfo ;
12+ import org .apache .cloudstack .engine .subsystem .api .storage .CopyCommandResult ;
13+ import org .apache .cloudstack .engine .subsystem .api .storage .CreateCmdResult ;
14+ import org .apache .cloudstack .engine .subsystem .api .storage .DataObject ;
15+ import org .apache .cloudstack .engine .subsystem .api .storage .DataStore ;
16+ import org .apache .cloudstack .engine .subsystem .api .storage .DataStoreCapabilities ;
17+ import org .apache .cloudstack .engine .subsystem .api .storage .PrimaryDataStoreDriver ;
18+ import org .apache .cloudstack .engine .subsystem .api .storage .SnapshotInfo ;
19+ import org .apache .cloudstack .engine .subsystem .api .storage .TemplateInfo ;
20+ import org .apache .cloudstack .engine .subsystem .api .storage .VolumeInfo ;
21+ import org .apache .cloudstack .framework .async .AsyncCompletionCallback ;
22+ import org .apache .cloudstack .storage .command .CommandResult ;
23+ import org .apache .logging .log4j .LogManager ;
24+ import org .apache .logging .log4j .Logger ;
25+ import org .springframework .stereotype .Component ;
26+
27+ import java .util .HashMap ;
28+ import java .util .Map ;
29+
30+ @ Component
31+ public class OntapPrimaryDatastoreDriver implements PrimaryDataStoreDriver {
32+
33+ private static final Logger s_logger = (Logger )LogManager .getLogger (OntapPrimaryDatastoreDriver .class );
34+ @ Override
35+ public Map <String , String > getCapabilities () {
36+ s_logger .trace ("OntapPrimaryDatastoreDriver: getCapabilities: Called" );
37+ Map <String , String > mapCapabilities = new HashMap <>();
38+
39+ mapCapabilities .put (DataStoreCapabilities .STORAGE_SYSTEM_SNAPSHOT .toString (), Boolean .TRUE .toString ());
40+ mapCapabilities .put (DataStoreCapabilities .CAN_CREATE_VOLUME_FROM_SNAPSHOT .toString (), Boolean .TRUE .toString ());
41+
42+ return mapCapabilities ;
43+ }
44+
45+ @ Override
46+ public DataTO getTO (DataObject data ) {
47+ return null ;
48+ }
49+
50+ @ Override
51+ public DataStoreTO getStoreTO (DataStore store ) {
52+ return null ;
53+ }
54+
55+ @ Override
56+ public void createAsync (DataStore store , DataObject data , AsyncCompletionCallback <CreateCmdResult > callback ) {
57+
58+ s_logger .trace ("OntapPrimaryDatastoreDriver: createAsync: Store: " +store +", data: " +data );
59+ }
60+
61+ @ Override
62+ public void deleteAsync (DataStore store , DataObject data , AsyncCompletionCallback <CommandResult > callback ) {
63+
64+ }
65+
66+ @ Override
67+ public void copyAsync (DataObject srcData , DataObject destData , AsyncCompletionCallback <CopyCommandResult > callback ) {
68+
69+ }
70+
71+ @ Override
72+ public void copyAsync (DataObject srcData , DataObject destData , Host destHost , AsyncCompletionCallback <CopyCommandResult > callback ) {
73+
74+ }
75+
76+ @ Override
77+ public boolean canCopy (DataObject srcData , DataObject destData ) {
78+ return false ;
79+ }
80+
81+ @ Override
82+ public void resize (DataObject data , AsyncCompletionCallback <CreateCmdResult > callback ) {
83+
84+ }
85+
86+ @ Override
87+ public ChapInfo getChapInfo (DataObject dataObject ) {
88+ return null ;
89+ }
90+
91+ @ Override
92+ public boolean grantAccess (DataObject dataObject , Host host , DataStore dataStore ) {
93+ return true ;
94+ }
95+
96+ @ Override
97+ public void revokeAccess (DataObject dataObject , Host host , DataStore dataStore ) {
98+
99+ }
100+
101+ @ Override
102+ public long getDataObjectSizeIncludingHypervisorSnapshotReserve (DataObject dataObject , StoragePool storagePool ) {
103+ return 0 ;
104+ }
105+
106+ @ Override
107+ public long getBytesRequiredForTemplate (TemplateInfo templateInfo , StoragePool storagePool ) {
108+ return 0 ;
109+ }
110+
111+ @ Override
112+ public long getUsedBytes (StoragePool storagePool ) {
113+ return 0 ;
114+ }
115+
116+ @ Override
117+ public long getUsedIops (StoragePool storagePool ) {
118+ return 0 ;
119+ }
120+
121+ @ Override
122+ public void takeSnapshot (SnapshotInfo snapshot , AsyncCompletionCallback <CreateCmdResult > callback ) {
123+
124+ }
125+
126+ @ Override
127+ public void revertSnapshot (SnapshotInfo snapshotOnImageStore , SnapshotInfo snapshotOnPrimaryStore , AsyncCompletionCallback <CommandResult > callback ) {
128+
129+ }
130+
131+ @ Override
132+ public void handleQualityOfServiceForVolumeMigration (VolumeInfo volumeInfo , QualityOfServiceState qualityOfServiceState ) {
133+
134+ }
135+
136+ @ Override
137+ public boolean canProvideStorageStats () {
138+ return true ;
139+ }
140+
141+ @ Override
142+ public Pair <Long , Long > getStorageStats (StoragePool storagePool ) {
143+ return null ;
144+ }
145+
146+ @ Override
147+ public boolean canProvideVolumeStats () {
148+ return true ;
149+ }
150+
151+ @ Override
152+ public Pair <Long , Long > getVolumeStats (StoragePool storagePool , String volumeId ) {
153+ return null ;
154+ }
155+
156+ @ Override
157+ public boolean canHostAccessStoragePool (Host host , StoragePool pool ) {
158+ return true ;
159+ }
160+
161+ @ Override
162+ public boolean isVmInfoNeeded () {
163+ return true ;
164+ }
165+
166+ @ Override
167+ public void provideVmInfo (long vmId , long volumeId ) {
168+
169+ }
170+
171+ @ Override
172+ public boolean isVmTagsNeeded (String tagKey ) {
173+ return true ;
174+ }
175+
176+ @ Override
177+ public void provideVmTags (long vmId , long volumeId , String tagValue ) {
178+
179+ }
180+
181+ @ Override
182+ public boolean isStorageSupportHA (Storage .StoragePoolType type ) {
183+ return true ;
184+ }
185+
186+ @ Override
187+ public void detachVolumeFromAllStorageNodes (Volume volume ) {
188+
189+ }
190+ }
0 commit comments