PDF de programación - API Python de OpenStack Para Administración de Usuarios

Imágen de pdf API Python de OpenStack Para Administración de Usuarios

API Python de OpenStack Para Administración de Usuariosgráfica de visualizaciones

Publicado el 25 de Junio del 2017
634 visualizaciones desde el 25 de Junio del 2017
192,7 KB
14 paginas
Creado hace 5a (23/06/2014)
API Python de
OpenStack Para
Administración de

Usuarios



Carlos Miguel Hernández Romero

Proyecto Integrado 2º ASIR Junio 2013

API Python OpenStack Para Administración de Usuarios. I.E.S Gonzalo Nazareno

Índice de contenido

1. Introducción......................................................................................................................................3
2. ¿Que es OpenStack?..........................................................................................................................3
3. ¿Que es una API Web RESTful?.......................................................................................................3
4. APIs Python de OpenStack...............................................................................................................4
5. Ficheros que Compone la Aplicación...............................................................................................4
5.1 Credentials.py.............................................................................................................................4
5.2 UserdelStack.py..........................................................................................................................5
6. Modo de Uso...................................................................................................................................11
7. Problemas Encontrados...................................................................................................................13
8. Conclusión.......................................................................................................................................14
8. Bibliografía.....................................................................................................................................14

2

API Python OpenStack Para Administración de Usuarios. I.E.S Gonzalo Nazareno

1. Introducción.
El proyecto tiene como objetivo aprender a usar la API Python de OpenStack como herramienta
para realizar una aplicación en Python, en donde al administrador se le facilitara la tarea a la hora de
tener que eliminar el contenido de un usuario (Paso de un usuario de primero a segundo) o
eliminarlo completamente (Un alumno de segundo termina el ciclo).

Vamos a ver como funciona por dentro OpenStack ,de que partes esta compuesto y un ejemplo de
las múltiples cosas que se podrían hacer con la API Python de OpenStack.

Todo el contenido de la aplicación se aloja en el Github:
https://github.com/miguelhr/AdminOpenStack

2. ¿Que es OpenStack?
OpenStack es un proyecto Open Source, que cuenta con un gran número de colaboradores
trabajando en el mismo, no sólo desarrolladores sino expertos en otras ramas de la informática como
redes y almacenamiento.

También mencionar que se trata de un proyecto cuyo origen es la NASA y al que, con el paso del
tiempo, se le han unido empresas y organizaciones de fama mundial como HP, Dell, IBM, etc.

El objetivo de OpenStack es crear una plataforma en software libre para cloud computing que
cumpla con las necesidades de los proveedores de nubes publicas y privadas, independientemente de
su tamaño, que sea fácil de implementar y masivamente escalable

3. ¿Que es una API Web RESTful?
Las API web de tipo RESTful son las que se están imponiendo en internet a la hora de realizar
comunicaciones de aplicaciones con servicios web disponibles. Poco a poco esta desbancando
SOAP.

En un principio su finalidad es simple, poder permitir a los desarrolladores de software crear
programas que interactúen con otras aplicaciones. Un buen ejemplo son todas las aplicaciones
existentes que interactúan o utilizan de alguna manera a otras aplicaciones tales como Facebook,
Twitter o incluso mapas como los de Google Maps.

Las APIS REST tienen un conjunto de características que la definen:

• Cada uno de ellos es de acceso único a través de una URI (Universal Resource Identifier –

identificador de recursos universal).

• El formato utilizado mas extendidos para la transferencia son XML y JSON.
• Hay cuatro diferentes formas de comunicarnos con un servidor, mediante los métodos POST,

GET, PUT, y DELETE (recientemente se agregaron algunos otros como PATCH y
OPTIONS pero aun no son soportados por todas las librerías web)

3

API Python OpenStack Para Administración de Usuarios. I.E.S Gonzalo Nazareno

4. APIs Python de OpenStack.
OpenStack esta formado por varios componente, todos ellos trabajando en conjunto. La aplicación
no utiliza una sola API si no varias comunicándose entre si mediante APIs RESTful, las cuales se
explican a continuación:

Nova: Es el componente que se encarga de la gestión de Instancias.
Cinder: Nos da la posibilidad de obtener almacenamiento de volúmenes.
Keystone: Proporciona servicios de autenticación y autorización a todos los servicios de OpenStack.
Glance: Nos permite gestionar el almacenamiento de las imágenes para nuestras instancias.
Neutron: Conocido en versiones anteriores como “Quantum” es el encargados de las redes virtuales.

También tenemos que mencionar que cuenta con una aplicación web llamada “Horizon” cuyo
objetivo principal es proporcionar una interfaz de los servicios de OpenStack ,al administrador del
cloud y a los usuario.

Horizon no proporciona toda la funcionalidad que podemos conseguir a través del intérprete de
comandos, pero lo “poco” que hace lo hace correctamente.

5. Ficheros que Compone la Aplicación.
La aplicación esta compuesta por dos documentos “credentials.py y userdelStack.py”.
En el fichero credentials.py en donde se alojan las credenciales de los diferentes servicios, los cuales
serán llamados cuando sean necesarios.
En userdelStack.py es donde se encuentra el grueso de la aplicación y la mayor parte del código.
Ahora vamos a proceder a explicar las diferentes partes en la que se compone la aplicación y la
función de cada una de ellas.

5.1 Credentials.py.
Tendremos que importar el modulo “os” el cual nos facilita el diccionario de “environ”. Con ello
conseguiremos establecer las variables de entorno que usamos en nuestra maquina con el comando
source y nuestra archivo de identificación de la API y podremos autenticarnos.

import os
def get_keystone_creds():
d = {}
d['username'] = os.environ['OS_USERNAME']
d['password'] = os.environ['OS_PASSWORD']
d['auth_url'] = os.environ['OS_AUTH_URL']
d['tenant_name'] = os.environ['OS_TENANT_NAME']
return d

def get_nova_creds():
d = {}
d['username'] = os.environ['OS_USERNAME']
d['api_key'] = os.environ['OS_PASSWORD']

4

API Python OpenStack Para Administración de Usuarios. I.E.S Gonzalo Nazareno

d['auth_url'] = os.environ['OS_AUTH_URL']
d['project_id'] = os.environ['OS_TENANT_NAME']
return d

def get_credentials():
d = {}
d['username'] = os.environ['OS_USERNAME']
d['password'] = os.environ['OS_PASSWORD']
d['auth_url'] = os.environ['OS_AUTH_URL']
d['tenant_name'] = os.environ['OS_TENANT_NAME']
return d

def get_cinder_credentials():
d = [os.environ['OS_USERNAME'],
os.environ['OS_PASSWORD'],
os.environ['OS_TENANT_NAME'],
os.environ['OS_AUTH_URL']]
return d

5.2 UserdelStack.py.
Importamos los diferente módulos que vamos a usar:

import novaclient.v1_1.client as nvclient
from keystoneclient.v2_0 import client
from neutronclient.v2_0 import client as neuclient
from cinderclient.v2 import client as cinderclient
import glanceclient.v2.client as glclient
import commands
from keystoneclient.apiclient import exceptions as api_exceptions
from credentials import get_keystone_creds
from credentials import get_nova_creds
from credentials import get_cinder_credentials
import time
import sys
import os

Esta parte intentamos que si usuario comete algún error a la hora de introducir los parámetros salte
un error indicándoles los datos a introducir.

Si el numero de argumentos es mayor o inferior a 3 o el argumento segundo es distinto de -completo
o -parcial nos saltara el error userdelStack.py <-completo o -parcial> <usuario>:

if len(sys.argv) > 3 or len(sys.argv) < 3 or sys.argv[1]!="-completo" and sys.argv[1]!="-parcial":
print "Por favor, si quiere eliminar un usuario, la sitaxis es"
print "userdelStack.py <-completo o -parcial> <usuario>"

5

API Python OpenStack Para Administración de Usuarios. I.E.S Gonzalo Nazareno

En caso de que todo sea correcto, entonces empezara a crear todas las funciones. Cada una de ella
tiene indicado su función con un comentario con ”#”:
else:
#Eliminar todas las instancias asociadas a un proyecto.
def instancias():
totalinstancias=nova.servers.list(search_opts={'all_tenants': True})
contador=0
for instancias in totalinstancias:
if proyecto in instancias.tenant_id:
contador=contador+1
if contador>0:
print "El proyecto %s tiene la/las instancia/s:" % proyecto
for instancias in totalinstancias:
if proyecto in instancias.tenant_id:
print instancias.name
totalgruposeguridad = neutron.list_security_groups()
for gruposeguridad in totalgruposeguridad:
for objeto in totalgruposeguridad[gruposeguridad]:
if proyecto in objeto['tenant_id'] and
objeto['name']==instancias.security_groups[0]['name']:
nova.servers.remove_security_group(instancias.id,objeto['id'])
nova.servers.delete(instancias.id)

#Eliminar todos los grupos de seguridad asociadas a un proyecto.
def gruposeguridad():
totalgruposeguridad = neutron.list_security_groups()
contador=0
for gruposeguridad in totalgruposeguridad:
for objeto in totalgruposeguridad[gruposegu
  • Links de descarga
http://lwp-l.com/pdf4633

Comentarios de: API Python de OpenStack Para Administración de Usuarios (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad