Skip to content

waldur/openstack-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenStack Emulator

A lightweight OpenStack API emulator for testing purposes. This emulator provides simplified implementations of OpenStack services, allowing you to develop and test OpenStack clients without a full OpenStack deployment.

Supported Services

Service Port Description
Keystone 5000 Identity service
Nova 8774 Compute service
Cinder 8776 Block Storage service
Glance 9292 Image service
Neutron 9696 Networking service
Octavia 9876 Load Balancer service
Status UI 10000 Web dashboard
Scenarios 8999 Failure injection API

Quick Start

Installation

pip install -e .

# Or with uv
uv pip install -e .

# Development installation
pip install -e ".[dev]"

Running

# Run all services
openstack-emulator

# Run a specific service
openstack-emulator --service=nova

# Run with persistence enabled
openstack-emulator --persist-db=emulator_data.json --auto-save

Using with OpenStack CLI

export OS_AUTH_URL=http://localhost:5000/v3
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=s4l4dus
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3

openstack server list
openstack network list
openstack volume list

API Documentation

Once running, access Swagger UI at:

Documentation

Project Structure

openstack-emulator/
├── emulator/
│   ├── api/           # REST API routes
│   └── core/          # Business logic and models
├── tests/             # Test suite
├── docs/              # Documentation
├── CLAUDE.md          # Development guide
└── README.md

Running Tests

pytest
pytest --cov=emulator --cov-report=html

Limitations

This is a testing emulator with several limitations:

  • No real virtualization: Servers are simulated, not actual VMs
  • In-memory storage: Data is lost on restart (unless persistence is enabled)
  • Limited API coverage: Only essential endpoints implemented
  • Simulated resources: Networks, volumes don't route real traffic

See Architecture Overview for more details.

Contributing

Contributions welcome! Please see the Development Guide for guidelines.

License

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages