def get_auth():
    auth = generic.Password(
        auth_url=shell.env('OS_AUTH_URL'),
        username=shell.env('OS_USERNAME'),
        password=shell.env('OS_PASSWORD'),
        tenant_name=shell.env('OS_TENANT_NAME')
    )

    return auth
Ejemplo n.º 2
0
def build_option_parser(parser):
    """Hook to add global options."""
    parser.add_argument('--os-dns-api-version',
                        metavar='<dns-api-version>',
                        default=shell.env('OS_DNS_API_VERSION'),
                        help='DNS API version, default=' +
                        DEFAULT_API_VERSION + ' (Env: OS_DNS_API_VERSION)')

    return parser
Ejemplo n.º 3
0
def build_option_parser(parser):
    """Hook to add global options."""
    parser.add_argument(
        '--os-dns-api-version',
        metavar='<dns-api-version>',
        default=shell.env('OS_DNS_API_VERSION', default="2"),
        help='DNS API version, default=' +
             DEFAULT_API_VERSION +
             ' (Env: OS_DNS_API_VERSION)')

    return parser
Ejemplo n.º 4
0
def dissociateIP(floating_ip):
    floating_ip = '172.24.4.4'
    # Use Admin Tenant ID for this session
    session = getAuthSession(shell.env('OS_TENANT_ID'))
    client = novaClient.Client('2', session=session)
    try:
        fip = client.floating_ips.list()
        if fip is not None:
            for ip in fip:
                print ip.ip
    except novaClient.exceptions.NotFound as nf:
        print "Floating IP : " + floating_ip + " not found on openstack"
    except Exception as e:
        print "Error finding floating IP " + str(type(e))
Ejemplo n.º 5
0
def getAuthSession(tenant_id):
    auth = generic.Password(auth_url=shell.env('OS_AUTH_URL'),
                            username=shell.env('OS_USERNAME'),
                            password=shell.env('OS_PASSWORD'),
                            tenant_id=tenant_id)
    return keystone_session.Session(auth=auth)
Ejemplo n.º 6
0
from __future__ import print_function
import logging

from designateclient.v2 import client
from designateclient import exceptions
from designateclient import shell

from keystoneauth1.identity import generic
from keystoneauth1 import session as keystone_session

logging.basicConfig(level='DEBUG')
"""
Example script to create or get a domain and add some records to it.
"""

auth = generic.Password(auth_url=shell.env('OS_AUTH_URL'),
                        username=shell.env('OS_USERNAME'),
                        password=shell.env('OS_PASSWORD'),
                        project_name=shell.env('OS_PROJECT_NAME'),
                        project_domain_id='default',
                        user_domain_id='default')

session = keystone_session.Session(auth=auth)

client = client.Client(session=session)

try:
    zone = client.zones.create('i.io.', email='*****@*****.**')
except exceptions.RemoteError:
    zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']
Ejemplo n.º 7
0
import sys
import argparse
import logging
import dns.exception
from dns.ipv4 import inet_aton
import netaddr

from designateclient.v2 import client
from designateclient import shell

from keystoneauth1.identity import generic
from keystoneauth1 import session as keystone_session


auth = generic.Password(
    auth_url=shell.env('OS_AUTH_URL'),
    username=shell.env('OS_USERNAME'),
    password=shell.env('OS_PASSWORD'),
    project_name=shell.env('OS_PROJECT_NAME'),
    project_domain_id=shell.env('OS_PROJECT_DOMAIN_ID'),
    user_domain_id=shell.env('OS_USER_DOMAIN_ID'))

session = keystone_session.Session(auth=auth)

client = client.Client(session=session)

logging.basicConfig()
LOG = logging.getLogger('fixleadingzeros')


def find_bad_recordsets():
import logging

from designateclient.v2 import client
from designateclient import exceptions
from designateclient import shell

from keystoneauth1.identity import generic
from keystoneauth1 import session as keystone_session


logging.basicConfig(level='DEBUG')

auth = generic.Password(
    auth_url=shell.env('OS_AUTH_URL'),
    username=shell.env('OS_USERNAME'),
    password=shell.env('OS_PASSWORD'),
    project_name=shell.env('OS_PROJECT_NAME'),
    project_domain_id='default',
    user_domain_id='default')

session = keystone_session.Session(auth=auth)

client = client.Client(session=session)


try:
    zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']
    client.zones.delete(zone['id'])
except exceptions.NotFound:
    pass
def main():
    if len(sys.argv) != 6 and len(sys.argv) != 2:
        print(
            "Usgae:  {} input_file [auth_url username password tenant]".format(
                sys.argv[0]))
        exit(1)
    if len(sys.argv) == 6:
        print(
            "Creating DNS records using record defs from {}, authurl {}, username {}, tenant {}"
            .format(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[5]))
    else:
        print(
            "Creating DNS records using record defs from {}, authurl {}, username {}, tenant {}"
            .format(shell.env('OS_AUTH_URL'), shell.env('OS_USERNAME'),
                    shell.env('OS_PASSWORD'), shell.env('OS_PROJECT_NAME')))

    print("Usage:  {} disabled until changed".format(sys.argv[0]))
    exit(1)

    inputfilepath = sys.argv[1]
    auth = ""

    if len(sys.argv) == 2:
        auth = generic.Password(auth_url=shell.env('OS_AUTH_URL'),
                                username=shell.env('OS_USERNAME'),
                                password=shell.env('OS_PASSWORD'),
                                project_name=shell.env('OS_PROJECT_NAME'),
                                project_domain_id='default',
                                user_domain_id='default')
    else:
        auth = generic.Password(auth_url=sys.argv[2],
                                username=sys.argv[3],
                                password=sys.argv[4],
                                project_name=sys.argv[5],
                                project_domain_id='default',
                                user_domain_id='default')

    if not auth:
        print("Fail to get authenticated from OpenStack")
        exit(1)

    session = keystone_session.Session(auth=auth)
    client = designate_client.Client(session=session)

    zone_name = 'simpledemo.onap.org'
    zone_name_dot = zone_name + '.'

    zone_list = client.zones.list()
    print("before: \n{}".format(json.dumps(zone_list, indent=4)))

    zone = find_entry_by_name(entry_list=zone_list, entry_name=zone_name_dot)
    if zone:
        print("exitsing zone: zone id {}".format(zone['id']))
    else:
        zone = client.zones.create(zone_name_dot, email='*****@*****.**')
        print("newly created zone: zone id {}".format(zone['id']))

    recordsets = client.recordsets.list(zone['id'])
    # delete all exitsing A and CNAME records under the zone_name
    for recordset in recordsets:
        if not recordset['name'].endswith(zone_name_dot):
            continue
        print("Deleting recordset {}".format(recordset['name']))
        if recordset['type'] == 'A':
            client.recordsets.delete(zone['id'], recordset['id'])
        elif recordset['type'] == 'CNAME':
            client.recordsets.delete(zone['id'], recordset['id'])

    with open(inputfilepath, 'r') as inputfile:
        records_to_add = yaml.load(inputfile)
        for key, value in records_to_add.iteritems():
            if not key.endswith(zone_name):
                continue
            try:
                socket.inet_aton(value)
                # take zone name out (including the . before it)
                key = key[:-(len(zone_name) + 1)]
                print("Creating DNS A record for: {} - {}".format(key, value))
                rs = client.recordsets.create(zone['id'], key, 'A', [value])
            except:
                print()

        for key, value in records_to_add.iteritems():
            if not key.endswith(zone_name):
                continue
            try:
                socket.inet_aton(value)
            except:
                # take zone name out (and the . before it)
                key = key[:-(len(zone_name) + 1)]
                if not value.endswith('.'):
                    value = value + '.'
                print("Creating DNS CNAME record for: {} - {}".format(
                    key, value))
                rs = client.recordsets.create(zone['id'], key, 'CNAME',
                                              [value])

    recordsets = client.recordsets.list(zone['id'])
    print("before: \n{}".format(json.dumps(recordsets, indent=4)))
from __future__ import print_function

import logging

from designateclient import exceptions
from designateclient import shell
from designateclient.v2 import client

from keystoneclient.auth.identity import generic
from keystoneclient import session as keystone_session


logging.basicConfig(level='DEBUG')

auth = generic.Password(
    auth_url=shell.env('OS_AUTH_URL'),
    username=shell.env('OS_USERNAME'),
    password=shell.env('OS_PASSWORD'),
    tenant_name=shell.env('OS_TENANT_NAME'))

session = keystone_session.Session(auth=auth)

client = client.Client(session=session)


try:
    zone = client.zones.create('i.io.', email='*****@*****.**')
except exceptions.RemoteError:
    zone = dict([(z['name'], z) for z in client.zones.list()])['i.io.']

print(client.recordsets.list(zone['id']))
Ejemplo n.º 11
0
import logging
import requests
import os
import time
import datetime

from designateclient.v2 import client
from designateclient import exceptions
from designateclient import shell

from keystoneclient.auth.identity import generic
from keystoneclient import session as keystone_session

# Authenticate

auth = generic.Password(auth_url=shell.env('OS_AUTH_URL'),
                        username=shell.env('OS_USERNAME'),
                        password=shell.env('OS_PASSWORD'),
                        tenant_name=shell.env('OS_TENANT_NAME'))
session = keystone_session.Session(auth=auth)
client = client.Client(session=session)

# Check if the public_suffix_list is newer than the last change according to the atom feed?
r = requests.head("https://publicsuffix.org/list/public_suffix_list.dat")
print ""
print ""
print r.headers['Last-Modified']
list_mod_date = datetime.datetime.strptime(r.headers['Last-Modified'],
                                           "%a, %d %b %Y %H:%M:%S %Z")

r.close