<s> import abc <EOL> from neutron_lib . api import converters <EOL> from neutron_lib import constants <EOL> from neutron_lib import exceptions <EOL> import six <EOL> from neutron . _i18n import _ <EOL> from neutron . api import extensions <EOL> DISTRIBUTED = '<STR_LIT>' <EOL> EXTENDED_ATTRIBUTES_2_0 = { <EOL> '<STR_LIT>' : { <EOL> DISTRIBUTED : { '<STR_LIT>' : True , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT:default>' : constants . ATTR_NOT_SPECIFIED , <EOL> '<STR_LIT>' : converters . convert_to_boolean_if_not_none , <EOL> '<STR_LIT>' : True } , <EOL> } <EOL> } <EOL> class DVRMacAddressNotFound ( exceptions . NotFound ) : <EOL> message = _ ( "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> class MacAddressGenerationFailure ( exceptions . ServiceUnavailable ) : <EOL> message = _ ( "<STR_LIT>" ) <EOL> class Dvr ( extensions . ExtensionDescriptor ) : <EOL> """<STR_LIT>""" <EOL> @ classmethod <EOL> def get_name ( cls ) : <EOL> return "<STR_LIT>" <EOL> @ classmethod <EOL> def get_alias ( cls ) : <EOL> return constants . L3_DISTRIBUTED_EXT_ALIAS <EOL> @ classmethod <EOL> def get_description ( cls ) : <EOL> return "<STR_LIT>" <EOL> @ classmethod <EOL> def get_updated ( cls ) : <EOL> return "<STR_LIT>" <EOL> def get_required_extensions ( self ) : <EOL> return [ "<STR_LIT>" ] <EOL> @ classmethod <EOL> def get_resources ( cls ) : <EOL> """<STR_LIT>""" <EOL> return [ ] <EOL> def get_extended_resources ( self , version ) : <EOL> if version == "<STR_LIT>" : <EOL> return EXTENDED_ATTRIBUTES_2_0 <EOL> else : <EOL> return { } <EOL> @ six . add_metaclass ( abc . ABCMeta ) <EOL> class DVRMacAddressPluginBase ( object ) : <EOL> @ abc . abstractmethod <EOL> def get_dvr_mac_address_list ( self , context ) : <EOL> pass <EOL> @ abc . abstractmethod <EOL> def get_dvr_mac_address_by_host ( self , context , host ) : <EOL> pass </s>
