def main(): # get vlan auto resource model resource_context = helpers.get_resource_context_details() resource_model_parser = ResourceModelParser() vlan_auto_resource_model = resource_model_parser.convert_to_resource_model(resource_context) # get reservation details reservation_context = helpers.get_reservation_context_details() # Start api session api = helpers.get_api_session() vlan_service_provider = VlanResolverProvider(vlan_resource_model=vlan_auto_resource_model, pool_id=reservation_context.domain, reservation_id=reservation_context.id, owner_id=resource_context.name, api=api) if not vlan_service_provider.is_vlan_resolved(): # resolve vlan id vlan_id = vlan_service_provider.resolve_vlan_auto() vlan_id = str(vlan_id) # set resolved vlan id to virtual network attribute api.SetServiceAttributesValues(reservation_context.id, resource_context.name, [AttributeNameValue( vlan_auto_resource_model.virtual_network_attribute, vlan_id)]) _logger.info("{0} resolved vlan id {1} successfully".format(resource_context.name, vlan_id)) else: vlan_id = str(vlan_auto_resource_model.virtual_network) _logger.info("{0} already has a resolved vlan id: {1}".format(resource_context.name, vlan_id)) # command result for programmatic use set_command_result(vlan_id)
def test_parse_resource_model(self): resource_model_parser = ResourceModelParser() resource_info = create_autospec(ResourceContextDetails) resource_info.model = 'VLAN Auto' resource_info.attrib = {'Access Mode': 'Trunk', 'VLAN Id': '123', 'Allocation Ranges': '2-4094', 'Virtual Network': '', 'Isolation Level': 'Exclusive'} resource_model = resource_model_parser.convert_to_resource_model(resource_info) self.assertEqual(resource_model.access_mode, 'Trunk') self.assertEqual(resource_model.vlan_id, '123') self.assertEqual(resource_model.isolation_level, 'Exclusive') self.assertEqual(resource_model.allocation_ranges, '2-4094') self.assertEqual(resource_model.virtual_network, '') self.assertEqual(resource_model.virtual_network_attribute, 'Virtual Network')
def main(): # get vlan auto resource model resource_context = helpers.get_resource_context_details() resource_model_parser = ResourceModelParser() vlan_auto_resource_model = resource_model_parser.convert_to_resource_model( resource_context) # get reservation details reservation_context = helpers.get_reservation_context_details() # Start api session api = helpers.get_api_session() vlan_service_provider = VlanResolverProvider( vlan_resource_model=vlan_auto_resource_model, pool_id=reservation_context.domain, reservation_id=reservation_context.id, owner_id=resource_context.name, api=api) if not vlan_service_provider.is_vlan_resolved(): # resolve vlan id vlan_id = vlan_service_provider.resolve_vlan_auto() vlan_id = str(vlan_id) # set resolved vlan id to virtual network attribute api.SetServiceAttributesValues( reservation_context.id, resource_context.name, [ AttributeNameValue( vlan_auto_resource_model.virtual_network_attribute, vlan_id) ]) _logger.info("{0} resolved vlan id {1} successfully".format( resource_context.name, vlan_id)) else: vlan_id = str(vlan_auto_resource_model.virtual_network) _logger.info("{0} already has a resolved vlan id: {1}".format( resource_context.name, vlan_id)) # command result for programmatic use set_command_result(vlan_id)
def test_parse_resource_model(self): resource_model_parser = ResourceModelParser() resource_info = create_autospec(ResourceContextDetails) resource_info.model = 'VLAN Auto' resource_info.attrib = { 'Access Mode': 'Trunk', 'VLAN Id': '123', 'Allocation Ranges': '2-4094', 'Virtual Network': '', 'Isolation Level': 'Exclusive' } resource_model = resource_model_parser.convert_to_resource_model( resource_info) self.assertEqual(resource_model.access_mode, 'Trunk') self.assertEqual(resource_model.vlan_id, '123') self.assertEqual(resource_model.isolation_level, 'Exclusive') self.assertEqual(resource_model.allocation_ranges, '2-4094') self.assertEqual(resource_model.virtual_network, '') self.assertEqual(resource_model.virtual_network_attribute, 'Virtual Network')