SlideShare a Scribd company logo
CloudStack Automated
Integration Testing with Marvin
Mike Tutkowski
●CloudStack Software Engineer
●Member of CloudStack Project Management Committee (PMC)
●Focused on CloudStack’s storage component
SolidFire (http://www.solidfire.com/)
●Based out of Boulder, CO
●Develop a scale-out SAN technology
●Built from the ground up to support guaranteed Quality of Service (QoS) on a per-volume
(LUN) basis (min, max, and burst IOPS per volume)
●All-Flash Array
●Leverage compression, de-duplication, and thin provisioning (all inline) on a 4-KB block
boundary across the entire cluster to drive down cost/GB to be on par with traditional disk-
based SANs
●Rest-like API to enable automation of all aspects of the SAN
What is Marvin?
Python Testing Framework for CloudStack
* deployDataCenter module to make it easy to create a custom cloud (requires JSON
input file)
* Provides infrastructure for low-level communication with CS MS (cloudstackConnection
module)
* Easy-to-use modules for sending API commands to CloudStack (ex.
CreateStoragePoolCmd) and receiving responses (ex. CreateStoragePoolResponse).
* Common abstractions like StoragePool, Volume, Snapshot, Cluster, Host, etc. classes
* Utility modules for performing common activities (ex. Restart the management server)
* Write tests using the unittest module (start a test method with the word “test”, provide
setup, teardown methods, etc.)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Marvin+-+Testing+with+Python
nosetests test_cloudstack_server.py
************************************************************
import paramiko
from nose import with_setup
from nose.tools import assert_equals
class TestStartCloudStackServer():
def setup(self):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.156.34', username='cloudstack', password='solidfire')
def teardown(self):
return
@with_setup(setup, teardown)
def test_start_cloudstack_server(self):
What needs to be automated?
1.Setup of the Test Environment
1.Creation of the Cloud Infrastructure
in CloudStack
1.Test Scenarios
Testing Environment
ESXi host with 3 VMs
●Ubuntu VM
●CS Management Server
●CS Database
●Secondary Storage (NFS share)
●2 XenServer VMs (add
vhv.enable = true to VMX file of
each VM)
●Hosts on which to run VMs
Setup of the Testing Environment
1.Talk to ESXi host:
Revert Ubuntu VM and each XenServer VM to a snapshot.
Start Ubuntu VM and each XenServer VM.
2.Put both XenServer hosts in the same resource pool (XenServer
name for a cluster).
3.SSH into Ubuntu VM
a.Update CloudStack codebase (git fetch upstream master)
b.Build codebase (mvn -P developer,systemvm clean install)
c.Rebuild the CloudStack database (mvn -P developer -pl
developer -D deploydb)
d.Run the CloudStack Management Server (mvn -pl client
jetty:run)
Manual Setup of the Testing Environment
Automated Setup of the Testing Environment
1. Revert VMs PySphere (vSphere Python
Module)
2. Put XenServer Hosts in
Cluster
xmlrpclib (Python Module) to
send XenAPI commands
3. Run Management Server Paramiko (Python Module that
implements SSH v2 protocol)
Creation of Our Cloud Infrastructure
1 Basic Zone
1 Pod
1 Cluster
2 XenServer Hosts
2 Primary Storages (local storage
on each XenServer host)
1 Secondary Storage
Manual Creation of the Cloud
Infrastructure
Automated Creation of the Cloud Infrastructure
1.Generate JSON Config File
1.Deploy Cloud with Marvin
deployDataCenter module
Test Scenarios (Follow a Pattern)
1.Create Resources
(SolidFire Primary Storage, Disk Offerings, Compute
Offerings)
1.Run test scenarios
1.Verify CloudStack DB
1.Verify SolidFire SAN
Manual CloudStack Tests
Automated CloudStack Tests
1. Create Resources Marvin (setup section of test)
2. Run Test Scenarios Marvin (test* methods)
3. Verify CloudStack DB Marvin (test* methods) &
Customized API Plug-in
4. Verify SolidFire SAN Marvin (test* methods) &
SolidFire REST-like API (via
SolidFire Python SDK)
Future tasks
1.Leverage Jenkins to Run Tests Nightly
1.Integration Tests for KVM and VMware
1.Integration with AT2

More Related Content

ODP
Guaranteeing CloudStack Storage Performance
PDF
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
PDF
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
PDF
OSv at Usenix ATC 2014
PDF
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
PDF
Glauber Costa on OSv as NoSQL platform
PDF
XPDS14 - Scaling Xen's Aggregate Storage Performance - Felipe Franciosi, Citrix
PDF
Storage based on_openstack_mariocho
Guaranteeing CloudStack Storage Performance
TechDay - Toronto 2016 - Hyperconvergence and OpenNebula
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
OSv at Usenix ATC 2014
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
Glauber Costa on OSv as NoSQL platform
XPDS14 - Scaling Xen's Aggregate Storage Performance - Felipe Franciosi, Citrix
Storage based on_openstack_mariocho

What's hot (20)

PPTX
Cinder Live Migration and Replication - OpenStack Summit Austin
PDF
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
PDF
Hands On Gluster with Jeff Darcy
PDF
London Ceph Day: Unified Cloud Storage with Synnefo + Ceph + Ganeti
PDF
XPDS14: Xen 4.5 Roadmap - Konrad Wilk, Oracle
PDF
GlusterFS w/ Tiered XFS
PPT
On MongoDB backup
PPTX
OpenStack Cinder
PDF
Red Hat Enterprise Linux: Open, hyperconverged infrastructure
PDF
Ceph Day Taipei - Bring Ceph to Enterprise
PPTX
Optimizing VM images for OpenStack with KVM/QEMU
PDF
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
PDF
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
PDF
SUSE Expert Days Paris 2018 - SUSE HA Cluster Multi-Device
PDF
Compute 101 - OpenStack Summit Vancouver 2015
PPTX
Powershell dcpp
PDF
Monitor PowerKVM using Ganglia, Nagios
PPT
Trove Updates - Kilo Edition
ODP
Accessing gluster ufo_-_eco_willson
PDF
64-bit ARM Unikernels on uKVM
Cinder Live Migration and Replication - OpenStack Summit Austin
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
Hands On Gluster with Jeff Darcy
London Ceph Day: Unified Cloud Storage with Synnefo + Ceph + Ganeti
XPDS14: Xen 4.5 Roadmap - Konrad Wilk, Oracle
GlusterFS w/ Tiered XFS
On MongoDB backup
OpenStack Cinder
Red Hat Enterprise Linux: Open, hyperconverged infrastructure
Ceph Day Taipei - Bring Ceph to Enterprise
Optimizing VM images for OpenStack with KVM/QEMU
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
SUSE Expert Days Paris 2018 - SUSE HA Cluster Multi-Device
Compute 101 - OpenStack Summit Vancouver 2015
Powershell dcpp
Monitor PowerKVM using Ganglia, Nagios
Trove Updates - Kilo Edition
Accessing gluster ufo_-_eco_willson
64-bit ARM Unikernels on uKVM
Ad

Similar to CloudStack Automated Integration Testing with Marvin (20)

PPTX
ASP.NET vNext the future of ASP
ODP
Guaranteeing Storage Performance by Mike Tutkowski
PDF
OpenNebulaConf 2016 - Hypervisors and Containers Hands-on Workshop by Jaime M...
PDF
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
PPT
Automating Your CloudStack Cloud with Puppet
PDF
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
PDF
Automating CloudStack with Puppet - David Nalley
PPTX
Deploying windows containers with kubernetes
PPTX
Docker - Demo on PHP Application deployment
PDF
[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술
PPSX
CloudStack + KVM: Your Local Cloud Lab
PDF
Kubernetes for the PHP developer
PDF
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
PDF
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
PDF
SK Telecom TACO Introduction at Berlin Summit
PPT
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
PPTX
Successfully Deliver and Operate OpenStack in Production with VMware VIO
PDF
Integration tests: use the containers, Luke!
PPTX
Building virtualised CloudStack test environments
PPTX
Rock Solid WordPress
ASP.NET vNext the future of ASP
Guaranteeing Storage Performance by Mike Tutkowski
OpenNebulaConf 2016 - Hypervisors and Containers Hands-on Workshop by Jaime M...
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Automating Your CloudStack Cloud with Puppet
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
Automating CloudStack with Puppet - David Nalley
Deploying windows containers with kubernetes
Docker - Demo on PHP Application deployment
[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술
CloudStack + KVM: Your Local Cloud Lab
Kubernetes for the PHP developer
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
Jörg Schad - Hybrid Cloud (Kubernetes, Spark, HDFS, …)-as-a-Service - Codemot...
SK Telecom TACO Introduction at Berlin Summit
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Integration tests: use the containers, Luke!
Building virtualised CloudStack test environments
Rock Solid WordPress
Ad

More from NetApp (20)

PDF
DevOps the NetApp Way: 10 Rules for Forming a DevOps Team
PDF
10 Reasons to Choose NetApp for EUC/VDI
PDF
Spot Lets NetApp Get the Most Out of the Cloud
PDF
NetApp #WFH: COVID-19 Impact Report
PDF
4 Ways FlexPod Forms the Foundation for Cisco and NetApp Success
PDF
NetApp 2020 Predictions
PDF
NetApp 2020 Predictions
PDF
NetApp 2020 Predictions in Tech
PPTX
Corporate IT at NetApp
PDF
Modernize small and mid-sized enterprise data management with the AFF C190
PDF
Achieving Target State Architecture in NetApp IT
PDF
10 Reasons Why Your SAP Applications Belong on NetApp
PDF
Turbocharge Your Data with Intel Optane Technology and MAX Data
PDF
Redefining HCI: How to Go from Hyper Converged to Hybrid Cloud Infrastructure
PDF
Webinar: NetApp SaaS Backup
PDF
NetApp 2019 Perspectives
PDF
Künstliche Intelligenz ist in deutschen Unter- nehmen Chefsache
PDF
Iperconvergenza come migliora gli economics del tuo IT
PDF
10 Good Reasons: NetApp for Artificial Intelligence / Deep Learning
PDF
NetApp IT’s Tiered Archive Approach for Active IQ
DevOps the NetApp Way: 10 Rules for Forming a DevOps Team
10 Reasons to Choose NetApp for EUC/VDI
Spot Lets NetApp Get the Most Out of the Cloud
NetApp #WFH: COVID-19 Impact Report
4 Ways FlexPod Forms the Foundation for Cisco and NetApp Success
NetApp 2020 Predictions
NetApp 2020 Predictions
NetApp 2020 Predictions in Tech
Corporate IT at NetApp
Modernize small and mid-sized enterprise data management with the AFF C190
Achieving Target State Architecture in NetApp IT
10 Reasons Why Your SAP Applications Belong on NetApp
Turbocharge Your Data with Intel Optane Technology and MAX Data
Redefining HCI: How to Go from Hyper Converged to Hybrid Cloud Infrastructure
Webinar: NetApp SaaS Backup
NetApp 2019 Perspectives
Künstliche Intelligenz ist in deutschen Unter- nehmen Chefsache
Iperconvergenza come migliora gli economics del tuo IT
10 Good Reasons: NetApp for Artificial Intelligence / Deep Learning
NetApp IT’s Tiered Archive Approach for Active IQ

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
Teaching material agriculture food technology
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
A Presentation on Artificial Intelligence
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Teaching material agriculture food technology
NewMind AI Monthly Chronicles - July 2025
A Presentation on Artificial Intelligence
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Chapter 3 Spatial Domain Image Processing.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx

CloudStack Automated Integration Testing with Marvin

  • 2. Mike Tutkowski ●CloudStack Software Engineer ●Member of CloudStack Project Management Committee (PMC) ●Focused on CloudStack’s storage component SolidFire (http://www.solidfire.com/) ●Based out of Boulder, CO ●Develop a scale-out SAN technology ●Built from the ground up to support guaranteed Quality of Service (QoS) on a per-volume (LUN) basis (min, max, and burst IOPS per volume) ●All-Flash Array ●Leverage compression, de-duplication, and thin provisioning (all inline) on a 4-KB block boundary across the entire cluster to drive down cost/GB to be on par with traditional disk- based SANs ●Rest-like API to enable automation of all aspects of the SAN
  • 3. What is Marvin? Python Testing Framework for CloudStack * deployDataCenter module to make it easy to create a custom cloud (requires JSON input file) * Provides infrastructure for low-level communication with CS MS (cloudstackConnection module) * Easy-to-use modules for sending API commands to CloudStack (ex. CreateStoragePoolCmd) and receiving responses (ex. CreateStoragePoolResponse). * Common abstractions like StoragePool, Volume, Snapshot, Cluster, Host, etc. classes * Utility modules for performing common activities (ex. Restart the management server) * Write tests using the unittest module (start a test method with the word “test”, provide setup, teardown methods, etc.) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Marvin+-+Testing+with+Python
  • 4. nosetests test_cloudstack_server.py ************************************************************ import paramiko from nose import with_setup from nose.tools import assert_equals class TestStartCloudStackServer(): def setup(self): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.156.34', username='cloudstack', password='solidfire') def teardown(self): return @with_setup(setup, teardown) def test_start_cloudstack_server(self):
  • 5. What needs to be automated? 1.Setup of the Test Environment 1.Creation of the Cloud Infrastructure in CloudStack 1.Test Scenarios
  • 6. Testing Environment ESXi host with 3 VMs ●Ubuntu VM ●CS Management Server ●CS Database ●Secondary Storage (NFS share) ●2 XenServer VMs (add vhv.enable = true to VMX file of each VM) ●Hosts on which to run VMs
  • 7. Setup of the Testing Environment 1.Talk to ESXi host: Revert Ubuntu VM and each XenServer VM to a snapshot. Start Ubuntu VM and each XenServer VM. 2.Put both XenServer hosts in the same resource pool (XenServer name for a cluster). 3.SSH into Ubuntu VM a.Update CloudStack codebase (git fetch upstream master) b.Build codebase (mvn -P developer,systemvm clean install) c.Rebuild the CloudStack database (mvn -P developer -pl developer -D deploydb) d.Run the CloudStack Management Server (mvn -pl client jetty:run)
  • 8. Manual Setup of the Testing Environment
  • 9. Automated Setup of the Testing Environment 1. Revert VMs PySphere (vSphere Python Module) 2. Put XenServer Hosts in Cluster xmlrpclib (Python Module) to send XenAPI commands 3. Run Management Server Paramiko (Python Module that implements SSH v2 protocol)
  • 10. Creation of Our Cloud Infrastructure 1 Basic Zone 1 Pod 1 Cluster 2 XenServer Hosts 2 Primary Storages (local storage on each XenServer host) 1 Secondary Storage
  • 11. Manual Creation of the Cloud Infrastructure
  • 12. Automated Creation of the Cloud Infrastructure 1.Generate JSON Config File 1.Deploy Cloud with Marvin deployDataCenter module
  • 13. Test Scenarios (Follow a Pattern) 1.Create Resources (SolidFire Primary Storage, Disk Offerings, Compute Offerings) 1.Run test scenarios 1.Verify CloudStack DB 1.Verify SolidFire SAN
  • 15. Automated CloudStack Tests 1. Create Resources Marvin (setup section of test) 2. Run Test Scenarios Marvin (test* methods) 3. Verify CloudStack DB Marvin (test* methods) & Customized API Plug-in 4. Verify SolidFire SAN Marvin (test* methods) & SolidFire REST-like API (via SolidFire Python SDK)
  • 16. Future tasks 1.Leverage Jenkins to Run Tests Nightly 1.Integration Tests for KVM and VMware 1.Integration with AT2