Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions docs/scenarios/admin.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,60 @@ State files can be written using YAML, the Jinja2 template system or pure python

`Salt Documentation <http://docs.saltstack.org/en/latest/index.html>`_


Psutil
------
`Psutil <https://code.google.com/p/psutil/>`_ is an interface to different system information (e.g. CPU, memory, disks, network, users and processes).

Here is an example to be aware of some server overload. In case of some failed test (net, CPU) it send an email.

.. code-block:: python

# Functions to get system values:
from psutil import cpu_percent, net_io_counters
# Functions to take a break:
from time import sleep
# Package for email services:
import smtplib
import string
MAX_NET_USAGE = 400000
MAX_ATTACKS = 4
attack = 0
counter = 0
while attack <= MAX_ATTACKS:
sleep(4)
counter = counter + 1
# Check the cpu usage
if cpu_percent(interval = 1) > 70:
attack = attack + 1
# Check the net usage
neti1 = net_io_counters()[1]
neto1 = net_io_counters()[0]
sleep(1)
neti2 = net_io_counters()[1]
neto2 = net_io_counters()[0]
# Calculate the bytes per second
net = ((neti2+neto2) - (neti1+neto1))/2
if net > MAX_NET_USAGE:
attack = attack + 1
if counter > 25:
attack = 0
counter = 0
# Write a very important email if attack is higher then 4
TO = "you@your_email.com"
FROM = "webmaster@your_domain.com"
SUBJECT = "Your domain is out of system resources!"
text = "Go and fix your server!"
BODY = string.join(("From: %s" %FROM,"To: %s" %TO,"Subject: %s" %SUBJECT, "",text), "\r\n")
server = smtplib.SMTP('127.0.0.1')
server.sendmail(FROM, [TO], BODY)
server.quit()


A full terminal application like a widely extended top which is based on psutil and with the ability of a client-server
monitoring is `glance <https://github.com/nicolargo/glances/>`_.


Chef
----

Expand Down
62 changes: 8 additions & 54 deletions docs/scenarios/imaging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,66 +9,20 @@ Python Imaging Library
----------------------

The `Python Imaging Library <http://www.pythonware.com/products/pil/>`_, or PIL
for short, is *the* library for image manipulation in Python.
for short, is *the* library for image manipulation in Python. Unfortunately, its
development has stagnated, with its last release in 2009.

It works with Python 1.5.2 and above, including 2.5, 2.6 and 2.7. Unfortunately,
it doesn't work with 3.0+ yet.
Lucky for you, there's an actively-developed fork of PIL called `Pillow <http://python-imaging.github.io/>`_ -
it's easier to install, runs on all operating systems, and supports Python 3.

Installation
~~~~~~~~~~~~

PIL has a reputation of not being very straightforward to install. Listed below
are installation notes on various systems.
Before installing Pillow, you'll have to install Pillow's prerequisites. Find
the instructions for your platform `here <https://pypi.python.org/pypi/Pillow/2.1.0#platform-specific-instructions>`_.

Also, there's a fork named `Pillow <http://pypi.python.org/pypi/Pillow>`_ which is easier
to install. It has good setup instructions for all platforms.

Installing on Linux
~~~~~~~~~~~~~~~~~~~

Arch Linux
``````````

PIL is maintained in the official community repository, and installed with the system installer as:

.. code-block:: bash

$ sudo pacman -S python2-imaging

Ubuntu 12.10
````````````

Can be installed on the command line as:

.. code-block:: bash

$ sudo apt-get install python-imaging


Installing on Mac OS X
~~~~~~~~~~~~~~~~~~~~~~

PIP doesn't know about the Mac OS X Freetype paths. To rectify that:

.. code-block:: bash

$ ln -s /usr/X11/include/freetype2 /usr/local/include/
$ ln -s /usr/X11/include/ft2build.h /usr/local/include/
$ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
$ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib

then:
After that, it's straightforward:

.. code-block:: bash

$ brew install libjpeg
$ pip install PIL


Installing on Windows
~~~~~~~~~~~~~~~~~~~~~

.. todo::
Notes on installing on Windows machines


$ pip install Pillow
2 changes: 1 addition & 1 deletion docs/scenarios/web.rst
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ to use.
import tornado.ioloop
import tornado.web

# Load tamplate file templates/site.html
# Load template file templates/site.html
TEMPLATE_FILE = "site.html"
templateLoader = FileSystemLoader( searchpath="templates/" )
templateEnv = Environment( loader=templateLoader )
Expand Down