Red de conocimiento informático - Material del sitio web - Cómo implementar personalizaciones en un entorno OpenStack

Cómo implementar personalizaciones en un entorno OpenStack

1? ¿Dónde están los archivos?

El método de instalación en línea actual se instala básicamente configurando la fuente de instalación, entonces, ¿dónde están los archivos de programa del proyecto openstack instalado? Tome Nova como ejemplo:

¿Está familiarizado con la estructura de este directorio? Sí, es básicamente la misma que la estructura del proyecto explorada en eclipse. Esta es la ruta del código fuente después de instalar openstack. Luego mire el siguiente directorio:

Aquí está el archivo compilado del proyecto nova, y el archivo py es solo un enlace al archivo correspondiente en el directorio anterior.

2? Modificación práctica de archivos Python

Conociendo la ubicación de los archivos fuente y los archivos compilados, podemos modificar fácilmente el programa para satisfacer nuestros propios requisitos. Tomemos como ejemplo la modificación del proceso de evaluación del permiso de operación de nova. Cuando nova crea una máquina virtual, llamará al método _check_create_policies de la clase API en nova/compute/api.py, juzgará los permisos de operación según el contenido del archivo Policy.json y finalmente llamará al método enforce en nova/ Policy.py:

Cuando se llama al método _check_create_policies en nova/compute/api.py, llama al método _check_create_policies_policy.py y llama al método _check_create_policies_policy.py. Método py enforce:

Si queremos saber cuál es el contexto del programa hasta este punto, podemos modificar el archivo de la siguiente manera. Tenga en cuenta que se han agregado cuatro líneas nuevas en comparación con el código anterior. :

p>

Nota: Introduzca el registro al principio del archivo y defina:

LOG = logging.getLogger(__name__)

Imprimimos dos líneas * para localizar rápidamente el registro, imprima también el contenido del contexto y genere explícitamente una excepción para detener el procesamiento.

Reimprimir