<s> """<STR_LIT>""" <EOL> import SoftLayer <EOL> from SoftLayer import consts <EOL> from SoftLayer import exceptions <EOL> from SoftLayer import transports <EOL> METADATA_MAPPING = { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT:id>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : True } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : True } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : True } , <EOL> } <EOL> METADATA_ATTRIBUTES = METADATA_MAPPING . keys ( ) <EOL> class MetadataManager ( object ) : <EOL> """<STR_LIT>""" <EOL> attribs = METADATA_MAPPING <EOL> def __init__ ( self , client = None , timeout = <NUM_LIT:5> ) : <EOL> if client is None : <EOL> transport = transports . RestTransport ( <EOL> timeout = timeout , <EOL> endpoint_url = consts . API_PRIVATE_ENDPOINT_REST , <EOL> ) <EOL> client = SoftLayer . BaseClient ( transport = transport ) <EOL> self . client = client <EOL> def get ( self , name , param = None ) : <EOL> """<STR_LIT>""" <EOL> if name not in self . attribs : <EOL> raise exceptions . SoftLayerError ( '<STR_LIT>' ) <EOL> call_details = self . attribs [ name ] <EOL> if call_details . get ( '<STR_LIT>' ) : <EOL> if not param : <EOL> raise exceptions . SoftLayerError ( <EOL> '<STR_LIT>' ) <EOL> params = tuple ( ) <EOL> if param is not None : <EOL> params = ( param , ) <EOL> try : <EOL> return self . client . call ( '<STR_LIT>' , <EOL> self . attribs [ name ] [ '<STR_LIT>' ] , <EOL> * params ) <EOL> except exceptions . SoftLayerAPIError as ex : <EOL> if ex . faultCode == <NUM_LIT> : <EOL> return None <EOL> raise ex <EOL> def _get_network ( self , kind , router = True , vlans = True , vlan_ids = True ) : <EOL> """<STR_LIT>""" <EOL> network = { } <EOL> macs = self . get ( '<STR_LIT>' % kind ) <EOL> network [ '<STR_LIT>' ] = macs <EOL> if len ( macs ) == <NUM_LIT:0> : <EOL> return network <EOL> if router : <EOL> network [ '<STR_LIT>' ] = self . get ( '<STR_LIT>' , macs [ <NUM_LIT:0> ] ) <EOL> if vlans : <EOL> network [ '<STR_LIT>' ] = self . get ( '<STR_LIT>' , macs [ <NUM_LIT:0> ] ) <EOL> if vlan_ids : <EOL> network [ '<STR_LIT>' ] = self . get ( '<STR_LIT>' , macs [ <NUM_LIT:0> ] ) <EOL> return network <EOL> def public_network ( self , ** kwargs ) : <EOL> """<STR_LIT>""" <EOL> return self . _get_network ( '<STR_LIT>' , ** kwargs ) <EOL> def private_network ( self , ** kwargs ) : <EOL> """<STR_LIT>""" <EOL> return self . _get_network ( '<STR_LIT>' , ** kwargs ) </s>
