Updated Branches: refs/heads/javelin 07d00ebbf -> e07f8449f
add storage interface Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e07f8449 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e07f8449 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e07f8449 Branch: refs/heads/javelin Commit: e07f8449f430a1bcdf0449a582083f218c0c7bcd Parents: 07d00eb Author: Edison Su <[email protected]> Authored: Fri Aug 24 18:24:26 2012 -0700 Committer: Edison Su <[email protected]> Committed: Fri Aug 24 18:24:26 2012 -0700 ---------------------------------------------------------------------- framework/ipc/pom.xml | 6 ++ platform/api/pom.xml | 13 ++++ .../api/storage/DataMigrationSubSystem.java | 23 +++++++ .../platform/subsystem/api/storage/DataObject.java | 42 +++++++++++++ .../platform/subsystem/api/storage/DataStore.java | 47 +++++++++++++++ .../subsystem/api/storage/DataStoreDriver.java | 28 +++++++++ .../api/storage/DistributedFileSystem.java | 23 +++++++ .../platform/subsystem/api/storage/FileSystem.java | 31 ++++++++++ .../platform/subsystem/api/storage/Snapshot.java | 23 +++++++ .../subsystem/api/storage/StorageSubSystem.java | 13 ++++ .../platform/subsystem/api/storage/Template.java | 23 +++++++ .../platform/subsystem/api/storage/Volume.java | 22 +++++++ platform/compute/pom.xml | 13 ++++ 13 files changed, 307 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/framework/ipc/pom.xml ---------------------------------------------------------------------- diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml new file mode 100644 index 0000000..c376acd --- /dev/null +++ b/framework/ipc/pom.xml @@ -0,0 +1,6 @@ +<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> + <groupId>cloudstack</groupId> + <artifactId>cloud-framework-ipc</artifactId> + <version>0.0.1-SNAPSHOT</version> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/pom.xml ---------------------------------------------------------------------- diff --git a/platform/api/pom.xml b/platform/api/pom.xml new file mode 100644 index 0000000..9d59e0b --- /dev/null +++ b/platform/api/pom.xml @@ -0,0 +1,13 @@ +<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> + <groupId>cloudstack</groupId> + <artifactId>cloud-platform-api</artifactId> + <version>0.0.1-SNAPSHOT</version> + <dependencies> + <dependency> + <groupId>com.cloud</groupId> + <artifactId>cloud-api</artifactId> + <version>4.0.0-SNAPSHOT</version> + </dependency> + </dependencies> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java new file mode 100755 index 0000000..30185b7 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface DataMigrationSubSystem { + void migrate(String volume, String storagePool, String reservationId); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java new file mode 100644 index 0000000..c861bc4 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java @@ -0,0 +1,42 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +import java.util.List; + +import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.DataStoreRef; + +/* + * Logic entity + */ +public interface DataObject { + String getURI(); + String getUUID(); + DataStoreRef getStoreRef(); + long getSize(); + //volume/snapshot/template + String getType(); + //db id + Long getId(); + DataObject getParent(); + void setParent(DataObject obj); + List<DataObject> getChidren(); + boolean lock(); + boolean unlock(); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java new file mode 100644 index 0000000..3415a71 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java @@ -0,0 +1,47 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface DataStore { + public class DataStoreRef { + + } + + public class DataStoreDriverRef { + + } + + public enum StoreType { + Primary, + Backup; + } + public class StoreScope { + public long zoneId; + private long clusterId; + private long hostId; + } + + String getURI(); + String getUUID(); + StoreType getType(); + StoreScope getScope(); + Long getId(); + DataStoreDriverRef getDataStoreDriver(); + FileSystem getFileSystem(); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java new file mode 100644 index 0000000..f8987f7 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java @@ -0,0 +1,28 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface DataStoreDriver { + String getDriverType(); + DataObject create(DataObject obj); + DataObject copy(DataObject src, DataStore dest); + DataObject copy(DataObject src, DataObject dest); + DataObject move(DataObject src, DataObject dest); + boolean delete(DataObject obj); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DistributedFileSystem.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DistributedFileSystem.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DistributedFileSystem.java new file mode 100644 index 0000000..84eb8ad --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/DistributedFileSystem.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface DistributedFileSystem { + +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java new file mode 100644 index 0000000..b0fba44 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java @@ -0,0 +1,31 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface FileSystem { + DataObject create(DataObject obj); + DataObject copy(DataObject Obj, DataStore destStore); + DataObject copy(DataObject obj, DataObject destObj); + DataObject move(DataObject srcObj, DataObject destObj); + boolean delete(DataObject obj); + long getStats(DataObject obj); + String getFileType(); + boolean isWritable(DataObject obj); + boolean contains(DataObject obj); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java new file mode 100644 index 0000000..5702e4c --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface Snapshot extends DataObject { + +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java new file mode 100755 index 0000000..e12ff79 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java @@ -0,0 +1,13 @@ +package org.apache.cloudstack.platform.subsystem.api.storage; + +import java.net.URI; + +import com.cloud.org.Grouping; + +public interface StorageSubSystem { + String getType(); + Class<? extends Grouping> getScope(); + + URI grantAccess(String vol, String reservationId); + URI RemoveAccess(String vol, String reservationId); +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Template.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Template.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Template.java new file mode 100644 index 0000000..efa7538 --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Template.java @@ -0,0 +1,23 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface Template extends DataObject { + +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Volume.java ---------------------------------------------------------------------- diff --git a/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Volume.java b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Volume.java new file mode 100644 index 0000000..dc72d8f --- /dev/null +++ b/platform/api/src/main/java/org/apache/cloudstack/platform/subsystem/api/storage/Volume.java @@ -0,0 +1,22 @@ +/* + * 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. + */ +package org.apache.cloudstack.platform.subsystem.api.storage; + +public interface Volume extends DataObject { +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e07f8449/platform/compute/pom.xml ---------------------------------------------------------------------- diff --git a/platform/compute/pom.xml b/platform/compute/pom.xml new file mode 100644 index 0000000..23bd8e7 --- /dev/null +++ b/platform/compute/pom.xml @@ -0,0 +1,13 @@ +<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> + <groupId>cloudstack</groupId> + <artifactId>cloud-platform-compute</artifactId> + <version>0.0.1-SNAPSHOT</version> + <dependencies> + <dependency> + <groupId>cloudstack</groupId> + <artifactId>cloud-framework-ipc</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + </dependencies> +</project> \ No newline at end of file
