1
"""Tests for server wrapper and helper functions"""
3
from juju.providers.openstack.machine import (
8
from juju.lib.testing import TestCase
11
class GetServerStatusTest(TestCase):
12
"""Tests for mapping of Nova status names to EC2 style names"""
14
def test_build_schedualing(self):
15
self.assertEqual("pending",
16
get_server_status({u'status': u'BUILD(scheduling)'}))
18
def test_build_spawning(self):
19
self.assertEqual("pending",
20
get_server_status({u'status': u'BUILD(spawning)'}))
22
def test_active(self):
23
self.assertEqual("running",
24
get_server_status({u'status': u'ACTIVE'}))
26
def test_no_status(self):
27
self.assertEqual("pending",
28
get_server_status({}))
30
def test_mystery_status(self):
31
self.assertEqual("unknown",
32
get_server_status({u'status': u'NEVER_BEFORE_SEEN_MYSTERY'}))
35
class GetServerAddressesTest(TestCase):
36
"""Tests for deriving a public and private address from Nova dict"""
38
def test_missing(self):
39
self.assertEqual((None, None), get_server_addresses({}))
42
self.assertEqual((None, None),
43
get_server_addresses({u'addresses': {}}))
45
def test_private_only(self):
46
self.assertEqual(("127.0.0.4", None),
47
get_server_addresses({u'addresses': {
48
"private": [{"addr": "127.0.0.4", "version": 4}],
51
def test_private_plus(self):
52
self.assertEqual(("127.0.0.4", "8.8.4.4"),
53
get_server_addresses({u'addresses': {
55
{"addr": "127.0.0.4", "version": 4},
56
{"addr": "8.8.4.4", "version": 4},
60
def test_public_only(self):
61
self.assertEqual((None, "8.8.8.8"),
62
get_server_addresses({u'addresses': {
63
"public": [{"addr": "8.8.8.8", "version": 4}],
66
def test_public_and_private(self):
67
self.assertEqual(("127.0.0.4", "8.8.8.8"),
68
get_server_addresses({u'addresses': {
69
"public": [{"addr": "8.8.8.8", "version": 4}],
70
"private": [{"addr": "127.0.0.4", "version": 4}],
73
def test_public_and_private_plus(self):
74
self.assertEqual(("127.0.0.4", "8.8.8.8"),
75
get_server_addresses({u'addresses': {
76
"public": [{"addr": "8.8.8.8", "version": 4}],
78
{"addr": "127.0.0.4", "version": 4},
79
{"addr": "8.8.4.4", "version": 4},
83
def test_custom_only(self):
84
self.assertEqual(("127.0.0.2", None),
85
get_server_addresses({u'addresses': {
86
"special": [{"addr": "127.0.0.2", "version": 4}],
89
def test_custom_plus(self):
90
self.assertEqual(("127.0.0.2", "8.8.4.4"),
91
get_server_addresses({u'addresses': {
93
{"addr": "127.0.0.2", "version": 4},
94
{"addr": "8.8.4.4", "version": 4},
98
def test_custom_and_private(self):
99
self.assertEqual(("127.0.0.4", None),
100
get_server_addresses({u'addresses': {
101
"special": [{"addr": "127.0.0.2", "version": 4}],
102
"private": [{"addr": "127.0.0.4", "version": 4}],
105
def test_custom_and_public(self):
106
self.assertEqual(("127.0.0.2", "8.8.8.8"),
107
get_server_addresses({u'addresses': {
108
"special": [{"addr": "127.0.0.2", "version": 4}],
109
"public": [{"addr": "8.8.8.8", "version": 4}],