Skip to content

Commit a64aa54

Browse files
committed
Updated vlan auto to work correctly according to design
1 parent bb4f4e5 commit a64aa54

4 files changed

Lines changed: 30 additions & 30 deletions

File tree

common/logger/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def get_logging_config(level_console="DEBUG", level_file=None, logfile=None):
6969
}
7070
return logger
7171

72-
print os.environ.get("LOG_LEVEL") or "DEBUG"
72+
# print os.environ.get("LOG_LEVEL") or "DEBUG"
7373
initial_log_level = os.environ.get("LOG_LEVEL") or "DEBUG"
7474
logging.config.dictConfig(get_logging_config(initial_log_level))
7575

tests/test_vlan_service/test_vlan_resolver.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def test_vlan_service_requested_specific_vlan_numeric_outside_of_allocated_range
146146

147147
self.assertRaises(ValueError, resolver._ensure_numeric_vlan_valid, allocation_range)
148148

149-
def test_vlan_service_get_requested_vlan_returns_range(self):
149+
def test_vlan_service_get_requested_vlan_range_throws_not_supported(self):
150150
vlan_resource_model = VLANAutoResourceModel()
151151
vlan_resource_model.vlan_id = "20-30"
152152
vlan_resource_model.virtual_network = ""
@@ -158,10 +158,7 @@ def test_vlan_service_get_requested_vlan_returns_range(self):
158158
owner_id="VLAN Auto",
159159
api=Mock())
160160

161-
requested_range = resolver._get_requested_vlan()
162-
163-
self.assertEquals(requested_range.start, 20)
164-
self.assertEquals(requested_range.end, 30)
161+
self.assertRaises(ValueError, resolver._get_requested_vlan_auto)
165162

166163
def test_vlan_service_get_requested_vlan_returns_numeric(self):
167164
vlan_resource_model = VLANAutoResourceModel()
@@ -175,7 +172,7 @@ def test_vlan_service_get_requested_vlan_returns_numeric(self):
175172
owner_id="VLAN Auto",
176173
api=Mock())
177174

178-
vlan = resolver._get_requested_vlan()
175+
vlan = resolver._get_requested_vlan_auto()
179176

180177
self.assertEquals(vlan, 20)
181178

@@ -204,15 +201,15 @@ def test_vlan_service_resolves_specific_numeric(self):
204201
"VLAN Auto", "Exclusive", 20)
205202
self.assertEquals(resolved_vlan, 20)
206203

207-
def test_vlan_service_resolves_first_numeric_from_range(self):
204+
def test_vlan_service_resolves_first_numeric_when_vlan_id_empty(self):
208205
vlan_resource_model = VLANAutoResourceModel()
209-
vlan_resource_model.vlan_id = "20-30"
206+
vlan_resource_model.vlan_id = ""
210207
vlan_resource_model.isolation_level = "Exclusive"
211208
vlan_resource_model.virtual_network = ""
212209
vlan_resource_model.allocation_ranges = "10-100"
213210

214211
resolved_vlan_info = Mock()
215-
resolved_vlan_info.VlanId = 20
212+
resolved_vlan_info.VlanId = 10
216213

217214
api = MagicMock()
218215
api.GetVlanAutoSelectFirstNumericFromRange = Mock(return_value=resolved_vlan_info)
@@ -226,5 +223,5 @@ def test_vlan_service_resolves_first_numeric_from_range(self):
226223
resolved_vlan = resolver.resolve_vlan_auto()
227224

228225
api.GetVlanAutoSelectFirstNumericFromRange.assert_called_with("Global", "c5144273-c456-4885-a9b7-f5b058f02678",
229-
"VLAN Auto", "Exclusive", 20, 30)
230-
self.assertEquals(resolved_vlan, 20)
226+
"VLAN Auto", "Exclusive", 10, 100)
227+
self.assertEquals(resolved_vlan, 10)

vlan_service/auto/__main__.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import os
2-
import models
3-
from time import sleep
41
import qualipy.scripts.cloudshell_scripts_helpers as helpers
52
from qualipy.api.cloudshell_api import AttributeNameValue
63
from common.model_factory import ResourceModelParser
74
from vlan_service.resolver.provider import VlanResolverProvider
85
from common.utilites.command_result import set_command_result
6+
from common.logger import getLogger
7+
8+
_logger = getLogger('VlanAuto')
99

1010

1111
def main():
@@ -27,23 +27,20 @@ def main():
2727
if not vlan_service_provider.is_vlan_resolved():
2828
# resolve vlan id
2929
vlan_id = vlan_service_provider.resolve_vlan_auto()
30+
vlan_id = str(vlan_id)
3031
# set resolved vlan id to virtual network attribute
3132
api.SetServiceAttributesValues(reservation_context.id,
3233
resource_context.name,
3334
[AttributeNameValue(
3435
vlan_auto_resource_model.virtual_network_attribute,
3536
vlan_id)])
36-
# write success message to reservation output
37-
api.WriteMessageToReservationOutput(reservation_context.id,
38-
"{0} resolved vlan id {1} successfully".format(resource_context.name,
39-
str(vlan_id)))
37+
_logger.info("{0} resolved vlan id {1} successfully".format(resource_context.name, vlan_id))
38+
4039
else:
41-
# write already resolved message to reservation output
4240
vlan_id = str(vlan_auto_resource_model.virtual_network)
43-
api.WriteMessageToReservationOutput(reservation_context.id,
44-
"{0} already has a resolved vlan id: {1}"
45-
.format(resource_context.name,
46-
vlan_id))
41+
_logger.info("{0} already has a resolved vlan id: {1}".format(resource_context.name, vlan_id))
42+
43+
# command result for programmatic use
4744
set_command_result(vlan_id)
4845

4946

vlan_service/resolver/provider.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def resolve_vlan_auto(self):
2525
if self.is_vlan_resolved():
2626
return self.vlan_resource_model.virtual_network
2727

28-
requested_vlan = self._get_requested_vlan()
28+
requested_vlan = self._get_requested_vlan_auto()
2929

3030
if isinstance(requested_vlan, self.VlanRange):
3131
vlan_range = requested_vlan
@@ -51,19 +51,25 @@ def is_vlan_resolved(self):
5151
return False
5252
return True
5353

54-
def _get_requested_vlan(self):
54+
def _get_requested_vlan_auto(self):
5555
"""
5656
returns the requested vlan (specific numeric OR numeric range)
5757
:return: numeric vlan id OR numeric vlan range
5858
"""
59-
self._ensure_vlan_id_not_empty()
6059

6160
allocation_range = self._get_allocation_range()
6261

62+
if not self.vlan_resource_model.vlan_id:
63+
# Vlan Id empty, get first available from allocation range
64+
return allocation_range
65+
66+
# self._ensure_vlan_id_not_empty()
67+
6368
if self._is_vlan_id_range():
64-
vlan_range = self._get_vlan_range_from_vlan_id()
65-
self._ensure_vlan_range_valid(vlan_range, allocation_range)
66-
return vlan_range
69+
raise ValueError("Vlan range is not supported")
70+
# vlan_range = self._get_vlan_range_from_vlan_id()
71+
# self._ensure_vlan_range_valid(vlan_range, allocation_range)
72+
# return vlan_range
6773
else:
6874
self._ensure_numeric_vlan_valid(allocation_range)
6975
return int(self.vlan_resource_model.vlan_id)

0 commit comments

Comments
 (0)