slapos.git
3 years agoWendelin: Remove unnecessary extension of ipython component buildout as we are alread... jupyter_wendelin
Ayush Tiwari [Wed, 2 Dec 2015 06:43:18 +0000 (06:43 +0000)]
Wendelin: Remove unnecessary extension of ipython component buildout as we are already extending ipython_notebook SR

3 years agoWendelin: Get empty json object for no erp5_request_parameters
Ayush Tiwari [Sun, 18 Oct 2015 14:04:40 +0000 (14:04 +0000)]
Wendelin: Get empty json object for no erp5_request_parameters

3 years agoWendelin: Use RequestOptional instead of Request recipe to let not ready instance...
Ayush Tiwari [Sun, 18 Oct 2015 10:39:38 +0000 (10:39 +0000)]
Wendelin: Use RequestOptional instead of Request recipe to let not ready instance not fail

3 years agoWendelin : Jupyter and Wendelin integrated together
Ayush Tiwari [Mon, 31 Aug 2015 11:06:08 +0000 (11:06 +0000)]
Wendelin : Jupyter and Wendelin integrated together

Software Release Wendelin configured with requests being made to erp5 and jupyter.
1. 'disable-jupyter' parameter can be used to disable request to jupyter.
2. Default is wendelin+jupyter, i.e, user/developer will get wendelin configured with jupyter.

3 years agoswitch-softwaretype: new option to spawn a buildout independently from the current...
Ayush Tiwari [Mon, 6 Jul 2015 16:24:45 +0000 (16:24 +0000)]
switch-softwaretype: new option to spawn a buildout independently from the current software type

3 years agoswitch-softwaretype: make it possible to call it in chain
Ayush Tiwari [Mon, 6 Jul 2015 16:23:01 +0000 (16:23 +0000)]
switch-softwaretype: make it possible to call it in chain

Store only first 2 system arguments in 'args' so that to facilitate use of switch-softwaretype recipe in chain.
For example:-
In one buildout having section with recipe switch-softwaretype and running buildout for a file which in succession is calling another buildout, so that we don't have a conflict between other system arguments.

3 years agoJupyter: Remove alias which are not supported in the ipython version 3.2.0 erp5_kernel_jupyter
Ayush Tiwari [Tue, 1 Dec 2015 14:24:11 +0000 (14:24 +0000)]
Jupyter: Remove alias which are not supported in the ipython version 3.2.0

Alias '--logfile' isn't available for ipython version 3.2.0
XXX: It has been added in versions 4.x , add it again after version updation

3 years agoJupyter: Add slapos-cookbook-develop in parts
Ayush Tiwari [Wed, 2 Dec 2015 09:49:08 +0000 (09:49 +0000)]
Jupyter: Add slapos-cookbook-develop in parts

3 years agoJupyter: Change section name to instance-jupyter so as not to raise conflict in case...
Ayush Tiwari [Wed, 2 Dec 2015 09:47:43 +0000 (09:47 +0000)]
Jupyter: Change section name to instance-jupyter so as not to raise conflict in case of multiple extends

3 years agoJupyter: Publish the serialized result
Ayush Tiwari [Wed, 2 Dec 2015 09:43:47 +0000 (09:43 +0000)]
Jupyter: Publish the serialized result

Maintain consistency with the slapOS SR format.
This SR can be hooked with other SR(ex:wendelin) and its better
to follow one way of publishing result parameters

3 years agoJupyter: Set log-level alias to 'DEBUG' for ipython notebook service
Ayush Tiwari [Wed, 2 Dec 2015 09:26:08 +0000 (09:26 +0000)]
Jupyter: Set log-level alias to 'DEBUG' for ipython notebook service

This helps in logging up the requests made by ipython_notebook service

3 years agoJupyter: Hook ERP5 Kernel
Ayush Tiwari [Wed, 2 Dec 2015 09:17:57 +0000 (09:17 +0000)]
Jupyter: Hook ERP5 Kernel

Following changes :-
1. More comments and description.
2. Useless empty display_response removed.
3. Use of MagicInfo class and then MAGICS dictionary to ease up with lookup.
4. Error handling more robust.
5. Add restriction message on Jupyter frontend for user to not change module objects explicitly
6. For successfull request to server, use mime_type returned from result only
7. Add message in custom.js to not dynamically alter imported module for users
8. Ease in adding new magics
9. Refactored erp5 kernel to enter required magics ['user', 'password', 'url', 'reference'] in any possible combinations
10. Exception handling for content which aren't json
11. Docstring for ERP5Kernel class
12. Handle cases for server side error in ERP5Kernel
13. Add display_response parameter
    'display_message' parameter would be used to check if there is a need to display 'message'
     after making a successful request to erp5 or not.
     Useful for magics such as '%my_notebooks' for which we don't need to show message cause we are
     already getting some content from erp5 for this magics.
14. rename response parameter to message.

3 years agoIPython Notebook: Explicitly add environment variable around wrapper and use ipython...
Ayush Tiwari [Thu, 3 Dec 2015 19:56:34 +0000 (19:56 +0000)]
IPython Notebook: Explicitly add environment variable around wrapper and use ipython directory inside instance in env

3 years agoIPython Notebook: Add dynamic-template-base section for common jinja related file...
Ayush Tiwari [Thu, 3 Dec 2015 14:25:29 +0000 (14:25 +0000)]
IPython Notebook: Add dynamic-template-base section for common jinja related file section and extend them with this section

3 years agoIPython Notebook: Add download-file-base section which would be extended by sections...
Ayush Tiwari [Thu, 3 Dec 2015 13:55:57 +0000 (13:55 +0000)]
IPython Notebook: Add download-file-base section which would be extended by sections requiring common usage

3 years agoIPython Notebook: Convert instance to jinja2 template
Ayush Tiwari [Thu, 3 Dec 2015 13:51:56 +0000 (13:51 +0000)]
IPython Notebook: Convert instance to jinja2 template

3 years agoIPython Notebook: Fix naming of files according to extensions, follow guidelines
Ayush Tiwari [Wed, 2 Dec 2015 08:03:34 +0000 (08:03 +0000)]
IPython Notebook: Fix naming of files according to extensions, follow guidelines

3 years agoIPython Notebook: Fixing coding crimes for section names
Ayush Tiwari [Thu, 3 Dec 2015 13:39:45 +0000 (13:39 +0000)]
IPython Notebook: Fixing coding crimes for section names

Use spinal-case('-' separated) instead of snake_case('_' separated) in section names.

3 years agocomponent/re6stnet: Split development (git) from stagged (egg) version.
Rafael Monnerat [Thu, 3 Dec 2015 18:08:45 +0000 (19:08 +0100)]
component/re6stnet: Split development (git) from stagged (egg) version.

3 years agokvm: fix bug when nat-rules parameter is empty, set nat-rules empty by default for...
Alain Takoudjou [Wed, 2 Dec 2015 10:21:46 +0000 (11:21 +0100)]
kvm: fix bug when nat-rules parameter is empty, set nat-rules empty by default for kvm-cluster

3 years agoerp5: Fix section entry name when requesting a frontend.
Vincent Pelletier [Tue, 1 Dec 2015 09:17:48 +0000 (10:17 +0100)]
erp5: Fix section entry name when requesting a frontend.

3 years agofix kvm resilience test: undefined python_executable
Alain Takoudjou [Mon, 30 Nov 2015 08:32:23 +0000 (09:32 +0100)]
fix kvm resilience test: undefined python_executable

3 years agoStart new development
Rafael Monnerat [Fri, 27 Nov 2015 15:54:56 +0000 (16:54 +0100)]
Start new development

3 years agoMinor adjustment to follow up recent changes.
Rafael Monnerat [Fri, 27 Nov 2015 15:44:28 +0000 (16:44 +0100)]
Minor adjustment to follow up recent changes.

3 years agoversion up: slapos.cookbook 1.0.17
Rafael Monnerat [Fri, 27 Nov 2015 15:43:13 +0000 (16:43 +0100)]
version up: slapos.cookbook 1.0.17

3 years agoRelease slapos.cookbook 1.0.17
Rafael Monnerat [Fri, 27 Nov 2015 15:48:05 +0000 (16:48 +0100)]
Release slapos.cookbook 1.0.17

3 years agoslapos.recipe.re6stmaster: More verbosity and update ips if they changed.
Rafael Monnerat [Fri, 27 Nov 2015 13:05:26 +0000 (21:05 +0800)]
slapos.recipe.re6stmaster: More verbosity and update ips if they changed.

3 years agovesion up: slapos.toolbox 0.53
Rafael Monnerat [Thu, 26 Nov 2015 19:12:52 +0000 (19:12 +0000)]
vesion up: slapos.toolbox 0.53

3 years agoagent: Minor typos and update wrong recipes.
Rafael Monnerat [Thu, 26 Nov 2015 18:43:46 +0000 (18:43 +0000)]
agent: Minor typos and update wrong recipes.

3 years agoagent has no recipe anymore.
Rafael Monnerat [Wed, 25 Nov 2015 21:23:03 +0000 (21:23 +0000)]
agent has no recipe anymore.

3 years agoagent: Refactor to follow up new implementation using ERP5 Task Distributor
Rafael Monnerat [Fri, 7 Aug 2015 17:45:32 +0000 (19:45 +0200)]
agent: Refactor to follow up new implementation using ERP5 Task Distributor

3 years agocheck-url: Quote $URL in -z check
Kirill Smelkov [Wed, 25 Nov 2015 12:43:33 +0000 (15:43 +0300)]
check-url: Quote $URL in -z check

If one wants to check URLs on UNIX-sockets, there is no full URL schema
in curl for this, but the following has to be used instead:

    curl --unix-socket /path/to/socket http:/<url-path>

For this to work, one can do e.g. the following trick:

    [promise-unicorn]
    recipe  = slapos.cookbook:check_url_available
    url     = --unix-socket ${unicorn:socket}  http:/

but then generated promise scripts fails this way:

    ./etc/promise/unicorn: line 7: [: too many arguments

via quoting $URL in emptiness check we can support both usual URLs and
urls with --unix-socket prepended trick.

/reviewed-by @cedric.leninivin  (on nexedi/slapos!31)

3 years agocheck-url: Allow to specify expected HTTP code
Kirill Smelkov [Wed, 25 Nov 2015 12:38:18 +0000 (15:38 +0300)]
check-url: Allow to specify expected HTTP code

In gitlab SR a service I need to check - gitlab-workhorse, returns 200
only when request comes to some repository and authentication backend
allows it.

Requiring access to repositories is not very good just to check if the
service is alive, and also auth backend can be not alive, and initially
there are no repositories at all. So gitlab-workhorse is checked to be
alive by pinging it with non-existing URL and expecting 403.

For this to work we need to allow clients to specify expected HTTP code
instead of previously hardcoded 200 (which still remains the default).

/reviewed-by @cedric.leninivin  (on nexedi/slapos!31)

3 years agoversion up : MariaDB 10.1.9.
Kazuhiko Shiozaki [Tue, 24 Nov 2015 08:38:54 +0000 (09:38 +0100)]
version up : MariaDB 10.1.9.

3 years agofixup! code cleanup.
Kazuhiko Shiozaki [Tue, 24 Nov 2015 08:36:19 +0000 (09:36 +0100)]
fixup! code cleanup.

3 years agomonitor-sr: Fix json generatation for distributor
Rafael Monnerat [Mon, 23 Nov 2015 16:02:13 +0000 (17:02 +0100)]
monitor-sr: Fix json generatation for distributor

  The final file were not a valid json sometimes as some entries '0.0.0.0' or '::' were been ignored
  and an additionalcomman was added on the wrong place.

3 years agocomponent/nginx: Add support for SPDY and gzip_static
Kirill Smelkov [Fri, 13 Nov 2015 11:40:18 +0000 (14:40 +0300)]
component/nginx: Add support for SPDY and gzip_static

Both SPDY an gzip_static are needed for upcoming GitLab SR:

  - GitLab uses SPDY in its https nginx configuration, and
  - prepares compiled assets in pre-gzipped form on filesystem

both modules are off by default and need to be explicitly enabled with
corresponding directives, so this should not affect already used nginx
configurations.

/cc @kazuhiko, @jerome, @gabriel
/reviewed-by @rafael  (on nexedi/slapos!30)

3 years agoversion up : libxml2 2.9.3, fixing CVE-2015-8241 and CVE-2015-8242.
Kazuhiko Shiozaki [Mon, 23 Nov 2015 08:37:06 +0000 (09:37 +0100)]
version up : libxml2 2.9.3, fixing CVE-2015-8241 and CVE-2015-8242.

3 years agocode cleanup.
Kazuhiko Shiozaki [Tue, 17 Nov 2015 13:31:36 +0000 (14:31 +0100)]
code cleanup.

3 years agoversion up : libpng 1.6.19, 1.5.24 and 1.2.54, fixing CVE-2015-7981 and CVE-2015...
Kazuhiko Shiozaki [Thu, 19 Nov 2015 10:38:00 +0000 (11:38 +0100)]
version up : libpng 1.6.19, 1.5.24 and 1.2.54, fixing CVE-2015-7981 and CVE-2015-8126.

3 years agoMerge branch 'kvm-cluster'
Alain Takoudjou [Wed, 18 Nov 2015 10:46:56 +0000 (11:46 +0100)]
Merge branch 'kvm-cluster'

3 years agokvm: move slapos.cookbook:kvm recipe to buildout+jinja
Alain Takoudjou [Tue, 17 Nov 2015 15:32:42 +0000 (16:32 +0100)]
kvm: move slapos.cookbook:kvm recipe to buildout+jinja

3 years agoslapos-master: Remove customation on instance site
Rafael Monnerat [Mon, 9 Nov 2015 15:37:04 +0000 (15:37 +0000)]
slapos-master: Remove customation on instance site

Those customization do not work anymore and it is preventing tests to run,
 so it should be reintroduced later in a way it works.

3 years agoUse network cache config from stack slapos
Rafael Monnerat [Fri, 6 Nov 2015 13:59:08 +0000 (13:59 +0000)]
Use network cache config from stack slapos

3 years agomonitor-sr: Fix templates if the instance has no slave.
Rafael Monnerat [Wed, 4 Nov 2015 09:46:20 +0000 (10:46 +0100)]
monitor-sr: Fix templates if the instance has no slave.

3 years agomonitor-sr: Fix minor typos and adjustments
Rafael Monnerat [Wed, 4 Nov 2015 09:34:08 +0000 (10:34 +0100)]
monitor-sr: Fix minor typos and adjustments

3 years agoAdded packer component and a WIP software
Rafael Monnerat [Thu, 2 Jul 2015 13:58:24 +0000 (13:58 +0000)]
Added packer component and a WIP software

3 years agocheck_parameter: Fix template.
Rafael Monnerat [Fri, 6 Nov 2015 13:30:53 +0000 (13:30 +0000)]
check_parameter: Fix template.

3 years agocdn-me: Minor fixes
Rafael Monnerat [Fri, 6 Nov 2015 13:28:00 +0000 (13:28 +0000)]
cdn-me: Minor fixes

3 years agoGo support
Kirill Smelkov [Fri, 6 Nov 2015 11:45:04 +0000 (14:45 +0300)]
Go support

For upcoming GitLab SR we need Go[1] language support, because one
GitLab service is written in this language:

    https://gitlab.com/gitlab-org/gitlab-workhorse

Here we provide golang component, and helloweb-go service integrated
into helloworld SR.

The patches are based on recent helloworld & helloweb restructuring (see !23).

/reviewed-by @jerome  (on !24)
/cc @kazuhiko, @rafael, @alain.takoudjou, @gabriel, @Camata

[1] http://golang.org

3 years agohelloworld: Service restructuring + Ruby version
Kirill Smelkov [Fri, 6 Nov 2015 11:40:17 +0000 (14:40 +0300)]
helloworld: Service restructuring + Ruby version

For upcoming GitLab SR we need Ruby support.

We have minimal Ruby support in the form of Ruby component and
`rubygemsrecipe` recipe to install gems. However a lot of top-level
software/services in Ruby world is not released as gem and have to be
installed / worked with via Bundler[1], and for this way we do not have
an example.

Let's add such example in the form of extending helloworld SR to also
say hello to the web in both Python and Ruby via simple Ruby program
which is deployed via Bundler.

For this to happen, we need to make some preparatory changes first:

- move helloweb program(s) to own repository[2].
- modernize instance code and convert it to jinja2 to allow control structures.
- prepare instance infrastructure to support several helloweb program kinds.

and only then show how to do Ruby stuff via Bundler.

To me the effect of `software/helloworld` refactoring is good even without
Ruby part, just to improve reference material about showing how to do.

/generally-reviewed-by @jerome, @vpelletier  (on !23)
/cc @kazuhiko, @rafael, @alain.takoudjou, @cedric.leninivin

[1] http://bundler.io
[2] http://lab.nexedi.com/nexedi/helloweb

3 years agocdn-me: Include checkers and request a distributed monitor.
Rafael Monnerat [Thu, 5 Nov 2015 16:56:14 +0000 (16:56 +0000)]
cdn-me: Include checkers and request a distributed monitor.

3 years agore6st-master: Make slaves public where the ip had been used.
Rafael Monnerat [Mon, 7 Sep 2015 16:00:41 +0000 (00:00 +0800)]
re6st-master: Make slaves public where the ip had been used.

3 years agore6st-master: Dump ipv4 connection address
Rafael Monnerat [Mon, 7 Sep 2015 14:41:26 +0000 (22:41 +0800)]
re6st-master: Dump ipv4 connection address

 Dump on filesytem the ipv4 used to the node create connections

3 years agoslapos/recipe/redis: Add support for UNIX sockets
Kirill Smelkov [Wed, 4 Nov 2015 08:26:05 +0000 (11:26 +0300)]
slapos/recipe/redis: Add support for UNIX sockets

It is well known that UNIX sockets are faster than TCP over loopback.

E.g. on my machine according to lmbench[1] they have ~ 2 times
lower latency and ~ 2-3 times more throughput compared to TCP over
loopback:

    *Local* Communication latencies in microseconds - smaller is better
    ---------------------------------------------------------------------
    Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                            ctxsw       UNIX         UDP         TCP conn
    --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
    teco      Linux 4.2.0-1  13.8  29.2 26.8  45.0  47.9  48.5  55.5  45.

    *Local* Communication bandwidths in MB/s - bigger is better
    -----------------------------------------------------------------------------
    Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                 UNIX      reread reread (libc) (hand) read write
    --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
    teco      Linux 4.2.0-1 1084 4353 1493 2329.1 3720.7 1613.8 1109.2 3402 1404.

The same ratio holds for our std shuttle servers.

API to work with unix sockets is essentially the same as with TCP/UDP.
Because of that it is easy to support both TCP and UNIX socket in one
software, and this way a lot of software support unix sockets out of the
box, including Redis.

Because of lower latencies and higher throughput, for performance
reasons, it makes sense to interconnect services on one machine via unix
sockets and talk via TCP only to outside world.

Here we add support for unix sockets to Redis recipe.

[1] http://www.bitmover.com/lmbench/

/reviewed-by @kazuhiko  (on !27)
/cc @alain.takoudjou, @jerome, @vpelletier

3 years agoslapos/recipe/redis/promise: Don't create connection pool explicitly
Kirill Smelkov [Wed, 4 Nov 2015 08:15:07 +0000 (11:15 +0300)]
slapos/recipe/redis/promise: Don't create connection pool explicitly

Because redis.Redis(...) ctor creates connection pool on initialization
and we can rely on it.

Another reason: Redis ctor (in form of StrictRedis.__init__()) has logic
how to process arguments and does selecting - either it is TCP (`host` and
`port` args), or UNIX socket (`unix_socket_path` arg):

    https://lab.nexedi.com/nexedi/slapos/blob/95dbb5b2/slapos/recipe/redis/MyRedis2410.py#L560

Since we are going to introduce unix socket support to redis recipe in
the next patch, and don't want to duplicate StrictRedis.__init__() logic
in promise code, let's refactor promise to delegate argument processing
logic to Redis.

/reviewed-by @kazuhiko  (on !27)
/cc @alain.takoudjou

3 years agoredis: v↑ (2.8.23)
Kirill Smelkov [Wed, 28 Oct 2015 10:40:56 +0000 (13:40 +0300)]
redis: v↑  (2.8.23)

- update Redis software to latest upstream in 2.8.* series (which now
  supports IPv6 out of the box);

- update Redis instance template to the one from 2.8.23 and re-merge our
  templating changes to it (file/dir locations, port and binding, master
  password).

  The whole diff to pristine 2.8.23 redis conf is now this:

  diff --git a/.../redis-2.8.23/redis.conf b/slapos/recipe/redis/template/redis.conf.in
  index 870959f..2895539 100644
  --- a/.../redis-2.8.23/redis.conf
  +++ b/slapos/recipe/redis/template/redis.conf.in
  @@ -46 +46 @@ daemonize no
  -pidfile /var/run/redis.pid
  +pidfile %(pid_file)s
  @@ -50 +50 @@ pidfile /var/run/redis.pid
  -port 6379
  +port %(port)s
  @@ -69,0 +70 @@ tcp-backlog 511
  +bind %(ipv6)s
  @@ -108 +109 @@ loglevel notice
  -logfile ""
  +logfile %(log_file)s
  @@ -174 +175 @@ rdbcompression yes
  -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
  +# hit to pay (around 10%%) when saving and loading RDB files, so you can disable it
  @@ -192 +193 @@ dbfilename dump.rdb
  -dir ./
  +dir %(server_dir)s
  @@ -217 +218 @@ dir ./
  -# masterauth <master-password>
  +%(master_passwd)s

NOTE There are test failures for almost all Redis versions when machine
have not small amount of CPUs:

    https://github.com/antirez/redis/issues/2715#issuecomment-151608948

Because the failure is in replication test, and so far we do not use
replication, and there is no feedback from upstream author to handle
this (for 7 days for my detailed report, and for ~ 3 months for this
issue in general), we can just disable replication test as a temporary
solution.  ( to handle remote patches with md5 hash easily the building
recipe is changed to slapos.recipe.cmmi )

NOTE Redis updated to 2.8 version because GitLab uses this series.
If/when we need more recent one we can add [redis30] in addition to
[redis28].

/reviewed-by @kazuhiko  (on !27 and on !26)
/cc @alain.takoudjou, @jerome

3 years agoruby: v↑ ruby2.1 (2.1.7)
Kirill Smelkov [Wed, 4 Nov 2015 08:52:00 +0000 (11:52 +0300)]
ruby: v↑ ruby2.1  (2.1.7)

Ruby 2.1.7 contain security and other bugfixes:

    https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-1-7-released/

/reviewed-by @kazuhiko  (on nexedi/slapos!28)

3 years agohelloworld & helloweb: Go version
Kirill Smelkov [Fri, 30 Oct 2015 20:14:20 +0000 (23:14 +0300)]
helloworld & helloweb: Go version

We added support for Go in the previous patch. Let's now illustrate how
to use the toolchain and build simple service based on it.

/cc @gabriel, @Camata

3 years agoGo component
Kirill Smelkov [Fri, 30 Oct 2015 20:07:33 +0000 (23:07 +0300)]
Go component

Add support for Go language in the form of providing component for Go
toolchain and stdlib.

Current Go stable series is 1.5.* but to bootstrap it one need to have
Go 1.4.* available, which itself needs C compiler to bootstrap.

We need Go support for upcoming GitLab SR, where one server is written
in this language:

    https://gitlab.com/gitlab-org/gitlab-workhorse

/cc @gabriel, @Camata

3 years agohelloworld & helloweb: Ruby version
Kirill Smelkov [Fri, 30 Oct 2015 19:55:08 +0000 (22:55 +0300)]
helloworld & helloweb: Ruby version

To illustrate how to build Ruby software, let's add helloweb-ruby
component and integrate it into helloworld SR as a service.

helloweb-ruby installation is a bit tricky, because we do not have it
initially as a released gem, and have to build it with Bundler by hand.

Changes for integration into helloworld services infrastructure are
small, thanks for the "kind" rework we did in previous patch.

/cc @kazuhiko

3 years agohelloworld & helloweb: Prepare to show different kinds of helloweb to the world
Kirill Smelkov [Fri, 30 Oct 2015 19:38:26 +0000 (22:38 +0300)]
helloworld & helloweb: Prepare to show different kinds of helloweb to the world

Prepare to have several helloweb programs each written in its own
language, and installed into bin/ as helloworld-<language> and exposed
as separate service to the web on its own port.

For component/helloweb we just rename installed script and section.

For software/helloworld we split helloweb & helloweb-promise section
into base and generate requested helloweb-<kinds> & friends via jinja2
programming; the same for exposing url for each kind.

So far it is only preparatory changes for new kinds - i.e. instance code
now supports it, but the only kind so far is still python.

/cc @jerome

3 years agohelloworld: Convert instance.cfg.in to jinja2
Kirill Smelkov [Fri, 30 Oct 2015 19:21:07 +0000 (22:21 +0300)]
helloworld: Convert instance.cfg.in to jinja2

Jinja2 is currently the preferred way to do instance templating, because
it has control structures.

We'll need control structures in the following patches, but even without
it, it is better to show "how to" do instances the preferred way.

/cc @jerome

3 years agohelloworld: Move helloweb program to component/helloweb
Kirill Smelkov [Fri, 30 Oct 2015 17:39:40 +0000 (20:39 +0300)]
helloworld: Move helloweb program to component/helloweb

This

- better illustrates what components do (provide building recipes for
  programs) and what software do (gather components and provide recipes
  for instances).

- illustrates how to build the software properly - usually we build
  eggs or scripts with zc.recipe.egg:* , not generate python programs via
  jinja2 templating. Because when installing via egg, it is possible to
  import other installed eggs relatively straghtforward, and for jinja2
  way it is hard to do.

The helloweb program itself is moved into newly introduced helloweb.git
repository and, as almost all other software, becomes separate from
slapos.git .

/cc @jerome

3 years agopostgresql: v↑ postgresql92 (9.2.14)
Kirill Smelkov [Tue, 3 Nov 2015 13:35:52 +0000 (16:35 +0300)]
postgresql: v↑ postgresql92 (9.2.14)

Compared to our currently-packaged 9.2.8 postgresql 9.2.14 contains a lot of
fixes including security ones. On the path of updating, we cleanup postgresql
component a bit. Details are in commit logs.

/reviewed-by @kazuhiko  (on !25)

3 years agocomponent/postgresql: v↑ postgresql92 (9.2.14)
Kirill Smelkov [Wed, 28 Oct 2015 09:33:47 +0000 (12:33 +0300)]
component/postgresql: v↑ postgresql92  (9.2.14)

Compared to 9.2.8 postgresql 9.2.14 contains a lot of fixes including
security ones:

    http://www.postgresql.org/docs/current/static/release-9-2-9.html
    http://www.postgresql.org/docs/current/static/release-9-2-10.html
    http://www.postgresql.org/docs/current/static/release-9-2-11.html
    http://www.postgresql.org/docs/current/static/release-9-2-12.html
    http://www.postgresql.org/docs/current/static/release-9-2-13.html
    http://www.postgresql.org/docs/current/static/release-9-2-14.html

3 years agocomponent/postgresql: Factor out common build stuff to postgresql-common
Kirill Smelkov [Wed, 28 Oct 2015 09:12:29 +0000 (12:12 +0300)]
component/postgresql: Factor out common build stuff to postgresql-common

Currently we have recipes to build both postgresql 9.1 and 9.2 (see
9f1f0759 "provide both postgres 9.1 and 9.2") which mostly duplicate
each other with minor difference that 9.1 is built with perl and 9.2
without (perl added to 9.1 in dbbd9a96 "Include Perl in Postgres").

To reduce the duplication let's move common compilation bits to common
section.

NOTE I've tried to add perl to postgresql 9.2 as well and got the
following compilation error:

    ld: .../perl/libs-c/libperl.a(op.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
    .../parts/perl/libs-c/libperl.a: could not read symbols: Bad value

which happens because libperl.a is not compiled with fPIC.

For now we don't need perl in postgresql92 and this is not handled, and
we just deduplicate building recipes without any actual change for
resulting commands how the software is built.

3 years agosoftware/postgresql: Don't build postgresql twice
Kirill Smelkov [Wed, 28 Oct 2015 08:56:00 +0000 (11:56 +0300)]
software/postgresql: Don't build postgresql twice

component/postgresql/buildout.cfg defines both postgresql92 and
postgresql sections, with postgresql being just

    [postgresql]
    <= postgresql92

On the other hand, software/postgresql uses postgresql92 in parts, but
bin = ${postgresql:location}/bin in instance, which leads to _both_
postgresql and postgresql92 being built, and postgresql92 not used at all.

Let's fix it and use postgresql everywhere.

/cc @kazuhiko

3 years agoversion up: HAProxy 1.5.15
Julien Muchembled [Mon, 2 Nov 2015 02:36:08 +0000 (03:36 +0100)]
version up: HAProxy 1.5.15

This is an important update for us because we use http-send-name-header.
A bug caused HAProxy to segfault.

3 years agohelloworld: Unify naming for internal "hello web" service
Kirill Smelkov [Fri, 30 Oct 2015 16:48:30 +0000 (19:48 +0300)]
helloworld: Unify naming for internal "hello web" service

Since 7cd2f953 (helloworld: Turn it into real web-service) helloworld SR
implements real web-service which talks to outside world with the help
of shipped-with-it "hello web" program.

Buildout sections which create helloweb service and promise were named
based on helloworld prefix though, which is not very consistent. Thus the
change for such sections to the same name as the "hello web" program uses.

Also for style consistency the "hello web" program is renamed from
hello-web to helloweb, as this naming style is usually used for
helloworld.{c,py.rb,go,etc}

So the final naming is:

    helloweb

for both program and related sections.

3 years agoslaprunner: Build NumPy/friends & Ruby gems in parallel
Kirill Smelkov [Thu, 29 Oct 2015 10:21:32 +0000 (11:21 +0100)]
slaprunner: Build NumPy/friends & Ruby gems in parallel

Slaprunner tries to leverage multicore, and spawns multiple jobs when compiling software, based on `cpu-usage-ratio` parameter. But this currently have effect only on Make-based projects (via setting `MAKEFLAGS=-j<n>`) and does not affect software with different build systems.

Let's also provide support for parallel building for NumPy-based software and Ruby gems out of the box.

/cc @cedric.leninivin, @kazuhiko, @alain.takoudjou
/reviewed-by @jerome, @rafael  (on !22)

3 years agoAdvertise development of new version
Alain Takoudjou [Tue, 27 Oct 2015 17:05:01 +0000 (18:05 +0100)]
Advertise development of new version

3 years agouse slapos.cookbook 1.0.16 and slapos.core 1.3.14
Alain Takoudjou [Tue, 27 Oct 2015 16:56:37 +0000 (17:56 +0100)]
use slapos.cookbook 1.0.16 and slapos.core 1.3.14

3 years agoRelease 1.0.16
Alain Takoudjou [Tue, 27 Oct 2015 16:52:38 +0000 (17:52 +0100)]
Release 1.0.16

3 years agokvm recipe fixup: disk creation and image download
Alain Takoudjou [Tue, 27 Oct 2015 15:33:10 +0000 (16:33 +0100)]
kvm recipe fixup: disk creation and image download

3 years agokvm recipe fixup: disk creation and image download
Alain Takoudjou [Tue, 27 Oct 2015 15:33:10 +0000 (16:33 +0100)]
kvm recipe fixup: disk creation and image download

3 years agoslaprunner: Build Ruby gems in parallel
Kirill Smelkov [Tue, 27 Oct 2015 09:28:37 +0000 (12:28 +0300)]
slaprunner: Build Ruby gems in parallel

Most Ruby projects are built via Bundler[1], e.g. the upcoming GitLab,
and Bundler supports building/fetching dependency gems in parallel:

    http://bundler.io/v1.10/bundle_install.html#jobs

via using `--jobs <n>` command line option.

All bundler options can be also passed in via environment variable, and
this way we can use BUNDLE_JOBS=<n> for default `--jobs <n>`.

Let's use it, and this way speedup Ruby-related builds (like we already
do for Make- and NumPy- based software).

[1] http://bundler.io/

/cc @jerome, @cedric.leninivin, @kazuhiko

3 years agoslaprunner: Build NumPy & friends in parallel
Kirill Smelkov [Tue, 27 Oct 2015 09:22:46 +0000 (12:22 +0300)]
slaprunner: Build NumPy & friends in parallel

Starting from NumPy 1.10 numpy's distutils support parallel building

    http://docs.scipy.org/doc/numpy/user/install.html#basic-installation
    https://github.com/numpy/numpy/commit/23d54617

and this way software which uses numpy's distutils (scipy,
scikit-learn, etc) should support it too.

Let's use it, like we currently already use MAKEFLAGS for speeding up
make-based projects.

/cc @jerome, @cedric.leninivin, @kazuhiko

3 years agoslaprunner: Make njobs calculation more explicit and simple
Kirill Smelkov [Tue, 27 Oct 2015 09:12:41 +0000 (12:12 +0300)]
slaprunner: Make njobs calculation more explicit and simple

Currently we use '%d' and string formatting on max(1, ncpu / cpu-usage-ratio),
because `ncpu / cpu-usage-ratio` is float:

    In [1]: from __future__ import division

    In [2]: 8 / 4
    Out[2]: 2.0

and jinja2 uses future division by default:

    {{ 8 / 4 }}   ->   2.0

We can however make things more explicit, by explicitly using integer
division (// operator) and this way avoid the need for '%d' and string
formatting.

/cc @jerome, @cedric.leninivin

3 years agoslaprunner: Factor out number-of-build-jobs-to-spawn calculation into separate variable
Kirill Smelkov [Tue, 27 Oct 2015 09:08:26 +0000 (12:08 +0300)]
slaprunner: Factor out number-of-build-jobs-to-spawn calculation into separate variable

The calculation is full line long, and we are going to reuse this number
in a couple of new places, so this way it makes sense to first compute
jobs number separately, and then reuse the variable.

/cc @jerome, @cedric.leninivin

3 years agocomponent/xz: v↑ (5.2.2)
Kirill Smelkov [Mon, 26 Oct 2015 15:07:24 +0000 (18:07 +0300)]
component/xz: v↑  (5.2.2)

/reviewed-by @kazuhiko  (on !21)

3 years agoAdvertise development of new version
Alain Takoudjou [Mon, 26 Oct 2015 12:13:09 +0000 (13:13 +0100)]
Advertise development of new version

3 years agouse slapos.cookbook 1.0.14 and slapos.core 1.3.13
Alain Takoudjou [Mon, 26 Oct 2015 12:11:55 +0000 (13:11 +0100)]
use slapos.cookbook 1.0.14 and slapos.core 1.3.13

3 years agoRelease slapos.cookbook-1.0.14
Alain Takoudjou [Mon, 26 Oct 2015 12:02:35 +0000 (13:02 +0100)]
Release slapos.cookbook-1.0.14

3 years agofix parameter titile in kvm-cluster-input-schema json
Alain Takoudjou [Mon, 26 Oct 2015 11:33:42 +0000 (12:33 +0100)]
fix parameter titile in kvm-cluster-input-schema json

3 years agofix publish-connection-information tipo
Alain Takoudjou [Tue, 20 Oct 2015 12:58:53 +0000 (12:58 +0000)]
fix publish-connection-information tipo

3 years agoresilient-stack: add log file for dropbear server
Alain Takoudjou [Tue, 20 Oct 2015 12:57:48 +0000 (12:57 +0000)]
resilient-stack: add log file for dropbear server

4 years agoMerge branch 'kvm-cluster'
Alain Takoudjou [Fri, 23 Oct 2015 21:02:33 +0000 (23:02 +0200)]
Merge branch 'kvm-cluster'

4 years agofix: gobject-introspection write out of buildout parts directory
Alain Takoudjou [Fri, 23 Oct 2015 14:34:14 +0000 (16:34 +0200)]
fix: gobject-introspection write out of buildout parts directory

4 years agokvm-cluster: add parameters for firewall and keyboard language layout
Alain Takoudjou [Fri, 23 Oct 2015 08:35:19 +0000 (10:35 +0200)]
kvm-cluster: add parameters for firewall and keyboard language layout

4 years agofixup! ERP5: fix logrotate for zopes using a NEO DB
Julien Muchembled [Thu, 22 Oct 2015 17:28:44 +0000 (19:28 +0200)]
fixup! ERP5: fix logrotate for zopes using a NEO DB

Commit 6f009a9f81c53b498496d27a42821bf09f9b2c76 broke generation of zope-*.conf

4 years agomkdirectory: Do not restrict permissions by default.
Vincent Pelletier [Thu, 22 Oct 2015 14:11:52 +0000 (16:11 +0200)]
mkdirectory: Do not restrict permissions by default.

Partition root should be used to control overall permissions, which is
typically a safe-enough 0750 (depending on slapformat and sysadmin).
umask is applied at libc mkdir level, so this typically results in 0755
actual permission.
More restrictive permissions should only be used when really needed.

4 years agostack/slapos: v↑ slapos.recipe.build
Kirill Smelkov [Thu, 22 Oct 2015 13:18:22 +0000 (16:18 +0300)]
stack/slapos: v↑ slapos.recipe.build

/reviewed-by @kazuhiko

4 years agoERP5: fix logrotate for zopes using a NEO DB
Julien Muchembled [Thu, 22 Oct 2015 12:42:19 +0000 (14:42 +0200)]
ERP5: fix logrotate for zopes using a NEO DB

This is a follow-up of commit 6f009a9f81c53b498496d27a42821bf09f9b2c76

4 years agoMerge branch 'master' into kvm-cluster
Alain Takoudjou [Thu, 22 Oct 2015 08:40:34 +0000 (10:40 +0200)]
Merge branch 'master' into kvm-cluster

4 years agofixup! add firewalld component
Kazuhiko Shiozaki [Fri, 16 Oct 2015 10:18:37 +0000 (12:18 +0200)]
fixup! add firewalld component

Conflicts:
stack/slapos.cfg

4 years agoSwitch NEO code in development mode
Julien Muchembled [Wed, 21 Oct 2015 18:45:04 +0000 (20:45 +0200)]
Switch NEO code in development mode

NEO is still in heavy development and it must be easy to update code on
existing deployment.

4 years agoncurses: fix build failure on the system where tic is not installed.
Kazuhiko Shiozaki [Wed, 21 Oct 2015 10:53:17 +0000 (12:53 +0200)]
ncurses: fix build failure on the system where tic is not installed.

4 years agoversion up : MariaDB 10.1.8.
Kazuhiko Shiozaki [Mon, 19 Oct 2015 14:46:50 +0000 (16:46 +0200)]
version up : MariaDB 10.1.8.

4 years agoversion up : ghostscript 9.18.
Kazuhiko Shiozaki [Mon, 19 Oct 2015 14:47:01 +0000 (16:47 +0200)]
version up : ghostscript 9.18.