Entradas etiquetadas como python

How to launch an instance on OpenStack (III): Python novaclient library


The OpenStack project is a libre software cloud computing platform for private and public clouds, which aims to be simple to implement, massively scalable, and feature rich. OpenStack provides an Infrastructure as a Service (IaaS) solution through a set of interrelated services. Each service offers an application programming interface (API) that facilitates this integration.

Users getting started with OpenStack can find useful this and related posts, where different ways of how to launch and instance on OpenStack are given. In the previous posts, how to do this using both OpenStack Dashboard (Horizon) and OpenStack CLI were shown. In this post using the same scenario and starting point, identical result will be achieved, but using OpenStack Python novaclient library instead Horizon or OpenStack CLI. Both sysadmins and devops trying to integrate OpenStack with the rest of their own systems and applications will found this post useful, mainly if they like to use python for these purposes.

Note [19/11/2015]: This post was a little bit outdated because it was written in 2013 using OpenStack Grizzly. Thanks to a comment I realized that there is a change in the way the selected network is defined when an instance is launched, so I’ve made a minor update in this step and now this method must be valid at least up to OpenStack Icehouse (the OpenStack release we’re still using), if you find any other issue, please let me know.

Leer el resto de esta entrada »

Anuncios

, , , ,

6 comentarios

Utilización de OAuth 1.0 en Google Apps con python bottle


Siguiendo con el uso de OAuth como en la entrada anterior Utilización paso a paso de OAuth 1.0 en twitter con python bottle seguimos con la utilización de este mecanismo de autorización, pero esta vez utilizando Google Apps como proveedor de servicios. Toda la discusión sobre las características principales de OAuth 1.0 está en la entrada anterior, por lo que recomendamos su lectura previa a cualquier lector interesado. Google ya no recomienda utilizar la versión 1.0 de OAuth, que dan por obsoleta (“deprecated”) y recomiendan realizar nuevas aplicaciones utilizando OAuth 2.0, pero en nuestro caso, que se trata principalmente de un ejercicio académico para comprender el funcionamiento de OAuth y puesto que ya tenemos una mini aplicación desarrollada, vamos a reutilizar la mayor parte de este código para interactuar ahora con una de las múltiples APIs de las que dispone Google, en concreto Google Apps Email Settings API Authentication.

Leer el resto de esta entrada »

, , , , ,

Deja un comentario

Utilización paso a paso de OAuth 1.0 en twitter con python bottle


El objetivo de esta entrada es explicar de forma detallada la utilización del protocolo OAth 1.0 en la API de twitter, para la que desarrollaremos una sencilla aplicación que nos permitirá escribir un “tweet” en nombre de un usuario cualquiera de twitter. La aplicación la desarrollaremos en Python utilizando el framework bottle y la desplegaremos en la PaaS OpenShift de RedHat.

Leer el resto de esta entrada »

, , , ,

Deja un comentario

Uso de APIs web RESTful con Python requests


Uno de los métodos que se están imponiendo en Internet para la comunicación de aplicaciones con servicios web disponibles es una API web tipo RESTful o REST, este método está desplazando paulatinamente a XML-RPC que está en progresivo desuso o SOAP, protocolo que es una recomendación de la W3C para ofrecer servicios web.

Las API REST está imponiéndose a otros métodos por su sencillez, y a pesar de que no son un protocolo bien establecido como SOAP, tienen un conjunto de aspectos que las definen:

  • Se utiliza una URI para definir el servicio web
  • Los datos se transfieren utilizando un formato como estandarizado (XML y JSON son los dos más extendidos actualmente)
  • Se utilizan métodos estándar HTTP: GET, POST, PUT o DELETE

En esta entrada veremos mediante algunos ejemplos la forma de utilizar APIs REST desde una aplicación Python, utilizando la biblioteca requests.

Leer el resto de esta entrada »

, , ,

2 comentarios

Servicios web


Pequeña introducción a los servicios web para utilizar en el curso de Lenguajes de Marcas:

, , , , , ,

1 comentario

Verificar el dígito de control (DC) de una cuenta corriente en Python


El Código Cuenta Cliente (CCC) es el código que identifica en España las cuentas corrientes de los clientes de bancos. El CCC tiene 20 dígitos en formato AAAA-BBBB-CC-DDDDDDDDDD.

  • AAAA son cuatro dígitos que identifican la entidad bancaria.
  • BBBB son cuatro dígitos que identifican la oficina.
  • CC se denomina dígito de control (DC).
  • DDDDDDDDDD son 10 dígitos de la cuenta del cliente en el banco.

Según la wikipedia:
Los dígitos situados en las posiciones novena y décima se generan a partir de los demás dígitos del CCC, permitiendo comprobar la validez del mismo y reducir la posibilidad de errores de manipulación. El primero de ellos valida conjuntamente los códigos de entidad y de oficina; el segundo, valida el número de cuenta.

Cada uno de los dígitos del DC se calcula utilizando el mismo algoritmo, para lo que se complementa con dos ceros a la izquierda la entidad y oficina.

Una función para calcular el DC en python podría ser:

def calcula_dc(secuencia):
    """Calcula el dígito de control de una CCC.
    Recibe una lista con 10 numeros enteros y devuelve el DC
    correspondiente"""

    pesos = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6]
    aux = []
    for i in range(10):
        aux.append(secuencia[i]*pesos[i])
    resto = 11 - sum(aux)%11
    if resto == 10:
        return 1
    elif resto == 11:
        return 0
    else:
        return resto

Y un pequeño programa para validar una cuenta corriente sería:

ccc = raw_input("Introduce el CCC: ").split('-')
entidadyoficina = [0, 0]
for i in range(2):
    for j in range(4):
        entidadyoficina.append(int(ccc[i][j]))
cuenta = []
for i in range(10):
    cuenta.append(int(ccc[3][i]))
dc = str(calcula_dc(entidadyoficina))+str(calcula_dc(cuenta))
if dc == ccc[2]:
    print 'CCC verificado'
else:
    print 'Hay un error en el CCC'

,

1 comentario

A %d blogueros les gusta esto: