diff --git a/platform/api/.project b/platform/api/.project
deleted file mode 100755
index af79ee699af..00000000000
--- a/platform/api/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- platform-api
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/platform/api/pom.xml b/platform/api/pom.xml
deleted file mode 100644
index ce0344a876b..00000000000
--- a/platform/api/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- 4.0.0
- cloud-platform-api
- Apache CloudStack platform API
-
- org.apache.cloudstack
- cloudstack
- 4.1.0-SNAPSHOT
- ../../pom.xml
-
-
-
- org.apache.cloudstack
- cloud-api
- ${project.version}
-
-
-
- install
- src
- test
-
-
diff --git a/platform/api/src/org/apache/cloudstack/platform/Rules.java b/platform/api/src/org/apache/cloudstack/platform/Rules.java
deleted file mode 100755
index 61e0c3c0071..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/Rules.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.cloud.utils.StringUtils;
-
-/**
- * Rules specifies all rules about developing and using CloudStack Orchestration
- * Platforms APIs. This class is not actually used in CloudStack Orchestration
- * Platform but must be read by all who wants to use and develop against
- * CloudStack Orchestration Platform.
- *
- * Make sure to make changes here when there are changes to how the APIs should
- * be used and developed.
- *
- * Changes to this class must be approved by the maintainer of this project.
- *
- */
-public class Rules {
- public static List whenUsing() {
- List rules = new ArrayList();
- rules.add("Always be prepared to handle RuntimeExceptions.");
- return rules;
- }
-
- public static List whenWritingNewApis() {
- List rules = new ArrayList();
- rules.add("You may think you're the greatest developer in the " +
- "world but every change to the API must be reviewed and approved. ");
- rules.add("Every API must have unit tests written against it. And not it's unit tests");
- rules.add("");
-
-
- return rules;
- }
-
- private static void printRule(String rule) {
- System.out.print("API Rule: ");
- String skip = "";
- int brk = 0;
- while (true) {
- int stop = StringUtils.formatForOutput(rule, brk, 75 - skip.length(), ' ');
- if (stop < 0) {
- break;
- }
- System.out.print(skip);
- skip = " ";
- System.out.println(rule.substring(brk, stop).trim());
- brk = stop;
- }
- }
-
- public static void main(String[] args) {
- System.out.println("When developing against the CloudStack Orchestration Platform, you must following the following rules:");
- for (String rule : whenUsing()) {
- printRule(rule);
- }
- System.out.println("");
- System.out.println("When writing APIs, you must follow these rules:");
- for (String rule : whenWritingNewApis()) {
- printRule(rule);
- }
- }
-
-}
-
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/BackupEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/BackupEntity.java
deleted file mode 100755
index 9bf39a87ee3..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/BackupEntity.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-/**
- * @author ahuang
- *
- */
-public interface BackupEntity extends CloudStackEntity {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/EdgeService.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/EdgeService.java
deleted file mode 100755
index 8dceb746431..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/EdgeService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-public interface EdgeService {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java
deleted file mode 100755
index 12d32a29036..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NetworkEntity.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import java.util.List;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.network.Network;
-
-public interface NetworkEntity extends CloudStackEntity, Network {
- void routeTo(NetworkEntity network);
-
- List listEdgeServicesTo();
-
- List listVirtualMachineUuids();
-
- List listVirtualMachines();
-
- List listNics();
-
- void addIpRange();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NicEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NicEntity.java
deleted file mode 100755
index 4da66ccf385..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/NicEntity.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-/**
- * @author ahuang
- *
- */
-public interface NicEntity extends CloudStackEntity {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/SnapshotEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/SnapshotEntity.java
deleted file mode 100755
index efe9b1c74ce..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/SnapshotEntity.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.storage.Snapshot;
-
-public interface SnapshotEntity extends CloudStackEntity, Snapshot {
- /**
- * Make a reservation for backing up this snapshot
- * @param expiration time in seconds to expire the reservation
- * @return reservation token
- */
- String reserveForBackup(int expiration);
-
- /**
- * Perform the backup according to the reservation token
- * @param reservationToken token returned by reserveForBackup
- */
- void backup(String reservationToken);
-
- /**
- * restore this snapshot to this vm.
- * @param vm
- */
- void restore(String vm);
-
- /**
- * Destroy this snapshot.
- */
- void destroy();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/TemplateEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/TemplateEntity.java
deleted file mode 100755
index 75623ccb108..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/TemplateEntity.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.template.VirtualMachineTemplate;
-
-public interface TemplateEntity extends CloudStackEntity, VirtualMachineTemplate {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java
deleted file mode 100755
index 0e1d3d92191..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VirtualMachineEntity.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import java.util.List;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.deploy.DeployDestination;
-import com.cloud.deploy.DeploymentPlanner.ExcludeList;
-import com.cloud.vm.VirtualMachine;
-
-/**
- * VirtualMachineEntity represents a Virtual Machine in Cloud Orchestration
- * Platform.
- *
- */
-public interface VirtualMachineEntity extends VirtualMachine, CloudStackEntity {
-
- /**
- * @return List of uuids for volumes attached to this virtual machine.
- */
- List listVolumeUuids();
-
- /**
- * @return List of volumes attached to this virtual machine.
- */
- List listVolumes();
-
- /**
- * @return List of uuids for nics attached to this virtual machine.
- */
- List listNicUuids();
-
- /**
- * @return List of nics attached to this virtual machine.
- */
- List listNics();
-
- /**
- * @return the template this virtual machine is based off.
- */
- TemplateEntity getTemplate();
-
- /**
- * @return the list of tags associated with the virtual machine
- */
- List listTags();
-
- void addTag();
-
- void delTag();
-
- /**
- * Start the virtual machine with a given deploy destination
- * @param plannerToUse the Deployment Planner that should be used
- * @param dest destination to which to deploy the machine
- * @param exclude list of areas to exclude
- * @return a reservation id
- */
- String reserve(String plannerToUse, DeployDestination dest, ExcludeList exclude);
-
- /**
- * Migrate this VM to a certain destination.
- *
- * @param reservationId reservation id from reserve call.
- */
- void migrateTo(String reservationId);
-
- /**
- * Deploy this virtual machine according to the reservation from before.
- * @param reservationId reservation id from reserve call.
- *
- */
- void deploy(String reservationId);
-
- /**
- * Stop the virtual machine
- *
- */
- void stop();
-
- /**
- * Cleans up after any botched starts. CloudStack Orchestration Platform
- * will attempt a best effort to actually shutdown any resource but
- * even if it cannot, it releases the resource from its database.
- */
- void cleanup();
-
- /**
- * Destroys the VM.
- */
- void destroy();
-
- /**
- * Duplicate this VM in the database so that it will start new
- * @param externalId
- * @return a new VirtualMachineEntity
- */
- VirtualMachineEntity duplicate(String externalId);
-
- /**
- * Take a VM snapshot
- */
- SnapshotEntity takeSnapshotOf();
-
- /**
- * Attach volume to this VM
- * @param volume volume to attach
- * @param deviceId deviceId to use
- */
- void attach(VolumeEntity volume, short deviceId);
-
- /**
- * Detach the volume from this VM
- * @param volume volume to detach
- */
- void detach(VolumeEntity volume);
-
- /**
- * Connect the VM to a network
- * @param network network to attach
- * @param deviceId device id to use when a nic is created
- */
- void connectTo(NetworkEntity network, short nicId);
-
- /**
- * Disconnect the VM from this network
- * @param netowrk network to disconnect from
- */
- void disconnectFrom(NetworkEntity netowrk, short nicId);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VolumeEntity.java b/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VolumeEntity.java
deleted file mode 100755
index d7e5f381bf4..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/cloud/entity/api/VolumeEntity.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.cloud.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.storage.Volume;
-
-public interface VolumeEntity extends CloudStackEntity, Volume {
-
- /**
- * Take a snapshot of the volume
- */
- SnapshotEntity takeSnapshotOf(boolean full);
-
- /**
- * Make a reservation to do storage migration
- *
- * @param expirationTime time in seconds the reservation is cancelled
- * @return reservation token
- */
- String reserveForMigration(long expirationTime);
-
- /**
- * Migrate using a reservation.
- * @param reservationToken reservation token
- */
- void migrate(String reservationToken);
-
- /**
- * Setup for a copy of this volume.
- * @return destination to copy to
- */
- VolumeEntity setupForCopy();
-
- /**
- * Perform the copy
- * @param dest copy to this volume
- */
- void copy(VolumeEntity dest);
-
- /**
- * Attach to the vm
- * @param vm vm to attach to
- * @param deviceId device id to use
- */
- void attachTo(String vm, long deviceId);
-
- /**
- * Detach from the vm
- */
- void detachFrom();
-
- /**
- * Destroy the volume
- */
- void destroy();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ClusterEntity.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ClusterEntity.java
deleted file mode 100755
index 83789098d24..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ClusterEntity.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-import com.cloud.org.Cluster;
-
-public interface ClusterEntity extends DataCenterResourceEntity, Cluster, OrganizationScope {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/DataCenterResourceEntity.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/DataCenterResourceEntity.java
deleted file mode 100755
index 5ca27c54f69..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/DataCenterResourceEntity.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-import org.apache.cloudstack.platform.entity.api.CloudStackEntity;
-
-import com.cloud.utils.fsm.StateMachine2;
-import com.cloud.utils.fsm.StateObject;
-
-/**
- * This interface specifies the states and operations all physical
- * and virtual resources in the data center must implement.
- */
-public interface DataCenterResourceEntity extends CloudStackEntity, StateObject {
-
- /**
- * This is the state machine for how CloudStack should interact with
- *
- */
- public enum State {
- Disabled("The resource is disabled so CloudStack should not use it. This is the initial state of all resources added to CloudStack."),
- Enabled("The resource is now enabled for CloudStack to use."),
- Deactivated("The resource is disactivated so CloudStack should not use it for new resource needs.");
-
- String _description;
-
- private State(String description) {
- _description = description;
- }
-
- public enum Event {
- EnableRequest,
- DisableRequest,
- DeactivateRequest,
- ActivatedRequest
- }
-
- protected static final StateMachine2 s_fsm = new StateMachine2();
- static {
- s_fsm.addTransition(Disabled, Event.EnableRequest, Enabled);
- s_fsm.addTransition(Enabled, Event.DisableRequest, Disabled);
- s_fsm.addTransition(Enabled, Event.DeactivateRequest, Deactivated);
- s_fsm.addTransition(Deactivated, Event.ActivatedRequest, Enabled);
- }
-
- }
- /**
- * Prepare the resource to take new on new demands.
- */
- boolean enable();
-
- /**
- * Disables the resource. Cleanup. Prepare for the resource to be removed.
- */
- boolean disable();
-
- /**
- * Do not use the resource for new demands.
- */
- boolean deactivate();
-
- /**
- * Reactivates a deactivated resource.
- */
- boolean reactivate();
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/OrganizationScope.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/OrganizationScope.java
deleted file mode 100755
index 0fa64976808..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/OrganizationScope.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-public interface OrganizationScope {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/PodEntity.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/PodEntity.java
deleted file mode 100755
index e4743008f20..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/PodEntity.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-import java.util.List;
-
-import com.cloud.dc.Pod;
-import com.cloud.org.Cluster;
-
-public interface PodEntity extends DataCenterResourceEntity, Pod {
-
- List listClusters();
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/StorageEntity.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/StorageEntity.java
deleted file mode 100755
index 2d222324d2a..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/StorageEntity.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-import com.cloud.storage.StoragePool;
-
-public interface StorageEntity extends DataCenterResourceEntity, StoragePool {
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ZoneEntity.java b/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ZoneEntity.java
deleted file mode 100755
index 48940fae4e0..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/datacenter/entity/api/ZoneEntity.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.datacenter.entity.api;
-
-import java.util.List;
-
-import com.cloud.dc.DataCenter;
-
-/**
- * Describes a zone and operations that can be done in a zone.
- */
-public interface ZoneEntity extends DataCenterResourceEntity, DataCenter {
- List listPods();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/entity/api/CloudStackEntity.java b/platform/api/src/org/apache/cloudstack/platform/entity/api/CloudStackEntity.java
deleted file mode 100755
index 1aa70b6c124..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/entity/api/CloudStackEntity.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.entity.api;
-
-import java.lang.reflect.Method;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * All entities returned by the Cloud Orchestration Platform must implement
- * this interface. CloudValueEntity is an immutable representation of
- * an entity exposed by Cloud Orchestration Platform. For each object, it
- * defines two ids: uuid, generated by CloudStack Orchestration Platform, and
- * an external id that is set by the caller when the entity is created. All
- * ids must be unique for that entity. CloudValueEntity also can be converted
- * to a CloudActionableEntity which contains actions the object can perform.
- */
-public interface CloudStackEntity {
- /**
- * @return the uuid of the object.
- */
- String getUuid();
-
- /**
- * @return the id which is often the database id.
- */
- long getId();
-
- /**
- * @return external id set by the caller
- */
- String getExternalId();
-
- /**
- * @return current state for the entity
- */
- String getCurrentState();
-
- /**
- * @return desired state for the entity
- */
- String getDesiredState();
-
- /**
- * Get the time the entity was created
- */
- Date getCreatedTime();
-
- /**
- * Get the time the entity was last updated
- */
- Date getLastUpdatedTime();
-
- /**
- * @return reference to the owner of this entity
- */
- String getOwner();
-
- /**
- * @return details stored for this entity when created.
- */
- Map getDetails(String source);
-
- /**
- * @return a list of sources that have added to the details.
- */
- List getDetailSources();
-
- void addDetail(String source, String name, String value);
-
- void delDetail(String source, String name, String value);
-
- void updateDetail(String source, String name, String value);
-
- /**
- * @return list of actions that can be performed on the object in its current state
- */
- List getApplicableActions();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/exception/InsufficientCapacityException.java b/platform/api/src/org/apache/cloudstack/platform/exception/InsufficientCapacityException.java
deleted file mode 100755
index d2f9112aaef..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/exception/InsufficientCapacityException.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.exception;
-
-public class InsufficientCapacityException {
-
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java
deleted file mode 100755
index e789613444a..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/service/api/DirectoryService.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.service.api;
-
-import java.net.URI;
-import java.util.List;
-
-import com.cloud.utils.component.PluggableService;
-
-public interface DirectoryService {
- void registerService(String serviceName, URI endpoint);
- void unregisterService(String serviceName, URI endpoint);
- List getEndPoints(String serviceName);
- URI getLoadBalancedEndPoint(String serviceName);
-
- List listServices();
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java
deleted file mode 100755
index 6983d28ec16..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/service/api/EntityService.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.service.api;
-
-import java.util.List;
-
-import com.cloud.network.Network;
-import com.cloud.storage.Volume;
-import com.cloud.vm.VirtualMachine;
-
-/**
- * Service to retrieve CloudStack entities
- * very likely to change
- */
-public interface EntityService {
- List listVirtualMachines();
- List listVolumes();
- List listNetworks();
- List listNics();
- List listSnapshots();
- List listTemplates();
- List listStoragePools();
- List listHosts();
-
- VirtualMachine getVirtualMachine(String vm);
- Volume getVolume(String volume);
- Network getNetwork(String network);
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/OperationsServices.java b/platform/api/src/org/apache/cloudstack/platform/service/api/OperationsServices.java
deleted file mode 100755
index 5cf7bc6059f..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/service/api/OperationsServices.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.service.api;
-
-import java.net.URL;
-import java.util.List;
-
-import com.cloud.alert.Alert;
-import com.cloud.async.AsyncJob;
-
-public interface OperationsServices {
- List listJobs();
-
- List listJobsInProgress();
-
- List listJobsCompleted();
-
- List listJobsCompleted(Long from);
-
- List listJobsInWaiting();
-
- void cancelJob(String job);
-
- List listAlerts();
-
- Alert getAlert(String uuid);
-
- void cancelAlert(String alert);
-
- void registerForAlerts();
-
- String registerForEventNotifications(String type, String topic, URL url);
-
- boolean deregisterForEventNotifications(String notificationId);
-
- /**
- * @return the list of event topics someone can register for
- */
- List listEventTopics();
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java
deleted file mode 100755
index 87c2fe0e1f9..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/service/api/OrchestrationService.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.service.api;
-
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cloudstack.platform.cloud.entity.api.NetworkEntity;
-import org.apache.cloudstack.platform.cloud.entity.api.TemplateEntity;
-import org.apache.cloudstack.platform.cloud.entity.api.VirtualMachineEntity;
-import org.apache.cloudstack.platform.cloud.entity.api.VolumeEntity;
-
-import com.cloud.hypervisor.Hypervisor;
-
-public interface OrchestrationService {
- /**
- * creates a new virtual machine
- *
- * @param uuid externally unique name to reference the virtual machine
- * @param template reference to the template
- * @param hostName name of the host
- * @param cpu # of cpu cores
- * @param speed speed of the cpu core
- * @param memory memory to allocate in bytes
- * @param networks networks that this VM belongs in
- * @param rootDiskTags tags for the root disk
- * @param computeTags tags for the compute
- * @param details extra details to store for the VM
- * @return VirtualMachine
- */
- VirtualMachineEntity createVirtualMachine(String name,
- String template,
- String hostName,
- int cpu,
- int speed,
- long memory,
- List networks,
- List rootDiskTags,
- List computeTags,
- Map details,
- String owner);
-
- VirtualMachineEntity createVirtualMachineFromScratch(String uuid,
- String iso,
- String os,
- String hypervisor,
- String hostName,
- int cpu,
- int speed,
- long memory,
- List networks,
- List computeTags,
- Map details,
- String owner);
-
- NetworkEntity createNetwork(String externaId, String name, String cidr, String gateway);
-
- void destroyNetwork(String networkUuid);
-
- VolumeEntity createVolume();
-
- void destroyVolume(String volumeEntity);
-
- TemplateEntity registerTemplate(String name, URL path, String os, Hypervisor hypervisor);
-
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/service/api/ProvisioningService.java b/platform/api/src/org/apache/cloudstack/platform/service/api/ProvisioningService.java
deleted file mode 100755
index 0032a258786..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/service/api/ProvisioningService.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.service.api;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cloudstack.platform.datacenter.entity.api.ZoneEntity;
-
-import com.cloud.dc.DataCenter;
-import com.cloud.dc.Pod;
-import com.cloud.host.Host;
-import com.cloud.host.Status;
-import com.cloud.storage.StoragePool;
-
-
-/**
- * ProvisioningService registers and deregisters physical and virtual
- * resources that the management server can use.
- */
-public interface ProvisioningService {
-
- String registerStorage(String name, List tags, Map details);
- ZoneEntity registerZone(String name, List tags, Map details);
- String registerPod(String name, List tags, Map details);
- String registerCluster(String name, List tags, Map details);
- String registerHost(String name, List tags, Map details);
-
-
-
- void deregisterStorage(String uuid);
- void deregisterZone();
- void deregisterPod();
- void deregisterCluster();
- void deregisterHost();
-
- void changeState(String type, String entity, Status state);
-
- List listHosts();
-
- List listPods();
-
- List listZones();
-
-
-
- List listStorage();
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java
deleted file mode 100644
index b9f8a87686f..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/hypervisor/ComputeSubsystem.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.hypervisor;
-
-
-public interface ComputeSubsystem {
-
- void start(String vm, String reservationId);
-
- void cancel(String reservationId);
-
- void stop(String vm, String reservationId);
-
- void migrate(String vm, String reservationId);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java
deleted file mode 100755
index a66a4f54db5..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkServiceProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.network;
-
-public interface NetworkServiceProvider {
- /**
- * Plug your network elements into this network
- * @param network
- * @param reservationId
- */
- void plugInto(String network, String reservationId);
-
- /**
- * Unplug your network elements from this network
- * @param network
- * @param reservationId
- */
- void unplugFrom(String network, String reservationId);
-
- /**
- * Cancel a previous work
- * @param reservationId
- */
- void cancel(String reservationId);
-
- void provideServiceTo(String vm, String network, String reservationId);
-
- void removeServiceFrom(String vm, String network, String reservationId);
-
- void cleanUp(String network, String reservationId);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java
deleted file mode 100755
index 6a373821c23..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/network/NetworkSubsystem.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.network;
-
-public interface NetworkSubsystem {
- String create();
-
- String start(String network, String reservationId);
-
- void shutdown(String nework, String reservationId);
-
- void prepare(String vm, String network, String reservationId);
-
- void release(String vm, String network, String reservationId);
-
- void cancel(String reservationId);
-
- void destroy(String network, String reservationId);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/BackupStrategy.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/BackupStrategy.java
deleted file mode 100644
index b5aecd7a810..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/BackupStrategy.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-public interface BackupStrategy {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java
deleted file mode 100755
index edb15a64ed2..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataMigrationSubSystem.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.net.URI;
-
-import com.cloud.org.Grouping;
-
-public interface DataMigrationSubSystem {
-
- Class extends Grouping> getScopeCoverage();
- void migrate(URI source, URI dest, String reservationId);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java
deleted file mode 100644
index c861bc40a2a..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObject.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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 getChidren();
- boolean lock();
- boolean unlock();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObjectBackupStorageOperationState.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObjectBackupStorageOperationState.java
deleted file mode 100644
index a565036b627..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataObjectBackupStorageOperationState.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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 com.cloud.utils.fsm.StateMachine;
-
-public enum DataObjectBackupStorageOperationState {
- Copying,
- Deleting,
- Ready,
- NonOperational;
-
- public enum Event {
- Initial("Init state machine"),
- CopyingRequested("Copy operation is requested"),
- DeleteRequested("Delete operation is requested"),
- OperationSuccess("Operation successed"),
- OperationFailed("Operation failed");
-
- private final String _msg;
-
- private Event(String msg) {
- _msg = msg;
- }
- }
-
- public DataObjectBackupStorageOperationState getNextState(Event a) {
- return s_fsm.getNextState(this, a);
- }
-
- protected static final StateMachine s_fsm = new StateMachine();
- static {
- s_fsm.addTransition(null, Event.Initial, DataObjectBackupStorageOperationState.Ready);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Ready, Event.CopyingRequested, DataObjectBackupStorageOperationState.Copying);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Copying, Event.CopyingRequested, DataObjectBackupStorageOperationState.Copying);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Copying, Event.OperationFailed, DataObjectBackupStorageOperationState.Ready);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Copying, Event.OperationSuccess, DataObjectBackupStorageOperationState.Ready);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Ready, Event.DeleteRequested, DataObjectBackupStorageOperationState.Deleting);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Deleting, Event.OperationFailed, DataObjectBackupStorageOperationState.Ready);
- s_fsm.addTransition(DataObjectBackupStorageOperationState.Deleting, Event.OperationSuccess, DataObjectBackupStorageOperationState.NonOperational);
- }
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java
deleted file mode 100644
index 0d0f082abb0..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStore.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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 com.cloud.agent.api.to.StorageFilerTO;
-import com.cloud.storage.Snapshot;
-import com.cloud.storage.Storage.StoragePoolType;
-import com.cloud.storage.Volume;
-import com.cloud.template.VirtualMachineTemplate;
-
-public interface DataStore {
- public class DataStoreRef {
-
- }
-
- public class DataStoreDriverRef {
-
- }
-
- public enum StoreType {
- Primary,
- Image,
- Backup;
- }
- public class StoreScope {
- public long zoneId;
- private long clusterId;
- private long hostId;
- }
-
- String getURI();
- String getUUID();
- long getCluterId();
- long getPodId();
- long getZoneId();
- String getPath();
- StoreType getType();
- StoragePoolType getPoolType();
- StoreScope getScope();
- boolean isSharedStorage();
- Long getId();
- DataStoreDriver getDataStoreDriver();
- StorageProvider getProvider();
- DataStoreEndPointSelector getEndPointSelector();
- FileSystem getFileSystem();
- VolumeStrategy getVolumeStrategy();
- SnapshotStrategy getSnapshotStrategy();
- BackupStrategy getBackupStrategy();
- TemplateStrategy getTemplateStrategy();
- DataStoreLifeCycle getLifeCycle();
-
- VolumeProfile prepareVolume(Volume volume, DataStore destStore);
- SnapshotProfile prepareSnapshot(Snapshot snapshot, DataStore destStore);
- TemplateProfile prepareTemplate(long templateId, DataStore destStore);
- boolean contains(Volume volume);
- boolean contains(Snapshot snapshot);
- boolean contains(TemplateProfile template);
- TemplateProfile get(TemplateProfile template);
- StorageFilerTO getTO();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreConfigurator.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreConfigurator.java
deleted file mode 100644
index 8d80d8d3f48..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreConfigurator.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Map;
-
-import com.cloud.storage.StoragePool;
-
-public interface DataStoreConfigurator {
- String getProtocol();
- StoragePool getStoragePool(Map configs);
- List getConfigNames();
- Map getConfigs(URI uri, Map extras);
- boolean validate(Map configs);
- DataStore getDataStore(StoragePool pool);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java
deleted file mode 100644
index 258f0a1f8d6..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreDriver.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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 com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-
-public interface DataStoreDriver {
- String getDriverType();
- TemplateProfile install(TemplateProfile tp, DataStoreEndPoint ep);
- TemplateProfile register(TemplateProfile tp, DataStoreEndPoint ep);
- DataObject create(DataObject obj);
- DataObject copy(DataObject src, DataStore dest);
- DataObject copy(DataObject src, DataObject dest);
- DataObject move(DataObject src, DataObject dest);
- VolumeProfile createVolumeFromTemplate(VolumeProfile vol, TemplateProfile tp, DataStoreEndPoint dp);
- Answer sendMessage(DataStoreEndPoint dsep, Command cmd);
- boolean delete(DataObject obj);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPoint.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPoint.java
deleted file mode 100644
index 8029424a424..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPoint.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-
-public class DataStoreEndPoint {
- protected long hostId;
- protected String privIp;
-
- public DataStoreEndPoint(long host, String ip) {
- hostId = host;
- privIp = ip;
- }
-
- public long getHostId() {
- return hostId;
- }
-
- public String getPrivateIp() {
- return privIp;
- }
-
- public Answer sendCommand(Command cmd) {
- return new Answer(cmd);
- }
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPointSelector.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPointSelector.java
deleted file mode 100644
index 30b597cb5cd..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreEndPointSelector.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-import java.util.List;
-
-public interface DataStoreEndPointSelector {
- List getEndPoints(StorageEvent event);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreExtendedAttribute.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreExtendedAttribute.java
deleted file mode 100644
index 55af9d96513..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreExtendedAttribute.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-public interface DataStoreExtendedAttribute {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreLifeCycle.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreLifeCycle.java
deleted file mode 100644
index 46be5f5fc95..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/DataStoreLifeCycle.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-public interface DataStoreLifeCycle {
- public enum DataStoreEvent {
- HOSTUP,
- HOSTDOWN,
- }
- void add();
- void delete();
- void enable();
- void disable();
- void processEvent(DataStoreEvent event, Object... objs);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java
deleted file mode 100644
index 213829d7302..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/FileSystem.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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);
- DataObject ioctl(DataObject obj, Object... objects);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java
deleted file mode 100644
index 5702e4c4717..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/Snapshot.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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 {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotProfile.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotProfile.java
deleted file mode 100644
index bf07cec7a00..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotProfile.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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 class SnapshotProfile {
- private String _uri;
- public String getURI() {
- return _uri;
- }
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotStrategy.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotStrategy.java
deleted file mode 100644
index f627f5a3779..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/SnapshotStrategy.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-public interface SnapshotStrategy {
-
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageEvent.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageEvent.java
deleted file mode 100644
index 34cfb2a50ae..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageEvent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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 enum StorageEvent {
- DownloadTemplateToPrimary,
- RegisterTemplate,
- CreateVolumeFromTemplate;
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageProvider.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageProvider.java
deleted file mode 100644
index 7bc7e30ebd1..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageProvider.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
-
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.storage.StoragePool;
-import com.cloud.utils.component.Adapter;
-
-public interface StorageProvider extends Adapter {
- List supportedHypervisors();
- String getProviderName();
- List supportedStoreTypes();
- void configure(Map storeProviderInfo);
- DataStore addDataStore(StoragePool sp, String uri, Map params);
- DataStore getDataStore(StoragePool pool);
- Map> getDataStoreConfigs();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java
deleted file mode 100755
index e12ff797ad4..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/StorageSubSystem.java
+++ /dev/null
@@ -1,13 +0,0 @@
-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);
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateProfile.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateProfile.java
deleted file mode 100755
index 11c7e64169c..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateProfile.java
+++ /dev/null
@@ -1,287 +0,0 @@
-// 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.Map;
-
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.storage.Storage.ImageFormat;
-import com.cloud.template.VirtualMachineTemplate;
-
-public class TemplateProfile {
- Long userId;
- String name;
- String displayText;
- Integer bits;
- Boolean passwordEnabled;
- Boolean sshKeyEnbaled;
- Boolean requiresHvm;
- String url;
- Boolean isPublic;
- Boolean featured;
- Boolean isExtractable;
- ImageFormat format;
- Long guestOsId;
- Long zoneId;
- HypervisorType hypervisorType;
- String accountName;
- Long domainId;
- Long accountId;
- String chksum;
- Boolean bootable;
- Long templateId;
- VirtualMachineTemplate template;
- String templateTag;
- Map details;
-
- public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm,
- String url, Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, Long zoneId,
- HypervisorType hypervisorType, String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, Map details, Boolean sshKeyEnabled) {
- this.templateId = templateId;
- this.userId = userId;
- this.name = name;
- this.displayText = displayText;
- this.bits = bits;
- this.passwordEnabled = passwordEnabled;
- this.requiresHvm = requiresHvm;
- this.url = url;
- this.isPublic = isPublic;
- this.featured = featured;
- this.isExtractable = isExtractable;
- this.format = format;
- this.guestOsId = guestOsId;
- this.zoneId = zoneId;
- this.hypervisorType = hypervisorType;
- this.accountName = accountName;
- this.domainId = domainId;
- this.accountId = accountId;
- this.chksum = chksum;
- this.bootable = bootable;
- this.details = details;
- this.sshKeyEnbaled = sshKeyEnabled;
- }
-
- public TemplateProfile(Long userId, VirtualMachineTemplate template, Long zoneId) {
- this.userId = userId;
- this.template = template;
- this.zoneId = zoneId;
- }
-
- public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm,
- String url, Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, Long zoneId,
- HypervisorType hypervisorType, String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, String templateTag, Map details, Boolean sshKeyEnabled) {
- this(templateId, userId, name, displayText, bits, passwordEnabled, requiresHvm, url, isPublic, featured, isExtractable, format, guestOsId, zoneId,
- hypervisorType, accountName, domainId, accountId, chksum, bootable, details, sshKeyEnabled);
- this.templateTag = templateTag;
- }
-
- public Long getTemplateId() {
- return templateId;
- }
- public void setTemplateId(Long id) {
- this.templateId = id;
- }
-
- public Long getUserId() {
- return userId;
- }
- public void setUserId(Long userId) {
- this.userId = userId;
- }
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDisplayText() {
- return displayText;
- }
- public void setDisplayText(String text) {
- this.displayText = text;
- }
-
- public Integer getBits() {
- return bits;
- }
- public void setBits(Integer bits) {
- this.bits = bits;
- }
-
- public Boolean getPasswordEnabled() {
- return passwordEnabled;
- }
- public void setPasswordEnabled(Boolean enabled) {
- this.passwordEnabled = enabled;
- }
-
- public Boolean getRequiresHVM() {
- return requiresHvm;
- }
- public void setRequiresHVM(Boolean hvm) {
- this.requiresHvm = hvm;
- }
-
- public String getUrl() {
- return url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
-
- public Boolean getIsPublic() {
- return isPublic;
- }
- public void setIsPublic(Boolean is) {
- this.isPublic = is;
- }
-
- public Boolean getFeatured() {
- return featured;
- }
- public void setFeatured(Boolean featured) {
- this.featured = featured;
- }
-
- public Boolean getIsExtractable() {
- return isExtractable;
- }
- public void setIsExtractable(Boolean is) {
- this.isExtractable = is;
- }
-
- public ImageFormat getFormat() {
- return format;
- }
- public void setFormat(ImageFormat format) {
- this.format = format;
- }
-
- public Long getGuestOsId() {
- return guestOsId;
- }
- public void setGuestOsId(Long id) {
- this.guestOsId = id;
- }
-
- public Long getZoneId() {
- return zoneId;
- }
- public void setZoneId(Long id) {
- this.zoneId = id;
- }
-
- public HypervisorType getHypervisorType() {
- return hypervisorType;
- }
- public void setHypervisorType(HypervisorType type) {
- this.hypervisorType = type;
- }
-
- public Long getDomainId() {
- return domainId;
- }
- public void setDomainId(Long id) {
- this.domainId = id;
- }
-
- public Long getAccountId() {
- return accountId;
- }
- public void setAccountId(Long id) {
- this.accountId = id;
- }
-
- public String getCheckSum() {
- return chksum;
- }
- public void setCheckSum(String chksum) {
- this.chksum = chksum;
- }
-
- public Boolean getBootable() {
- return this.bootable;
- }
- public void setBootable(Boolean bootable) {
- this.bootable = bootable;
- }
-
- public VirtualMachineTemplate getTemplate() {
- return template;
- }
- public void setTemplate(VirtualMachineTemplate template) {
- this.template = template;
- }
-
- public String getTemplateTag() {
- return templateTag;
- }
-
- public void setTemplateTag(String templateTag) {
- this.templateTag = templateTag;
- }
-
- public Map getDetails() {
- return this.details;
- }
-
- public void setDetails(Map details) {
- this.details = details;
- }
-
- public void setSshKeyEnabled(Boolean enabled) {
- this.sshKeyEnbaled = enabled;
- }
-
- public Boolean getSshKeyEnabled() {
- 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;
- }
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateStrategy.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateStrategy.java
deleted file mode 100644
index 61ea40a667f..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/TemplateStrategy.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-import com.cloud.agent.api.storage.DownloadCommand.Proxy;
-
-public interface TemplateStrategy {
- TemplateProfile install(TemplateProfile tp);
- TemplateProfile get(long templateId);
- TemplateProfile register(TemplateProfile tp);
- boolean canRegister(long templateId);
- int getDownloadWait();
- long getMaxTemplateSizeInBytes();
- Proxy getHttpProxy();
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeProfile.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeProfile.java
deleted file mode 100644
index 236ebf592fb..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeProfile.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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 class VolumeProfile {
- private String _uri;
- public String getURI() {
- return _uri;
- }
-
- public String getPath() {
- return null;
- }
-
- public long getSize() {
- return 0;
- }
-}
diff --git a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeStrategy.java b/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeStrategy.java
deleted file mode 100644
index 207bbba0eb6..00000000000
--- a/platform/api/src/org/apache/cloudstack/platform/subsystem/api/storage/VolumeStrategy.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.apache.cloudstack.platform.subsystem.api.storage;
-
-
-import com.cloud.storage.Volume;
-
-public interface VolumeStrategy {
- Volume createVolume(Volume vol);
- Volume createDataVolume(Volume vol);
- Volume copyVolumeFromBackup(VolumeProfile srcVol, Volume destVol);
- Volume createVolumeFromSnapshot(SnapshotProfile snapshot, Volume vol);
- Volume createVolumeFromTemplate(TemplateProfile template, Volume vol);
- Volume migrateVolume(Volume srcVol, Volume destVol, DataStore destStore);
- Volume createVolumeFromBaseTemplate(Volume destVol, TemplateProfile tp);
- boolean deleteVolume(Volume vol);
- VolumeProfile get(long volumeId);
-}
diff --git a/platform/compute/.project b/platform/compute/.project
deleted file mode 100755
index 6623a311e61..00000000000
--- a/platform/compute/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- platform-compute
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/platform/compute/pom.xml b/platform/compute/pom.xml
deleted file mode 100644
index ce3de65476c..00000000000
--- a/platform/compute/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- 4.0.0
- org.apache.cloudstack
- cloud-platform-compute
- 4.1.0-SNAPSHOT
-
-
- org.apache.cloudstack
- cloud-framework-ipc
- 4.1.0-SNAPSHOT
-
-
-
diff --git a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java
deleted file mode 100755
index 8c1c91b043f..00000000000
--- a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestrator.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.compute;
-
-import java.util.logging.Handler;
-
-public interface ComputeOrchestrator {
- /**
- * start the vm
- * @param vm vm
- * @param reservationId
- */
- @Ipc(topic="cs.compute.start", response="cs.compute.start.response")
- void start(@IpcParam String vm, @IpcParam String reservationId, Handler handler);
-
- @Ipc(topic="cs.compute.cancel")
- void cancel(@IpcParam String reservationId);
-
- @Ipc(topic="cs.compute.stop")
- void stop(@IpcParam String vm, @IpcParam String reservationId);
-}
diff --git a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java b/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java
deleted file mode 100755
index 5030feb22f8..00000000000
--- a/platform/compute/src/org/apache/cloudstack/compute/ComputeOrchestratorImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.compute;
-
-
-public class ComputeOrchestratorImpl implements ComputeOrchestrator {
-
- @Override
- public void start(String vm, String reservationId) {
- // Retrieve the VM
- // Locate the HypervisorGuru based on the VM type
- // Call HypervisorGuru to start the VM
- }
-
- @Override
- public void cancel(String reservationId) {
- }
-
- @Override
- public void stop(String vm, String reservationId) {
- // Retrieve the VM
- // Locate the HypervisorGuru based on the VM type
- // Call HypervisorGuru to stop the VM
- }
-}
diff --git a/platform/network/.project b/platform/network/.project
deleted file mode 100755
index 89675338314..00000000000
--- a/platform/network/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- platform-network
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java b/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java
deleted file mode 100755
index 82756ac8391..00000000000
--- a/platform/network/src/org/apache/cloudstack/network/NetworkOrchestrator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.network;
-
-public interface NetworkOrchestrator {
-
- /**
- * Prepares for a VM to join a network
- * @param vm vm
- * @param reservationId reservation id
- */
- void prepare(String vm, String reservationId);
-
- /**
- * Release all reservation
- */
- void release(String vm, String reservationId);
-
- /**
- * Cancel a previous reservation
- * @param reservationId
- */
- void cancel(String reservationId);
-}
diff --git a/platform/orchestration/.project b/platform/orchestration/.project
deleted file mode 100755
index 5963e0bd676..00000000000
--- a/platform/orchestration/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- platform-orchestration
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/platform/orchestration/pom.xml b/platform/orchestration/pom.xml
deleted file mode 100755
index 00c440a946e..00000000000
--- a/platform/orchestration/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
- 4.0.0
- org.apache.cloudstack
- cloud-platform-orchestration
- 4.1.0-SNAPSHOT
-
diff --git a/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java b/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
deleted file mode 100755
index 34154ad3b7c..00000000000
--- a/platform/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.orchestration;
-
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cloudstack.platform.cloud.entity.api.VirtualMachineEntity;
-import org.apache.cloudstack.platform.cloud.entity.api.VolumeEntity;
-import org.apache.cloudstack.platform.service.api.OrchestrationService;
-
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.hypervisor.Hypervisor;
-
-
-public class CloudOrchestrator implements OrchestrationService {
-
- public VirtualMachineEntity create(String name, String template, String hostName, int cpu, int speed, long memory, List networks, List rootDiskTags, List computeTags,
- Map details, String owner) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public VirtualMachineEntity createFromScratch(String uuid, String iso, String os, String hypervisor, String hostName, int cpu, int speed, long memory, List networks, List computeTags,
- Map details, String owner) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String reserve(String vm, String planner, Long until) throws InsufficientCapacityException {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String deploy(String reservationId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void joinNetwork(String network1, String network2) {
- // TODO Auto-generated method stub
-
- }
-
- public void createNetwork() {
- // TODO Auto-generated method stub
-
- }
-
- public void destroyNetwork() {
- // TODO Auto-generated method stub
-
- }
-
- public VolumeEntity createVolume() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void registerTemplate(String name, URL path, String os, Hypervisor hypervisor) {
- // TODO Auto-generated method stub
-
- }
-
-}
diff --git a/platform/planning/.project b/platform/planning/.project
deleted file mode 100755
index c228af29670..00000000000
--- a/platform/planning/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- platform-planning
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java b/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java
deleted file mode 100755
index 97dfb2bbfe6..00000000000
--- a/platform/planning/src/org/apache/cloudstack/platform/planning/Concierge.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.planning;
-
-import org.apache.cloudstack.framework.ipc.Ipc;
-
-public interface Concierge {
- @Ipc(topic="cs.concierge.reserve")
- String reserve(String vm, String planner, Long until);
-
- @Ipc(topic="cs.concierge.cancel")
- String cancel(String reservationId);
-
- @Ipc(topic="cs.concierge.claim")
- String claim(String reservationId);
-
- @Ipc(topic="cs.concierge.reserveAnother")
- String reserveAnother(String reservationId);
-
-}
diff --git a/platform/pom.xml b/platform/pom.xml
deleted file mode 100644
index 2ba8d3497ed..00000000000
--- a/platform/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- 4.0.0
- cloudstack-platform
- Apache CloudStack platform POM
- pom
-
- org.apache.cloudstack
- cloudstack
- 4.1.0-SNAPSHOT
-
-
- install
- src
- test
-
-
- api
- compute
- orchestration
- storage
-
-
diff --git a/platform/storage/pom.xml b/platform/storage/pom.xml
deleted file mode 100644
index 614fccb08fd..00000000000
--- a/platform/storage/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
- 4.0.0
- cloud-platform-storage
- Apache CloudStack Platform Storage
-
- org.apache.cloudstack
- cloudstack
- 4.1.0-SNAPSHOT
- ../../pom.xml
-
-
-
- org.apache.cloudstack
- cloud-api
- ${project.version}
-
-
- org.apache.cloudstack
- cloud-core
- ${project.version}
-
-
- org.apache.cloudstack
- cloud-server
- ${project.version}
-
-
- org.apache.cloudstack
- cloud-platform-api
- ${project.version}
-
-
- org.apache.openjpa
- openjpa
- 2.2.0
-
-
- mysql
- mysql-connector-java
- ${cs.mysql.version}
- provided
-
-
- org.mockito
- mockito-all
- 1.9.5
-
-
- org.aspectj
- aspectjrt
- 1.7.1
-
-
- org.aspectj
- aspectjweaver
- 1.7.1
-
-
- javax.inject
- javax.inject
- 1
-
-
-
- install
- src
- test
-
-
diff --git a/platform/storage/src/org/apache/cloudstack/storage/BaseType.java b/platform/storage/src/org/apache/cloudstack/storage/BaseType.java
deleted file mode 100644
index 12acc7d65a9..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/BaseType.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.storage;
-
-public abstract class BaseType {
- public boolean equals(Object that) {
- if (this == that) {
- return true;
- }
- if (that instanceof String) {
- if (this.toString().equalsIgnoreCase((String)that)) {
- return true;
- }
- } else if (that instanceof BaseType) {
- BaseType th = (BaseType)that;
- if (this.toString().equalsIgnoreCase(th.toString())) {
- return true;
- }
- } else {
- return false;
- }
- return false;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/EndPoint.java b/platform/storage/src/org/apache/cloudstack/storage/EndPoint.java
deleted file mode 100644
index 0a3dfa2d28d..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/EndPoint.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.apache.cloudstack.storage;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-
-public interface EndPoint {
- public Answer sendMessage(Command cmd);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java b/platform/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
deleted file mode 100644
index 8bd51c7c580..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.storage;
-
-import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-import com.cloud.exception.AgentUnavailableException;
-import com.cloud.exception.OperationTimedoutException;
-
-public class HypervisorHostEndPoint implements EndPoint {
- private static final Logger s_logger = Logger.getLogger(HypervisorHostEndPoint.class);
- private long hostId;
- @Inject
- AgentManager agentMgr;
- public HypervisorHostEndPoint(long hostId) {
- this.hostId = hostId;
- }
-
- @Override
- public Answer sendMessage(Command cmd) {
- Answer answer = null;
- try {
- answer = agentMgr.send(hostId, cmd);
- } catch (AgentUnavailableException e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- } catch (OperationTimedoutException e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- } catch (Exception e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- }
- return answer;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java b/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java
deleted file mode 100755
index 691c413b793..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestrator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.storage;
-
-import java.util.List;
-
-import com.cloud.deploy.DeploymentPlan;
-
-public interface StorageOrchestrator {
-
- /**
- * Prepares all storage ready for a VM to start
- * @param vm
- * @param reservationId
- */
- void prepare(long vmId, DeploymentPlan plan, String reservationId);
-
- /**
- * Releases all storage that were used for a VM shutdown
- * @param vm
- * @param disks
- * @param reservationId
- */
- void release(long vmId, String reservationId);
-
- /**
- * Destroy all disks
- * @param disks
- * @param reservationId
- */
- void destroy(List disks, String reservationId);
-
- /**
- * Cancel a reservation
- * @param reservationId reservation to
- */
- void cancel(String reservationId);
-
- /**
- * If attaching a volume in allocated state to a running vm, need to create this volume
- */
- void prepareAttachDiskToVM(long diskId, long vmId, String reservationId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java b/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
deleted file mode 100644
index 7c88cae04da..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * 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.storage;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState;
-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.TemplateProfile;
-import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
-import org.apache.cloudstack.platform.subsystem.api.storage.VolumeStrategy;
-import org.apache.cloudstack.storage.image.ImageManager;
-import org.apache.cloudstack.storage.manager.BackupStorageManager;
-import org.apache.cloudstack.storage.manager.SecondaryStorageManager;
-import org.apache.cloudstack.storage.volume.VolumeManager;
-import org.apache.log4j.Logger;
-
-import com.cloud.deploy.DeploymentPlan;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.offering.DiskOffering;
-import com.cloud.storage.DiskOfferingVO;
-import com.cloud.storage.StoragePool;
-import com.cloud.storage.Volume;
-import com.cloud.storage.VolumeVO;
-import com.cloud.storage.dao.DiskOfferingDao;
-import com.cloud.storage.dao.StoragePoolDao;
-import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.dao.VolumeHostDao;
-import com.cloud.template.VirtualMachineTemplate;
-import com.cloud.utils.component.Inject;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.fsm.NoTransitionException;
-import com.cloud.vm.VirtualMachine;
-import com.cloud.vm.dao.VMInstanceDao;
-
-public class StorageOrchestratorImpl implements StorageOrchestrator {
- private static final Logger s_logger = Logger.getLogger(StorageOrchestratorImpl.class);
- @Inject
- StoragePoolDao _storagePoolDao;
- @Inject
- StorageProviderManager _spManager;
- @Inject
- VolumeDao _volumeDao;
- @Inject
- VMInstanceDao _vmDao;
- @Inject
- DiskOfferingDao _diskOfferingDao;
- @Inject
- VolumeHostDao _volumeHostDao;
- @Inject
- StorageProviderManager _storageProviderMgr;
- @Inject
- VolumeManager _volumeMgr;
- @Inject
- SecondaryStorageManager _secondaryStorageMgr;
- @Inject
- ImageManager _templateMgr;
- @Inject
- VMTemplateDao _templateDao;
-
- @DB
- protected Volume copyVolumeFromBackupStorage(VolumeVO volume, DataStore destStore, String reservationId) throws NoTransitionException {
- DataStore ds = _secondaryStorageMgr.getStore(volume);
- if (!ds.contains(volume)) {
- throw new CloudRuntimeException("volume: " + volume + "doesn't exist on backup storage");
- }
-
- VolumeProfile vp = ds.prepareVolume(volume, destStore);
-
- VolumeStrategy vs = destStore.getVolumeStrategy();
-
- Transaction txn = Transaction.currentTxn();
- volume.setReservationId(reservationId);
- _volumeMgr.processEvent(volume, Volume.Event.CopyRequested);
- VolumeVO destVolume = _volumeMgr.allocateDuplicateVolume(volume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- vs.copyVolumeFromBackup(vp, destVolume);
-
- txn.start();
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- return destVolume;
- }
-
- @DB
- protected Volume migrateVolume(VolumeVO volume, DataStore srcStore, DataStore destStore, String reservationId) throws NoTransitionException {
- Transaction txn = Transaction.currentTxn();
- txn.start();
- volume.setReservationId(reservationId);
- volume = _volumeMgr.processEvent(volume, Volume.Event.MigrationRequested);
- Volume destVolume = _volumeMgr.allocateDuplicateVolume(volume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- VolumeStrategy vs = srcStore.getVolumeStrategy();
- vs.migrateVolume(volume, destVolume, destStore);
-
- txn.start();
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- volume = _volumeMgr.processEvent(volume, Volume.Event.DestroyRequested);
-
- vs.deleteVolume(volume);
-
- _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- return destVolume;
- }
-
- @DB
- protected Volume recreateVolume(VolumeVO srcVolume, DataStore destStore, String reservationId) throws NoTransitionException {
- Transaction txn = Transaction.currentTxn();
- txn.start();
- srcVolume.setReservationId(reservationId);
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.CopyRequested);
- Volume destVolume = _volumeMgr.allocateDuplicateVolume(srcVolume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- DataStore srcStore = _storageProviderMgr.getDataStore(srcVolume.getPoolId());
- VolumeStrategy vs = srcStore.getVolumeStrategy();
-
- vs.migrateVolume(srcVolume, destVolume, destStore);
-
- txn.start();
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.DestroyRequested);
-
- vs.deleteVolume(srcVolume);
-
- _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
-
- return destVolume;
- }
-
- protected Volume createVolumeOnStorage(Volume volume, DataStore destStore, String reservationId) throws NoTransitionException {
- VolumeStrategy vs = destStore.getVolumeStrategy();
- volume.setReservationId(reservationId);
- volume = _volumeMgr.processEvent(volume, Volume.Event.CreateRequested);
-
- if (volume.getTemplateId() != null) {
- DataStore ds = _secondaryStorageMgr.getImageStore(destStore);
- TemplateProfile tp = ds.prepareTemplate(volume.getTemplateId(), destStore);
- if (!destStore.contains(tp)) {
- tp = _templateMgr.AssociateTemplateStoragePool(tp, destStore);
- tp = destStore.getTemplateStrategy().install(tp);
- } else {
- tp = destStore.getTemplateStrategy().get(tp.getId());
- }
- volume = vs.createVolumeFromBaseTemplate(volume, tp);
- } else {
- volume = vs.createDataVolume(volume);
- }
-
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- return volume;
- }
-
- @DB
- protected void prepareVolumes(List vols, Long destPoolId, String reservationId) throws NoTransitionException {
- DataStore destStore = null;
- if (destPoolId != null) {
- destStore = _storageProviderMgr.getDataStore(destPoolId);
- }
-
- for (VolumeVO volume : vols) {
- if (volume.getPoolId() == null && destStore == null) {
- throw new CloudRuntimeException("Volume has no pool associate and also no storage pool assigned in DeployDestination, Unable to create.");
- }
- if (destStore == null) {
- continue;
- }
-
- DataStore srcStore = _storageProviderMgr.getDataStore(volume.getPoolId());
- boolean needToCreateVolume = false;
- boolean needToRecreateVolume = false;
- boolean needToMigrateVolume = false;
- boolean needToCopyFromSec = false;
-
- Volume.State state = volume.getState();
- if (state == Volume.State.Allocated) {
- needToCreateVolume = true;
- } else if (state == Volume.State.UploadOp) {
- needToCopyFromSec = true;
- } else if (destStore.getId() != srcStore.getId()) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Mismatch in storage pool " + destStore.getId() + " assigned by deploymentPlanner and the one associated with volume " + volume);
- }
-
- if (volume.isRecreatable()) {
- needToRecreateVolume = true;
- } else {
- if (Volume.Type.ROOT == volume.getVolumeType()) {
- needToMigrateVolume = true;
- } else {
- if (destStore.getCluterId() != srcStore.getCluterId()) {
- needToMigrateVolume = true;
- } else if (!srcStore.isSharedStorage() && srcStore.getId() != destStore.getId()) {
- needToMigrateVolume = true;
- } else {
- continue;
- }
- }
- }
- } else {
- continue;
- }
-
-
- if (needToCreateVolume) {
- createVolumeOnStorage(volume, destStore, reservationId);
- } else if (needToMigrateVolume) {
- migrateVolume(volume, srcStore, destStore, reservationId);
- } else if (needToCopyFromSec) {
- copyVolumeFromBackupStorage(volume, destStore, reservationId);
- } else if (needToRecreateVolume) {
- recreateVolume(volume, destStore, reservationId);
- }
- }
- }
-
- public void prepare(long vmId, DeploymentPlan plan, String reservationId) {
- VirtualMachine vm = _vmDao.findById(vmId);
-
-
- List vols = _volumeDao.findUsableVolumesForInstance(vm.getId());
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Prepare " + vols.size() + " volumes for " + vm.getInstanceName());
- }
-
- try {
- prepareVolumes(vols, plan.getPoolId(), reservationId);
- } catch (NoTransitionException e) {
- s_logger.debug("Failed to prepare volume: " + e.toString());
- }
- }
-
-
- public void release(long vmId, String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void destroy(List disks, String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void cancel(String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void prepareAttachDiskToVM(long diskId, long vmId, String reservationId) {
- VirtualMachine vm = _vmDao.findById(vmId);
-
- if (vm == null || vm.getState() != VirtualMachine.State.Running) {
- return;
- }
-
- VolumeVO volume = _volumeDao.findById(diskId);
- if (volume.getInstanceId() != null) {
- if (volume.getInstanceId() != vmId) {
- throw new InvalidParameterValueException("Volume " + volume + "already attached to " + volume.getInstanceId());
- } else {
- return;
- }
- }
-
- List vols = new ArrayList();
- vols.add(volume);
-
- List rootDisks = _volumeDao.findByInstanceAndType(vmId, Volume.Type.ROOT);
- VolumeVO rootDisk = rootDisks.get(0);
- try {
- prepareVolumes(vols, rootDisk.getPoolId(), reservationId);
- } catch (NoTransitionException e) {
- s_logger.debug("Failed to prepare volume: " + volume + ", due to" + e.toString());
- throw new CloudRuntimeException(e.toString());
- }
-
- volume = _volumeDao.findById(diskId);
- volume.setInstanceId(vmId);
- _volumeDao.update(volume.getId(), volume);
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java b/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
deleted file mode 100644
index e7b03a788ab..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.apache.cloudstack.storage;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
-
-public interface StorageProviderManager {
- StorageProvider getProvider(String uuid);
- StorageProvider getProvider(long poolId);
- StorageProvider getBackupStorageProvider(long zoneId);
- DataStore getDataStore(long poolId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java b/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
deleted file mode 100644
index 6bfdf1dda32..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.cloudstack.storage;
-
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
-
-import com.cloud.utils.component.Manager;
-
-public class StorageProviderManagerImpl implements StorageProviderManager, Manager {
-
- public StorageProvider getProvider(String uuid) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean configure(String name, Map params)
- throws ConfigurationException {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean start() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean stop() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public String getName() {
- // TODO Auto-generated method stub
- 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;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java b/platform/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
deleted file mode 100644
index 64402d357f1..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.storage;
-
-import java.util.Date;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState;
-
-import com.cloud.storage.Storage;
-import com.cloud.storage.VMTemplateStorageResourceAssoc;
-import com.cloud.storage.Storage.ImageFormat;
-import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
-
-public interface VolumeBackupRef {
- public DataObjectBackupStorageOperationState getOperationState();
-
- public String getInstallPath();
-
- public long getHostId();
-
- public long getVolumeId();
-
- public long getZoneId();
-
- public int getDownloadPercent();
-
- public long getVolumeSize();
-
- public Storage.ImageFormat getFormat();
-
- public String getDownloadUrl();
-
- public boolean getDestroyed();
-
- public long getPhysicalSize();
-
- public long getSize();
-
- public String getLocalDownloadPath();
-
- public String getChecksum();
-
- public Status getDownloadState();
-
- public Date getLastUpdated();
-
- public Date getCreated();
-
- public long getId();
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java b/platform/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
deleted file mode 100644
index 5105e25983e..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.storage.backup;
-
-public interface BackupMotionService {
- boolean copySnapshot(String snapshotUri, String destSnapshotUri);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/backup/BackupService.java b/platform/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
deleted file mode 100644
index 198247dec2a..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.storage.backup;
-
-public interface BackupService {
- String grantAccessSnapshot(long snapshotId, long endpointId);
- boolean revokeAccessSnapshot(long snapshotId, long endpointId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java b/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
deleted file mode 100644
index e75307c547d..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.storage.command;
-
-import com.cloud.agent.api.Answer;
-
-public class CreateVolumeAnswer extends Answer {
- private String volumeUuid;
- protected CreateVolumeAnswer() {
- super();
- }
-
- public CreateVolumeAnswer(String volumeUuid) {
- this.volumeUuid = volumeUuid;
- }
-
- public String getVolumeUuid() {
- return this.volumeUuid;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java b/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
deleted file mode 100644
index 243e0167da1..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.storage.command;
-
-import org.apache.cloudstack.storage.volume.VolumeInfo;
-
-import com.cloud.agent.api.Command;
-
-public class CreateVolumeCommand extends Command {
- protected VolumeInfo volumeInfo;
- public CreateVolumeCommand(VolumeInfo volumeInfo) {
- super();
- this.volumeInfo = volumeInfo;
- }
-
- protected CreateVolumeCommand() {
- super();
- }
-
- @Override
- public boolean executeInSequence() {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
deleted file mode 100644
index 65f46b1e156..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.storage.datastore;
-
-public enum DataStoreStatus {
- Creating,
- Up,
- PrepareForMaintenance,
- ErrorInMaintenance,
- CancelMaintenance,
- Maintenance,
- Removed;
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
deleted file mode 100644
index 0e7bb602feb..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
+++ /dev/null
@@ -1,229 +0,0 @@
-package org.apache.cloudstack.storage.datastore;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.BackupStrategy;
-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.DataStoreEndPointSelector;
-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.SnapshotProfile;
-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.VolumeProfile;
-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 {
- protected VolumeStrategy _volumeStrategy;
- protected SnapshotStrategy _snapshotStrategy;
- protected BackupStrategy _backupStrategy;
- protected TemplateStrategy _templateStrategy;
- protected String _uri;
- protected String _uuid;
- protected StoreType _type;
- protected StoreScope _scope;
- protected long _poolId;
- protected DataStoreDriver _driverRef;
- protected DataStoreEndPointSelector _selector;
- protected FileSystem _fs;
- protected VolumeStrategy _volumeSt;
- protected SnapshotStrategy _snapshotSt;
- protected BackupStrategy _backupSt;
- protected long _id;
- protected DataStoreLifeCycle _dslf;
-
- public DefaultDataStore(
- ) {
- }
-
- public String getURI() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void setURI(String uri) {
- this._uri = uri;
- }
-
- public String getUUID() {
- return this._uuid;
- }
-
- public void setUUID(String uuid) {
- this._uuid = uuid;
- }
-
- public StoreType getType() {
- return this._type;
- }
-
- public void setType(StoreType type) {
- this._type = type;
- }
-
- public StoreScope getScope() {
- return this._scope;
- }
-
- public void setScope(StoreScope scope) {
- this._scope = scope;
- }
-
- public Long getId() {
- return this._id;
- }
-
- public void setId(long id) {
- this._id = id;
- }
-
- public DataStoreDriver getDataStoreDriver() {
- return this._driverRef;
- }
-
- public void setDataStoreDriver(DataStoreDriver drv) {
- this._driverRef = drv;
- }
-
- public void setEndPointSelector(DataStoreEndPointSelector selector) {
- this._selector = selector;
- }
-
- public DataStoreEndPointSelector getSelector() {
- return this._selector;
- }
-
- public FileSystem getFileSystem() {
- return this._fs;
- }
-
- public void setFileSystem(FileSystem fs) {
- this._fs = fs;
- }
-
- public VolumeStrategy getVolumeStrategy() {
- return this._volumeSt;
- }
-
- public void setVolumeStrategy(VolumeStrategy vs) {
- this._volumeSt = vs;
- }
-
- public SnapshotStrategy getSnapshotStrategy() {
- return this._snapshotSt;
- }
-
- public void setSnapshotStrategy(SnapshotStrategy ss) {
- this._snapshotSt = ss;
- }
-
- public BackupStrategy getBackupStrategy() {
- return this._backupSt;
- }
-
- public void setBackupStrategy(BackupStrategy bs) {
- this._backupSt = bs;
- }
-
- public TemplateStrategy getTemplateStrategy() {
- return this._templateStrategy;
- }
-
- public void setTemplateStrategy(TemplateStrategy ts) {
- this._templateStrategy = ts;
- }
-
- public DataStoreLifeCycle getLifeCycle() {
- return this._dslf;
- }
-
- public void setLifeCycle(DataStoreLifeCycle 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;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
deleted file mode 100644
index ea22b2314cd..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package org.apache.cloudstack.storage.datastore;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.storage.EndPoint;
-import org.apache.cloudstack.storage.HypervisorHostEndPoint;
-import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
-import org.apache.cloudstack.storage.datastore.driver.PrimaryDataStoreDriver;
-import org.apache.cloudstack.storage.volume.Volume;
-import org.apache.cloudstack.storage.volume.VolumeEvent;
-import org.apache.cloudstack.storage.volume.db.VolumeDao;
-import org.apache.cloudstack.storage.volume.db.VolumeVO;
-import org.apache.cloudstack.storage.volume.disktype.VolumeDiskType;
-import org.apache.log4j.Logger;
-
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDao;
-import com.cloud.utils.component.ComponentInject;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-import edu.emory.mathcs.backport.java.util.Collections;
-
-public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
- private static final Logger s_logger = Logger.getLogger(DefaultPrimaryDataStoreImpl.class);
- protected PrimaryDataStoreDriver driver;
- protected DataStoreVO pdsv;
- protected PrimaryDataStoreInfo pdsInfo;
- @Inject
- private VolumeDao volumeDao;
- @Inject
- private HostDao hostDao;
- public DefaultPrimaryDataStoreImpl(PrimaryDataStoreDriver driver, DataStoreVO pdsv, PrimaryDataStoreInfo pdsInfo) {
- this.driver = driver;
- this.pdsv = pdsv;
- this.pdsInfo = pdsInfo;
- }
-
- @Override
- public Volume getVolume(long id) {
- VolumeVO volumeVO = volumeDao.findById(id);
- Volume vol = new Volume(this, volumeVO);
- return vol;
- }
-
- @Override
- public List getVolumes() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean deleteVolume(long id) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public Volume createVolume(long id, VolumeDiskType diskType) {
- Volume vol = this.getVolume(id);
- if (vol == null) {
- return null;
- }
-
- if (!pdsInfo.isVolumeDiskTypeSupported(diskType)) {
- return null;
- }
-
- boolean result = vol.stateTransit(VolumeEvent.CreateRequested);
- if (!result) {
- return null;
- }
-
- try {
- vol.setVolumeDiskType(diskType);
- result = this.driver.createVolume(vol);
- vol.update();
- return vol;
- } catch (Exception e) {
- result = false;
- s_logger.debug("Failed to create volume: " + e.toString());
- throw new CloudRuntimeException(e.toString());
- } finally {
- if (result == true) {
- vol.stateTransit(VolumeEvent.OperationSucceeded);
- } else {
- vol.stateTransit(VolumeEvent.OperationFailed);
- }
- }
-
- }
-
- @Override
- public List getEndPoints() {
- Long clusterId = pdsv.getClusterId();
- if (clusterId == null) {
- return null;
- }
- List endpoints = new ArrayList();
- List hosts = hostDao.findHypervisorHostInCluster(clusterId);
- for (HostVO host : hosts) {
- HypervisorHostEndPoint ep = new HypervisorHostEndPoint(host.getId());
- ComponentInject.inject(ep);
- endpoints.add(ep);
- }
- Collections.shuffle(endpoints);
- return endpoints;
- }
-
- @Override
- public PrimaryDataStoreInfo getDataStoreInfo() {
- // TODO Auto-generated method stub
- return null;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
deleted file mode 100644
index 7efa56177ea..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.storage.datastore;
-
-import java.util.List;
-
-import org.apache.cloudstack.storage.EndPoint;
-import org.apache.cloudstack.storage.volume.Volume;
-import org.apache.cloudstack.storage.volume.disktype.VolumeDiskType;
-
-public interface PrimaryDataStore {
- Volume getVolume(long id);
- List getVolumes();
- boolean deleteVolume(long id);
- Volume createVolume(long id, VolumeDiskType diskType);
- List getEndPoints();
- PrimaryDataStoreInfo getDataStoreInfo();
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfo.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfo.java
deleted file mode 100644
index d30a5c8d221..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfo.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.storage.datastore;
-
-import org.apache.cloudstack.storage.volume.disktype.VolumeDiskType;
-
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-
-public interface PrimaryDataStoreInfo {
- public boolean isHypervisorSupported(HypervisorType hypervisor);
- public boolean isLocalStorageSupported();
- public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType);
- public long getCapacity();
- public long getAvailableCapacity();
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
deleted file mode 100644
index c453d33e93b..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.storage.datastore;
-
-import java.util.List;
-
-import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
-import org.apache.cloudstack.storage.volume.disktype.VolumeDiskType;
-
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-
-public class PrimaryDataStoreInfoImpl implements PrimaryDataStoreInfo {
- protected List supportedHypervs;
- protected List supportedDiskTypes;
- protected long caapcity;
- protected long avail;
- protected boolean localStorage;
-
- public PrimaryDataStoreInfoImpl(List hypers, List diskTypes,
- long capacity, long avail, boolean localStorage) {
- this.avail = avail;
- this.caapcity = capacity;
- this.localStorage = localStorage;
- this.supportedDiskTypes = diskTypes;
- this.supportedHypervs = hypers;
- }
-
- @Override
- public boolean isHypervisorSupported(HypervisorType hypervisor) {
- return this.supportedHypervs.contains(hypervisor) ? true : false;
- }
-
- @Override
- public boolean isLocalStorageSupported() {
- return this.localStorage;
- }
-
- @Override
- public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType) {
- return this.supportedDiskTypes.contains(diskType) ? true : false;
- }
-
- @Override
- public long getCapacity() {
- return this.caapcity;
- }
-
- @Override
- public long getAvailableCapacity() {
- return this.avail;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
deleted file mode 100644
index 52f3bbf1e74..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import java.util.Date;
-import java.util.UUID;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.TableGenerator;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-
-import org.apache.cloudstack.storage.datastore.DataStoreStatus;
-
-import com.cloud.api.Identity;
-import com.cloud.storage.Storage.StoragePoolType;
-import com.cloud.utils.db.GenericDao;
-
-@Entity
-@Table(name="storage_pool")
-public class DataStoreVO implements Identity {
- @Id
- @TableGenerator(name="storage_pool_sq", table="sequence", pkColumnName="name", valueColumnName="value", pkColumnValue="storage_pool_seq", allocationSize=1)
- @Column(name="id", updatable=false, nullable = false)
- private long id;
-
- @Column(name="name", updatable=false, nullable=false, length=255)
- private String name = null;
-
- @Column(name="uuid", length=255)
- private String uuid = null;
-
- @Column(name="pool_type", updatable=false, nullable=false, length=32)
- private String protocol;
-
- @Column(name=GenericDao.CREATED_COLUMN)
- Date created;
-
- @Column(name=GenericDao.REMOVED_COLUMN)
- private Date removed;
-
- @Column(name="update_time", updatable=true)
- @Temporal(value=TemporalType.TIMESTAMP)
- private Date updateTime;
-
- @Column(name="data_center_id", updatable=true, nullable=false)
- private long dataCenterId;
-
- @Column(name="pod_id", updatable=true)
- private Long podId;
-
- @Column(name="available_bytes", updatable=true, nullable=true)
- private long availableBytes;
-
- @Column(name="capacity_bytes", updatable=true, nullable=true)
- private long capacityBytes;
-
- @Column(name="status", updatable=true, nullable=false)
- @Enumerated(value=EnumType.STRING)
- private DataStoreStatus status;
-
- @Column(name="storage_provider", updatable=true, nullable=false)
- private Long storageProvider;
-
- @Column(name="storage_type", nullable=false)
- private String storageType;
-
- @Column(name="host_address")
- private String hostAddress;
-
- @Column(name="path")
- private String path;
-
- @Column(name="port")
- private int port;
-
- @Column(name="user_info")
- private String userInfo;
-
- @Column(name="cluster_id")
- private Long clusterId;
-
- public long getId() {
- return id;
- }
-
- public DataStoreStatus getStatus() {
- return status;
- }
-
- public DataStoreVO() {
- // TODO Auto-generated constructor stub
- }
-
- public String getName() {
- return name;
- }
-
- public String getUuid() {
- return uuid;
- }
-
-
- public String getPoolType() {
- return protocol;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public Date getRemoved() {
- return removed;
- }
-
- public Date getUpdateTime() {
- return updateTime;
- }
-
- public long getDataCenterId() {
- return dataCenterId;
- }
-
- public long getAvailableBytes() {
- return availableBytes;
- }
-
- public Long getStorageProviderId() {
- return storageProvider;
- }
-
- public void setStorageProviderId(Long provider) {
- storageProvider = provider;
- }
-
- public String getStorageType() {
- return storageType;
- }
-
- public void setStorageType(String type) {
- storageType = type;
- }
-
- public long getCapacityBytes() {
- return capacityBytes;
- }
-
- public void setAvailableBytes(long available) {
- availableBytes = available;
- }
-
- public void setCapacityBytes(long capacity) {
- capacityBytes = capacity;
- }
-
-
- public Long getClusterId() {
- return clusterId;
- }
-
- public void setClusterId(Long clusterId) {
- this.clusterId = clusterId;
- }
-
- public String getHostAddress() {
- return hostAddress;
- }
-
- public String getPath() {
- return path;
- }
-
- public String getUserInfo() {
- return userInfo;
- }
-
- public void setStatus(DataStoreStatus status)
- {
- this.status = status;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public void setDataCenterId(long dcId) {
- this.dataCenterId = dcId;
- }
-
- public void setPodId(Long podId) {
- this.podId = podId;
- }
-
- public void setUuid(String uuid) {
- this.uuid = uuid;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-
- public void setUserInfo(String userInfo) {
- this.userInfo = userInfo;
- }
-
- public int getPort() {
- return port;
- }
-
- public Long getPodId() {
- return podId;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof DataStoreVO) || obj == null) {
- return false;
- }
- DataStoreVO that = (DataStoreVO)obj;
- return this.id == that.id;
- }
-
- @Override
- public int hashCode() {
- return new Long(id).hashCode();
- }
-
- @Override
- public String toString() {
- return new StringBuilder("Pool[").append(id).append("|").append(protocol).append("]").toString();
- }
-}
\ No newline at end of file
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
deleted file mode 100644
index 8016559a6b9..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cloudstack.storage.datastore.DataStoreStatus;
-
-import com.cloud.utils.db.GenericDao;
-
-
-public interface PrimaryDataStoreDao extends GenericDao {
-
- /**
- * @param datacenterId -- the id of the datacenter (availability zone)
- */
- List listByDataCenterId(long datacenterId);
-
- /**
- * @param datacenterId -- the id of the datacenter (availability zone)
- */
- List listBy(long datacenterId, long podId, Long clusterId);
-
- /**
- * Set capacity of storage pool in bytes
- * @param id pool id.
- * @param capacity capacity in bytes
- */
- void updateCapacity(long id, long capacity);
-
- /**
- * Set available bytes of storage pool in bytes
- * @param id pool id.
- * @param available available capacity in bytes
- */
- void updateAvailable(long id, long available);
-
-
- DataStoreVO persist(DataStoreVO pool, Map details);
-
- /**
- * Find pool by name.
- *
- * @param name name of pool.
- * @return the single StoragePoolVO
- */
- List findPoolByName(String name);
-
- /**
- * Find pools by the pod that matches the details.
- *
- * @param podId pod id to find the pools in.
- * @param details details to match. All must match for the pool to be returned.
- * @return List of StoragePoolVO
- */
- List findPoolsByDetails(long dcId, long podId, Long clusterId, Map details);
-
- List findPoolsByTags(long dcId, long podId, Long clusterId, String[] tags, Boolean shared);
-
- /**
- * Find pool by UUID.
- *
- * @param uuid uuid of pool.
- * @return the single StoragePoolVO
- */
- DataStoreVO findPoolByUUID(String uuid);
-
- List listByStorageHost(String hostFqdnOrIp);
-
- DataStoreVO findPoolByHostPath(long dcId, Long podId, String host, String path, String uuid);
-
- List listPoolByHostPath(String host, String path);
-
- void updateDetails(long poolId, Map details);
-
- Map getDetails(long poolId);
-
- List searchForStoragePoolDetails(long poolId, String value);
-
- List findIfDuplicatePoolsExistByUUID(String uuid);
-
- List listByStatus(DataStoreStatus status);
-
- long countPoolsByStatus(DataStoreStatus... statuses);
-
- List listByStatusInZone(long dcId, DataStoreStatus status);
-
- List listPoolsByCluster(long clusterId);
-}
\ No newline at end of file
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java
deleted file mode 100644
index 442949957ba..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.cloudstack.storage.datastore.DataStoreStatus;
-import org.springframework.stereotype.Component;
-
-import com.cloud.storage.StoragePoolDetailVO;
-import com.cloud.storage.dao.StoragePoolDetailsDao;
-import com.cloud.storage.dao.StoragePoolDetailsDaoImpl;
-import com.cloud.utils.component.ComponentLocator;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.GenericSearchBuilder;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.db.SearchCriteria.Func;
-import com.cloud.utils.db.SearchCriteria.Op;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@Component
-public class PrimaryDataStoreDaoImpl extends GenericDaoBase implements PrimaryDataStoreDao {
- protected final SearchBuilder AllFieldSearch;
- protected final SearchBuilder DcPodSearch;
- protected final SearchBuilder DcPodAnyClusterSearch;
- protected final SearchBuilder DeleteLvmSearch;
- protected final GenericSearchBuilder StatusCountSearch;
-
-
-
- protected final StoragePoolDetailsDao _detailsDao;
-
- private final String DetailsSqlPrefix = "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.removed is null and storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and (";
- private final String DetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?";
- private final String FindPoolTagDetails = "SELECT storage_pool_details.name FROM storage_pool_details WHERE pool_id = ? and value = ?";
-
- protected PrimaryDataStoreDaoImpl() {
- AllFieldSearch = createSearchBuilder();
- AllFieldSearch.and("name", AllFieldSearch.entity().getName(), SearchCriteria.Op.EQ);
- AllFieldSearch.and("uuid", AllFieldSearch.entity().getUuid(), SearchCriteria.Op.EQ);
- AllFieldSearch.and("datacenterId", AllFieldSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
- AllFieldSearch.and("hostAddress", AllFieldSearch.entity().getHostAddress(), SearchCriteria.Op.EQ);
- AllFieldSearch.and("status",AllFieldSearch.entity().getStatus(),SearchCriteria.Op.EQ);
- AllFieldSearch.and("path", AllFieldSearch.entity().getPath(), SearchCriteria.Op.EQ);
- AllFieldSearch.and("podId", AllFieldSearch.entity().getPodId(), Op.EQ);
- AllFieldSearch.and("clusterId", AllFieldSearch.entity().getClusterId(), Op.EQ);
- AllFieldSearch.done();
-
- DcPodSearch = createSearchBuilder();
- DcPodSearch.and("datacenterId", DcPodSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
- DcPodSearch.and().op("nullpod", DcPodSearch.entity().getPodId(), SearchCriteria.Op.NULL);
- DcPodSearch.or("podId", DcPodSearch.entity().getPodId(), SearchCriteria.Op.EQ);
- DcPodSearch.cp();
- DcPodSearch.and().op("nullcluster", DcPodSearch.entity().getClusterId(), SearchCriteria.Op.NULL);
- DcPodSearch.or("cluster", DcPodSearch.entity().getClusterId(), SearchCriteria.Op.EQ);
- DcPodSearch.cp();
- DcPodSearch.done();
-
- DcPodAnyClusterSearch = createSearchBuilder();
- DcPodAnyClusterSearch.and("datacenterId", DcPodAnyClusterSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
- DcPodAnyClusterSearch.and().op("nullpod", DcPodAnyClusterSearch.entity().getPodId(), SearchCriteria.Op.NULL);
- DcPodAnyClusterSearch.or("podId", DcPodAnyClusterSearch.entity().getPodId(), SearchCriteria.Op.EQ);
- DcPodAnyClusterSearch.cp();
- DcPodAnyClusterSearch.done();
-
- DeleteLvmSearch = createSearchBuilder();
- DeleteLvmSearch.and("ids", DeleteLvmSearch.entity().getId(), SearchCriteria.Op.IN);
- DeleteLvmSearch.and().op("LVM", DeleteLvmSearch.entity().getPoolType(), SearchCriteria.Op.EQ);
- DeleteLvmSearch.or("Filesystem", DeleteLvmSearch.entity().getPoolType(), SearchCriteria.Op.EQ);
- DeleteLvmSearch.cp();
- DeleteLvmSearch.done();
-
-
-
- StatusCountSearch = createSearchBuilder(Long.class);
- StatusCountSearch.and("status", StatusCountSearch.entity().getStatus(), SearchCriteria.Op.IN);
- StatusCountSearch.select(null, Func.COUNT, null);
- StatusCountSearch.done();
-
- _detailsDao = ComponentLocator.inject(StoragePoolDetailsDaoImpl.class);
- }
-
- @Override
- public List findPoolByName(String name) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("name", name);
- return listIncludingRemovedBy(sc);
- }
-
-
- @Override
- public DataStoreVO findPoolByUUID(String uuid) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("uuid", uuid);
- return findOneIncludingRemovedBy(sc);
- }
-
-
-
- @Override
- public List findIfDuplicatePoolsExistByUUID(String uuid) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("uuid", uuid);
- return listBy(sc);
- }
-
-
- @Override
- public List listByDataCenterId(long datacenterId) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("datacenterId", datacenterId);
- return listBy(sc);
- }
-
-
- @Override
- public void updateAvailable(long id, long available) {
- DataStoreVO pool = createForUpdate(id);
- pool.setAvailableBytes(available);
- update(id, pool);
- }
-
-
- @Override
- public void updateCapacity(long id, long capacity) {
- DataStoreVO pool = createForUpdate(id);
- pool.setCapacityBytes(capacity);
- update(id, pool);
-
- }
-
- @Override
- public List listByStorageHost(String hostFqdnOrIp) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("hostAddress", hostFqdnOrIp);
- return listIncludingRemovedBy(sc);
- }
-
- @Override
- public List listByStatus(DataStoreStatus status){
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("status", status);
- return listBy(sc);
- }
-
- @Override
- public List listByStatusInZone(long dcId, DataStoreStatus status){
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("status", status);
- sc.setParameters("datacenterId", dcId);
- return listBy(sc);
- }
-
- @Override
- public DataStoreVO findPoolByHostPath(long datacenterId, Long podId, String host, String path, String uuid) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("hostAddress", host);
- sc.setParameters("path", path);
- sc.setParameters("datacenterId", datacenterId);
- sc.setParameters("podId", podId);
- sc.setParameters("uuid", uuid);
-
- return findOneBy(sc);
- }
-
- @Override
- public List listBy(long datacenterId, long podId, Long clusterId) {
- if (clusterId != null) {
- SearchCriteria sc = DcPodSearch.create();
- sc.setParameters("datacenterId", datacenterId);
- sc.setParameters("podId", podId);
-
- sc.setParameters("cluster", clusterId);
- return listBy(sc);
- } else {
- SearchCriteria sc = DcPodAnyClusterSearch.create();
- sc.setParameters("datacenterId", datacenterId);
- sc.setParameters("podId", podId);
- return listBy(sc);
- }
- }
-
- @Override
- public List listPoolByHostPath(String host, String path) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("hostAddress", host);
- sc.setParameters("path", path);
-
- return listBy(sc);
- }
-
- public DataStoreVO listById(Integer id)
- {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("id", id);
-
- return findOneIncludingRemovedBy(sc);
- }
-
- @Override @DB
- public DataStoreVO persist(DataStoreVO pool, Map details) {
- Transaction txn = Transaction.currentTxn();
- txn.start();
- pool = super.persist(pool);
- if (details != null) {
- for (Map.Entry detail : details.entrySet()) {
- StoragePoolDetailVO vo = new StoragePoolDetailVO(pool.getId(), detail.getKey(), detail.getValue());
- _detailsDao.persist(vo);
- }
- }
- txn.commit();
- return pool;
- }
-
- @DB
- @Override
- public List findPoolsByDetails(long dcId, long podId, Long clusterId, Map details) {
- StringBuilder sql = new StringBuilder(DetailsSqlPrefix);
- if (clusterId != null) {
- sql.append("storage_pool.cluster_id = ? OR storage_pool.cluster_id IS NULL) AND (");
- }
- for (Map.Entry detail : details.entrySet()) {
- sql.append("((storage_pool_details.name='").append(detail.getKey()).append("') AND (storage_pool_details.value='").append(detail.getValue()).append("')) OR ");
- }
- sql.delete(sql.length() - 4, sql.length());
- sql.append(DetailsSqlSuffix);
- Transaction txn = Transaction.currentTxn();
- PreparedStatement pstmt = null;
- try {
- pstmt = txn.prepareAutoCloseStatement(sql.toString());
- int i = 1;
- pstmt.setLong(i++, dcId);
- pstmt.setLong(i++, podId);
- if (clusterId != null) {
- pstmt.setLong(i++, clusterId);
- }
- pstmt.setInt(i++, details.size());
- ResultSet rs = pstmt.executeQuery();
- List pools = new ArrayList();
- while (rs.next()) {
- pools.add(toEntityBean(rs, false));
- }
- return pools;
- } catch (SQLException e) {
- throw new CloudRuntimeException("Unable to execute " + pstmt, e);
- }
- }
-
- protected Map tagsToDetails(String[] tags) {
- Map details = new HashMap(tags.length);
- for (String tag: tags) {
- details.put(tag, "true");
- }
- return details;
- }
-
- @Override
- public List findPoolsByTags(long dcId, long podId, Long clusterId, String[] tags, Boolean shared) {
- List storagePools = null;
- if (tags == null || tags.length == 0) {
- storagePools = listBy(dcId, podId, clusterId);
- } else {
- Map details = tagsToDetails(tags);
- storagePools = findPoolsByDetails(dcId, podId, clusterId, details);
- }
-
- if (shared == null) {
- return storagePools;
- } else {
- List filteredStoragePools = new ArrayList(storagePools);
- for (DataStoreVO pool : storagePools) {
- /*
- if (shared != pool.isShared()) {
- filteredStoragePools.remove(pool);
- }*/
- }
-
- return filteredStoragePools;
- }
- }
-
- @Override
- @DB
- public List searchForStoragePoolDetails(long poolId, String value){
-
- StringBuilder sql = new StringBuilder(FindPoolTagDetails);
-
- Transaction txn = Transaction.currentTxn();
- PreparedStatement pstmt = null;
- try {
- pstmt = txn.prepareAutoCloseStatement(sql.toString());
- pstmt.setLong(1, poolId);
- pstmt.setString(2, value);
-
- ResultSet rs = pstmt.executeQuery();
- List tags = new ArrayList();
-
- while (rs.next()) {
- tags.add(rs.getString("name"));
- }
- return tags;
- } catch (SQLException e) {
- throw new CloudRuntimeException("Unable to execute " + pstmt.toString(), e);
- }
-
- }
-
- @Override
- public void updateDetails(long poolId, Map details) {
- if (details != null) {
- _detailsDao.update(poolId, details);
- }
- }
-
- @Override
- public Map getDetails(long poolId) {
- return _detailsDao.getDetails(poolId);
- }
-
- @Override
- public boolean configure(String name, Map params) throws ConfigurationException {
- super.configure(name, params);
- _detailsDao.configure("DetailsDao", params);
- return true;
- }
-
-
-
- @Override
- public long countPoolsByStatus( DataStoreStatus... statuses) {
- SearchCriteria sc = StatusCountSearch.create();
-
- sc.setParameters("status", (Object[])statuses);
-
- List rs = customSearchIncludingRemoved(sc, null);
- if (rs.size() == 0) {
- return 0;
- }
-
- return rs.get(0);
- }
-
- @Override
- public List listPoolsByCluster(long clusterId) {
- SearchCriteria sc = AllFieldSearch.create();
- sc.setParameters("clusterId", clusterId);
-
- return listBy(sc);
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDao.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDao.java
deleted file mode 100644
index cebcacf3bdc..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDao.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import com.cloud.utils.db.GenericDao;
-
-public interface PrimaryDataStoreProviderDao extends GenericDao {
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDaoImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDaoImpl.java
deleted file mode 100644
index bd0571d6be0..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderDaoImpl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import org.springframework.stereotype.Component;
-
-import com.cloud.utils.db.GenericDaoBase;
-
-@Component
-class PrimaryDataStoreProviderDaoImpl extends GenericDaoBase implements PrimaryDataStoreProviderDao {
-
-}
\ No newline at end of file
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderVO.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderVO.java
deleted file mode 100644
index 0d155802464..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreProviderVO.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.storage.datastore.db;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.TableGenerator;
-
-@Entity
-@Table(name="data_store_provider")
-public class PrimaryDataStoreProviderVO {
- @Id
- @TableGenerator(name="data_store_provider_sq", table="sequence", pkColumnName="name", valueColumnName="value", pkColumnValue="data_store_provider_seq", allocationSize=1)
- @Column(name="id", updatable=false, nullable = false)
- private long id;
-
- public long getId() {
- return id;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java
deleted file mode 100644
index 935f2140b86..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.cloudstack.storage.datastore.driver;
-
-import java.util.List;
-
-import org.apache.cloudstack.storage.EndPoint;
-import org.apache.cloudstack.storage.command.CreateVolumeAnswer;
-import org.apache.cloudstack.storage.command.CreateVolumeCommand;
-import org.apache.cloudstack.storage.volume.Volume;
-import org.apache.cloudstack.storage.volume.VolumeInfo;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import com.cloud.agent.api.Answer;
-
-@Component
-public class DefaultPrimaryDataStoreDriverImpl implements
- PrimaryDataStoreDriver {
- private static final Logger s_logger = Logger.getLogger(DefaultPrimaryDataStoreDriverImpl.class);
- @Override
- public boolean createVolume(Volume vol) {
- //The default driver will send createvolume command to one of hosts which can access its datastore
- List endPoints = vol.getDataStore().getEndPoints();
- int retries = 3;
- VolumeInfo volInfo = new VolumeInfo(vol);
- CreateVolumeCommand createCmd = new CreateVolumeCommand(volInfo);
- Answer answer = null;
- int i = 0;
- boolean result = false;
-
- for (EndPoint ep : endPoints) {
- answer = ep.sendMessage(createCmd);
- if (answer == null) {
- if (i < retries) {
- s_logger.debug("create volume failed, retrying: " + i);
- }
- i++;
- } else {
- CreateVolumeAnswer volAnswer = (CreateVolumeAnswer)answer;
- vol.setUuid(volAnswer.getVolumeUuid());
- result = true;
- }
- }
-
- return result;
- }
-
- @Override
- public boolean deleteVolume(Volume vo) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public String grantAccess(Volume vol, EndPoint ep) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean revokeAccess(Volume vol, EndPoint ep) {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/PrimaryDataStoreDriver.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/PrimaryDataStoreDriver.java
deleted file mode 100644
index a35118a97b6..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/driver/PrimaryDataStoreDriver.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.apache.cloudstack.storage.datastore.driver;
-
-import org.apache.cloudstack.storage.EndPoint;
-import org.apache.cloudstack.storage.volume.Volume;
-
-public interface PrimaryDataStoreDriver {
- boolean createVolume(Volume vol);
- boolean deleteVolume(Volume vo);
- String grantAccess(Volume vol, EndPoint ep);
- boolean revokeAccess(Volume vol, EndPoint ep);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java
deleted file mode 100644
index fe4562c9102..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.storage.datastore.lifecycle;
-
-import java.util.Map;
-
-import org.springframework.stereotype.Component;
-
-@Component
-public class DefaultPrimaryDataStoreLifeCycleImpl implements PrimaryDataStoreLifeCycle {
-
- @Override
- public boolean registerDataStore(Map dsInfos) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean attach(long scope) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean dettach(long dataStoreId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean unmanaged(long dataStoreId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean maintain(long dataStoreId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean cancelMaintain(long dataStoreId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean deleteDataStore(long dataStoreId) {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/PrimaryDataStoreLifeCycle.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/PrimaryDataStoreLifeCycle.java
deleted file mode 100644
index 2e41a62ee4a..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/lifecycle/PrimaryDataStoreLifeCycle.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.storage.datastore.lifecycle;
-
-import java.util.Map;
-
-public interface PrimaryDataStoreLifeCycle {
- public boolean registerDataStore(Map dsInfos);
- public boolean attach(long scope);
- public boolean dettach(long dataStoreId);
- public boolean unmanaged(long dataStoreId);
- public boolean maintain(long dataStoreId);
- public boolean cancelMaintain(long dataStoreId);
- public boolean deleteDataStore(long dataStoreId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreManagerImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreManagerImpl.java
deleted file mode 100644
index 4949b2faf67..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreManagerImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.storage.datastore.manager;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
-import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreProviderDao;
-import org.apache.cloudstack.storage.datastore.lifecycle.PrimaryDataStoreLifeCycle;
-import org.apache.cloudstack.storage.datastore.provider.PrimaryDataStoreProvider;
-import org.apache.cloudstack.storage.datastore.provider.PrimaryDataStoreProviderManager;
-import org.springframework.stereotype.Component;
-
-@Component
-public class DefaultPrimaryDataStoreManagerImpl implements PrimaryDataStoreManager {
- @Inject
- PrimaryDataStoreProviderDao dataStoreProviderDao;
- @Inject
- PrimaryDataStoreProviderManager providerManager;
- @Inject
- PrimaryDataStoreDao dataStoreDao;
- @Override
- public PrimaryDataStore getPrimaryDataStore(long dataStoreId) {
- DataStoreVO dataStoreVO = dataStoreDao.findById(dataStoreId);
- Long providerId = dataStoreVO.getStorageProviderId();
- PrimaryDataStoreProvider provider = providerManager.getDataStoreProvider(providerId);
- PrimaryDataStore dataStore = provider.getDataStore(dataStoreId);
- return dataStore;
- }
-
- @Override
- public PrimaryDataStoreLifeCycle getPrimaryDataStoreLifeCycle(long dataStoreId) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreManager.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreManager.java
deleted file mode 100644
index b6ac34d3d76..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.storage.datastore.manager;
-
-import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
-import org.apache.cloudstack.storage.datastore.lifecycle.PrimaryDataStoreLifeCycle;
-
-public interface PrimaryDataStoreManager {
- public PrimaryDataStore getPrimaryDataStore(long dataStoreId);
- public PrimaryDataStoreLifeCycle getPrimaryDataStoreLifeCycle(long dataStoreId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java
deleted file mode 100644
index 7ca9000d281..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.apache.cloudstack.storage.datastore.provider;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.storage.datastore.DefaultPrimaryDataStoreImpl;
-import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
-import org.apache.cloudstack.storage.datastore.PrimaryDataStoreInfo;
-import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.driver.DefaultPrimaryDataStoreDriverImpl;
-import org.apache.cloudstack.storage.datastore.driver.PrimaryDataStoreDriver;
-import org.springframework.stereotype.Component;
-
-import com.cloud.utils.component.ComponentInject;
-
-@Component
-public class DefaultPrimaryDatastoreProviderImpl implements
- PrimaryDataStoreProvider {
- protected PrimaryDataStoreDriver driver;
- @Inject
- public PrimaryDataStoreDao dataStoreDao;
-
- public DefaultPrimaryDatastoreProviderImpl() {
- this.driver = new DefaultPrimaryDataStoreDriverImpl();
- }
- @Override
- public PrimaryDataStore getDataStore(long dataStoreId) {
- DataStoreVO dsv = dataStoreDao.findById(dataStoreId);
- if (dsv == null) {
- return null;
- }
-
- PrimaryDataStore pds = new DefaultPrimaryDataStoreImpl(driver, dsv, null);
- pds = ComponentInject.inject(pds);
- return pds;
- }
-
- @Override
- public PrimaryDataStoreInfo getDataStoreInfo(long dataStoreId) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProvider.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProvider.java
deleted file mode 100644
index a346d3206dc..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.cloudstack.storage.datastore.provider;
-
-import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
-import org.apache.cloudstack.storage.datastore.PrimaryDataStoreInfo;
-
-public interface PrimaryDataStoreProvider {
- public PrimaryDataStore getDataStore(long dataStoreId);
- public PrimaryDataStoreInfo getDataStoreInfo(long dataStoreId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java
deleted file mode 100644
index 4ef9a5c75ee..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.cloudstack.storage.datastore.provider;
-
-public interface PrimaryDataStoreProviderManager {
- public PrimaryDataStoreProvider getDataStoreProvider(Long providerId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManagerImpl.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManagerImpl.java
deleted file mode 100644
index 08755530c11..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManagerImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.storage.datastore.provider;
-
-import org.springframework.stereotype.Component;
-
-@Component
-public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager {
-
- @Override
- public PrimaryDataStoreProvider getDataStoreProvider(Long providerId) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/DataStoreType.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/type/DataStoreType.java
deleted file mode 100644
index 8f3fe8ca8ca..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/DataStoreType.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.storage.datastore.type;
-
-public interface DataStoreType {
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/ISCSI.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/type/ISCSI.java
deleted file mode 100644
index 26d36def426..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/ISCSI.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.storage.datastore.type;
-
-import org.apache.cloudstack.storage.BaseType;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ISCSI extends BaseType implements DataStoreType {
- private final String type = "iscsi";
- @Override
- public String toString() {
- return type;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/NetworkFileSystem.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/type/NetworkFileSystem.java
deleted file mode 100644
index 9340975f87c..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/NetworkFileSystem.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.storage.datastore.type;
-
-import org.apache.cloudstack.storage.BaseType;
-import org.springframework.stereotype.Component;
-
-@Component
-public class NetworkFileSystem extends BaseType implements DataStoreType {
- private final String type = "nfs";
- @Override
- public String toString() {
- return type;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/SharedMount.java b/platform/storage/src/org/apache/cloudstack/storage/datastore/type/SharedMount.java
deleted file mode 100644
index c97a8939833..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/datastore/type/SharedMount.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.storage.datastore.type;
-
-import org.apache.cloudstack.storage.BaseType;
-
-public class SharedMount extends BaseType implements DataStoreType {
- private final String type = "SharedMountPoint";
- @Override
- public String toString() {
- return type;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/driver/AbstractStorageDriver.java b/platform/storage/src/org/apache/cloudstack/storage/driver/AbstractStorageDriver.java
deleted file mode 100644
index 245af06f79f..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/driver/AbstractStorageDriver.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.storage.driver;
-
-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.DataStoreEndPoint;
-import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
-import com.cloud.agent.api.storage.DownloadProgressCommand;
-import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
-import com.cloud.agent.api.storage.DownloadCommand;
-import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer;
-import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand;
-
-public abstract class AbstractStorageDriver implements DataStoreDriver {
- protected DataStore _ds;
- protected TemplateStrategy _ts;
-
- public AbstractStorageDriver(DataStore ds) {
- _ds = ds;
- _ts = ds.getTemplateStrategy();
- }
-
- public TemplateProfile install(TemplateProfile tp, DataStoreEndPoint ep) {
- PrimaryStorageDownloadCommand dcmd = new PrimaryStorageDownloadCommand(tp.getName(), tp.getUrl(), tp.getFormat(),
- 0, _ds.getId(), _ds.getUUID(), _ts.getDownloadWait());
- dcmd.setSecondaryStorageUrl(tp.getImageStorageUri());
- dcmd.setPrimaryStorageUrl(_ds.getURI());
- PrimaryStorageDownloadAnswer asw = (PrimaryStorageDownloadAnswer)ep.sendCommand(dcmd);
-
- tp.setLocalPath(asw.getInstallPath());
- return tp;
- }
-
- public TemplateProfile register(TemplateProfile tp, DataStoreEndPoint ep, boolean freshDownload) {
-
- DownloadCommand dcmd =
- new DownloadCommand(_ds.getURI(), tp.getTemplate(), _ts.getMaxTemplateSizeInBytes());
- dcmd.setProxy(_ts.getHttpProxy());
- if (!freshDownload) {
- dcmd = new DownloadProgressCommand(dcmd, tp.getJobId(), RequestType.GET_OR_RESTART);
- }
-
- ep.sendCommand(dcmd);
- return tp;
- }
- /*
- public VolumeProfile createVolumeFromTemplate(VolumeProfile volProfile, TemplateProfile tp, DataStoreEndPoint ep) {
- CreateCommand cmd = new CreateCommand(volProfile, tp.getLocalPath(), _ds.getTO());
- CreateAnswer ans = (CreateAnswer)ep.sendCommand(cmd);
- VolumeTO created = ans.getVolume();
- DiskProfile diskProfile = new VolumeProfile(volProfile);
- diskProfile.setPath(created.getPath());
- diskProfile.setSize(created.getSize());
- return diskProfile;
- return null;
- }*/
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/driver/DefaultNfsSecondaryDriver.java b/platform/storage/src/org/apache/cloudstack/storage/driver/DefaultNfsSecondaryDriver.java
deleted file mode 100644
index 8e6fa1d8b3d..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/driver/DefaultNfsSecondaryDriver.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.storage.driver;
-
-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.DataStoreEndPoint;
-import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-import com.cloud.storage.TemplateProfile;
-
-public class DefaultNfsSecondaryDriver extends AbstractStorageDriver {
-
- /**
- * @param ds
- */
- public DefaultNfsSecondaryDriver(DataStore ds) {
- super(ds);
- // TODO Auto-generated constructor stub
- }
-
- public String getDriverType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public TemplateProfile register(TemplateProfile tp, DataStoreEndPoint ep) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject create(DataObject obj) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject copy(DataObject src, DataStore dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject copy(DataObject src, DataObject dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject move(DataObject src, DataObject dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Answer sendMessage(DataStoreEndPoint dsep, Command cmd) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean delete(DataObject obj) {
- // TODO Auto-generated method stub
- 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;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/driver/XenServerStorageDriver.java b/platform/storage/src/org/apache/cloudstack/storage/driver/XenServerStorageDriver.java
deleted file mode 100644
index 811b4c7f787..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/driver/XenServerStorageDriver.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.storage.driver;
-
-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.DataStoreEndPoint;
-import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-
-
-public class XenServerStorageDriver extends AbstractStorageDriver {
- protected DataStore _ds;
- public XenServerStorageDriver(DataStore ds) {
- super(ds);
- _ds = ds;
- }
-
- public String getDriverType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject create(DataObject obj) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject copy(DataObject src, DataStore dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject copy(DataObject src, DataObject dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataObject move(DataObject src, DataObject dest) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Answer sendMessage(DataStoreEndPoint dsep, Command cmd) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean delete(DataObject obj) {
- // TODO Auto-generated method stub
- 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;
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageManager.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageManager.java
deleted file mode 100644
index ffe0efe48cd..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageManager.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.storage.image;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
-
-
-import com.cloud.api.commands.RegisterTemplateCmd;
-
-
-public interface ImageManager {
- TemplateProfile AssociateTemplateStoragePool(TemplateProfile tp, DataStore ds);
- TemplateProfile getProfile(long templateId);
- TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageManagerImpl.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageManagerImpl.java
deleted file mode 100644
index 7c956da6914..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageManagerImpl.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * 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.storage.image;
-
-import java.util.List;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
-import org.apache.log4j.Logger;
-
-import com.cloud.api.commands.RegisterTemplateCmd;
-import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.storage.Storage.ImageFormat;
-import com.cloud.storage.Storage.TemplateType;
-import com.cloud.storage.VMTemplateHostVO;
-import com.cloud.storage.VMTemplateStoragePoolVO;
-import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
-import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.storage.dao.VMTemplatePoolDao;
-import com.cloud.template.VirtualMachineTemplate;
-import com.cloud.utils.EnumUtils;
-import com.cloud.utils.component.Inject;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-public class ImageManagerImpl implements ImageManager {
- private static final Logger s_logger = Logger.getLogger(ImageManagerImpl.class);
- @Inject
- VMTemplateDao _templateDao;
- @Inject
- VMTemplatePoolDao _templatePoolDao;
- @Inject
- DataCenterDao _dcDao;
-
- public boolean contains(VirtualMachineTemplate template, DataStore ds) {
- long templateId = template.getId();
- long poolId = ds.getId();
- VMTemplateStoragePoolVO templateStoragePoolRef = null;
- templateStoragePoolRef = _templatePoolDao.findByPoolTemplate(poolId, templateId);
- return templateStoragePoolRef == null ? false : true;
- }
-
- public TemplateProfile AssociateTemplateStoragePool(TemplateProfile tp, DataStore ds) {
- long templateId = tp.getTemplateId();
- long poolId = ds.getId();
- VMTemplateStoragePoolVO templateStoragePoolRef = null;
- long templateStoragePoolRefId;
-
- templateStoragePoolRef = _templatePoolDao.findByPoolTemplate(poolId, templateId);
- if (templateStoragePoolRef != null) {
- templateStoragePoolRef.setMarkedForGC(false);
- _templatePoolDao.update(templateStoragePoolRef.getId(), templateStoragePoolRef);
-
- if (templateStoragePoolRef.getDownloadState() == Status.DOWNLOADED) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Template " + templateId + " has already been downloaded to pool " + poolId);
- }
-
- tp.setLocalPath(templateStoragePoolRef.getInstallPath());
- tp.setTemplatePoolRefId(templateStoragePoolRef.getId());
- return tp;
- }
- }
-
- if (templateStoragePoolRef == null) {
- templateStoragePoolRef = new VMTemplateStoragePoolVO(poolId, templateId);
- try {
- templateStoragePoolRef = _templatePoolDao.persist(templateStoragePoolRef);
- templateStoragePoolRefId = templateStoragePoolRef.getId();
- } catch (Exception e) {
- s_logger.debug("Assuming we're in a race condition: " + e.getMessage());
- templateStoragePoolRef = _templatePoolDao.findByPoolTemplate(poolId, templateId);
- if (templateStoragePoolRef == null) {
- throw new CloudRuntimeException("Unable to persist a reference for pool " + poolId + " and template " + templateId);
- }
- templateStoragePoolRefId = templateStoragePoolRef.getId();
- }
- } else {
- templateStoragePoolRefId = templateStoragePoolRef.getId();
- }
- tp.setTemplatePoolRefId(templateStoragePoolRefId);
- return tp;
- }
-
- public TemplateProfile getProfile(long templateId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- protected TemplateProfile persistTemplate(TemplateProfile profile) {
- Long zoneId = profile.getZoneId();
- VMTemplateVO template = new VMTemplateVO(profile.getTemplateId(), profile.getName(), profile.getFormat(), profile.getIsPublic(),
- profile.getFeatured(), profile.getIsExtractable(), TemplateType.USER, profile.getUrl(), profile.getRequiresHVM(),
- profile.getBits(), profile.getAccountId(), profile.getCheckSum(), profile.getDisplayText(),
- profile.getPasswordEnabled(), profile.getGuestOsId(), profile.getBootable(), profile.getHypervisorType(), profile.getTemplateTag(),
- profile.getDetails(), profile.getSshKeyEnabled());
-
- if (zoneId == null || zoneId.longValue() == -1) {
- List dcs = _dcDao.listAll();
-
- if (dcs.isEmpty()) {
- throw new CloudRuntimeException("No zones are present in the system, can't add template");
- }
-
- template.setCrossZones(true);
- for (DataCenterVO dc: dcs) {
- _templateDao.addTemplateToZone(template, dc.getId());
- }
- } else {
- _templateDao.addTemplateToZone(template, zoneId);
- }
-
- return getProfile(template.getId());
- }
-
- protected boolean parameterCheck(RegisterTemplateCmd cmd) {
- Long zoneId = cmd.getZoneId();
- if (zoneId == -1) {
- zoneId = null;
- }
-
- ImageFormat imgfmt = ImageFormat.valueOf(cmd.getFormat().toUpperCase());
- if (imgfmt == null) {
- throw new IllegalArgumentException("Image format is incorrect " + cmd.getFormat() + ". Supported formats are " + EnumUtils.listValues(ImageFormat.values()));
- }
-
- // If a zoneId is specified, make sure it is valid
- if (zoneId != null) {
- DataCenterVO zone = _dcDao.findById(zoneId);
- if (zone == null) {
- throw new IllegalArgumentException("Please specify a valid zone.");
- }
- }
-
- List systemvmTmplts = _templateDao.listAllSystemVMTemplates();
- for (VMTemplateVO template : systemvmTmplts) {
- if (template.getName().equalsIgnoreCase(cmd.getTemplateName()) || template.getDisplayText().equalsIgnoreCase(cmd.getDisplayText())) {
- throw new IllegalArgumentException("Cannot use reserved names for templates");
- }
- }
-
- return true;
- }
-
- public TemplateProfile allocateTemplateInDB(RegisterTemplateCmd cmd) {
- parameterCheck(cmd);
- //TemplateProfile tp = new TemplateProfile(cmd);
- return persistTemplate(null);
- }
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
deleted file mode 100644
index dd35e5d70c4..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.storage.image;
-
-public interface ImageMotionService {
- boolean copyTemplate(String templateUri, String destTemplateUri);
- boolean copyIso(String isoUri, String destIsoUri);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestrator.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestrator.java
deleted file mode 100644
index f759d6b130f..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestrator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.storage.image;
-
-public interface ImageOrchestrator {
- void registerTemplate(long templateId);
- void registerSnapshot(long snapshotId);
- void registerVolume(long volumeId);
- void registerIso(long isoId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestratorImpl.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestratorImpl.java
deleted file mode 100644
index 43c262da227..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageOrchestratorImpl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.storage.image;
-
-import java.util.List;
-
-import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotProfile;
-import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
-import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
-import org.apache.cloudstack.storage.manager.SecondaryStorageManager;
-
-import com.cloud.storage.TemplateProfile;
-import com.cloud.storage.VMTemplateZoneVO;
-import com.cloud.storage.dao.VMTemplateZoneDao;
-import com.cloud.utils.component.Inject;
-
-public class ImageOrchestratorImpl implements ImageOrchestrator {
- @Inject
- SecondaryStorageManager _secStorageMgr;
- @Inject
- VMTemplateZoneDao _templateZoneDao;
- public void registerTemplate(long templateId) {
- List tpZones = _templateZoneDao.listByTemplateId(templateId);
-
- for (VMTemplateZoneVO tpZone : tpZones) {
- DataStore imageStore = null;
- List imageStores = _secStorageMgr.getImageStores(tpZone.getZoneId());
- for (DataStore imgStore : imageStores) {
- TemplateStrategy ts = imgStore.getTemplateStrategy();
- if (ts.canRegister(templateId)) {
- imageStore = imgStore;
- break;
- }
- }
-
- if (imageStore == null) {
- continue;
- }
-
- TemplateStrategy ts = imageStore.getTemplateStrategy();
- ts.register(ts.get(templateId));
- }
- }
-
- public void registerSnapshot(long snapshotId) {
- // TODO Auto-generated method stub
-
- }
-
- public void registerVolume(long volumeId) {
- // TODO Auto-generated method stub
-
- }
-
- public void registerIso(long isoId) {
- // TODO Auto-generated method stub
-
- }
-
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageService.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageService.java
deleted file mode 100644
index ebdc594f151..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageService.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.storage.image;
-
-public interface ImageService {
- boolean registerTemplate(long templateId, long imageStoreId);
- boolean deleteTemplate(long templateId);
- long registerIso(String isoUrl, long accountId);
- boolean deleteIso(long isoId);
- String grantTemplateAccess(long templateId, long endpointId);
- boolean revokeTemplateAccess(long templateId, long endpointId);
- String grantIsoAccess(long isoId, long endpointId);
- boolean revokeIsoAccess(long isoId, long endpointId);
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java b/platform/storage/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
deleted file mode 100644
index 68491922f3a..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.storage.image;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.storage.image.downloader.ImageDownloader;
-import org.apache.cloudstack.storage.image.manager.ImageDataStoreManager;
-import org.apache.cloudstack.storage.image.store.ImageDataStore;
-
-public class ImageServiceImpl implements ImageService {
-
- @Inject
- ImageDataStoreManager imageStoreMgr;
- @Override
- public boolean registerTemplate(long templateId, long imageStoreId) {
- ImageDataStore ids = imageStoreMgr.getImageDataStore(imageStoreId);
- Template template = ids.registerTemplate(templateId);
- if (ids.needDownloadToCacheStorage()) {
- ImageDownloader imageDl = ids.getImageDownloader();
- imageDl.downloadImage(template);
- }
- return true;
- }
-
- @Override
- public boolean deleteTemplate(long templateId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public long registerIso(String isoUrl, long accountId) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public boolean deleteIso(long isoId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public String grantTemplateAccess(long templateId, long endpointId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean revokeTemplateAccess(long templateId, long endpointId) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public String grantIsoAccess(long isoId, long endpointId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean revokeIsoAccess(long isoId, long endpointId) {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/Template.java b/platform/storage/src/org/apache/cloudstack/storage/image/Template.java
deleted file mode 100644
index 4fc6b53b305..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/Template.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.storage.image;
-
-import org.apache.cloudstack.storage.image.db.ImageDataVO;
-import org.apache.cloudstack.storage.image.store.ImageDataStore;
-
-public class Template {
- protected ImageDataVO imageVO;
- protected ImageDataStore dataStore;
- public Template(ImageDataStore dataStore, ImageDataVO imageVO) {
- this.dataStore = dataStore;
- this.imageVO = imageVO;
- }
-
- public ImageDataStore getImageDataStore() {
- return this.dataStore;
- }
-
- public String getTemplate
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDao.java b/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDao.java
deleted file mode 100644
index 3e1a951e295..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDao.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.storage.image.db;
-
-import com.cloud.utils.db.GenericDao;
-
-public interface ImageDaoStoreDao extends GenericDao {
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDaoImpl.java b/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDaoImpl.java
deleted file mode 100644
index 01dd62ede43..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDaoStoreDaoImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.storage.image.db;
-
-import com.cloud.utils.db.GenericDaoBase;
-
-public class ImageDaoStoreDaoImpl extends GenericDaoBase implements ImageDaoStoreDao {
-
-}
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDao.java b/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDao.java
deleted file mode 100644
index b336ffa2db5..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDao.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.storage.image.db;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.cloud.domain.DomainVO;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.projects.Project.ListProjectResourcesCriteria;
-import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
-import com.cloud.user.Account;
-import com.cloud.utils.Pair;
-import com.cloud.utils.db.GenericDao;
-
-public interface ImageDataDao extends GenericDao {
- public List listByPublic();
- public ImageDataVO findByName(String templateName);
- public ImageDataVO findByTemplateName(String templateName);
-
- //public void update(ImageDataVO template);
-
-
- public List listAllSystemVMTemplates();
-
- public List listDefaultBuiltinTemplates();
- public String getRoutingTemplateUniqueName();
- public List findIsosByIdAndPath(Long domainId, Long accountId, String path);
- public List listReadyTemplates();
- public List listByAccountId(long accountId);
- public Set> searchTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso,
- List hypers, Boolean bootable, DomainVO domain, Long pageSize, Long startIndex, Long zoneId,
- HypervisorType hyperType, boolean onlyReady, boolean showDomr, List permittedAccounts, Account caller,
- ListProjectResourcesCriteria listProjectResourcesCriteria, Map tags);
-
- public Set> searchSwiftTemplates(String name, String keyword, TemplateFilter templateFilter,
- boolean isIso, List hypers, Boolean bootable, DomainVO domain, Long pageSize, Long startIndex,
- Long zoneId, HypervisorType hyperType, boolean onlyReady, boolean showDomr, List permittedAccounts, Account caller, Map tags);
-
- public long addTemplateToZone(ImageDataVO tmplt, long zoneId);
- public List listAllInZone(long dataCenterId);
-
- public List listByHypervisorType(List hyperTypes);
- public List publicIsoSearch(Boolean bootable, boolean listRemoved, Map tags);
- public List userIsoSearch(boolean listRemoved);
- ImageDataVO findSystemVMTemplate(long zoneId);
- ImageDataVO findSystemVMTemplate(long zoneId, HypervisorType hType);
-
- ImageDataVO findRoutingTemplate(HypervisorType type);
- List listPrivateTemplatesByHost(Long hostId);
- public Long countTemplatesForAccount(long accountId);
-
-}
-
diff --git a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDaoImpl.java b/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDaoImpl.java
deleted file mode 100644
index 8ba557593b6..00000000000
--- a/platform/storage/src/org/apache/cloudstack/storage/image/db/ImageDataDaoImpl.java
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * 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.storage.image.db;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.cloudstack.storage.image.format.ISO;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import com.cloud.api.BaseCmd;
-import com.cloud.configuration.dao.ConfigurationDao;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.domain.DomainVO;
-import com.cloud.domain.dao.DomainDao;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDao;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.projects.Project.ListProjectResourcesCriteria;
-import com.cloud.server.ResourceTag.TaggedResourceType;
-import com.cloud.storage.Storage;
-import com.cloud.storage.VMTemplateZoneVO;
-import com.cloud.storage.Storage.TemplateType;
-import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
-import com.cloud.storage.dao.VMTemplateDaoImpl;
-import com.cloud.storage.dao.VMTemplateDetailsDao;
-import com.cloud.storage.dao.VMTemplateZoneDao;
-import com.cloud.tags.ResourceTagVO;
-import com.cloud.tags.dao.ResourceTagsDaoImpl;
-import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
-import com.cloud.user.Account;
-import com.cloud.utils.Pair;
-import com.cloud.utils.component.ComponentLocator;
-import com.cloud.utils.component.Inject;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Filter;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.GenericSearchBuilder;
-import com.cloud.utils.db.JoinBuilder;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.db.SearchCriteria.Func;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@Component
-public class ImageDataDaoImpl extends GenericDaoBase implements ImageDataDao {
- private static final Logger s_logger = Logger.getLogger(VMTemplateDaoImpl.class);
-
- @Inject
- VMTemplateZoneDao _templateZoneDao;
- @Inject
- VMTemplateDetailsDao _templateDetailsDao;
-
- @Inject
- ConfigurationDao _configDao;
- @Inject
- HostDao _hostDao;
- @Inject
- DomainDao _domainDao;
- @Inject
- DataCenterDao _dcDao;
- private final String SELECT_TEMPLATE_HOST_REF = "SELECT t.id, h.data_center_id, t.unique_name, t.name, t.public, t.featured, t.type, t.hvm, t.bits, t.url, t.format, t.created, t.account_id, " +
- "t.checksum, t.display_text, t.enable_password, t.guest_os_id, t.bootable, t.prepopulate, t.cross_zones, t.hypervisor_type FROM vm_template t";
-
- private final String SELECT_TEMPLATE_ZONE_REF = "SELECT t.id, tzr.zone_id, t.unique_name, t.name, t.public, t.featured, t.type, t.hvm, t.bits, t.url, t.format, t.created, t.account_id, " +
- "t.checksum, t.display_text, t.enable_password, t.guest_os_id, t.bootable, t.prepopulate, t.cross_zones, t.hypervisor_type FROM vm_template t INNER JOIN template_zone_ref tzr on (t.id = tzr.template_id) ";
-
- private final String SELECT_TEMPLATE_SWIFT_REF = "SELECT t.id, t.unique_name, t.name, t.public, t.featured, t.type, t.hvm, t.bits, t.url, t.format, t.created, t.account_id, "
- + "t.checksum, t.display_text, t.enable_password, t.guest_os_id, t.bootable, t.prepopulate, t.cross_zones, t.hypervisor_type FROM vm_template t";
- protected SearchBuilder TemplateNameSearch;
- protected SearchBuilder UniqueNameSearch;
- protected SearchBuilder tmpltTypeSearch;
- protected SearchBuilder tmpltTypeHyperSearch;
- protected SearchBuilder tmpltTypeHyperSearch2;
-
- protected SearchBuilder AccountIdSearch;
- protected SearchBuilder NameSearch;
- protected SearchBuilder TmpltsInZoneSearch;
- private SearchBuilder PublicSearch;
- private SearchBuilder NameAccountIdSearch;
- private SearchBuilder PublicIsoSearch;
- private SearchBuilder UserIsoSearch;
- private GenericSearchBuilder CountTemplatesByAccount;
-
- ResourceTagsDaoImpl _tagsDao = ComponentLocator.inject(ResourceTagsDaoImpl.class);
-
-
- private String routerTmpltName;
- private String consoleProxyTmpltName;
-
- protected ImageDataDaoImpl() {
- }
-
- @Override
- public List listByPublic() {
- SearchCriteria sc = PublicSearch.create();
- sc.setParameters("public", 1);
- return listBy(sc);
- }
-
- @Override
- public ImageDataVO findByName(String templateName) {
- SearchCriteria sc = UniqueNameSearch.create();
- sc.setParameters("uniqueName", templateName);
- return findOneIncludingRemovedBy(sc);
- }
-
- @Override
- public ImageDataVO findByTemplateName(String templateName) {
- SearchCriteria sc = NameSearch.create();
- sc.setParameters("name", templateName);
- return findOneIncludingRemovedBy(sc);
- }
-
- @Override
- public List publicIsoSearch(Boolean bootable, boolean listRemoved, Map tags){
-
- SearchBuilder sb = null;
- if (tags == null || tags.isEmpty()) {
- sb = PublicIsoSearch;
- } else {
- sb = createSearchBuilder();
- sb.and("public", sb.entity().isPublicTemplate(), SearchCriteria.Op.EQ);
- sb.and("format", sb.entity().getFormat(), SearchCriteria.Op.EQ);
- sb.and("type", sb.entity().getTemplateType(), SearchCriteria.Op.EQ);
- sb.and("bootable", sb.entity().isBootable(), SearchCriteria.Op.EQ);
- sb.and("removed", sb.entity().getRemoved(), SearchCriteria.Op.EQ);
-
- SearchBuilder tagSearch = _tagsDao.createSearchBuilder();
- for (int count=0; count < tags.size(); count++) {
- tagSearch.or().op("key" + String.valueOf(count), tagSearch.entity().getKey(), SearchCriteria.Op.EQ);
- tagSearch.and("value" + String.valueOf(count), tagSearch.entity().getValue(), SearchCriteria.Op.EQ);
- tagSearch.cp();
- }
- tagSearch.and("resourceType", tagSearch.entity().getResourceType(), SearchCriteria.Op.EQ);
- sb.groupBy(sb.entity().getId());
- sb.join("tagSearch", tagSearch, sb.entity().getId(), tagSearch.entity().getResourceId(), JoinBuilder.JoinType.INNER);
- }
-
- SearchCriteria sc = sb.create();
-
- sc.setParameters("public", 1);
- sc.setParameters("format", "ISO");
- sc.setParameters("type", TemplateType.PERHOST.toString());
- if (bootable != null) {
- sc.setParameters("bootable", bootable);
- }
-
- if (!listRemoved) {
- sc.setParameters("removed", (Object)null);
- }
-
- if (tags != null && !tags.isEmpty()) {
- int count = 0;
- sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.ISO.toString());
- for (String key : tags.keySet()) {
- sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key);
- sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key));
- count++;
- }
- }
-
- return listBy(sc);
- }
-
- @Override
- public List userIsoSearch(boolean listRemoved){
-
- SearchBuilder sb = null;
- sb = UserIsoSearch;
- SearchCriteria sc = sb.create();
-
- sc.setParameters("format", Storage.ImageFormat.ISO);
- sc.setParameters("type", TemplateType.USER.toString());
-
- if (!listRemoved) {
- sc.setParameters("removed", (Object)null);
- }
-
- return listBy(sc);
- }
- @Override
- public List listAllSystemVMTemplates() {
- SearchCriteria sc = tmpltTypeSearch.create();
- sc.setParameters("templateType", Storage.TemplateType.SYSTEM);
-
- Filter filter = new Filter(ImageDataVO.class, "id", false, null, null);
- return listBy(sc, filter);
- }
-
- @Override
- public List listPrivateTemplatesByHost(Long hostId) {
-
- String sql = "select * from template_host_ref as thr INNER JOIN vm_template as t ON t.id=thr.template_id "
- + "where thr.host_id=? and t.public=0 and t.featured=0 and t.type='USER' and t.removed is NULL";
-
- List l = new ArrayList();
-
- Transaction txn = Transaction.currentTxn();
-
- PreparedStatement pstmt = null;
- try {
- pstmt = txn.prepareAutoCloseStatement(sql);
- pstmt.setLong(1, hostId);
- ResultSet rs = pstmt.executeQuery();
- while (rs.next()) {
- l.add(rs.getLong(1));
- }
- } catch (SQLException e) {
- } catch (Throwable e) {
- }
- return l;
- }
-
- @Override
- public List listReadyTemplates() {
- SearchCriteria sc = createSearchCriteria();
- sc.addAnd("ready", SearchCriteria.Op.EQ, true);
- sc.addAnd("format", SearchCriteria.Op.NEQ, Storage.ImageFormat.ISO);
- return listIncludingRemovedBy(sc);
- }
-
- @Override
- public List findIsosByIdAndPath(Long domainId, Long accountId, String path) {
- SearchCriteria sc = createSearchCriteria();
- sc.addAnd("iso", SearchCriteria.Op.EQ, true);
- if (domainId != null) {
- sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId);
- }
- if (accountId != null) {
- sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId);
- }
- if (path != null) {
- sc.addAnd("path", SearchCriteria.Op.EQ, path);
- }
- return listIncludingRemovedBy(sc);
- }
-
- @Override
- public List listByAccountId(long accountId) {
- SearchCriteria sc = AccountIdSearch.create();
- sc.setParameters("accountId", accountId);
- return listBy(sc);
- }
-
- @Override
- public List listByHypervisorType(List hyperTypes) {
- SearchCriteria sc = createSearchCriteria();
- hyperTypes.add(HypervisorType.None);
- sc.addAnd("hypervisorType", SearchCriteria.Op.IN, hyperTypes.toArray());
- return listBy(sc);
- }
-
- @Override
- public boolean configure(String name, Map params) throws ConfigurationException {
- boolean result = super.configure(name, params);
-
- PublicSearch = createSearchBuilder();
- PublicSearch.and("public", PublicSearch.entity().isPublicTemplate(), SearchCriteria.Op.EQ);
-
- routerTmpltName = (String)params.get("routing.uniquename");
-
- s_logger.debug("Found parameter routing unique name " + routerTmpltName);
- if (routerTmpltName==null) {
- routerTmpltName="routing";
- }
-
- consoleProxyTmpltName = (String)params.get("consoleproxy.uniquename");
- if(consoleProxyTmpltName == null) {
- consoleProxyTmpltName = "routing";
- }
- if(s_logger.isDebugEnabled()) {
- s_logger.debug("Use console proxy template : " + consoleProxyTmpltName);
- }
-
- UniqueNameSearch = createSearchBuilder();
- UniqueNameSearch.and("uniqueName", UniqueNameSearch.entity().getUniqueName(), SearchCriteria.Op.EQ);
- NameSearch = createSearchBuilder();
- NameSearch.and("name", NameSearch.entity().getName(), SearchCriteria.Op.EQ);
-
- NameAccountIdSearch = createSearchBuilder();
- NameAccountIdSearch.and("name", NameAccountIdSearch.entity().getName(), SearchCriteria.Op.EQ);
- NameAccountIdSearch.and("accountId", NameAccountIdSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
-
- PublicIsoSearch = createSearchBuilder();
- PublicIsoSearch.and("public", PublicIsoSearch.entity().isPublicTemplate(), SearchCriteria.Op.EQ);
- PublicIsoSearch.and("format", PublicIsoSearch.entity().getFormat(), SearchCriteria.Op.EQ);
- PublicIsoSearch.and("type", PublicIsoSearch.entity().getTemplateType(), SearchCriteria.Op.EQ);
- PublicIsoSearch.and("bootable", PublicIsoSearch.entity().isBootable(), SearchCriteria.Op.EQ);
- PublicIsoSearch.and("removed", PublicIsoSearch.entity().getRemoved(), SearchCriteria.Op.EQ);
-
- UserIsoSearch = createSearchBuilder();
- UserIsoSearch.and("format", UserIsoSearch.entity().getFormat(), SearchCriteria.Op.EQ);
- UserIsoSearch.and("type", UserIsoSearch.entity().getTemplateType(), SearchCriteria.Op.EQ);
- UserIsoSearch.and("removed", UserIsoSearch.entity().getRemoved(), SearchCriteria.Op.EQ);
-
- tmpltTypeHyperSearch = createSearchBuilder();
- tmpltTypeHyperSearch.and("templateType", tmpltTypeHyperSearch.entity().getTemplateType(), SearchCriteria.Op.EQ);
- SearchBuilder hostHyperSearch = _hostDao.createSearchBuilder();
- hostHyperSearch.and("type", hostHyperSearch.entity().getType(), SearchCriteria.Op.EQ);
- hostHyperSearch.and("zoneId", hostHyperSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
- hostHyperSearch.groupBy(hostHyperSearch.entity().getHypervisorType());
-
- tmpltTypeHyperSearch.join("tmplHyper", hostHyperSearch, hostHyperSearch.entity().getHypervisorType(), tmpltTypeHyperSearch.entity().getHypervisorType(), JoinBuilder.JoinType.INNER);
- hostHyperSearch.done();
- tmpltTypeHyperSearch.done();
-
- tmpltTypeHyperSearch2 = createSearchBuilder();
- tmpltTypeHyperSearch2.and("templateType", tmpltTypeHyperSearch2.entity().getTemplateType(), SearchCriteria.Op.EQ);
- tmpltTypeHyperSearch2.and("hypervisorType", tmpltTypeHyperSearch2.entity().getHypervisorType(), SearchCriteria.Op.EQ);
-
-
- tmpltTypeSearch = createSearchBuilder();
- tmpltTypeSearch.and("removed", tmpltTypeSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
- tmpltTypeSearch.and("templateType", tmpltTypeSearch.entity().getTemplateType(), SearchCriteria.Op.EQ);
-
- AccountIdSearch = createSearchBuilder();
- AccountIdSearch.and("accountId", AccountIdSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
- AccountIdSearch.and("publicTemplate", AccountIdSearch.entity().isPublicTemplate(), SearchCriteria.Op.EQ);
- AccountIdSearch.done();
-
- SearchBuilder tmpltZoneSearch = _templateZoneDao.createSearchBuilder();
- tmpltZoneSearch.and("removed", tmpltZoneSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
- tmpltZoneSearch.and("zoneId", tmpltZoneSearch.entity().getZoneId(), SearchCriteria.Op.EQ);
-
- TmpltsInZoneSearch = createSearchBuilder();
- TmpltsInZoneSearch.and("removed", TmpltsInZoneSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
- TmpltsInZoneSearch.and().op("avoidtype", TmpltsInZoneSearch.entity().getTemplateType(), SearchCriteria.Op.NEQ);
- TmpltsInZoneSearch.or("templateType", TmpltsInZoneSearch.entity().getTemplateType(), SearchCriteria.Op.NULL);
- TmpltsInZoneSearch.cp();
- TmpltsInZoneSearch.join("tmpltzone", tmpltZoneSearch, tmpltZoneSearch.entity().getTemplateId(), TmpltsInZoneSearch.entity().getId(), JoinBuilder.JoinType.INNER);
- tmpltZoneSearch.done();
- TmpltsInZoneSearch.done();
-
- CountTemplatesByAccount = createSearchBuilder(Long.class);
- CountTemplatesByAccount.select(null, Func.COUNT, null);
- CountTemplatesByAccount.and("account", CountTemplatesByAccount.entity().getAccountId(), SearchCriteria.Op.EQ);
- CountTemplatesByAccount.and("removed", CountTemplatesByAccount.entity().getRemoved(), SearchCriteria.Op.NULL);
- CountTemplatesByAccount.done();
-
- return result;
- }
-
- @Override
- public String getRoutingTemplateUniqueName() {
- return routerTmpltName;
- }
-
- @Override
- public Set> searchSwiftTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso, List hypers, Boolean bootable, DomainVO domain,
- Long pageSize, Long startIndex, Long zoneId, HypervisorType hyperType, boolean onlyReady, boolean showDomr, List permittedAccounts, Account caller, Map tags) {
-
- StringBuilder builder = new StringBuilder();
- if (!permittedAccounts.isEmpty()) {
- for (Account permittedAccount : permittedAccounts) {
- builder.append(permittedAccount.getAccountId() + ",");
- }
- }
-
- String permittedAccountsStr = builder.toString();
-
- if (permittedAccountsStr.length() > 0) {
- // chop the "," off
- permittedAccountsStr = permittedAccountsStr.substring(0, permittedAccountsStr.length() - 1);
- }
-
- Transaction txn = Transaction.currentTxn();
- txn.start();
-
- Set> templateZonePairList = new HashSet>();
- PreparedStatement pstmt = null;
- ResultSet rs = null;
- String sql = SELECT_TEMPLATE_SWIFT_REF;
- try {
- String joinClause = "";
- String whereClause = " WHERE t.removed IS NULL";
-
- if (isIso) {
- whereClause += " AND t.format = 'ISO'";
- if (!hyperType.equals(HypervisorType.None)) {
- joinClause = " INNER JOIN guest_os guestOS on (guestOS.id = t.guest_os_id) INNER JOIN guest_os_hypervisor goh on ( goh.guest_os_id = guestOS.id) ";
- whereClause += " AND goh.hypervisor_type = '" + hyperType.toString() + "'";
- }
- } else {
- whereClause += " AND t.format <> 'ISO'";
- if (hypers.isEmpty()) {
- return templateZonePairList;
- } else {
- StringBuilder relatedHypers = new StringBuilder();
- for (HypervisorType hyper : hypers) {
- relatedHypers.append("'");
- relatedHypers.append(hyper.toString());
- relatedHypers.append("'");
- relatedHypers.append(",");
- }
- relatedHypers.setLength(relatedHypers.length() - 1);
- whereClause += " AND t.hypervisor_type IN (" + relatedHypers + ")";
- }
- }
- joinClause += " INNER JOIN template_swift_ref tsr on (t.id = tsr.template_id)";
- if (keyword != null) {
- whereClause += " AND t.name LIKE \"%" + keyword + "%\"";
- } else if (name != null) {
- whereClause += " AND t.name LIKE \"%" + name + "%\"";
- }
-
- if (bootable != null) {
- whereClause += " AND t.bootable = " + bootable;
- }
-
- if (!showDomr) {
- whereClause += " AND t.type != '" + Storage.TemplateType.SYSTEM.toString() + "'";
- }
-
- if (templateFilter == TemplateFilter.featured) {
- whereClause += " AND t.public = 1 AND t.featured = 1";
- } else if ((templateFilter == TemplateFilter.self || templateFilter == TemplateFilter.selfexecutable) && caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
- if (caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN || caller.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
- joinClause += " INNER JOIN account a on (t.account_id = a.id) INNER JOIN domain d on (a.domain_id = d.id)";
- whereClause += " AND d.path LIKE '" + domain.getPath() + "%'";
- } else {
- whereClause += " AND t.account_id IN (" + permittedAccountsStr + ")";
- }
- } else if (templateFilter == TemplateFilter.sharedexecutable && caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
- if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) {
- joinClause += " LEFT JOIN launch_permission lp ON t.id = lp.template_id WHERE" + " (t.account_id IN (" + permittedAccountsStr + ") OR" + " lp.account_id IN ("
- + permittedAccountsStr + "))";
- } else {
- joinClause += " INNER JOIN account a on (t.account_id = a.id) ";
- }
- } else if (templateFilter == TemplateFilter.executable && !permittedAccounts.isEmpty()) {
- whereClause += " AND (t.public = 1 OR t.account_id IN (" + permittedAccountsStr + "))";
- } else if (templateFilter == TemplateFilter.community) {
- whereClause += " AND t.public = 1 AND t.featured = 0";
- } else if (templateFilter == TemplateFilter.all && caller.getType() == Account.ACCOUNT_TYPE_ADMIN) {
- } else if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
- return templateZonePairList;
- }
-
- sql += joinClause + whereClause + getOrderByLimit(pageSize, startIndex);
- pstmt = txn.prepareStatement(sql);
- rs = pstmt.executeQuery();
- while (rs.next()) {
- Pair templateZonePair = new Pair(rs.getLong(1), -1L);
- templateZonePairList.add(templateZonePair);
- }
-
- } catch (Exception e) {
- s_logger.warn("Error listing templates", e);
- } finally {
- try {
- if (rs != null) {
- rs.close();
- }
- if (pstmt != null) {
- pstmt.close();
- }
- txn.commit();
- } catch (SQLException sqle) {
- s_logger.warn("Error in cleaning up", sqle);
- }
- }
-
- return templateZonePairList;
- }
-
-
- @Override
- public Set> searchTemplates(String name, String keyword, TemplateFilter templateFilter,
- boolean isIso, List