javelin is revived

This commit is contained in:
Edison Su 2012-10-15 15:42:59 -07:00
parent 112143def6
commit 0a7d03c90b
26 changed files with 384 additions and 84 deletions

37
framework/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudstack-framework</artifactId>
<name>Apache CloudStack framework POM</name>
<packaging>pom</packaging>
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
<version>4.1.0-SNAPSHOT</version>
</parent>
<build>
<defaultGoal>install</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
</build>
<modules>
<module>ipc</module>
</modules>
</project>

View File

@ -1,24 +1,24 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>cloud-platform-api</artifactId> <artifactId>cloud-platform-api</artifactId>
<name>Apache CloudStack platform API</name> <name>Apache CloudStack platform API</name>
<parent> <parent>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId> <artifactId>cloudstack</artifactId>
<version>4.0.0-SNAPSHOT</version> <version>4.1.0-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath> <relativePath>../../parent/pom.xml</relativePath>
</parent> </parent>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId> <artifactId>cloud-api</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<defaultGoal>install</defaultGoal> <defaultGoal>install</defaultGoal>
<sourceDirectory>src</sourceDirectory> <sourceDirectory>src</sourceDirectory>
<!-- <testSourceDirectory>test</testSourceDirectory> --> <!-- <testSourceDirectory>test</testSourceDirectory> -->
</build> </build>
</project> </project>

View File

@ -21,7 +21,6 @@ package org.apache.cloudstack.platform.subsystem.api.storage;
import com.cloud.agent.api.to.StorageFilerTO; import com.cloud.agent.api.to.StorageFilerTO;
import com.cloud.storage.Snapshot; import com.cloud.storage.Snapshot;
import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.TemplateProfile;
import com.cloud.storage.Volume; import com.cloud.storage.Volume;
import com.cloud.template.VirtualMachineTemplate; import com.cloud.template.VirtualMachineTemplate;

View File

@ -20,18 +20,16 @@ package org.apache.cloudstack.platform.subsystem.api.storage;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command; import com.cloud.agent.api.Command;
import com.cloud.storage.TemplateProfile;
import com.cloud.vm.DiskProfile;
public interface DataStoreDriver { public interface DataStoreDriver {
String getDriverType(); String getDriverType();
TemplateProfile install(TemplateProfile tp, DataStoreEndPoint ep); TemplateProfile install(TemplateProfile tp, DataStoreEndPoint ep);
TemplateProfile register(TemplateProfile tp, DataStoreEndPoint ep); TemplateProfile register(TemplateProfile tp, DataStoreEndPoint ep);
DiskProfile createVolumeFromTemplate(DiskProfile volProfile, TemplateProfile tp, DataStoreEndPoint ep);
DataObject create(DataObject obj); DataObject create(DataObject obj);
DataObject copy(DataObject src, DataStore dest); DataObject copy(DataObject src, DataStore dest);
DataObject copy(DataObject src, DataObject dest); DataObject copy(DataObject src, DataObject dest);
DataObject move(DataObject src, DataObject dest); DataObject move(DataObject src, DataObject dest);
VolumeProfile createVolumeFromTemplate(VolumeProfile vol, TemplateProfile tp, DataStoreEndPoint dp);
Answer sendMessage(DataStoreEndPoint dsep, Command cmd); Answer sendMessage(DataStoreEndPoint dsep, Command cmd);
boolean delete(DataObject obj); boolean delete(DataObject obj);
} }

View File

@ -14,13 +14,13 @@
// KIND, either express or implied. See the License for the // KIND, either express or implied. See the License for the
// specific language governing permissions and limitations // specific language governing permissions and limitations
// under the License. // under the License.
package com.cloud.template; package org.apache.cloudstack.platform.subsystem.api.storage;
import java.util.Map; import java.util.Map;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.VMTemplateVO; import com.cloud.template.VirtualMachineTemplate;
public class TemplateProfile { public class TemplateProfile {
Long userId; Long userId;
@ -44,7 +44,7 @@ public class TemplateProfile {
String chksum; String chksum;
Boolean bootable; Boolean bootable;
Long templateId; Long templateId;
VMTemplateVO template; VirtualMachineTemplate template;
String templateTag; String templateTag;
Map details; Map details;
@ -75,7 +75,7 @@ public class TemplateProfile {
this.sshKeyEnbaled = sshKeyEnabled; this.sshKeyEnbaled = sshKeyEnabled;
} }
public TemplateProfile(Long userId, VMTemplateVO template, Long zoneId) { public TemplateProfile(Long userId, VirtualMachineTemplate template, Long zoneId) {
this.userId = userId; this.userId = userId;
this.template = template; this.template = template;
this.zoneId = zoneId; this.zoneId = zoneId;
@ -222,10 +222,10 @@ public class TemplateProfile {
this.bootable = bootable; this.bootable = bootable;
} }
public VMTemplateVO getTemplate() { public VirtualMachineTemplate getTemplate() {
return template; return template;
} }
public void setTemplate(VMTemplateVO template) { public void setTemplate(VirtualMachineTemplate template) {
this.template = template; this.template = template;
} }
@ -252,4 +252,36 @@ public class TemplateProfile {
public Boolean getSshKeyEnabled() { public Boolean getSshKeyEnabled() {
return this.sshKeyEnbaled; return this.sshKeyEnbaled;
} }
public String getImageStorageUri() {
return null;
}
public void setLocalPath(String path) {
}
public String getLocalPath() {
return null;
}
public String getJobId() {
return null;
}
public void setTemplatePoolRefId(long id) {
}
public long getId() {
return 0;
}
public long getTemplatePoolRefId() {
return 0;
}
public long getSize() {
return 0;
}
} }

View File

@ -1,7 +1,6 @@
package org.apache.cloudstack.platform.subsystem.api.storage; package org.apache.cloudstack.platform.subsystem.api.storage;
import com.cloud.agent.api.storage.DownloadCommand.Proxy; import com.cloud.agent.api.storage.DownloadCommand.Proxy;
import com.cloud.storage.TemplateProfile;
public interface TemplateStrategy { public interface TemplateStrategy {
TemplateProfile install(TemplateProfile tp); TemplateProfile install(TemplateProfile tp);

40
platform/pom.xml Normal file
View File

@ -0,0 +1,40 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudstack-platform</artifactId>
<name>Apache CloudStack platform POM</name>
<packaging>pom</packaging>
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
<version>4.1.0-SNAPSHOT</version>
</parent>
<build>
<defaultGoal>install</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
</build>
<modules>
<module>api</module>
<module>compute</module>
<module>orchestration</module>
<module>storage</module>
</modules>
</project>

View File

@ -1,38 +1,38 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>cloud-platform-storage</artifactId> <artifactId>cloud-platform-storage</artifactId>
<name>Apache CloudStack Platform Storage</name> <name>Apache CloudStack Platform Storage</name>
<parent> <parent>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId> <artifactId>cloudstack</artifactId>
<version>4.0.0-SNAPSHOT</version> <version>4.1.0-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath> <relativePath>../../parent/pom.xml</relativePath>
</parent> </parent>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId> <artifactId>cloud-api</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-core</artifactId> <artifactId>cloud-core</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-server</artifactId> <artifactId>cloud-server</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-platform-api</artifactId> <artifactId>cloud-platform-api</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<defaultGoal>install</defaultGoal> <defaultGoal>install</defaultGoal>
<sourceDirectory>src</sourceDirectory> <sourceDirectory>src</sourceDirectory>
<!-- <testSourceDirectory>test</testSourceDirectory> --> </build>
</build>
</project> </project>

View File

@ -4,6 +4,7 @@ import java.util.Map;
import javax.naming.ConfigurationException; import javax.naming.ConfigurationException;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider; import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import com.cloud.utils.component.Manager; import com.cloud.utils.component.Manager;
@ -36,4 +37,19 @@ public class StorageProviderManagerImpl implements StorageProviderManager, Manag
return null; return null;
} }
public StorageProvider getProvider(long poolId) {
// TODO Auto-generated method stub
return null;
}
public StorageProvider getBackupStorageProvider(long zoneId) {
// TODO Auto-generated method stub
return null;
}
public DataStore getDataStore(long poolId) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -6,10 +6,19 @@ import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.platform.subsystem.api.storage.FileSystem; import org.apache.cloudstack.platform.subsystem.api.storage.FileSystem;
import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotStrategy; import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotStrategy;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy; import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeStrategy; import org.apache.cloudstack.platform.subsystem.api.storage.VolumeStrategy;
import com.cloud.agent.api.to.StorageFilerTO;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.Volume;
public class DefaultDataStore implements DataStore { public class DefaultDataStore implements DataStore {
protected VolumeStrategy _volumeStrategy; protected VolumeStrategy _volumeStrategy;
protected SnapshotStrategy _snapshotStrategy; protected SnapshotStrategy _snapshotStrategy;
@ -137,4 +146,84 @@ public class DefaultDataStore implements DataStore {
public void setLifeCycle(DataStoreLifeCycle lf) { public void setLifeCycle(DataStoreLifeCycle lf) {
this._dslf = lf; this._dslf = lf;
} }
public long getCluterId() {
// TODO Auto-generated method stub
return 0;
}
public long getPodId() {
// TODO Auto-generated method stub
return 0;
}
public long getZoneId() {
// TODO Auto-generated method stub
return 0;
}
public String getPath() {
// TODO Auto-generated method stub
return null;
}
public StoragePoolType getPoolType() {
// TODO Auto-generated method stub
return null;
}
public boolean isSharedStorage() {
// TODO Auto-generated method stub
return false;
}
public StorageProvider getProvider() {
// TODO Auto-generated method stub
return null;
}
public DataStoreEndPointSelector getEndPointSelector() {
// TODO Auto-generated method stub
return null;
}
public VolumeProfile prepareVolume(Volume volume, DataStore destStore) {
// TODO Auto-generated method stub
return null;
}
public SnapshotProfile prepareSnapshot(Snapshot snapshot, DataStore destStore) {
// TODO Auto-generated method stub
return null;
}
public TemplateProfile prepareTemplate(long templateId, DataStore destStore) {
// TODO Auto-generated method stub
return null;
}
public boolean contains(Volume volume) {
// TODO Auto-generated method stub
return false;
}
public boolean contains(Snapshot snapshot) {
// TODO Auto-generated method stub
return false;
}
public boolean contains(TemplateProfile template) {
// TODO Auto-generated method stub
return false;
}
public TemplateProfile get(TemplateProfile template) {
// TODO Auto-generated method stub
return null;
}
public StorageFilerTO getTO() {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -5,10 +5,8 @@ import java.util.Map;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.storage.datastore.DefaultDataStore; import org.apache.cloudstack.storage.datastore.DefaultDataStore;
import org.apache.cloudstack.storage.datastore.XenDataStoreDriver;
import org.apache.cloudstack.storage.driver.XenServerStorageDriver; import org.apache.cloudstack.storage.driver.XenServerStorageDriver;
import org.apache.cloudstack.storage.epselector.DefaultPrimaryEndpointSelector; import org.apache.cloudstack.storage.epselector.DefaultPrimaryEndpointSelector;
import org.apache.cloudstack.storage.filesystem.DefaultFileSystem;
import org.apache.cloudstack.storage.lifecycle.DefaultPrimaryDataStoreLifeCycle; import org.apache.cloudstack.storage.lifecycle.DefaultPrimaryDataStoreLifeCycle;
import org.apache.cloudstack.storage.strategy.XenBackupStrategy; import org.apache.cloudstack.storage.strategy.XenBackupStrategy;
import org.apache.cloudstack.storage.strategy.XenSnapshotStrategy; import org.apache.cloudstack.storage.strategy.XenSnapshotStrategy;

View File

@ -21,22 +21,14 @@ package org.apache.cloudstack.storage.driver;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreDriver; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile; import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy; import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
import com.cloud.agent.api.storage.DownloadProgressCommand; import com.cloud.agent.api.storage.DownloadProgressCommand;
import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType; import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.storage.CreateAnswer;
import com.cloud.agent.api.storage.CreateCommand;
import com.cloud.agent.api.storage.DownloadCommand; import com.cloud.agent.api.storage.DownloadCommand;
import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer; import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer;
import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand; import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand;
import com.cloud.agent.api.to.VolumeTO;
import com.cloud.storage.TemplateProfile;
import com.cloud.vm.DiskProfile;
public abstract class AbstractStorageDriver implements DataStoreDriver { public abstract class AbstractStorageDriver implements DataStoreDriver {
protected DataStore _ds; protected DataStore _ds;
@ -70,14 +62,15 @@ public abstract class AbstractStorageDriver implements DataStoreDriver {
ep.sendCommand(dcmd); ep.sendCommand(dcmd);
return tp; return tp;
} }
/*
public DiskProfile createVolumeFromTemplate(DiskProfile volProfile, TemplateProfile tp, DataStoreEndPoint ep) { public VolumeProfile createVolumeFromTemplate(VolumeProfile volProfile, TemplateProfile tp, DataStoreEndPoint ep) {
CreateCommand cmd = new CreateCommand(volProfile, tp.getLocalPath(), _ds.getTO()); CreateCommand cmd = new CreateCommand(volProfile, tp.getLocalPath(), _ds.getTO());
CreateAnswer ans = (CreateAnswer)ep.sendCommand(cmd); CreateAnswer ans = (CreateAnswer)ep.sendCommand(cmd);
VolumeTO created = ans.getVolume(); VolumeTO created = ans.getVolume();
DiskProfile diskProfile = new DiskProfile(volProfile); DiskProfile diskProfile = new VolumeProfile(volProfile);
diskProfile.setPath(created.getPath()); diskProfile.setPath(created.getPath());
diskProfile.setSize(created.getSize()); diskProfile.setSize(created.getSize());
return diskProfile; return diskProfile;
} return null;
}*/
} }

View File

@ -21,6 +21,7 @@ package org.apache.cloudstack.storage.driver;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObject; import org.apache.cloudstack.platform.subsystem.api.storage.DataObject;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command; import com.cloud.agent.api.Command;
@ -76,4 +77,14 @@ public class DefaultNfsSecondaryDriver extends AbstractStorageDriver {
return false; return false;
} }
public org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint ep) {
// TODO Auto-generated method stub
return null;
}
public VolumeProfile createVolumeFromTemplate(VolumeProfile vol, org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint dp) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -21,13 +21,16 @@ package org.apache.cloudstack.storage.driver;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObject; import org.apache.cloudstack.platform.subsystem.api.storage.DataObject;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command; import com.cloud.agent.api.Command;
public class XenServerStorageDriver extends AbstractStorageDriver { public class XenServerStorageDriver extends AbstractStorageDriver {
protected DataStore _ds; protected DataStore _ds;
public XenServerStorageDriver(DataStore ds) { public XenServerStorageDriver(DataStore ds) {
super(ds);
_ds = ds; _ds = ds;
} }
@ -66,4 +69,13 @@ public class XenServerStorageDriver extends AbstractStorageDriver {
return false; return false;
} }
public org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint ep) {
// TODO Auto-generated method stub
return null;
}
public VolumeProfile createVolumeFromTemplate(VolumeProfile vol, org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint dp) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -6,6 +6,7 @@ import java.util.List;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageEvent;
import com.cloud.host.Host; import com.cloud.host.Host;
import com.cloud.host.HostVO; import com.cloud.host.HostVO;
@ -31,4 +32,9 @@ public class DefaultPrimaryEndpointSelector implements
} }
return dseps; return dseps;
} }
public List<DataStoreEndPoint> getEndPoints(StorageEvent event) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -19,14 +19,14 @@
package org.apache.cloudstack.storage.image; package org.apache.cloudstack.storage.image;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import com.cloud.api.commands.RegisterTemplateCmd; import com.cloud.api.commands.RegisterTemplateCmd;
import com.cloud.storage.TemplateProfile;
public interface ImageManager { public interface ImageManager {
TemplateProfile AssociateTemplateStoragePool(TemplateProfile tp, DataStore ds); TemplateProfile AssociateTemplateStoragePool(TemplateProfile tp, DataStore ds);
TemplateProfile getProfile(long templateId); TemplateProfile getProfile(long templateId);
com.cloud.storage.TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd); TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd);
} }

View File

@ -21,6 +21,7 @@ package org.apache.cloudstack.storage.image;
import java.util.List; import java.util.List;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore; import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import com.cloud.api.commands.RegisterTemplateCmd; import com.cloud.api.commands.RegisterTemplateCmd;
@ -28,7 +29,6 @@ import com.cloud.dc.DataCenterVO;
import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.DataCenterDao;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.TemplateType; import com.cloud.storage.Storage.TemplateType;
import com.cloud.storage.TemplateProfile;
import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStoragePoolVO; import com.cloud.storage.VMTemplateStoragePoolVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
@ -161,7 +161,7 @@ public class ImageManagerImpl implements ImageManager {
public TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd) { public TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd) {
parameterCheck(cmd); parameterCheck(cmd);
TemplateProfile tp = new TemplateProfile(cmd); //TemplateProfile tp = new TemplateProfile(cmd);
return persistTemplate(tp); return persistTemplate(null);
} }
} }

View File

@ -79,7 +79,7 @@ public class DefaultPrimaryDataStoreLifeCycle implements DataStoreLifeCycle {
public void add() { public void add() {
DataStoreEndPointSelector dseps = _ds.getEndPointSelector(); DataStoreEndPointSelector dseps = _ds.getEndPointSelector();
List<DataStoreEndPoint> dsep = dseps.getEndPoints(); List<DataStoreEndPoint> dsep = dseps.getEndPoints(null);
boolean success = false; boolean success = false;
StoragePoolVO spool = _storagePoolDao.findById(_ds.getId()); StoragePoolVO spool = _storagePoolDao.findById(_ds.getId());
for (DataStoreEndPoint ep : dsep) { for (DataStoreEndPoint ep : dsep) {

View File

@ -18,6 +18,49 @@
*/ */
package org.apache.cloudstack.storage.manager; package org.apache.cloudstack.storage.manager;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState.Event;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.utils.fsm.NoTransitionException;
public class BackupStorageManagerImpl implements BackupStorageManager { public class BackupStorageManagerImpl implements BackupStorageManager {
public boolean contains(Volume vol) {
// TODO Auto-generated method stub
return false;
}
public boolean contains(Snapshot snapshot) {
// TODO Auto-generated method stub
return false;
}
public boolean contains(VirtualMachineTemplate template) {
// TODO Auto-generated method stub
return false;
}
public DataStore getBackupDataStore(Volume vol) {
// TODO Auto-generated method stub
return null;
}
public DataStore getBackupDataStore(Snapshot snapshot) {
// TODO Auto-generated method stub
return null;
}
public DataStore getBackupDataStore(VirtualMachineTemplate template) {
// TODO Auto-generated method stub
return null;
}
public boolean updateOperationState(Volume vol, Event event) throws NoTransitionException {
// TODO Auto-generated method stub
return false;
}
} }

View File

@ -48,4 +48,9 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageManager {
return null; return null;
} }
public List<DataStore> getImageStores(long zoneId) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -136,4 +136,9 @@ public class DefaultPrimaryStorageProvider implements StorageProvider {
return ds; return ds;
} }
public List<StoreType> supportedStoreTypes() {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -28,6 +28,7 @@ import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector; import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageEvent; import org.apache.cloudstack.platform.subsystem.api.storage.StorageEvent;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider; import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy; import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.storage.image.ImageManager; import org.apache.cloudstack.storage.image.ImageManager;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
@ -36,7 +37,6 @@ import com.cloud.agent.api.storage.DownloadCommand.Proxy;
import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.InvalidParameterValueException;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.TemplateProfile;
import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStoragePoolVO; import com.cloud.storage.VMTemplateStoragePoolVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc; import com.cloud.storage.VMTemplateStorageResourceAssoc;

View File

@ -18,6 +18,8 @@
*/ */
package org.apache.cloudstack.storage.volume; package org.apache.cloudstack.storage.volume;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import com.cloud.storage.VolumeVO; import com.cloud.storage.VolumeVO;
import com.cloud.storage.Volume; import com.cloud.storage.Volume;
import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeDao;
@ -47,4 +49,22 @@ public class VolumeManagerImpl implements VolumeManager {
_volStateMachine.transitTo(vol, event, null, _volumeDao); _volStateMachine.transitTo(vol, event, null, _volumeDao);
return _volumeDao.findById(vol.getId()); return _volumeDao.findById(vol.getId());
} }
public VolumeProfile getProfile(long volumeId) {
// TODO Auto-generated method stub
return null;
}
public VolumeVO getVolume(long volumeId) {
// TODO Auto-generated method stub
return null;
}
public VolumeVO updateVolume(VolumeVO volume) {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -18,9 +18,9 @@
*/ */
package org.apache.cloudstack.storage.volume; package org.apache.cloudstack.storage.volume;
import org.apache.cloudstack.platform.subsystem.api.storage.Volume;
import com.cloud.api.commands.CreateVolumeCmd; import com.cloud.api.commands.CreateVolumeCmd;
import com.cloud.storage.Volume;
public interface VolumeService { public interface VolumeService {
/** /**

View File

@ -158,6 +158,8 @@
<module>patches</module> <module>patches</module>
<module>client</module> <module>client</module>
<module>test</module> <module>test</module>
<module>platform</module>
<module>framework</module>
</modules> </modules>
<dependencies> <dependencies>

View File

@ -26,11 +26,6 @@
<version>4.1.0-SNAPSHOT</version> <version>4.1.0-SNAPSHOT</version>
</parent> </parent>
<dependencies> <dependencies>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-platform-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-core</artifactId> <artifactId>cloud-core</artifactId>