/usr/lib/python2.7/dist-packages/application/system.py is in python-application 1.4.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | # Copyright (C) 2006-2012 Dan Pascu. See LICENSE for details.
#
"""Interaction with the underlying operating system"""
__all__ = ['host', 'makedirs', 'unlink']
import errno
import os
import socket
from application.python.types import Singleton
## System properties and attributes
class HostProperties(object):
"""Host specific properties"""
__metaclass__ = Singleton
def outgoing_ip_for(self, destination):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((destination, 1))
return s.getsockname()[0]
except socket.error:
return None
@property
def default_ip(self):
"""
The default IP address of this system. This is the IP address of the
network interface that has the default route assigned to it or in other
words the IP address that will be used when making connections to the
internet.
"""
return self.outgoing_ip_for('1.2.3.4')
@property
def name(self):
return socket.gethostname()
@property
def fqdn(self):
return socket.getfqdn()
@property
def domain(self):
return socket.getfqdn()[len(socket.gethostname())+1:] or None
@property
def aliases(self):
hostname = socket.gethostname()
aliases = socket.gethostbyaddr(hostname)[1]
if hostname in aliases:
aliases.remove(hostname)
return aliases
host = HostProperties()
## Functions
def makedirs(path, mode=0777):
"""Create a directory recursively and ignore error if it already exists"""
try:
os.makedirs(path, mode)
except OSError, e:
if e.errno==errno.EEXIST and os.path.isdir(path) and os.access(path, os.R_OK | os.W_OK | os.X_OK):
return
raise
def unlink(path):
"""Remove a file ignoring errors"""
try:
os.unlink(path)
except:
pass
|