Packages

The following shows the packages and their purpose.  If you're adding code to CloudStack, please read this over to decide where the code should be placed.

Project

Package Name

Purpose

Notes

utils

cloud-util.jar

Utility methods that can be used in any project

 

api

cloud-api.jar

REST API, Agent API, and Java API definitions

 

core

cloud-core.jar

ServerResource implementations

Remember that each ServerResource should be deployable in both a management server and in a remote agent container.

Core is also being converted to be one project per ServerResource, as how OVM is done today.

server

cloud-server.jar

Management Server

 

agent

cloud-agent.jar

Agent Container

 

ovm

cloud-ovm.jar

ServerResource for Oracle VM

The future of ServerResource packaging

agent-simulator

 

Simulated ServerResource for scale and regression test

 

vmware-base

 

ServerResource for VMware

 

 

 

 

 

 

 

 

 

Dependencies

CloudStack build dependencies reflect the design principal of CloudStack and, therefore, should not be changed.  The packages core, ovm, agent-simulator, and vmware-base are all ServerResource implementations and are only based off of the cloud-api package.  By doing this, these packages are designed to not access the database.  The package cloud-agent is based off of cloud-api because the serialization and deserialization code are in that package; however, ideally, cloud-agent is only a container and should be based off of cloud-util.

Future

CloudStack will move toward the following package and build dependencies.

In this architecture, the CloudStack API package is further refined into three packages.  Each defines a separate area of integration.

Package

Purpose

Format

cloud-api

OAM&P and End User API

REST

cloud-plugin-api

API for adding capabilities to CloudStack

Java

cloud-agent-api

API for communicating with ServerResource

JSON

  • No labels