lib/nova_plugins/hypervisor-libvirt
e263c82e
 #!/bin/bash
 #
8c032d16
 # lib/nova_plugins/hypervisor-libvirt
 # Configure the libvirt hypervisor
 
 # Enable with:
 # VIRT_DRIVER=libvirt
 
 # Dependencies:
 # ``functions`` file
 # ``nova`` configuration
 
 # install_nova_hypervisor - install any external requirements
 # configure_nova_hypervisor - make configuration changes, including those to other services
 # start_nova_hypervisor - start any external services
 # stop_nova_hypervisor - stop any external services
 # cleanup_nova_hypervisor - remove transient data and cache
 
 # Save trace setting
523f4880
 _XTRACE_NOVA_LIBVIRT=$(set +o | grep xtrace)
8c032d16
 set +o xtrace
 
0f73ff2c
 source $TOP_DIR/lib/nova_plugins/functions-libvirt
8c032d16
 
 # Defaults
 # --------
 
 
 # Entry Points
 # ------------
 
 # clean_nova_hypervisor - Clean up an installation
aee18c74
 function cleanup_nova_hypervisor {
8c032d16
     # This function intentionally left blank
     :
 }
 
 # configure_nova_hypervisor - Set config files, create data dirs, etc
aee18c74
 function configure_nova_hypervisor {
0f73ff2c
     configure_libvirt
1cd8efc8
     iniset $NOVA_CONF libvirt virt_type "$LIBVIRT_TYPE"
     iniset $NOVA_CONF libvirt cpu_mode "none"
51c681d6
     iniset $NOVA_CONF libvirt use_usb_tablet "False"
a1ffcfab
     iniset $NOVA_CONF libvirt live_migration_uri "qemu+ssh://$STACK_USER@%s/system"
6bf1f1fb
     iniset $NOVA_CONF DEFAULT default_ephemeral_format "ext4"
8c032d16
     iniset $NOVA_CONF DEFAULT compute_driver "libvirt.LibvirtDriver"
     LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
     iniset $NOVA_CONF DEFAULT firewall_driver "$LIBVIRT_FIREWALL_DRIVER"
     # Power architecture currently does not support graphical consoles.
     if is_arch "ppc64"; then
         iniset $NOVA_CONF DEFAULT vnc_enabled "false"
     fi
5705db69
 
fcc3f6ee
     # arm64-specific configuration
     if is_arch "aarch64"; then
         # arm64 architecture currently does not support graphical consoles.
         iniset $NOVA_CONF DEFAULT vnc_enabled "false"
     fi
 
a3c94468
     # File injection is being disabled by default in the near future -
     # disable it here for now to avoid surprises later.
     iniset $NOVA_CONF libvirt inject_partition '-2'
19354585
 
     if [[ "$LIBVIRT_TYPE" = "parallels" ]]; then
         iniset $NOVA_CONF libvirt connection_uri "parallels+unix:///system"
         iniset $NOVA_CONF libvirt images_type "ploop"
e6f37b91
         iniset $NOVA_CONF DEFAULT force_raw_images  "False"
         iniset $NOVA_CONF DEFAULT vncserver_proxyclient_address  $HOST_IP
         iniset $NOVA_CONF DEFAULT vncserver_listen $HOST_IP
         iniset $NOVA_CONF DEFAULT vnc_keymap
19354585
     fi
8c032d16
 }
 
 # install_nova_hypervisor() - Install external components
aee18c74
 function install_nova_hypervisor {
0f73ff2c
     install_libvirt
8c032d16
 
     # Install and configure **LXC** if specified.  LXC is another approach to
     # splitting a system into many smaller parts.  LXC uses cgroups and chroot
     # to simulate multiple systems.
     if [[ "$LIBVIRT_TYPE" == "lxc" ]]; then
         if is_ubuntu; then
             if [[ "$DISTRO" > natty ]]; then
                 install_package cgroup-lite
             fi
         else
             ### FIXME(dtroyer): figure this out
             echo "RPM-based cgroup not implemented yet"
             yum_install libcgroup-tools
         fi
     fi
 }
 
 # start_nova_hypervisor - Start any required external services
aee18c74
 function start_nova_hypervisor {
8c032d16
     # This function intentionally left blank
     :
 }
 
 # stop_nova_hypervisor - Stop any external services
aee18c74
 function stop_nova_hypervisor {
8c032d16
     # This function intentionally left blank
     :
 }
 
 
 # Restore xtrace
523f4880
 $_XTRACE_NOVA_LIBVIRT
8c032d16
 
 # Local variables:
 # mode: shell-script
 # End: