1010# License for the specific language governing permissions and limitations
1111# under the License.
1212
13- import unittest
1413import uuid
1514
1615from openstack .network .v2 import network
1716from openstack .network .v2 import segment
1817from openstack .tests .functional import base
1918
2019
21- # NOTE(rtheis): Routed networks is still a WIP and not enabled by default.
22- @unittest .skip ("bp/routed-networks" )
2320class TestSegment (base .BaseFunctionalTest ):
2421
2522 NETWORK_NAME = uuid .uuid4 ().hex
@@ -28,45 +25,90 @@ class TestSegment(base.BaseFunctionalTest):
2825 SEGMENTATION_ID = None
2926 NETWORK_ID = None
3027 SEGMENT_ID = None
28+ SEGMENT_EXTENSION = None
3129
3230 @classmethod
3331 def setUpClass (cls ):
3432 super (TestSegment , cls ).setUpClass ()
3533
34+ # NOTE(rtheis): The segment extension is not yet enabled by default.
35+ # Skip the tests if not enabled.
36+ cls .SEGMENT_EXTENSION = cls .conn .network .find_extension ('segment' )
37+
3638 # Create a network to hold the segment.
3739 net = cls .conn .network .create_network (name = cls .NETWORK_NAME )
3840 assert isinstance (net , network .Network )
3941 cls .assertIs (cls .NETWORK_NAME , net .name )
4042 cls .NETWORK_ID = net .id
4143
42- # Get the segment for the network.
43- for seg in cls .conn .network .segments ():
44- assert isinstance (seg , segment .Segment )
45- if cls .NETWORK_ID == seg .network_id :
46- cls .NETWORK_TYPE = seg .network_type
47- cls .PHYSICAL_NETWORK = seg .physical_network
48- cls .SEGMENTATION_ID = seg .segmentation_id
49- cls .SEGMENT_ID = seg .id
50- break
44+ if cls .SEGMENT_EXTENSION :
45+ # Get the segment for the network.
46+ for seg in cls .conn .network .segments ():
47+ assert isinstance (seg , segment .Segment )
48+ if cls .NETWORK_ID == seg .network_id :
49+ cls .NETWORK_TYPE = seg .network_type
50+ cls .PHYSICAL_NETWORK = seg .physical_network
51+ cls .SEGMENTATION_ID = seg .segmentation_id
52+ cls .SEGMENT_ID = seg .id
53+ break
5154
5255 @classmethod
5356 def tearDownClass (cls ):
5457 sot = cls .conn .network .delete_network (cls .NETWORK_ID ,
5558 ignore_missing = False )
5659 cls .assertIs (None , sot )
5760
61+ def test_create_delete (self ):
62+ if self .SEGMENT_EXTENSION :
63+ sot = self .conn .network .create_segment (
64+ description = 'test description' ,
65+ name = 'test name' ,
66+ network_id = self .NETWORK_ID ,
67+ network_type = 'geneve' ,
68+ segmentation_id = 2055 ,
69+ )
70+ self .assertIsInstance (sot , segment .Segment )
71+ del_sot = self .conn .network .delete_segment (sot .id )
72+ self .assertEqual ('test description' , sot .description )
73+ self .assertEqual ('test name' , sot .name )
74+ self .assertEqual (self .NETWORK_ID , sot .network_id )
75+ self .assertEqual ('geneve' , sot .network_type )
76+ self .assertIsNone (sot .physical_network )
77+ self .assertEqual (2055 , sot .segmentation_id )
78+ self .assertIsNone (del_sot )
79+ else :
80+ self .skipTest ('Segment extension disabled' )
81+
5882 def test_find (self ):
59- sot = self .conn .network .find_segment (self .SEGMENT_ID )
60- self .assertEqual (self .SEGMENT_ID , sot .id )
83+ if self .SEGMENT_EXTENSION :
84+ sot = self .conn .network .find_segment (self .SEGMENT_ID )
85+ self .assertEqual (self .SEGMENT_ID , sot .id )
86+ else :
87+ self .skipTest ('Segment extension disabled' )
6188
6289 def test_get (self ):
63- sot = self .conn .network .get_segment (self .SEGMENT_ID )
64- self .assertEqual (self .SEGMENT_ID , sot .id )
65- self .assertEqual (self .NETWORK_ID , sot .network_id )
66- self .assertEqual (self .NETWORK_TYPE , sot .network_type )
67- self .assertEqual (self .PHYSICAL_NETWORK , sot .physical_network )
68- self .assertEqual (self .SEGMENTATION_ID , sot .segmentation_id )
90+ if self .SEGMENT_EXTENSION :
91+ sot = self .conn .network .get_segment (self .SEGMENT_ID )
92+ self .assertEqual (self .SEGMENT_ID , sot .id )
93+ self .assertIsNone (sot .name )
94+ self .assertEqual (self .NETWORK_ID , sot .network_id )
95+ self .assertEqual (self .NETWORK_TYPE , sot .network_type )
96+ self .assertEqual (self .PHYSICAL_NETWORK , sot .physical_network )
97+ self .assertEqual (self .SEGMENTATION_ID , sot .segmentation_id )
98+ else :
99+ self .skipTest ('Segment extension disabled' )
69100
70101 def test_list (self ):
71- ids = [o .id for o in self .conn .network .segments ()]
72- self .assertIn (self .SEGMENT_ID , ids )
102+ if self .SEGMENT_EXTENSION :
103+ ids = [o .id for o in self .conn .network .segments (name = None )]
104+ self .assertIn (self .SEGMENT_ID , ids )
105+ else :
106+ self .skipTest ('Segment extension disabled' )
107+
108+ def test_update (self ):
109+ if self .SEGMENT_EXTENSION :
110+ sot = self .conn .network .update_segment (self .SEGMENT_ID ,
111+ description = 'update' )
112+ self .assertEqual ('update' , sot .description )
113+ else :
114+ self .skipTest ('Segment extension disabled' )
0 commit comments