-
Notifications
You must be signed in to change notification settings - Fork 55
/
base.py
147 lines (120 loc) · 5.28 KB
/
base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import test
from common import isolated_creds
from vn_test import *
from vm_test import *
import fixtures
from tcutils.util import Singleton
from common import create_public_vn
class CeilometerBaseTest(test.BaseTestCase):
@classmethod
def setUpClass(cls):
super(CeilometerBaseTest, cls).setUpClass()
if not cls.inputs.enable_ceilometer:
inst = cls()
raise inst.skipTest(
"Skipping Test.Ceilometer not enabled in the setup")
cls.isolated_creds = isolated_creds.IsolatedCreds(cls.__name__, cls.inputs, ini_file = cls.ini_file, logger = cls.logger)
cls.isolated_creds.setUp()
cls.project = cls.isolated_creds.create_tenant()
cls.isolated_creds.create_and_attach_user_to_tenant()
cls.inputs = cls.isolated_creds.get_inputs()
cls.connections = cls.isolated_creds.get_conections()
cls.quantum_h= cls.connections.quantum_h
cls.nova_h = cls.connections.nova_h
cls.vnc_lib= cls.connections.vnc_lib
cls.agent_inspect= cls.connections.agent_inspect
cls.cn_inspect= cls.connections.cn_inspect
cls.analytics_obj=cls.connections.analytics_obj
cls.public_vn_obj = create_public_vn.PublicVn(
cls.__name__,
cls.__name__,
cls.inputs,
ini_file=cls.ini_file,
logger=cls.logger)
cls.public_vn_obj.configure_control_nodes()
resource_class = cls.__name__ + 'Resource'
cls.res = ResourceFactory.createResource(resource_class)
#end setUpClass
@classmethod
def tearDownClass(cls):
cls.res.cleanUp()
cls.isolated_creds.delete_tenant()
super(CeilometerBaseTest, cls).tearDownClass()
#end tearDownClass
def remove_from_cleanups(self, fix):
for cleanup in self._cleanups:
if fix.cleanUp in cleanup:
self._cleanups.remove(cleanup)
break
#end remove_from_cleanups
class ResourceFactory:
factories = {}
def createResource(id):
if not ResourceFactory.factories.has_key(id):
ResourceFactory.factories[id] = \
eval(id + '.Factory()')
return ResourceFactory.factories[id].create()
createResource = staticmethod(createResource)
class BaseResource(fixtures.Fixture):
# __metaclass__ = Singleton
def setUp(self,inputs,connections,public_vn_obj):
super(BaseResource , self).setUp()
self.inputs = inputs
self.connections = connections
self.public_vn_obj = public_vn_obj
self.setup_common_objects(self.inputs , self.connections)
def cleanUp(self):
super(BaseResource, self).cleanUp()
def setup_common_objects(self, inputs , connections):
self.inputs = inputs
#self.inputs.set_af('dual')
self.connections = connections
self.logger = self.inputs.logger
fip_pool_name = self.inputs.fip_pool_name
fvn_name = 'public'
fip_subnets = [self.inputs.fip_pool]
vm1_name = 'vm200'
vn1_name = 'vn200'
vn1_subnets = ['11.1.1.0/24']
self.vn1_fixture = self.useFixture(
VNFixture(
project_name=self.inputs.project_name,
connections=self.connections,
vn_name=vn1_name,
inputs=inputs,
subnets=vn1_subnets))
assert self.vn1_fixture.verify_on_setup()
self.vm1_fixture = self.useFixture(
VMFixture(
project_name=self.inputs.project_name,
connections=self.connections,
vn_obj=self.vn1_fixture.obj,
vm_name=vm1_name))
assert self.vm1_fixture.verify_on_setup()
# Adding further projects to floating IP.
self.logger.info('Adding project %s to FIP pool %s' %
(self.inputs.project_name, fip_pool_name))
project_obj = self.public_vn_obj.fip_fixture.assoc_project\
(self.public_vn_obj.fip_fixture, self.inputs.project_name)
fip_id = self.public_vn_obj.fip_fixture.create_and_assoc_fip(
self.public_vn_obj.public_vn_fixture.vn_id, self.vm1_fixture.vm_id, project_obj)
self.addCleanup(self.public_vn_obj.fip_fixture.disassoc_and_delete_fip, fip_id)
assert self.public_vn_obj.fip_fixture.verify_fip(fip_id, self.vm1_fixture,
self.public_vn_obj.public_vn_fixture)
self.vm1_fixture.wait_till_vm_up()
assert self.vm1_fixture.ping_with_certainty('8.8.8.8')
assert self.vm1_fixture.ping_to_ip('8.8.8.8',count = '10')
# Removing further projects from floating IP pool. For cleanup
self.logger.info('Removing project %s to FIP pool %s' %
(self.inputs.project_name, fip_pool_name))
project_obj = self.public_vn_obj.fip_fixture.deassoc_project\
(self.public_vn_obj.fip_fixture, self.inputs.project_name)
#end setup_common_objects
class CeilometerTestResource (BaseResource):
def setUp(self,inputs,connections,public_vn_obj):
super(CeilometerTestResource , self).setUp(inputs,connections,public_vn_obj)
def cleanUp(self):
super(CeilometerTestResource, self).cleanUp()
class Factory:
def create(self): return CeilometerTestResource()
#End resource