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 |
|
|
|
|
|
|
|
|
|
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.
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 |