fixed pom problem in network component

This commit is contained in:
Alex Huang 2012-11-05 09:22:50 -08:00
parent a6df8a5b44
commit cf6b336739
80 changed files with 161 additions and 2170 deletions

View File

@ -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<String> whenUsing() {
List<String> rules = new ArrayList<String>();
rules.add("Always be prepared to handle RuntimeExceptions.");
return rules;
}
public static List<String> whenWritingNewApis() {
List<String> rules = new ArrayList<String>();
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);
}
}
}

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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<EdgeService> listEdgeServicesTo();
List<String> listVirtualMachineUuids();
List<VirtualMachineEntity> listVirtualMachines();
List<NicEntity> listNics();
void addIpRange();
}

View File

@ -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 {
}

View File

@ -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();
}

View File

@ -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 {
}

View File

@ -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<String> listVolumeUuids();
/**
* @return List of volumes attached to this virtual machine.
*/
List<VolumeEntity> listVolumes();
/**
* @return List of uuids for nics attached to this virtual machine.
*/
List<String> listNicUuids();
/**
* @return List of nics attached to this virtual machine.
*/
List<NicEntity> listNics();
/**
* @return the template this virtual machine is based off.
*/
TemplateEntity getTemplate();
/**
* @return the list of tags associated with the virtual machine
*/
List<String> 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);
}

View File

@ -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();
}

View File

@ -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 {
}

View File

@ -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<DataCenterResourceEntity.State> {
/**
* 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<State, Event, DataCenterResourceEntity> s_fsm = new StateMachine2<State, Event, DataCenterResourceEntity>();
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();
}

View File

@ -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 {
}

View File

@ -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<Cluster> listClusters();
}

View File

@ -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 {
}

View File

@ -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<PodEntity> listPods();
}

View File

@ -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<String, String> getDetails(String source);
/**
* @return a list of sources that have added to the details.
*/
List<String> 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<Method> getApplicableActions();
}

View File

@ -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 {
}

View File

@ -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<URI> getEndPoints(String serviceName);
URI getLoadBalancedEndPoint(String serviceName);
List<PluggableService> listServices();
}

View File

@ -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<String> listVirtualMachines();
List<String> listVolumes();
List<String> listNetworks();
List<String> listNics();
List<String> listSnapshots();
List<String> listTemplates();
List<String> listStoragePools();
List<String> listHosts();
VirtualMachine getVirtualMachine(String vm);
Volume getVolume(String volume);
Network getNetwork(String network);
}

View File

@ -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<AsyncJob> listJobs();
List<AsyncJob> listJobsInProgress();
List<AsyncJob> listJobsCompleted();
List<AsyncJob> listJobsCompleted(Long from);
List<AsyncJob> listJobsInWaiting();
void cancelJob(String job);
List<Alert> 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<String> listEventTopics();
}

View File

@ -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<String> networks,
List<String> rootDiskTags,
List<String> computeTags,
Map<String, String> details,
String owner);
VirtualMachineEntity createVirtualMachineFromScratch(String uuid,
String iso,
String os,
String hypervisor,
String hostName,
int cpu,
int speed,
long memory,
List<String> networks,
List<String> computeTags,
Map<String, String> 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);
}

View File

@ -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<String> tags, Map<String, String> details);
ZoneEntity registerZone(String name, List<String> tags, Map<String, String> details);
String registerPod(String name, List<String> tags, Map<String, String> details);
String registerCluster(String name, List<String> tags, Map<String, String> details);
String registerHost(String name, List<String> tags, Map<String, String> details);
void deregisterStorage(String uuid);
void deregisterZone();
void deregisterPod();
void deregisterCluster();
void deregisterHost();
void changeState(String type, String entity, Status state);
List<Host> listHosts();
List<Pod> listPods();
List<DataCenter> listZones();
List<StoragePool> listStorage();
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -1,5 +0,0 @@
package org.apache.cloudstack.platform.subsystem.api.storage;
public interface BackupStrategy {
}

View File

@ -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);
}

View File

@ -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<DataObject> getChidren();
boolean lock();
boolean unlock();
}

View File

@ -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<DataObjectBackupStorageOperationState, Event> s_fsm = new StateMachine<DataObjectBackupStorageOperationState, Event>();
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);
}
}

View File

@ -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();
}

View File

@ -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<String, String> configs);
List<String> getConfigNames();
Map<String, String> getConfigs(URI uri, Map<String, String> extras);
boolean validate(Map<String, String> configs);
DataStore getDataStore(StoragePool pool);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -1,7 +0,0 @@
package org.apache.cloudstack.platform.subsystem.api.storage;
import java.util.List;
public interface DataStoreEndPointSelector {
List<DataStoreEndPoint> getEndPoints(StorageEvent event);
}

View File

@ -1,5 +0,0 @@
package org.apache.cloudstack.platform.subsystem.api.storage;
public interface DataStoreExtendedAttribute {
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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 {
}

View File

@ -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;
}
}

View File

@ -1,5 +0,0 @@
package org.apache.cloudstack.platform.subsystem.api.storage;
public interface SnapshotStrategy {
}

View File

@ -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;
}

View File

@ -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<HypervisorType> supportedHypervisors();
String getProviderName();
List<StoreType> supportedStoreTypes();
void configure(Map<String, String> storeProviderInfo);
DataStore addDataStore(StoragePool sp, String uri, Map<String, String> params);
DataStore getDataStore(StoragePool pool);
Map<HypervisorType, Map<String,DataStoreConfigurator>> getDataStoreConfigs();
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -26,12 +26,9 @@ public interface ComputeOrchestrator {
* @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);
void start(String vm, String reservationId, Handler handler);
@Ipc(topic="cs.compute.cancel")
void cancel(@IpcParam String reservationId);
void cancel(String reservationId);
@Ipc(topic="cs.compute.stop")
void stop(@IpcParam String vm, @IpcParam String reservationId);
void stop(String vm, String reservationId);
}

View File

@ -18,16 +18,11 @@
*/
package org.apache.cloudstack.compute;
import java.util.logging.Handler;
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) {
}
@ -38,4 +33,10 @@ public class ComputeOrchestratorImpl implements ComputeOrchestrator {
// Locate the HypervisorGuru based on the VM type
// Call HypervisorGuru to stop the VM
}
@Override
public void start(String vm, String reservationId, Handler handler) {
// TODO Auto-generated method stub
}
}

View File

@ -33,7 +33,7 @@
<artifactId>cloud-engine-api</artifactId>
<version>${project.version}</version>
</dependency>
<depdency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine-components-api</artifactId>
<version>${project.version}</version>

View File

@ -22,9 +22,11 @@ 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 org.apache.cloudstack.engine.cloud.entity.api.NetworkEntity;
import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
import org.apache.cloudstack.engine.service.api.OrchestrationService;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.hypervisor.Hypervisor;
@ -69,12 +71,45 @@ public class CloudOrchestrator implements OrchestrationService {
}
@Override
public VolumeEntity createVolume() {
// TODO Auto-generated method stub
return null;
}
public void registerTemplate(String name, URL path, String os, Hypervisor hypervisor) {
@Override
public TemplateEntity registerTemplate(String name, URL path, String os, Hypervisor hypervisor) {
return null;
}
@Override
public VirtualMachineEntity createVirtualMachine(String name, String template, String hostName, int cpu, int speed, long memory, List<String> networks, List<String> rootDiskTags, List<String> computeTags,
Map<String, String> details, String owner) {
// TODO Auto-generated method stub
return null;
}
@Override
public VirtualMachineEntity createVirtualMachineFromScratch(String uuid, String iso, String os, String hypervisor, String hostName, int cpu, int speed, long memory, List<String> networks, List<String> computeTags,
Map<String, String> details, String owner) {
// TODO Auto-generated method stub
return null;
}
@Override
public NetworkEntity createNetwork(String externaId, String name, String cidr, String gateway) {
// TODO Auto-generated method stub
return null;
}
@Override
public void destroyNetwork(String networkUuid) {
// TODO Auto-generated method stub
}
@Override
public void destroyVolume(String volumeEntity) {
// TODO Auto-generated method stub
}

View File

@ -21,12 +21,12 @@ 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.engine.subsystem.api.storage.DataObjectBackupStorageOperationState;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.engine.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;

View File

@ -1,7 +1,7 @@
package org.apache.cloudstack.storage;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
public interface StorageProviderManager {
StorageProvider getProvider(String uuid);

View File

@ -4,8 +4,8 @@ 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 org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import com.cloud.utils.component.Manager;

View File

@ -20,7 +20,7 @@ package org.apache.cloudstack.storage;
import java.util.Date;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectBackupStorageOperationState;
import com.cloud.storage.Storage;
import com.cloud.storage.VMTemplateStorageResourceAssoc;

View File

@ -1,18 +1,18 @@
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 org.apache.cloudstack.engine.subsystem.api.storage.BackupStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.engine.subsystem.api.storage.FileSystem;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeStrategy;
import com.cloud.agent.api.to.StorageFilerTO;
import com.cloud.storage.Snapshot;

View File

@ -18,12 +18,12 @@
*/
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.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
import com.cloud.agent.api.storage.DownloadProgressCommand;
import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
import com.cloud.agent.api.storage.DownloadCommand;

View File

@ -18,10 +18,10 @@
*/
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 org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command;
@ -77,12 +77,12 @@ public class DefaultNfsSecondaryDriver extends AbstractStorageDriver {
return false;
}
public org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint ep) {
public org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.engine.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) {
public VolumeProfile createVolumeFromTemplate(VolumeProfile vol, org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint dp) {
// TODO Auto-generated method stub
return null;
}

View File

@ -18,10 +18,10 @@
*/
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 org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.Command;
@ -69,12 +69,12 @@ public class XenServerStorageDriver extends AbstractStorageDriver {
return false;
}
public org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint ep) {
public org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile register(org.apache.cloudstack.engine.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) {
public VolumeProfile createVolumeFromTemplate(VolumeProfile vol, org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile tp, DataStoreEndPoint dp) {
// TODO Auto-generated method stub
return null;
}

View File

@ -18,8 +18,8 @@
*/
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 org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import com.cloud.api.commands.RegisterTemplateCmd;

View File

@ -20,8 +20,8 @@ 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.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.log4j.Logger;
import com.cloud.api.commands.RegisterTemplateCmd;

View File

@ -20,10 +20,10 @@ 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.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.storage.manager.SecondaryStorageManager;
import com.cloud.storage.TemplateProfile;

View File

@ -18,8 +18,8 @@
*/
package org.apache.cloudstack.storage.lifecycle;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
public class DefaultNfsSecondaryLifeCycle implements DataStoreLifeCycle {
protected DataStore _ds;

View File

@ -3,11 +3,11 @@ package org.apache.cloudstack.storage.lifecycle;
import java.util.ArrayList;
import java.util.List;
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.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.log4j.Logger;
import com.cloud.agent.api.Answer;

View File

@ -18,8 +18,8 @@
*/
package org.apache.cloudstack.storage.manager;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectBackupStorageOperationState;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;

View File

@ -18,8 +18,8 @@
*/
package org.apache.cloudstack.storage.manager;
import org.apache.cloudstack.platform.subsystem.api.storage.DataObjectBackupStorageOperationState.Event;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectBackupStorageOperationState.Event;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;

View File

@ -22,10 +22,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
import com.cloud.dc.ClusterVO;

View File

@ -20,7 +20,7 @@ package org.apache.cloudstack.storage.manager;
import java.util.List;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;

View File

@ -20,7 +20,7 @@ package org.apache.cloudstack.storage.manager;
import java.util.List;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;

View File

@ -28,10 +28,10 @@ import java.util.Set;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.storage.datastoreconfigurator.NfsSecondaryStorageConfigurator;
import org.apache.cloudstack.storage.datastoreconfigurator.XenNfsDataStoreConfigurator;

View File

@ -9,11 +9,11 @@ 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.DataStoreConfigurator;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.storage.datastoreconfigurator.NfsDataStoreConfigurator;
import org.apache.cloudstack.storage.datastoreconfigurator.XenNfsDataStoreConfigurator;

View File

@ -23,10 +23,10 @@ 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.DataStoreConfigurator;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.StoragePool;

View File

@ -23,10 +23,10 @@ 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.DataStoreConfigurator;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.StoragePool;

View File

@ -23,10 +23,10 @@ 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.DataStoreConfigurator;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore.StoreType;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreConfigurator;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore.StoreType;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.StoragePool;

View File

@ -22,14 +22,14 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
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.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageEvent;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageEvent;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateStrategy;
import org.apache.cloudstack.storage.image.ImageManager;
import org.apache.log4j.Logger;

View File

@ -2,16 +2,16 @@ package org.apache.cloudstack.storage.strategy;
import java.util.List;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageEvent;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeStrategy;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPoint;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStoreEndPointSelector;
import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotProfile;
import org.apache.cloudstack.platform.subsystem.api.storage.StorageEvent;
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.volume.VolumeManager;
import org.apache.log4j.Logger;

View File

@ -1,7 +1,7 @@
package org.apache.cloudstack.storage.strategy;
import org.apache.cloudstack.platform.subsystem.api.storage.BackupStrategy;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.BackupStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
public class XenBackupStrategy implements BackupStrategy {
protected DataStore _ds;

View File

@ -1,7 +1,7 @@
package org.apache.cloudstack.storage.strategy;
import org.apache.cloudstack.platform.subsystem.api.storage.DataStore;
import org.apache.cloudstack.platform.subsystem.api.storage.SnapshotStrategy;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
public class XenSnapshotStrategy implements SnapshotStrategy {
protected DataStore _ds;

View File

@ -18,7 +18,7 @@
*/
package org.apache.cloudstack.storage.volume;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO;

View File

@ -18,7 +18,7 @@
*/
package org.apache.cloudstack.storage.volume;
import org.apache.cloudstack.platform.subsystem.api.storage.VolumeProfile;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeProfile;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.Volume;