Skip to content

Commit

Permalink
Add updated Mitaka examples
Browse files Browse the repository at this point in the history
- Adds a demo of the osc `client.sh` and a zone.txt to import
- Updates the python bindings examples to work
  • Loading branch information
TimSimmons committed Apr 15, 2016
1 parent 21929e0 commit 3857022
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 26 deletions.
51 changes: 51 additions & 0 deletions files/client.sh
@@ -0,0 +1,51 @@
#/bin/bash
set -e
set -o pipefail

source openrc.user1
echo "source user1 credentials"

openstack zone list
echo "listed zones - nothing here!"

echo "creating openstack.org."
openstack zone create --email user@openstack.org openstack.org.

sleep 20
openstack zone list

echo "creating a recordset"
openstack recordset create --type A --records 127.0.0.1 --ttl 300 openstack.org. foo

sleep 20
openstack recordset list openstack.org.

echo "deleting openstack.org"
openstack zone delete openstack.org.

sleep 5
openstack zone list
echo "listed zones - nothing here"

echo "importing a zone"
openstack zone import create importdemo.txt

sleep 10
openstack zone import list

IMPORT_ID=$(openstack zone import list -f value | cut -d ' ' -f 1)
openstack zone import delete "$IMPORT_ID"

openstack zone list

echo "export the zone!"
openstack zone export create designatedemo.com.

sleep 10
EXPORT_ID=$(openstack zone export list -f value | cut -d ' ' -f 1)
openstack zone export showfile "$EXPORT_ID" -f value

openstack zone export delete "$EXPORT_ID"

openstack zone delete designatedemo.com.

31 changes: 15 additions & 16 deletions files/example.py
@@ -1,10 +1,12 @@
#!/usr/bin/env python

import requests
from designateclient.client import Client

from designateclient import shell
from designateclient.v2.client import Client
from designateclient import exceptions
from keystoneclient import session
from keystoneclient.auth.identity import v2
from keystoneclient import session as keystone_session
from keystoneclient.auth.identity import generic


url = 'http://myexternalip.com'
try:
Expand All @@ -13,19 +15,16 @@
except Exception:
ip = '127.0.0.1'

user = 'admin'
project = 'admin'
password = 'password'


auth = v2.Password(auth_url='http://127.0.0.1:5000/v2.0',
username=user,
password=password,
tenant_id='96c0fbc191524f508bbbf460f67e4a5f')

sess = session.Session(auth=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')
)

client = Client('2', session=sess, http_log_debug=True, region_name='regionOne')
endpoint = 'http://127.0.0.1:9001/v2'
session = keystone_session.Session(auth=auth)
client = Client(session=session, endpoint_override=endpoint)

try:
client.recordsets.create('example.com.', 'me.example.com.', 'A', [ip], 'Auto-Generated Record')
Expand Down
8 changes: 8 additions & 0 deletions files/importdemo.txt
@@ -0,0 +1,8 @@
$ORIGIN designatedemo.com.
designatedemo.com. 300 IN SOA ns.designatedemo.com. nsadmin.designatedemo.com. 1000 1001 1002 1003 1004
designatedemo.com. 300 IN NS ns.designatedemo.com.
ns.designatedemo.com. 300 IN A 1.2.3.4
www.designatedemo.com. 300 IN A 66.55.237.26
www2.designatedemo.com. 300 IN A 45.16.124.233
google.designatedemo.com. 300 IN CNAME google.com.

23 changes: 13 additions & 10 deletions files/short_url.py
Expand Up @@ -2,10 +2,13 @@

import os
import argparse
import random

from designateclient.v2.client import Client
from designateclient import shell

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

from pprint import pprint

Expand All @@ -19,18 +22,19 @@ def randstr(length=7, chars=CHARS):


def get_auth():
user = os.environ['OS_USERNAME']
password = os.environ['OS_PASSWORD']
tenant_id = os.environ['OS_TENANT_ID']
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 v2.Password(auth_url='http://127.0.0.1:5000/v2.0',
username=user,
password=password,
tenant_id=tenant_id)
return auth


def get_client(auth):
endpoint = 'http://127.0.0.1:9001/v2'

session = keystone_session.Session(auth=auth)
return Client(session=session, endpoint_override=endpoint)

Expand All @@ -43,14 +47,14 @@ def find_zone(client, name):


def create_zone(client, name):
zone = c.zones.create(name, email='admin@%s' % name)
zone = client.zones.create(name, email='admin@%s' % name.strip('.'))
return zone


def get_args():
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--create', action='store_true',
help='Create the zone'))
help='Create the zone')
parser.add_argument('zone')
parser.add_argument('url')
return parser.parse_args()
Expand All @@ -73,6 +77,5 @@ def main():
pprint(client.recordsets.create(zone['id'], name, 'CNAME', [str(args.url)]))
print('Created %s CNAME for %s' % (name, args. url))


if __name__ == '__main__':
main()
2 changes: 2 additions & 0 deletions scripts/workshop.sh
Expand Up @@ -53,6 +53,8 @@ cp /tmp/files/install-designate.sh /home/vagrant/install-designate.sh
cp /tmp/files/pools.yaml /home/vagrant/pools.yaml
cp /tmp/files/example.py /home/vagrant/example.py
cp /tmp/files/short_url.py /home/vagrant/short_url.py
cp /tmp/files/client.sh /home/vagrant/client.sh
cp /tmp/files/importdemo.txt /home/vagrant/importdemo.txt

# Make sure everything in vagrant's home is owned by vagrant
chown -R vagrant:vagrant /home/vagrant/*
Expand Down

0 comments on commit 3857022

Please sign in to comment.