2012-03-26 21:09:31 +04:00
# include <config.h>
# ifdef WITH_LXC
# include "testutilslxc.h"
# include "testutils.h"
2012-12-12 22:06:53 +04:00
# include "viralloc.h"
2012-03-26 21:09:31 +04:00
# include "domain_conf.h"
2019-12-03 13:49:49 +03:00
# define VIR_FROM_THIS VIR_FROM_LXC
2012-03-26 21:09:31 +04:00
2019-12-03 13:49:49 +03:00
virCapsPtr
testLXCCapsInit ( void )
2014-03-18 12:13:43 +04:00
{
2012-03-26 21:09:31 +04:00
virCapsPtr caps ;
virCapsGuestPtr guest ;
2012-12-18 23:32:23 +04:00
if ( ( caps = virCapabilitiesNew ( VIR_ARCH_X86_64 ,
2014-07-14 16:56:13 +04:00
false , false ) ) = = NULL )
2012-03-26 21:09:31 +04:00
return NULL ;
2015-04-18 01:09:16 +03:00
if ( ( guest = virCapabilitiesAddGuest ( caps , VIR_DOMAIN_OSTYPE_EXE ,
VIR_ARCH_I686 ,
2012-03-26 21:09:31 +04:00
" /usr/libexec/libvirt_lxc " , NULL ,
0 , NULL ) ) = = NULL )
goto error ;
2015-04-18 01:38:10 +03:00
if ( ! virCapabilitiesAddGuestDomain ( guest , VIR_DOMAIN_VIRT_LXC , NULL , NULL , 0 , NULL ) )
2012-03-26 21:09:31 +04:00
goto error ;
2015-04-18 01:09:16 +03:00
if ( ( guest = virCapabilitiesAddGuest ( caps , VIR_DOMAIN_OSTYPE_EXE ,
VIR_ARCH_X86_64 ,
2012-03-26 21:09:31 +04:00
" /usr/libexec/libvirt_lxc " , NULL ,
0 , NULL ) ) = = NULL )
goto error ;
2015-04-18 01:38:10 +03:00
if ( ! virCapabilitiesAddGuestDomain ( guest , VIR_DOMAIN_VIRT_LXC , NULL , NULL , 0 , NULL ) )
2012-03-26 21:09:31 +04:00
goto error ;
if ( virTestGetDebug ( ) ) {
char * caps_str ;
caps_str = virCapabilitiesFormatXML ( caps ) ;
if ( ! caps_str )
goto error ;
2015-04-23 20:38:00 +03:00
VIR_TEST_DEBUG ( " LXC driver capabilities: \n %s " , caps_str ) ;
2012-03-26 21:09:31 +04:00
VIR_FREE ( caps_str ) ;
}
return caps ;
2014-03-25 10:53:44 +04:00
error :
2013-02-01 16:26:18 +04:00
virObjectUnref ( caps ) ;
2012-03-26 21:09:31 +04:00
return NULL ;
}
2019-12-03 13:49:49 +03:00
virLXCDriverPtr
testLXCDriverInit ( void )
{
virLXCDriverPtr driver = g_new0 ( virLXCDriver , 1 ) ;
if ( virMutexInit ( & driver - > lock ) < 0 ) {
virReportError ( VIR_ERR_INTERNAL_ERROR ,
" %s " , " cannot initialize mutex " ) ;
g_free ( driver ) ;
return NULL ;
}
driver - > caps = testLXCCapsInit ( ) ;
2020-12-03 21:55:24 +03:00
driver - > xmlopt = lxcDomainXMLConfInit ( driver , NULL ) ;
2019-12-03 13:49:49 +03:00
return driver ;
}
void
testLXCDriverFree ( virLXCDriverPtr driver )
{
virObjectUnref ( driver - > xmlopt ) ;
virObjectUnref ( driver - > caps ) ;
virMutexDestroy ( & driver - > lock ) ;
g_free ( driver ) ;
}
2012-03-26 21:09:31 +04:00
# endif