2525import com .cloud .agent .api .to .DataStoreTO ;
2626import com .cloud .agent .api .to .NfsTO ;
2727import com .cloud .storage .Storage ;
28+ import com .cloud .storage .VMTemplateStorageResourceAssoc ;
2829import com .cloud .storage .VMTemplateVO ;
2930import com .cloud .storage .VolumeVO ;
3031import com .cloud .storage .dao .VMTemplateDao ;
3132import com .cloud .storage .dao .VolumeDao ;
3233import org .apache .cloudstack .engine .subsystem .api .storage .CreateCmdResult ;
3334import org .apache .cloudstack .engine .subsystem .api .storage .DataObject ;
3435import org .apache .cloudstack .engine .subsystem .api .storage .DataStore ;
36+ import org .apache .cloudstack .engine .subsystem .api .storage .ObjectInDataStoreStateMachine ;
3537import org .apache .cloudstack .framework .async .AsyncCallbackDispatcher ;
3638import org .apache .cloudstack .framework .async .AsyncCompletionCallback ;
3739import org .apache .cloudstack .framework .async .AsyncRpcContext ;
4143import org .apache .cloudstack .storage .datastore .db .VolumeDataStoreVO ;
4244import org .apache .cloudstack .storage .image .BaseImageStoreDriverImpl ;
4345import org .apache .cloudstack .storage .image .store .ImageStoreImpl ;
46+ import org .apache .cloudstack .storage .to .TemplateObjectTO ;
47+ import org .apache .cloudstack .storage .to .VolumeObjectTO ;
4448
4549import javax .inject .Inject ;
4650import java .util .Date ;
@@ -93,57 +97,54 @@ public void createAsync(DataObject data, AsyncCompletionCallback<CreateCmdResult
9397
9498 protected Void createTemplateAsyncCallback (AsyncCallbackDispatcher <SimulatorImageStoreDriverImpl , DownloadAnswer > callback ,
9599 CreateContext <CreateCmdResult > context ) {
96- DownloadAnswer answer = callback .getResult ();
97100 DataObject obj = context .data ;
98101 DataStore store = obj .getDataStore ();
102+ TemplateObjectTO templateTO = (TemplateObjectTO )context .data .getTO ();
99103
100104 TemplateDataStoreVO tmpltStoreVO = _templateStoreDao .findByStoreTemplate (store .getId (), obj .getId ());
101105 if (tmpltStoreVO != null ) {
102106 TemplateDataStoreVO updateBuilder = _templateStoreDao .createForUpdate ();
103- updateBuilder .setDownloadPercent (answer . getDownloadPct () );
104- updateBuilder .setDownloadState (answer . getDownloadStatus () );
107+ updateBuilder .setDownloadPercent (100 );
108+ updateBuilder .setDownloadState (VMTemplateStorageResourceAssoc . Status . DOWNLOADED );
105109 updateBuilder .setLastUpdated (new Date ());
106- updateBuilder .setErrorString ( answer . getErrorString ( ));
107- updateBuilder .setJobId ( answer . getJobId ( ));
108- updateBuilder .setLocalDownloadPath ( answer . getDownloadPath ());
109- updateBuilder .setInstallPath (answer . getInstallPath ());
110- updateBuilder .setSize ( answer . getTemplateSize ());
111- updateBuilder .setPhysicalSize ( answer . getTemplatePhySicalSize () );
110+ updateBuilder .setSize ( new Long ( 5 * 1024L * 1024L ));
111+ updateBuilder .setPhysicalSize ( new Long ( 5 * 1024L * 1024L ));
112+ updateBuilder .setDownloadUrl ( templateTO . getOrigUrl ());
113+ updateBuilder .setInstallPath (templateTO . getPath ());
114+ updateBuilder .setTemplateId ( templateTO . getId ());
115+ updateBuilder .setState ( ObjectInDataStoreStateMachine . State . Ready );
112116 _templateStoreDao .update (tmpltStoreVO .getId (), updateBuilder );
113117 // update size in vm_template table
114118 VMTemplateVO tmlptUpdater = _templateDao .createForUpdate ();
115- tmlptUpdater .setSize (answer . getTemplateSize ( ));
119+ tmlptUpdater .setSize (new Long ( 5 * 1024l * 1024l ));
116120 _templateDao .update (obj .getId (), tmlptUpdater );
117121 }
118-
119122 return null ;
120123 }
121124
122125 protected Void createVolumeAsyncCallback (AsyncCallbackDispatcher <SimulatorImageStoreDriverImpl , DownloadAnswer > callback ,
123126 CreateContext <CreateCmdResult > context ) {
124- DownloadAnswer answer = callback .getResult ();
125127 DataObject obj = context .data ;
126128 DataStore store = obj .getDataStore ();
129+ VolumeObjectTO volumeTO = (VolumeObjectTO ) context .data .getTO ();
127130
128131 VolumeDataStoreVO volStoreVO = _volumeStoreDao .findByStoreVolume (store .getId (), obj .getId ());
129132 if (volStoreVO != null ) {
130133 VolumeDataStoreVO updateBuilder = _volumeStoreDao .createForUpdate ();
131- updateBuilder .setDownloadPercent (answer . getDownloadPct () );
132- updateBuilder .setDownloadState (answer . getDownloadStatus () );
134+ updateBuilder .setDownloadPercent (100 );
135+ updateBuilder .setDownloadState (VMTemplateStorageResourceAssoc . Status . DOWNLOADED );
133136 updateBuilder .setLastUpdated (new Date ());
134- updateBuilder .setErrorString (answer .getErrorString ());
135- updateBuilder .setJobId (answer .getJobId ());
136- updateBuilder .setLocalDownloadPath (answer .getDownloadPath ());
137- updateBuilder .setInstallPath (answer .getInstallPath ());
138- updateBuilder .setSize (answer .getTemplateSize ());
139- updateBuilder .setPhysicalSize (answer .getTemplatePhySicalSize ());
137+ updateBuilder .setInstallPath (volumeTO .getPath ());
138+ updateBuilder .setVolumeId (volumeTO .getVolumeId ());
139+ updateBuilder .setSize (volumeTO .getSize ());
140+ updateBuilder .setPhysicalSize (volumeTO .getSize ());
141+ updateBuilder .setState (ObjectInDataStoreStateMachine .State .Ready );
140142 _volumeStoreDao .update (volStoreVO .getId (), updateBuilder );
141143 // update size in volume table
142144 VolumeVO volUpdater = _volumeDao .createForUpdate ();
143- volUpdater .setSize (answer . getTemplateSize ());
145+ volUpdater .setSize (volumeTO . getSize ());
144146 _volumeDao .update (obj .getId (), volUpdater );
145147 }
146-
147148 return null ;
148149 }
149150}
0 commit comments