aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Duval <thomas.duval@orange.com>2016-09-06 15:52:54 +0200
committerThomas Duval <thomas.duval@orange.com>2016-09-20 10:38:37 +0200
commit9c8d7a4d8e5ff6b0973fa27ce5a70d2419f2f271 (patch)
treef6f42b9811d0da761a8b31a6e21e84d3fecdd01d
parentf81ecda07c3203856af134aca2b397711432a58f (diff)
Update federation tests and nova commands.
Change-Id: I8eed3fdc79ce72521a9db26d527c73a106fdd08f (cherry picked from commit 878770990beb5641ad70a4f669fd263e891dd1bb)
-rw-r--r--moonclient/moonclient/tests/tests_empty_policy_new_user.json52
-rw-r--r--moonclient/moonclient/tests/tests_empty_policy_nova.json46
-rw-r--r--moonclient/moonclient/tests/tests_external_commands.json46
-rwxr-xr-xtests/run_tests.py55
4 files changed, 173 insertions, 26 deletions
diff --git a/moonclient/moonclient/tests/tests_empty_policy_new_user.json b/moonclient/moonclient/tests/tests_empty_policy_new_user.json
index d2ca0e2a..1b17cc28 100644
--- a/moonclient/moonclient/tests/tests_empty_policy_new_user.json
+++ b/moonclient/moonclient/tests/tests_empty_policy_new_user.json
@@ -22,6 +22,48 @@
"description": "Upload the Cirros image in glance"
},
{
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default tcp 22 22 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create router",
+ "external_command": "neutron router-create demo-router",
+ "result": "",
+ "description": "Create a new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-gateway-set demo-router ext-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron net-create demo-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron subnet-create demo-net 192.168.1.0/24 --name demo-subnet --gateway 192.168.1.1",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-interface-add demo-router demo-subnet",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
"name": "openstack image list",
"external_command": "nova image-list",
"result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
@@ -30,8 +72,8 @@
{
"name": "create tenant test",
"external_command": "openstack project create test_moonclient",
- "result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
- "description": "Get an Image ID"
+ "result": "",
+ "description": "Create a new tenant"
},
{
"name": "add role admin to demo",
@@ -42,13 +84,13 @@
{
"name": "neutron net-list",
"external_command": "neutron net-list",
- "result": "(?P<uuid_net>[\\w-]+)\\s+\\| ext-net",
+ "result": "(?P<uuid_net>[\\w-]+)\\s+\\| demo-net",
"description": "Get an Net ID"
},
{
"name": "nova boot new server",
- "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net test_moonclient",
- "result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros-0.",
+ "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net --security-group default test_moonclient",
+ "result": "",
"description": "Get an Image ID"
},
{
diff --git a/moonclient/moonclient/tests/tests_empty_policy_nova.json b/moonclient/moonclient/tests/tests_empty_policy_nova.json
index de266d31..399710be 100644
--- a/moonclient/moonclient/tests/tests_empty_policy_nova.json
+++ b/moonclient/moonclient/tests/tests_empty_policy_nova.json
@@ -20,6 +20,48 @@
"description": "Upload the Cirros image in glance"
},
{
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default tcp 22 22 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create router",
+ "external_command": "neutron router-create demo-router",
+ "result": "",
+ "description": "Create a new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-gateway-set demo-router ext-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron net-create demo-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron subnet-create demo-net 192.168.1.0/24 --name demo-subnet --gateway 192.168.1.1",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-interface-add demo-router demo-subnet",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
"name": "nova image-list",
"external_command": "nova image-list",
"result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
@@ -33,8 +75,8 @@
},
{
"name": "nova boot new server",
- "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net test_moonclient",
- "result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
+ "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net --security-group default test_moonclient",
+ "result": "",
"description": "Get an Image ID"
},
{
diff --git a/moonclient/moonclient/tests/tests_external_commands.json b/moonclient/moonclient/tests/tests_external_commands.json
index 25993dd0..4caa0df1 100644
--- a/moonclient/moonclient/tests/tests_external_commands.json
+++ b/moonclient/moonclient/tests/tests_external_commands.json
@@ -130,6 +130,48 @@
"description": "Upload the Cirros image in glance"
},
{
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create secgroup",
+ "external_command": "nova secgroup-add-rule default tcp 22 22 0.0.0.0/0",
+ "result": "",
+ "description": "Create a new secgroup in Nova"
+ },
+ {
+ "name": "create router",
+ "external_command": "neutron router-create demo-router",
+ "result": "",
+ "description": "Create a new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-gateway-set demo-router ext-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron net-create demo-net",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron subnet-create demo-net 192.168.1.0/24 --name demo-subnet --gateway 192.168.1.1",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
+ "name": "set router",
+ "external_command": "neutron router-interface-add demo-router demo-subnet",
+ "result": "",
+ "description": "Configure the new router"
+ },
+ {
"name": "nova image-list",
"external_command": "nova image-list",
"result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
@@ -143,8 +185,8 @@
},
{
"name": "nova boot new server",
- "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net test_moonclient",
- "result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
+ "external_command": "nova boot --flavor m1.tiny --image $uuid_image --nic net-id=$uuid_net --security-group default test_moonclient",
+ "result": "",
"description": "Get an Image ID"
},
{
diff --git a/tests/run_tests.py b/tests/run_tests.py
index 2ed011be..4b702198 100755
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
@@ -13,7 +13,12 @@ import os
import sys
import time
import yaml
-
+import subprocess
+import json
+try:
+ import http.client as client
+except ImportError:
+ import httplib as client
PORT_ODL = 8181
HOST_ODL = "localhost"
@@ -43,26 +48,42 @@ except ImportError:
from urllib2 import HTTPBasicAuthHandler, build_opener, install_opener
+def __get_keystone_url():
+ with subprocess.Popen(["openstack", "endpoint", "show", "keystone", "-f", "yaml"], stdout=subprocess.PIPE) as proc:
+ y = yaml.load(proc.stdout.read())
+ url = y['publicurl']
+ url = url.replace("http://", "")
+ url = url.replace("https://", "")
+ host, port = url.split(":", maxsplit=1)
+ port = port.split("/")[0]
+ return host, port
+
+
def test_federation():
# Retrieve Moon token
- url = urlopen('http://{host}:{port}/moon/token'.format(host=HOST_ODL, port=PORT_ODL),
- data='grant_type=password&username=admin&password=console'.encode('utf-8'))
- code = url.getcode()
- if code not in (200, 201, 202, 204):
- return False, "Not able to retrieve Moon token (error code: {}).".format(code)
+ khost, kport = __get_keystone_url()
+ auth_data = {'username': 'admin', 'password': 'console'}
+ conn = client.HTTPConnection(khost, kport)
+ headers = {"Content-type": "application/json"}
+ conn.request("POST", "/moon/auth/tokens", json.dumps(auth_data).encode('utf-8'), headers=headers)
+ resp = conn.getresponse()
+ if resp.status not in (200, 201, 202, 204):
+ return False, "Not able to retrieve Moon token on {}:{} (error code: {}).".format(khost, kport, resp.status)
+
# Retrieve ODL token
- auth_handler = HTTPBasicAuthHandler()
- auth_handler.add_password(realm='Moon',
- uri='http://{host}:{port}/auth/v1/domains'.format(host=HOST_ODL, port=PORT_ODL),
- user='admin',
- passwd='console')
- opener = build_opener(auth_handler)
- install_opener(opener)
- url = urlopen('http://{host}:{port}/auth/v1/domains'.format(host=HOST_ODL, port=PORT_ODL))
- code = url.getcode()
- if code not in (200, 201, 202, 204):
- return False, "Not able to retrieve ODL token (error code: {}).".format(code)
+ # TODO (asteroide): must found how to get ODL host and port
+ # auth_handler = HTTPBasicAuthHandler()
+ # auth_handler.add_password(realm='Moon',
+ # uri='http://{host}:{port}/auth/v1/domains'.format(host=HOST_ODL, port=PORT_ODL),
+ # user='admin',
+ # passwd='console')
+ # opener = build_opener(auth_handler)
+ # install_opener(opener)
+ # url = urlopen('http://{host}:{port}/auth/v1/domains'.format(host=HOST_ODL, port=PORT_ODL))
+ # code = url.getcode()
+ # if code not in (200, 201, 202, 204):
+ # return False, "Not able to retrieve ODL token (error code: {}).".format(code)
return True, ""