root / docs / dev-guide.rst @ a1d0bacb
History | View | Annotate | Download (2.5 kB)
1 | bc055d09 | Constantinos Venetsanopoulos | .. _dev-guide: |
---|---|---|---|
2 | bc055d09 | Constantinos Venetsanopoulos | |
3 | bc055d09 | Constantinos Venetsanopoulos | Synnefo Developer's Guide |
4 | bc055d09 | Constantinos Venetsanopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
5 | bc055d09 | Constantinos Venetsanopoulos | |
6 | 1fbdb3d7 | marioskogias | This is the complete Synnefo Developer's Guide. |
7 | 1fbdb3d7 | marioskogias | |
8 | 1fbdb3d7 | marioskogias | Environment set up |
9 | 1fbdb3d7 | marioskogias | ================== |
10 | 1fbdb3d7 | marioskogias | |
11 | 1fbdb3d7 | marioskogias | First of all you have to set up a developing environment for Synnefo. |
12 | 1fbdb3d7 | marioskogias | |
13 | dd45dcae | Giorgos Korfiatis | **1. Create a new VM** |
14 | dd45dcae | Giorgos Korfiatis | |
15 | dd45dcae | Giorgos Korfiatis | It has been tested on Debian Wheezy. It is expected to work with other |
16 | dd45dcae | Giorgos Korfiatis | releases (e.g., Squeeze) too, as long as they are supported by |
17 | dd45dcae | Giorgos Korfiatis | ``snf-deploy``. |
18 | 1fbdb3d7 | marioskogias | |
19 | 1fbdb3d7 | marioskogias | **2. Build your own Synnefo installation** |
20 | 1fbdb3d7 | marioskogias | |
21 | 1fbdb3d7 | marioskogias | Follow the instructions `here <http://www.synnefo.org/docs/synnefo/latest/quick-install-guide.html>`_ |
22 | 1fbdb3d7 | marioskogias | to build Synnefo on a single node using ``snf-deploy``. |
23 | 1fbdb3d7 | marioskogias | |
24 | 1fbdb3d7 | marioskogias | **3. Install GitPython** |
25 | 1fbdb3d7 | marioskogias | |
26 | 1fbdb3d7 | marioskogias | .. code-block:: console |
27 | 1fbdb3d7 | marioskogias | |
28 | 3df48a3f | Constantinos Venetsanopoulos | # pip install gitpython |
29 | 1fbdb3d7 | marioskogias | |
30 | 1fbdb3d7 | marioskogias | **4. Install devflow** |
31 | 1fbdb3d7 | marioskogias | |
32 | 1fbdb3d7 | marioskogias | Devflow is a tool to manage versions, helps implement the git flow development process, |
33 | 1fbdb3d7 | marioskogias | and builds Python and Debian packages. You will need it to create your code's version. |
34 | 1fbdb3d7 | marioskogias | |
35 | 1fbdb3d7 | marioskogias | .. code-block:: console |
36 | 1fbdb3d7 | marioskogias | |
37 | 3df48a3f | Constantinos Venetsanopoulos | # pip install devflow |
38 | 1fbdb3d7 | marioskogias | |
39 | 1fbdb3d7 | marioskogias | **5. Get Synnefo code** |
40 | 1fbdb3d7 | marioskogias | |
41 | 1fbdb3d7 | marioskogias | First you need to install git |
42 | 1fbdb3d7 | marioskogias | |
43 | 1fbdb3d7 | marioskogias | .. code-block:: console |
44 | 1fbdb3d7 | marioskogias | |
45 | 3df48a3f | Constantinos Venetsanopoulos | # apt-get install git |
46 | 1fbdb3d7 | marioskogias | |
47 | 1fbdb3d7 | marioskogias | And now get the Synnefo code from the official Synnefo repository |
48 | 1fbdb3d7 | marioskogias | |
49 | 1fbdb3d7 | marioskogias | .. code-block:: console |
50 | 1fbdb3d7 | marioskogias | |
51 | 3df48a3f | Constantinos Venetsanopoulos | # su some_regular_user |
52 | 3df48a3f | Constantinos Venetsanopoulos | $ git clone https://code.grnet.gr/git/synnefo |
53 | 1fbdb3d7 | marioskogias | |
54 | dd45dcae | Giorgos Korfiatis | Make sure you clone the repository as a regular user. Otherwise you will |
55 | dd45dcae | Giorgos Korfiatis | have problems with file permissions when deploying. |
56 | 1fbdb3d7 | marioskogias | |
57 | 1fbdb3d7 | marioskogias | **6. Code and deploy** |
58 | 1fbdb3d7 | marioskogias | |
59 | 1fbdb3d7 | marioskogias | 1. Configure the version |
60 | 1fbdb3d7 | marioskogias | |
61 | 1fbdb3d7 | marioskogias | .. code-block:: console |
62 | 1fbdb3d7 | marioskogias | |
63 | 3df48a3f | Constantinos Venetsanopoulos | $ devflow-update-version |
64 | 1fbdb3d7 | marioskogias | |
65 | 1fbdb3d7 | marioskogias | 2. Code |
66 | dd45dcae | Giorgos Korfiatis | 3. In every component you change, run as root |
67 | dd45dcae | Giorgos Korfiatis | |
68 | dd45dcae | Giorgos Korfiatis | .. code-block:: console |
69 | dd45dcae | Giorgos Korfiatis | |
70 | 3df48a3f | Constantinos Venetsanopoulos | # python setup.py develop -N |
71 | dd45dcae | Giorgos Korfiatis | |
72 | dd45dcae | Giorgos Korfiatis | This does not automatically install dependencies, in order to avoid |
73 | dd45dcae | Giorgos Korfiatis | confusion with synnefo packages installed by ``snf-deploy``. External |
74 | dd45dcae | Giorgos Korfiatis | dependencies have already been installed by ``snf-deploy``; if you introduce |
75 | dd45dcae | Giorgos Korfiatis | a new dependency, you will have to explicitly install it. |
76 | dd45dcae | Giorgos Korfiatis | |
77 | dd45dcae | Giorgos Korfiatis | 4. You will need to restart the server with |
78 | dd45dcae | Giorgos Korfiatis | |
79 | dd45dcae | Giorgos Korfiatis | .. code-block:: console |
80 | dd45dcae | Giorgos Korfiatis | |
81 | 3df48a3f | Constantinos Venetsanopoulos | # service gunicorn restart |
82 | dd45dcae | Giorgos Korfiatis | |
83 | dd45dcae | Giorgos Korfiatis | 5. If your changes affected ``snf-dispatcher`` (from package |
84 | dd45dcae | Giorgos Korfiatis | ``snf-cyclades-app``) or ``snf-ganeti-eventd`` (from |
85 | dd45dcae | Giorgos Korfiatis | ``snf-cyclades-gtools``) you will need to restart these daemons, too. |
86 | dd45dcae | Giorgos Korfiatis | Since step 3 installed the former under ``/usr/local/``, you need to |
87 | dd45dcae | Giorgos Korfiatis | make sure that the correct version is evoked. You can override the |
88 | dd45dcae | Giorgos Korfiatis | version installed by ``snf-deploy`` with |
89 | dd45dcae | Giorgos Korfiatis | |
90 | dd45dcae | Giorgos Korfiatis | .. code-block:: console |
91 | dd45dcae | Giorgos Korfiatis | |
92 | 3df48a3f | Constantinos Venetsanopoulos | # ln -sf /usr/local/bin/snf-dispatcher /usr/bin/snf-dispatcher |
93 | dd45dcae | Giorgos Korfiatis | |
94 | dd45dcae | Giorgos Korfiatis | and then restart the daemons |
95 | 1fbdb3d7 | marioskogias | |
96 | 1fbdb3d7 | marioskogias | .. code-block:: console |
97 | 1fbdb3d7 | marioskogias | |
98 | 3df48a3f | Constantinos Venetsanopoulos | # service snf-dispatcher restart |
99 | 3df48a3f | Constantinos Venetsanopoulos | # service snf-ganeti-eventd restart |
100 | 1fbdb3d7 | marioskogias | |
101 | dd45dcae | Giorgos Korfiatis | 6. Refresh the web page and see your changes |