SlideShare a Scribd company logo
KVM Forum, August 21st
2015 1/37
oVirt Extension API
The first step for fully modular oVirt
Martin Peřina
Software Engineer at Red Hat
KVM Forum, August 21st
2015 2/37
Agenda
● Introduction
● oVirt Engine Extension API
● Extension API for AAA
● Extension API for Logging
● Extension API Tools
● Future plans
KVM Forum, August 21st
2015 3/37
Introduction
KVM Forum, August 21st
2015 4/37
What is oVirt?
● Large scale, centralized management system for server
and desktop virtualization based on Linux/KVM
KVM Forum, August 21st
2015 5/37
Extending oVirt prior to version 3.5
● Extensibility of oVirt < 3.4 was limited, the project
consisted of two monolitic parts: Engine and VDSM
● Engine UI Plugins
– enables to create a plugin for UI that is able to
communicate with Engine using REST API
● VDSM Hooks
– enable to execute custom script/command at certain
predefined points in the flow
KVM Forum, August 21st
2015 6/37
What is AAA?
● Authentication
– Verification of identity that is trying to access the
system
● Authorization
– Verification of resources that identity is allowed to
access
● Accounting
– Statistics of resource usage by identity
KVM Forum, August 21st
2015 7/37
AAA status in oVirt <= 3.4
● Complex implementation using Kerberos
● Insecure (no SSL/TLS, no SSO)
● No proper support for multi-domain setup
● No customization (monolithic module, logic and schema
hard-coded)
● Not optimized (always recursive, sub-optimal LDAP
queries)
KVM Forum, August 21st
2015 8/37
Monolithic or extension based?
● Monolithic methodology is never flexible enough for
customization not considered during initial design
● “Easy” to extend without breaking backward
compatibility
● Not specific to AAA, but usable for whole oVirt Engine
● Possibility to write extensions in other languages
(provided by JVM)
● Ability for extension to extension interaction
KVM Forum, August 21st
2015 9/37
oVirt Engine Extension API
KVM Forum, August 21st
2015 10/37
Engine Extension API
● Introduced in oVirt 3.5
● Currently used only for AAA and logging, but available
for all parts of engine
● JBoss Modules is used to load extensions
● Extension's configuration is stored in properties files
KVM Forum, August 21st
2015 11/37
Engine Extension API
● Primitive invoke-based interface, parameters are passed
as maps
package org.ovirt.engine.api.extensions;
public interface Extension {
void invoke(ExtMap input, ExtMap output);
}
KVM Forum, August 21st
2015 12/37
Engine Extension API
● Map keys contains meaningful name, UUID and type:
public static final ExtKey COMMAND = new ExtKey(
"EXTENSION_INVOKE_COMMAND",
ExtUUID.class,
"485778ab-bede-4f1a-b823-77b262a2f28d"
);
public static final ExtKey RESULT = new ExtKey(
"EXTENSION_INVOKE_RESULT",
Integer.class,
"0909d91d-8bde-40fb-b6c0-099c772ddd4e"
);
KVM Forum, August 21st
2015 13/37
Engine Extension API
● Common types for all extensions are placed in
org.ovirt.engine.api.extensions package:
● ExtUUID
– contains UUID and descriptive name
● ExtKey
– consists of ExtUUID and type
● ExtMap
– defined as Map<ExtKey, Object>
– contains run-time type enforcement to value with key
type information
KVM Forum, August 21st
2015 14/37
Engine Extension API
● Base
– contains common constants for all extensions:
– InvokeKeys
● keys of input/output maps for invoke() method
– InvokeCommands
● available commands:
LOAD, INITIALIZE, TERMINATE
– InvokeResult
● result of invoke() method execution:
SUCCESS, UNSUPPORTED, FAILED
KVM Forum, August 21st
2015 15/37
Engine Extension Configuration
● Extension configuration is stored in a property file which
has to contain some mandatory options and may
contain other extension specific options
● Configuration files should be placed under one of those
directories:
– /etc/ovirt-engine/extensions.d
– /usr/share/ovirt-engine/extensions.d
● Configured extensions are loaded during engine start-up
KVM Forum, August 21st
2015 16/37
Extension Configuration Sample
ovirt.engine.extension.name = myextension
ovirt.engine.extension.bindings.method = jbossmodule
ovirt.engine.extension.binding.jbossmodule.module =
org.ovirt.engineextensions.myext
ovirt.engine.extension.binding.jbossmodule.class =
org.ovirt.engineextensions.myext.MyExtension
ovirt.engine.extension.provides =
org.ovirt.engine.api.extensions.Extension
KVM Forum, August 21st
2015 17/37
Extension Start-up Flow
KVM Forum, August 21st
2015 18/37
ExtensionsManager class
● Provides internal API for engine to access extensions
● Uses Observer pattern to notify about extension updates
● It provides methods to access extensions:
List<ExtensionProxy> getExtensionsByService(
String provides)
ExtensionProxy getExtensionByName(String name)
List<ExtensionProxy> getLoadedExtensions()
List<ExtensionProxy> getExtensions()
KVM Forum, August 21st
2015 19/37
ExtensionProxy class
● Each loaded extensions is decorated with
ExtensionProxy instance
● ExtensionProxy simplifies invoke() method execution:
– Returns output map
– Catches exceptions in case of a failure
– Makes problem determination easier
KVM Forum, August 21st
2015 20/37
Engine Extension API for Logging
KVM Forum, August 21st
2015 21/37
Logger
● Constants related to logger extensions are stored in
org.ovirt.engine.api.extensions.logger.Logger
● Provides ability to:
– Publish log record to logger extension
– Flush log records in logger extension
– Close logger extension
KVM Forum, August 21st
2015 22/37
Logger extensions
● logger-log4j
– Provided by ovirt-engine-extension-logger-log4j
package
– Provides log4j appenders for oVirt Engine
– Can be used for example to pass oVirt Engine log
records to syslog
KVM Forum, August 21st
2015 23/37
Code sample
KVM Forum, August 21st
2015 24/37
Engine Extension API for AAA
KVM Forum, August 21st
2015 25/37
AAA – Authentication (aka authn)
● Constants related to authentication extensions are
stored in org.ovirt.engine.api.extensions.aaa.Authn
● Goal:
– Verify the user that tries to access system
● Input:
– User name and password or
– HTTP negotiation
● Output:
– Authentication record which contains principal and
validity time interval
KVM Forum, August 21st
2015 26/37
AAA – Authorization (aka authz)
● Constants related to authorization extensions are stored
in org.ovirt.engine.api.extensions.aaa.Authz
● Goal:
– Provide details about user
● Input:
– Principal
● Output:
– Authentication record with additional information
(user details, set of groups, etc.)
KVM Forum, August 21st
2015 27/37
AAA – Accounting (aka acct)
● Constants related to accounting extensions are stored in
org.ovirt.engine.api.extensions.aaa.Acct
● Provides framework for security related events
(successful/unsuccessful login, logout, etc.)
● It will provide full auditing capability in future
KVM Forum, August 21st
2015 28/37
AAA – Mapping
● Constants related to mapping extensions are stored in
org.ovirt.engine.api.extensions.aaa.Mapping
● Provides:
– mapping of user name before authn
– mapping of principal before authz
● Examples:
– removing Kerberos suffix from user name before SSO
– removing domain name from principal before
accessing LDAP
KVM Forum, August 21st
2015 29/37
AAA – Filters
● Set of servlet filters to handle authentication:
– Supports negotiation using authz extensions.
– Supports basic authentication.
– HTTP session management.
KVM Forum, August 21st
2015 30/37
Existing AAA extensions
● internal
– Built-in into Engine
– Provides only admin user to login to oVirt
– Mostly used only in development environment, in
production oVirt 3.6+ it's replaced with aaa-jdbc
● kerberosldap
– Built-in into Engine
– The legacy mixed kerberos/ldap implementation
– It's deprecated in 3.6 (may be removed in 4.0) and
should be replaced with aaa-ldap
KVM Forum, August 21st
2015 31/37
Existing AAA extensions
● aaa-ldap
– Provided by ovirt-engine-extension-aaa-ldap
package
– Interface for users/groups stored in LDAP server
– Supports most of LDAP servers
– Can be fully customized using configuration files
● aaa-misc
– Provided by ovirt-engine-extension-aaa-misc
package
– Contains miscelaneous utilities for AAA
– Can be use to configure kerberos support for oVirt
using Apache mod_auth_kerb
KVM Forum, August 21st
2015 32/37
Existing AAA extensions
● aaa-jdbc
– New in oVirt 3.6
– Provided by ovirt-engine-extension-aaa-jdbc
package
– Interface for users/groups stored in PostgreSQL
database
– Provides command line tool ovirt-aaa-jdbc-tool to
manage users/groups
– Replaces internal extension in production
environment
KVM Forum, August 21st
2015 33/37
Engine Extension API Tools
KVM Forum, August 21st
2015 34/37
Engine Extension API Tools
● ovirt-engine-extensions-tool
– New in oVirt 3.6
– Provides ability to show information about installed
extensions (list, show configuration, ...)
– Enables testing of the extension functionality without
running engine
KVM Forum, August 21st
2015 35/37
Future plans
KVM Forum, August 21st
2015 36/37
AAA – Future plans
● ovirt-engine-extension-aaa-sssd
– sssd support.
● SSO service for oVirt applications
– Move Authn to its own application, modify userportal,
webadmin, reports to trust AAA application.
● We are currently planning what other parts of engine will
expose its features via Extension API in oVirt 4.0
KVM Forum, August 21st
2015 37/37
THANK YOU!
http://www.ovirt.org
mperina@redhat.com
mperina at #ovirt (irc.oftc.net)

More Related Content

What's hot

BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
Linaro
 
BKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in CentosBKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in Centos
Linaro
 
HKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRMHKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRM
Linaro
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
Vladimir Shakhov
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
Sean Cohen
 
Embedding Linux For An Automotive Environment
Embedding Linux For An Automotive EnvironmentEmbedding Linux For An Automotive Environment
Embedding Linux For An Automotive Environment
FSCONS
 
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Anne Nicolas
 
Step by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new onesStep by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new ones
Allon Mureinik
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
Bergamo Linux Users Group
 
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Giovanni Toraldo
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
dotCloud
 
oVirt 4.3 highlights
oVirt 4.3 highlightsoVirt 4.3 highlights
oVirt 4.3 highlights
Douglas Landgraf
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
Linaro
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?
Linaro
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
Alison Chaiken
 
Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015
Ramesh Nachimuthu
 
WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)
Igalia
 
Enterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpdEnterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpd
Vaclav Tunka
 
oVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN sizeoVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN size
Freddy Rolland
 
Porting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt projectPorting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt project
Macpaul Lin
 

What's hot (20)

BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
 
BKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in CentosBKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in Centos
 
HKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRMHKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRM
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
 
Embedding Linux For An Automotive Environment
Embedding Linux For An Automotive EnvironmentEmbedding Linux For An Automotive Environment
Embedding Linux For An Automotive Environment
 
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
 
Step by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new onesStep by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new ones
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
Cloud Computing in practice with OpenNebula ~ Develer workshop 2012
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
oVirt 4.3 highlights
oVirt 4.3 highlightsoVirt 4.3 highlights
oVirt 4.3 highlights
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015
 
WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)
 
Enterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpdEnterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpd
 
oVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN sizeoVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN size
 
Porting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt projectPorting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt project
 

Viewers also liked

The sexy world of Linux kernel pvops project
The sexy world of Linux kernel pvops projectThe sexy world of Linux kernel pvops project
The sexy world of Linux kernel pvops project
The Linux Foundation
 
PVOps Update
PVOps Update PVOps Update
PVOps Update
The Linux Foundation
 
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
Alexander Barriga, M.S.
 
C.V Updated
C.V UpdatedC.V Updated
DynamicsCRM_EmailMarketing_eBook_FINAL_041516
DynamicsCRM_EmailMarketing_eBook_FINAL_041516DynamicsCRM_EmailMarketing_eBook_FINAL_041516
DynamicsCRM_EmailMarketing_eBook_FINAL_041516
Monte Enbysk
 
Captsone_Paper_Alexander
Captsone_Paper_AlexanderCaptsone_Paper_Alexander
Captsone_Paper_Alexander
Alexander Barriga, M.S.
 
engineering portfolio
engineering portfolioengineering portfolio
engineering portfolio
Julie Meyerson
 
EAGaminiFonseka
EAGaminiFonsekaEAGaminiFonseka
EAGaminiFonseka
EA Gamini Fonseka
 
MOMM
MOMMMOMM
Resume_3.8YrsExp
Resume_3.8YrsExpResume_3.8YrsExp
Resume_3.8YrsExp
Monika Binjwa
 
Los Videojuegos
Los VideojuegosLos Videojuegos
Los Videojuegos
MarioGuindel
 
Identification of Unknown Bacteria Extracted from Flagstaff, AZ
Identification of Unknown Bacteria Extracted from Flagstaff, AZIdentification of Unknown Bacteria Extracted from Flagstaff, AZ
Identification of Unknown Bacteria Extracted from Flagstaff, AZ
Victoria Ziegler
 
Paralegal Portfolio
Paralegal PortfolioParalegal Portfolio
Paralegal Portfolio
Stephanie Bowman
 
Power of Brand Innovation and Proliferation
Power of Brand Innovation and ProliferationPower of Brand Innovation and Proliferation
Power of Brand Innovation and Proliferation
Sgbed
 
Product Innovation - Key to Marketing Success? Some Lessons from FMCG Firms i...
Product Innovation - Key to Marketing Success?Some Lessons from FMCG Firms i...Product Innovation - Key to Marketing Success?Some Lessons from FMCG Firms i...
Product Innovation - Key to Marketing Success? Some Lessons from FMCG Firms i...
Sgbed
 
Perceived Brand Equity: A Journey from Efficiency to Effectiveness
Perceived Brand Equity: A Journey from Efficiency to EffectivenessPerceived Brand Equity: A Journey from Efficiency to Effectiveness
Perceived Brand Equity: A Journey from Efficiency to Effectiveness
Sgbed
 
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
Gabriela Patil
 

Viewers also liked (17)

The sexy world of Linux kernel pvops project
The sexy world of Linux kernel pvops projectThe sexy world of Linux kernel pvops project
The sexy world of Linux kernel pvops project
 
PVOps Update
PVOps Update PVOps Update
PVOps Update
 
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
760da4_120dd9cb4b6043f8a4d8ce27ac4d8ae6
 
C.V Updated
C.V UpdatedC.V Updated
C.V Updated
 
DynamicsCRM_EmailMarketing_eBook_FINAL_041516
DynamicsCRM_EmailMarketing_eBook_FINAL_041516DynamicsCRM_EmailMarketing_eBook_FINAL_041516
DynamicsCRM_EmailMarketing_eBook_FINAL_041516
 
Captsone_Paper_Alexander
Captsone_Paper_AlexanderCaptsone_Paper_Alexander
Captsone_Paper_Alexander
 
engineering portfolio
engineering portfolioengineering portfolio
engineering portfolio
 
EAGaminiFonseka
EAGaminiFonsekaEAGaminiFonseka
EAGaminiFonseka
 
MOMM
MOMMMOMM
MOMM
 
Resume_3.8YrsExp
Resume_3.8YrsExpResume_3.8YrsExp
Resume_3.8YrsExp
 
Los Videojuegos
Los VideojuegosLos Videojuegos
Los Videojuegos
 
Identification of Unknown Bacteria Extracted from Flagstaff, AZ
Identification of Unknown Bacteria Extracted from Flagstaff, AZIdentification of Unknown Bacteria Extracted from Flagstaff, AZ
Identification of Unknown Bacteria Extracted from Flagstaff, AZ
 
Paralegal Portfolio
Paralegal PortfolioParalegal Portfolio
Paralegal Portfolio
 
Power of Brand Innovation and Proliferation
Power of Brand Innovation and ProliferationPower of Brand Innovation and Proliferation
Power of Brand Innovation and Proliferation
 
Product Innovation - Key to Marketing Success? Some Lessons from FMCG Firms i...
Product Innovation - Key to Marketing Success?Some Lessons from FMCG Firms i...Product Innovation - Key to Marketing Success?Some Lessons from FMCG Firms i...
Product Innovation - Key to Marketing Success? Some Lessons from FMCG Firms i...
 
Perceived Brand Equity: A Journey from Efficiency to Effectiveness
Perceived Brand Equity: A Journey from Efficiency to EffectivenessPerceived Brand Equity: A Journey from Efficiency to Effectiveness
Perceived Brand Equity: A Journey from Efficiency to Effectiveness
 
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
A Writer, a Designer and an Engineer Walk into a Bar… A Creative Take on Stru...
 

Similar to oVirt Extension API: The first step for fully modular oVirt

What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
chalermpany
 
Sprint 138
Sprint 138Sprint 138
Sprint 138
ManageIQ
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
Leon Anavi
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue
 
Sprint 114
Sprint 114Sprint 114
Sprint 114
ManageIQ
 
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptxToronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Anurag Dwivedi
 
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
Shawn Wells
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
WSO2
 
Sprint 134
Sprint 134Sprint 134
Sprint 134
ManageIQ
 
Relax-and-Recover Automated Testing
Relax-and-Recover Automated TestingRelax-and-Recover Automated Testing
Relax-and-Recover Automated Testing
Gratien D'haese
 
Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016
Ramesh Nachimuthu
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloud
Dobrica Pavlinušić
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
GetInData
 
Washington DC MuleSoft Meetup 05-12-22-2.pptx
Washington DC MuleSoft Meetup 05-12-22-2.pptxWashington DC MuleSoft Meetup 05-12-22-2.pptx
Washington DC MuleSoft Meetup 05-12-22-2.pptx
ivaturia
 
Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014
Miguel Zuniga
 
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
Shawn Wells
 
Sprint 140
Sprint 140Sprint 140
Sprint 140
ManageIQ
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
PROIDEA
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
Robert Bohne
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architecture
David Rundle
 

Similar to oVirt Extension API: The first step for fully modular oVirt (20)

What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
 
Sprint 138
Sprint 138Sprint 138
Sprint 138
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
 
Sprint 114
Sprint 114Sprint 114
Sprint 114
 
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptxToronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
 
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
 
Sprint 134
Sprint 134Sprint 134
Sprint 134
 
Relax-and-Recover Automated Testing
Relax-and-Recover Automated TestingRelax-and-Recover Automated Testing
Relax-and-Recover Automated Testing
 
Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloud
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
Washington DC MuleSoft Meetup 05-12-22-2.pptx
Washington DC MuleSoft Meetup 05-12-22-2.pptxWashington DC MuleSoft Meetup 05-12-22-2.pptx
Washington DC MuleSoft Meetup 05-12-22-2.pptx
 
Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014Cloud Platform Symantec Meetup Nov 2014
Cloud Platform Symantec Meetup Nov 2014
 
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
2008-07-15 zNTP Conference, Red Hat Enterprise Solutions for System z
 
Sprint 140
Sprint 140Sprint 140
Sprint 140
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architecture
 

Recently uploaded

一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 

Recently uploaded (16)

一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 

oVirt Extension API: The first step for fully modular oVirt

  • 1. KVM Forum, August 21st 2015 1/37 oVirt Extension API The first step for fully modular oVirt Martin Peřina Software Engineer at Red Hat
  • 2. KVM Forum, August 21st 2015 2/37 Agenda ● Introduction ● oVirt Engine Extension API ● Extension API for AAA ● Extension API for Logging ● Extension API Tools ● Future plans
  • 3. KVM Forum, August 21st 2015 3/37 Introduction
  • 4. KVM Forum, August 21st 2015 4/37 What is oVirt? ● Large scale, centralized management system for server and desktop virtualization based on Linux/KVM
  • 5. KVM Forum, August 21st 2015 5/37 Extending oVirt prior to version 3.5 ● Extensibility of oVirt < 3.4 was limited, the project consisted of two monolitic parts: Engine and VDSM ● Engine UI Plugins – enables to create a plugin for UI that is able to communicate with Engine using REST API ● VDSM Hooks – enable to execute custom script/command at certain predefined points in the flow
  • 6. KVM Forum, August 21st 2015 6/37 What is AAA? ● Authentication – Verification of identity that is trying to access the system ● Authorization – Verification of resources that identity is allowed to access ● Accounting – Statistics of resource usage by identity
  • 7. KVM Forum, August 21st 2015 7/37 AAA status in oVirt <= 3.4 ● Complex implementation using Kerberos ● Insecure (no SSL/TLS, no SSO) ● No proper support for multi-domain setup ● No customization (monolithic module, logic and schema hard-coded) ● Not optimized (always recursive, sub-optimal LDAP queries)
  • 8. KVM Forum, August 21st 2015 8/37 Monolithic or extension based? ● Monolithic methodology is never flexible enough for customization not considered during initial design ● “Easy” to extend without breaking backward compatibility ● Not specific to AAA, but usable for whole oVirt Engine ● Possibility to write extensions in other languages (provided by JVM) ● Ability for extension to extension interaction
  • 9. KVM Forum, August 21st 2015 9/37 oVirt Engine Extension API
  • 10. KVM Forum, August 21st 2015 10/37 Engine Extension API ● Introduced in oVirt 3.5 ● Currently used only for AAA and logging, but available for all parts of engine ● JBoss Modules is used to load extensions ● Extension's configuration is stored in properties files
  • 11. KVM Forum, August 21st 2015 11/37 Engine Extension API ● Primitive invoke-based interface, parameters are passed as maps package org.ovirt.engine.api.extensions; public interface Extension { void invoke(ExtMap input, ExtMap output); }
  • 12. KVM Forum, August 21st 2015 12/37 Engine Extension API ● Map keys contains meaningful name, UUID and type: public static final ExtKey COMMAND = new ExtKey( "EXTENSION_INVOKE_COMMAND", ExtUUID.class, "485778ab-bede-4f1a-b823-77b262a2f28d" ); public static final ExtKey RESULT = new ExtKey( "EXTENSION_INVOKE_RESULT", Integer.class, "0909d91d-8bde-40fb-b6c0-099c772ddd4e" );
  • 13. KVM Forum, August 21st 2015 13/37 Engine Extension API ● Common types for all extensions are placed in org.ovirt.engine.api.extensions package: ● ExtUUID – contains UUID and descriptive name ● ExtKey – consists of ExtUUID and type ● ExtMap – defined as Map<ExtKey, Object> – contains run-time type enforcement to value with key type information
  • 14. KVM Forum, August 21st 2015 14/37 Engine Extension API ● Base – contains common constants for all extensions: – InvokeKeys ● keys of input/output maps for invoke() method – InvokeCommands ● available commands: LOAD, INITIALIZE, TERMINATE – InvokeResult ● result of invoke() method execution: SUCCESS, UNSUPPORTED, FAILED
  • 15. KVM Forum, August 21st 2015 15/37 Engine Extension Configuration ● Extension configuration is stored in a property file which has to contain some mandatory options and may contain other extension specific options ● Configuration files should be placed under one of those directories: – /etc/ovirt-engine/extensions.d – /usr/share/ovirt-engine/extensions.d ● Configured extensions are loaded during engine start-up
  • 16. KVM Forum, August 21st 2015 16/37 Extension Configuration Sample ovirt.engine.extension.name = myextension ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engineextensions.myext ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.myext.MyExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.Extension
  • 17. KVM Forum, August 21st 2015 17/37 Extension Start-up Flow
  • 18. KVM Forum, August 21st 2015 18/37 ExtensionsManager class ● Provides internal API for engine to access extensions ● Uses Observer pattern to notify about extension updates ● It provides methods to access extensions: List<ExtensionProxy> getExtensionsByService( String provides) ExtensionProxy getExtensionByName(String name) List<ExtensionProxy> getLoadedExtensions() List<ExtensionProxy> getExtensions()
  • 19. KVM Forum, August 21st 2015 19/37 ExtensionProxy class ● Each loaded extensions is decorated with ExtensionProxy instance ● ExtensionProxy simplifies invoke() method execution: – Returns output map – Catches exceptions in case of a failure – Makes problem determination easier
  • 20. KVM Forum, August 21st 2015 20/37 Engine Extension API for Logging
  • 21. KVM Forum, August 21st 2015 21/37 Logger ● Constants related to logger extensions are stored in org.ovirt.engine.api.extensions.logger.Logger ● Provides ability to: – Publish log record to logger extension – Flush log records in logger extension – Close logger extension
  • 22. KVM Forum, August 21st 2015 22/37 Logger extensions ● logger-log4j – Provided by ovirt-engine-extension-logger-log4j package – Provides log4j appenders for oVirt Engine – Can be used for example to pass oVirt Engine log records to syslog
  • 23. KVM Forum, August 21st 2015 23/37 Code sample
  • 24. KVM Forum, August 21st 2015 24/37 Engine Extension API for AAA
  • 25. KVM Forum, August 21st 2015 25/37 AAA – Authentication (aka authn) ● Constants related to authentication extensions are stored in org.ovirt.engine.api.extensions.aaa.Authn ● Goal: – Verify the user that tries to access system ● Input: – User name and password or – HTTP negotiation ● Output: – Authentication record which contains principal and validity time interval
  • 26. KVM Forum, August 21st 2015 26/37 AAA – Authorization (aka authz) ● Constants related to authorization extensions are stored in org.ovirt.engine.api.extensions.aaa.Authz ● Goal: – Provide details about user ● Input: – Principal ● Output: – Authentication record with additional information (user details, set of groups, etc.)
  • 27. KVM Forum, August 21st 2015 27/37 AAA – Accounting (aka acct) ● Constants related to accounting extensions are stored in org.ovirt.engine.api.extensions.aaa.Acct ● Provides framework for security related events (successful/unsuccessful login, logout, etc.) ● It will provide full auditing capability in future
  • 28. KVM Forum, August 21st 2015 28/37 AAA – Mapping ● Constants related to mapping extensions are stored in org.ovirt.engine.api.extensions.aaa.Mapping ● Provides: – mapping of user name before authn – mapping of principal before authz ● Examples: – removing Kerberos suffix from user name before SSO – removing domain name from principal before accessing LDAP
  • 29. KVM Forum, August 21st 2015 29/37 AAA – Filters ● Set of servlet filters to handle authentication: – Supports negotiation using authz extensions. – Supports basic authentication. – HTTP session management.
  • 30. KVM Forum, August 21st 2015 30/37 Existing AAA extensions ● internal – Built-in into Engine – Provides only admin user to login to oVirt – Mostly used only in development environment, in production oVirt 3.6+ it's replaced with aaa-jdbc ● kerberosldap – Built-in into Engine – The legacy mixed kerberos/ldap implementation – It's deprecated in 3.6 (may be removed in 4.0) and should be replaced with aaa-ldap
  • 31. KVM Forum, August 21st 2015 31/37 Existing AAA extensions ● aaa-ldap – Provided by ovirt-engine-extension-aaa-ldap package – Interface for users/groups stored in LDAP server – Supports most of LDAP servers – Can be fully customized using configuration files ● aaa-misc – Provided by ovirt-engine-extension-aaa-misc package – Contains miscelaneous utilities for AAA – Can be use to configure kerberos support for oVirt using Apache mod_auth_kerb
  • 32. KVM Forum, August 21st 2015 32/37 Existing AAA extensions ● aaa-jdbc – New in oVirt 3.6 – Provided by ovirt-engine-extension-aaa-jdbc package – Interface for users/groups stored in PostgreSQL database – Provides command line tool ovirt-aaa-jdbc-tool to manage users/groups – Replaces internal extension in production environment
  • 33. KVM Forum, August 21st 2015 33/37 Engine Extension API Tools
  • 34. KVM Forum, August 21st 2015 34/37 Engine Extension API Tools ● ovirt-engine-extensions-tool – New in oVirt 3.6 – Provides ability to show information about installed extensions (list, show configuration, ...) – Enables testing of the extension functionality without running engine
  • 35. KVM Forum, August 21st 2015 35/37 Future plans
  • 36. KVM Forum, August 21st 2015 36/37 AAA – Future plans ● ovirt-engine-extension-aaa-sssd – sssd support. ● SSO service for oVirt applications – Move Authn to its own application, modify userportal, webadmin, reports to trust AAA application. ● We are currently planning what other parts of engine will expose its features via Extension API in oVirt 4.0
  • 37. KVM Forum, August 21st 2015 37/37 THANK YOU! http://www.ovirt.org mperina@redhat.com mperina at #ovirt (irc.oftc.net)