SlideShare a Scribd company logo
Creating a GUI to Add Primary
Storage based on Plugins
Student :
Seifeddine
Jemli
Mentor :
Mike Tutkowski
Plan
• Context
• What the process was like
• How it looks now
• Improving the tags inputs
• Conclusion
Context
• Prior to CloudStack 4.2, there was no way to
write a storage plugin.
• Since CloudStack 4.2, custom storage
behaviour has been implementable via a
plugin model.
• The Default Storage Plugin implements
functionality that existed in CloudStack prior to
the 4.2 release.
• Each Primary Storage has to be associated
with a plugin.
• If we don’t specify the plugin when creating
the Primary Storage, it is associated with the
Default Plugin.
• The CloudStack GUI didn’t support adding
Primary Storage with respect to different
Storage Vendor Plugins (example: SolidFire)
What the process was like
• Admins who wanted to add a Primary Storage
which is not based on the Default Storage
Plugin had to invoke the addPrimaryStorage
API outside of the CloudStack GUI.
• Admins needed to perform this task either with
CloudStack’s CLI, its API, or some other tool
that leveraged CloudStack’s CLI or its API.
How it looks like now
• Now, admins who want to add a Primary
Storage which is not based on the Default
Storage Plugin can directly do so with the
CloudStack GUI..
• The addPrimaryStorage API is called in the
background after getting all the necessary
parameters from the “Add Primary Storage”
form.
Add Primary Storage (Zone Wide)
Add Primary Storage (Cluster)
• Zone-wide primary storage is simply primary
storage that all hosts in all clusters of that
zone can access.
• Cluster primary storage is CloudStack's
traditional model whereby only hosts in a given
cluster can see that primary storage.
Storage Tags
• A storage tag is a string attribute associated
with Primary Storage, a Disk Offering, and a
Compute Offering.
• The storage tag is a field that tells what kind of
Primary Storage can satisfy your volume's
needs (could be simple like “Fast” or specific
like the model of a particular vendor’s
hardware).
• Storage Tags for Compute and Disk Offerings
are used to identify the requirements of the
root or data disks of VMs. For example, a
high-end Compute Offering may require “fast”
for its root disk volume.
• Admins used to need to memorize the tags
they wanted to use for a specific Primary
Storage (or look them up in an inconvenient
way). They also needed to type in a comma-
separated list of tags.
• To provide a better user experience, we
thought of adding auto-completion to the
Storage Tags input.
That’s why we adapted and integrated this
open source library to the CloudStack GUI :
http://loopj.com/jquery-tokeninput/
• The new “Storage Tags” and “Host Tags”
inputs will make it easier for admins.
• As part of the process, we needed to create
two new API calls to CloudStack :
- listStorageTags
- listHostTags
• These API calls retrieve the list of the existing
Storage tags or Host tags in order to populate
them into the new GUI control.
• The existing tags will be suggested to the user
in the Autocompletion dropdown.
• The admin can then either select one or many
existing tags and/or add new new ones.
Adding a new Storage Tag
In order to add a new Storage Tag in the “Storage
Tags Input”, we have to write the name of the
storage Tag, then press “space bar” or “comma” or
click outside to lose focus on the input.
Searching for a Storage Tag
The new input suggests existing Storage Tags that
can match the typed text.
These suggestions change dynamically whenever
we type a new letter.
listStorageTags API call
No Storage Tags Found
When there is no Storage Tag matching the typed
letters, we have to enter a new Storage Tag.
New Storage Tags can be added even if existing
Storage Tags are displayed in the list.
Editing the Storage Tags of a Primary
Storage
Host Tags
● Host Tags have a similar use case as
the Storage Tags, but for Virtual
Machines.
● If you spin up a Virtual Machine using
a compute offering that has one or
more host tags, then the VM can only
be placed on hosts that have those
host tags.
Host Tags new input
(Add Host form)
listHostTags API call
Editing the Host Tags
New Inputs for the “Add Disk
Offering” form
New Inputs for the “Add Compute
Offering” form
Technologies used
● jQuery and CSS for implementing the
GUI changes.
● Java for implementing the API
commands.
● The Vagrant machine that simplifies
building a full CloudStack
environment.
https://github.com/imduffy15/GSoC-2014
Conclusion
● My participation in GSoC was a very
good experience overall, with a lot of
learning.
● I will probably work on a key-value
control to facilitate the entry of the
URLs in the “Add Primary Storage”
form.
Thanks to
● My mentor for his guidance.
● The Apache CloudStack community
members for their help.
● Google for giving students the
opportunity to take part in this coding
event.
Student : Seifeddine Jemli
● Computer Science student at the french
“grande ecole”, ENSEIRB-MATMECA.
Mentor : Mike Tutkowski
● Senior CloudStack Developer at
‘SolidFire’
● CloudStack PMC Member
● CloudStack Committer
● Weightlifter (DL: 505 lbs, Squat: 430 lbs)

More Related Content

What's hot

Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
Massimo Bonanni
 
Building Blocks of Angular 2 and ASP.NET Core
Building Blocks of Angular 2 and ASP.NET CoreBuilding Blocks of Angular 2 and ASP.NET Core
Building Blocks of Angular 2 and ASP.NET Core
Levi Fuller
 
Introduction of tomcat
Introduction of tomcatIntroduction of tomcat
Introduction of tomcat
Kalkey
 
Sprint 42 review
Sprint 42 reviewSprint 42 review
Sprint 42 review
ManageIQ
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015
Ido Flatow
 
Sprint 39 review
Sprint 39 reviewSprint 39 review
Sprint 39 review
ManageIQ
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)
Igor Talevski
 
My session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in HaarlemMy session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in Haarlem
Rick Van Rousselt
 
European SharePoint Conference - TH3
European SharePoint Conference - TH3European SharePoint Conference - TH3
European SharePoint Conference - TH3
Rick Van Rousselt
 
Building & Testing Scalable Rails Applications
Building & Testing Scalable Rails ApplicationsBuilding & Testing Scalable Rails Applications
Building & Testing Scalable Rails Applications
evilmike
 
Creating the application
Creating the applicationCreating the application
Creating the application
Jason Noble
 
Sprint 40 review
Sprint 40 reviewSprint 40 review
Sprint 40 review
ManageIQ
 
Terraform day 1
Terraform day 1Terraform day 1
Terraform day 1
Kalkey
 
Object Studio 8.2: News Update
Object Studio 8.2: News UpdateObject Studio 8.2: News Update
Object Studio 8.2: News Update
ESUG
 
Airflow Best Practises & Roadmap to Airflow 2.0
Airflow Best Practises & Roadmap to Airflow 2.0Airflow Best Practises & Roadmap to Airflow 2.0
Airflow Best Practises & Roadmap to Airflow 2.0
Kaxil Naik
 
Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 review
ManageIQ
 
Session Slides from DEVintersection Europe
Session Slides from DEVintersection EuropeSession Slides from DEVintersection Europe
Session Slides from DEVintersection Europe
Rick Van Rousselt
 
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
ManageIQ
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
Kaxil Naik
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
MSDEVMTL
 

What's hot (20)

Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Building Blocks of Angular 2 and ASP.NET Core
Building Blocks of Angular 2 and ASP.NET CoreBuilding Blocks of Angular 2 and ASP.NET Core
Building Blocks of Angular 2 and ASP.NET Core
 
Introduction of tomcat
Introduction of tomcatIntroduction of tomcat
Introduction of tomcat
 
Sprint 42 review
Sprint 42 reviewSprint 42 review
Sprint 42 review
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015
 
Sprint 39 review
Sprint 39 reviewSprint 39 review
Sprint 39 review
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)
 
My session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in HaarlemMy session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in Haarlem
 
European SharePoint Conference - TH3
European SharePoint Conference - TH3European SharePoint Conference - TH3
European SharePoint Conference - TH3
 
Building & Testing Scalable Rails Applications
Building & Testing Scalable Rails ApplicationsBuilding & Testing Scalable Rails Applications
Building & Testing Scalable Rails Applications
 
Creating the application
Creating the applicationCreating the application
Creating the application
 
Sprint 40 review
Sprint 40 reviewSprint 40 review
Sprint 40 review
 
Terraform day 1
Terraform day 1Terraform day 1
Terraform day 1
 
Object Studio 8.2: News Update
Object Studio 8.2: News UpdateObject Studio 8.2: News Update
Object Studio 8.2: News Update
 
Airflow Best Practises & Roadmap to Airflow 2.0
Airflow Best Practises & Roadmap to Airflow 2.0Airflow Best Practises & Roadmap to Airflow 2.0
Airflow Best Practises & Roadmap to Airflow 2.0
 
Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 review
 
Session Slides from DEVintersection Europe
Session Slides from DEVintersection EuropeSession Slides from DEVintersection Europe
Session Slides from DEVintersection Europe
 
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
Investigative Debugging - Peter McGowan - ManageIQ Design Summit 2016
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
 

Viewers also liked

Ramesh-Hegde
Ramesh-HegdeRamesh-Hegde
Ramesh-Hegde
Ramesh Hegde
 
Pantallazos para mi profe luz marina
Pantallazos para mi profe luz marinaPantallazos para mi profe luz marina
Pantallazos para mi profe luz marina
Santiago Garcia
 
Recursos educativos en abierto
Recursos educativos en abiertoRecursos educativos en abierto
Recursos educativos en abierto
econte2014
 
Seeds of Growth
Seeds of GrowthSeeds of Growth
Seeds of Growth
Anita Wilson
 
14 07 04_michailopoulos law office_part ii
14 07 04_michailopoulos law office_part ii14 07 04_michailopoulos law office_part ii
14 07 04_michailopoulos law office_part iiGregorios Michailopoulos
 
Presentación 3 a
Presentación  3 aPresentación  3 a
Presentación 3 a
Lila Jara
 
14 07 04_michailopoulos law office_part i
14 07 04_michailopoulos law office_part i14 07 04_michailopoulos law office_part i
14 07 04_michailopoulos law office_part i
Gregorios Michailopoulos
 
Attack tor
Attack torAttack tor
Attack tor
Phil Emon
 
Creating brand content in strategic marketing
Creating brand content in strategic marketingCreating brand content in strategic marketing
Creating brand content in strategic marketing
Arief Budiman
 
Prof.ed.4
Prof.ed.4Prof.ed.4
Prof.ed.4
guarino25
 

Viewers also liked (10)

Ramesh-Hegde
Ramesh-HegdeRamesh-Hegde
Ramesh-Hegde
 
Pantallazos para mi profe luz marina
Pantallazos para mi profe luz marinaPantallazos para mi profe luz marina
Pantallazos para mi profe luz marina
 
Recursos educativos en abierto
Recursos educativos en abiertoRecursos educativos en abierto
Recursos educativos en abierto
 
Seeds of Growth
Seeds of GrowthSeeds of Growth
Seeds of Growth
 
14 07 04_michailopoulos law office_part ii
14 07 04_michailopoulos law office_part ii14 07 04_michailopoulos law office_part ii
14 07 04_michailopoulos law office_part ii
 
Presentación 3 a
Presentación  3 aPresentación  3 a
Presentación 3 a
 
14 07 04_michailopoulos law office_part i
14 07 04_michailopoulos law office_part i14 07 04_michailopoulos law office_part i
14 07 04_michailopoulos law office_part i
 
Attack tor
Attack torAttack tor
Attack tor
 
Creating brand content in strategic marketing
Creating brand content in strategic marketingCreating brand content in strategic marketing
Creating brand content in strategic marketing
 
Prof.ed.4
Prof.ed.4Prof.ed.4
Prof.ed.4
 

Similar to Seif_mike_gsoc_2014_cloudstack

Asp.net caching
Asp.net cachingAsp.net caching
Asp.net caching
Mindfire Solutions
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
Baskar rao Dsn
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computing
Baskar rao Dsn
 
Era of server less computing final
Era of server less computing finalEra of server less computing final
Era of server less computing final
Baskar rao Dsn
 
Magento performance feat. core Hacks
Magento performance feat. core HacksMagento performance feat. core Hacks
Magento performance feat. core Hacks
Daniel Niedergesäß
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
NETWAYS
 
SSIS : Ftp and script task
SSIS : Ftp and script taskSSIS : Ftp and script task
SSIS : Ftp and script task
Kiki Noviandi
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
Alfresco Software
 
Azure Functions in Action #OrlandoCC
Azure Functions in Action #OrlandoCCAzure Functions in Action #OrlandoCC
Azure Functions in Action #OrlandoCC
Baskar rao Dsn
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1
asim78
 
Exploring App fabric
Exploring App fabricExploring App fabric
Exploring App fabric
Kevalsing Rajput
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Anupam Ranku
 
Meet Magento Belarus 2015: Uladzimir Kalashnikau
Meet Magento Belarus 2015: Uladzimir KalashnikauMeet Magento Belarus 2015: Uladzimir Kalashnikau
Meet Magento Belarus 2015: Uladzimir Kalashnikau
Amasty
 
appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)
Ryo Yamasaki
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
WebStackAcademy
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collections
kiwiboris
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
BizTalk360
 
GCP Deployment- Vertex AI
GCP Deployment- Vertex AIGCP Deployment- Vertex AI
GCP Deployment- Vertex AI
Triloki Gupta
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)
kiwiboris
 

Similar to Seif_mike_gsoc_2014_cloudstack (20)

Asp.net caching
Asp.net cachingAsp.net caching
Asp.net caching
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computing
 
Era of server less computing final
Era of server less computing finalEra of server less computing final
Era of server less computing final
 
Magento performance feat. core Hacks
Magento performance feat. core HacksMagento performance feat. core Hacks
Magento performance feat. core Hacks
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
 
SSIS : Ftp and script task
SSIS : Ftp and script taskSSIS : Ftp and script task
SSIS : Ftp and script task
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
 
Azure Functions in Action #OrlandoCC
Azure Functions in Action #OrlandoCCAzure Functions in Action #OrlandoCC
Azure Functions in Action #OrlandoCC
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1
 
Exploring App fabric
Exploring App fabricExploring App fabric
Exploring App fabric
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
 
Meet Magento Belarus 2015: Uladzimir Kalashnikau
Meet Magento Belarus 2015: Uladzimir KalashnikauMeet Magento Belarus 2015: Uladzimir Kalashnikau
Meet Magento Belarus 2015: Uladzimir Kalashnikau
 
appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)appengine ja night #25 Google App Engine for PHP (English)
appengine ja night #25 Google App Engine for PHP (English)
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collections
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
 
GCP Deployment- Vertex AI
GCP Deployment- Vertex AIGCP Deployment- Vertex AI
GCP Deployment- Vertex AI
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)
 

Recently uploaded

哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
PuktoonEngr
 

Recently uploaded (20)

哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
 

Seif_mike_gsoc_2014_cloudstack

  • 1. Creating a GUI to Add Primary Storage based on Plugins Student : Seifeddine Jemli Mentor : Mike Tutkowski
  • 2. Plan • Context • What the process was like • How it looks now • Improving the tags inputs • Conclusion
  • 3. Context • Prior to CloudStack 4.2, there was no way to write a storage plugin. • Since CloudStack 4.2, custom storage behaviour has been implementable via a plugin model. • The Default Storage Plugin implements functionality that existed in CloudStack prior to the 4.2 release.
  • 4. • Each Primary Storage has to be associated with a plugin. • If we don’t specify the plugin when creating the Primary Storage, it is associated with the Default Plugin. • The CloudStack GUI didn’t support adding Primary Storage with respect to different Storage Vendor Plugins (example: SolidFire)
  • 5. What the process was like
  • 6. • Admins who wanted to add a Primary Storage which is not based on the Default Storage Plugin had to invoke the addPrimaryStorage API outside of the CloudStack GUI. • Admins needed to perform this task either with CloudStack’s CLI, its API, or some other tool that leveraged CloudStack’s CLI or its API.
  • 7. How it looks like now
  • 8. • Now, admins who want to add a Primary Storage which is not based on the Default Storage Plugin can directly do so with the CloudStack GUI.. • The addPrimaryStorage API is called in the background after getting all the necessary parameters from the “Add Primary Storage” form.
  • 9. Add Primary Storage (Zone Wide)
  • 10. Add Primary Storage (Cluster)
  • 11. • Zone-wide primary storage is simply primary storage that all hosts in all clusters of that zone can access. • Cluster primary storage is CloudStack's traditional model whereby only hosts in a given cluster can see that primary storage.
  • 12. Storage Tags • A storage tag is a string attribute associated with Primary Storage, a Disk Offering, and a Compute Offering. • The storage tag is a field that tells what kind of Primary Storage can satisfy your volume's needs (could be simple like “Fast” or specific like the model of a particular vendor’s hardware).
  • 13. • Storage Tags for Compute and Disk Offerings are used to identify the requirements of the root or data disks of VMs. For example, a high-end Compute Offering may require “fast” for its root disk volume. • Admins used to need to memorize the tags they wanted to use for a specific Primary Storage (or look them up in an inconvenient way). They also needed to type in a comma- separated list of tags.
  • 14. • To provide a better user experience, we thought of adding auto-completion to the Storage Tags input. That’s why we adapted and integrated this open source library to the CloudStack GUI : http://loopj.com/jquery-tokeninput/ • The new “Storage Tags” and “Host Tags” inputs will make it easier for admins.
  • 15. • As part of the process, we needed to create two new API calls to CloudStack : - listStorageTags - listHostTags • These API calls retrieve the list of the existing Storage tags or Host tags in order to populate them into the new GUI control.
  • 16. • The existing tags will be suggested to the user in the Autocompletion dropdown. • The admin can then either select one or many existing tags and/or add new new ones.
  • 17. Adding a new Storage Tag In order to add a new Storage Tag in the “Storage Tags Input”, we have to write the name of the storage Tag, then press “space bar” or “comma” or click outside to lose focus on the input.
  • 18. Searching for a Storage Tag The new input suggests existing Storage Tags that can match the typed text. These suggestions change dynamically whenever we type a new letter.
  • 20. No Storage Tags Found When there is no Storage Tag matching the typed letters, we have to enter a new Storage Tag. New Storage Tags can be added even if existing Storage Tags are displayed in the list.
  • 21. Editing the Storage Tags of a Primary Storage
  • 22. Host Tags ● Host Tags have a similar use case as the Storage Tags, but for Virtual Machines. ● If you spin up a Virtual Machine using a compute offering that has one or more host tags, then the VM can only be placed on hosts that have those host tags.
  • 23. Host Tags new input (Add Host form)
  • 26. New Inputs for the “Add Disk Offering” form
  • 27. New Inputs for the “Add Compute Offering” form
  • 28. Technologies used ● jQuery and CSS for implementing the GUI changes. ● Java for implementing the API commands. ● The Vagrant machine that simplifies building a full CloudStack environment. https://github.com/imduffy15/GSoC-2014
  • 29. Conclusion ● My participation in GSoC was a very good experience overall, with a lot of learning. ● I will probably work on a key-value control to facilitate the entry of the URLs in the “Add Primary Storage” form.
  • 30. Thanks to ● My mentor for his guidance. ● The Apache CloudStack community members for their help. ● Google for giving students the opportunity to take part in this coding event.
  • 31. Student : Seifeddine Jemli ● Computer Science student at the french “grande ecole”, ENSEIRB-MATMECA. Mentor : Mike Tutkowski ● Senior CloudStack Developer at ‘SolidFire’ ● CloudStack PMC Member ● CloudStack Committer ● Weightlifter (DL: 505 lbs, Squat: 430 lbs)