text: # Copyright 2015 Jared Rodriguez (jared.rodriguez@rackspace.com)
  # All Rights Reserved.
  #
  #    Licensed under the Apache License, Version 2.0 (the "License");
  #    you may not use this file except in compliance with the License.
  #    You may obtain a copy of the License at
  #
  #      http://www.apache.org/licenses/LICENSE-2.0
  #
  #    Unless required by applicable law or agreed to in writing, software
  #    distributed under the License is distributed on an "AS IS" BASIS,
  #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #    See the License for the specific language governing permissions and
  #    limitations under the License.
  
  import shlex
  import subprocess
  
  
  def get_name(interface):
      command = 'biosdevname --policy physical -i %s' % interface
      p = subprocess.Popen(shlex.split(command),
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)
      out, err = p.communicate()
  
      if p.returncode:
          if p.returncode == 2:
              # Interface name is not present, or biosdevname is not supported
              # for this interface
              return
          if p.returncode == 3:
              raise OSError('biosdevname must be run as the root user')
          if p.returncode == 4:
              # Running on a virtual machine
              return
          else:
              raise Exception('Problem running biosdevname: %d' % p.returncode)
  
      return out.strip()
  