From 20ffe6f13dced8d1b6ffa26549d6bfc33be358ba Mon Sep 17 00:00:00 2001 From: Alex Huang Date: Wed, 18 Aug 2010 12:28:30 -0700 Subject: [PATCH] more changes --- api/src/com/cloud/domain/Domain.java | 37 ++++++++++++++++++++++ api/src/com/cloud/domain/PartOf.java | 15 +++++++++ api/src/com/cloud/template/BasedOn.java | 16 ++++++++++ api/src/com/cloud/user/OwnedBy.java | 14 ++++++++ api/src/com/cloud/vm/NetworkConcierge.java | 23 ++++++++++++++ api/src/com/cloud/vm/NetworkProfiler.java | 18 +++++++++++ api/src/com/cloud/vm/RunningOn.java | 14 ++++++++ 7 files changed, 137 insertions(+) create mode 100644 api/src/com/cloud/domain/Domain.java create mode 100644 api/src/com/cloud/domain/PartOf.java create mode 100644 api/src/com/cloud/template/BasedOn.java create mode 100644 api/src/com/cloud/user/OwnedBy.java create mode 100644 api/src/com/cloud/vm/NetworkConcierge.java create mode 100644 api/src/com/cloud/vm/NetworkProfiler.java create mode 100644 api/src/com/cloud/vm/RunningOn.java diff --git a/api/src/com/cloud/domain/Domain.java b/api/src/com/cloud/domain/Domain.java new file mode 100644 index 00000000000..5cbfb39b4dc --- /dev/null +++ b/api/src/com/cloud/domain/Domain.java @@ -0,0 +1,37 @@ +/** + * + */ +package com.cloud.domain; + +import java.util.Date; + +import com.cloud.user.OwnedBy; + +/** + * Domain defines the Domain object. + */ +public interface Domain extends OwnedBy { + public static final long ROOT_DOMAIN = 1L; + + long getId(); + + Long getParent(); + + void setParent(Long parent); + + String getName(); + + void setName(String name); + + Date getRemoved(); + + String getPath(); + + void setPath(String path); + + int getLevel(); + + int getChildCount(); + + long getNextChildSeq(); +} diff --git a/api/src/com/cloud/domain/PartOf.java b/api/src/com/cloud/domain/PartOf.java new file mode 100644 index 00000000000..98b8b2ad6dd --- /dev/null +++ b/api/src/com/cloud/domain/PartOf.java @@ -0,0 +1,15 @@ +/** + * + */ +package com.cloud.domain; + +/** + * PartOf must be implemented by all objects that belongs + * in a domain. + */ +public interface PartOf { + /** + * @return domain id that the object belongs to. + */ + long getDomainId(); +} diff --git a/api/src/com/cloud/template/BasedOn.java b/api/src/com/cloud/template/BasedOn.java new file mode 100644 index 00000000000..4424cbdb520 --- /dev/null +++ b/api/src/com/cloud/template/BasedOn.java @@ -0,0 +1,16 @@ +/** + * + */ +package com.cloud.template; + +/** + * BasedOn is implemented by all objects that are based on a certain template. + */ +public interface BasedOn { + + /** + * @return the template id that the volume is based on. + */ + Long getTemplateId(); + +} diff --git a/api/src/com/cloud/user/OwnedBy.java b/api/src/com/cloud/user/OwnedBy.java new file mode 100644 index 00000000000..78edbc33bd2 --- /dev/null +++ b/api/src/com/cloud/user/OwnedBy.java @@ -0,0 +1,14 @@ +/** + * + */ +package com.cloud.user; + +/** + * OwnedBy must be inheritted by all objects that can be owned by an account. + */ +public interface OwnedBy { + /** + * @return account id that owns this object. + */ + long getAccountId(); +} diff --git a/api/src/com/cloud/vm/NetworkConcierge.java b/api/src/com/cloud/vm/NetworkConcierge.java new file mode 100644 index 00000000000..03ab6fae6df --- /dev/null +++ b/api/src/com/cloud/vm/NetworkConcierge.java @@ -0,0 +1,23 @@ +/** + * + */ +package com.cloud.vm; + +import com.cloud.exception.InsufficientVirtualNetworkCapcityException; +import com.cloud.utils.Pair; +import com.cloud.utils.component.Adapter; + +/** + * NetworkConcierge reserves network settings for a VM based + * on the NetworkCharacteristics given. A Concierge must + * return a unique name so we know to call it to release + * the reservation. + * + */ +public interface NetworkConcierge extends Adapter { + String getUniqueName(); + + Pair reserve(long vmId, NetworkCharacteristics ch) throws InsufficientVirtualNetworkCapcityException; + + boolean release(String uniqueName, String uniqueId); +} diff --git a/api/src/com/cloud/vm/NetworkProfiler.java b/api/src/com/cloud/vm/NetworkProfiler.java new file mode 100644 index 00000000000..b3afdd47c59 --- /dev/null +++ b/api/src/com/cloud/vm/NetworkProfiler.java @@ -0,0 +1,18 @@ +/** + * + */ +package com.cloud.vm; + +import java.util.Collection; +import java.util.List; + +import com.cloud.offering.DiskOffering; +import com.cloud.offering.NetworkOffering; +import com.cloud.offering.ServiceOffering; +import com.cloud.user.Account; +import com.cloud.utils.Ternary; +import com.cloud.utils.component.Adapter; + +public interface NetworkProfiler extends Adapter { + Ternary, List> convert(VirtualMachine vm, ServiceOffering serviceOffering, List networkOfferings, Collection diskOfferings, Account owner); +} diff --git a/api/src/com/cloud/vm/RunningOn.java b/api/src/com/cloud/vm/RunningOn.java new file mode 100644 index 00000000000..f491825dad1 --- /dev/null +++ b/api/src/com/cloud/vm/RunningOn.java @@ -0,0 +1,14 @@ +/** + * + */ +package com.cloud.vm; + +/** + * RunningOn must be implemented by objects that runs on hosts. + * + */ +public interface RunningOn { + + Long getHostId(); + +}