Commit 5063224a77188c41768b039730cb67ce4895e24a
Exists in
master
and in
54 other branches
Merge branch 'noosfero-token'
This implements creating an user in the Noosfero dabatase, an grabbing its API key for use in the Colab Noosfero plugin
Showing
8 changed files
with
58 additions
and
7 deletions
Show diff stats
Rakefile
... | ... | @@ -136,6 +136,7 @@ task :bootstrap_common => 'config/local/ssh_config' |
136 | 136 | |
137 | 137 | unless ENV['nodeps'] |
138 | 138 | task 'converge:integration' => 'converge:database' |
139 | + task 'converge:integration' => 'converge:social' | |
139 | 140 | task 'converge:social' => 'converge:database' |
140 | 141 | end |
141 | 142 | ... | ... |
cookbooks/colab/recipes/default.rb
... | ... | @@ -148,6 +148,10 @@ template '/etc/colab/plugins.d/noosfero.py' do |
148 | 148 | group 'colab' |
149 | 149 | mode 0640 |
150 | 150 | notifies :restart, 'service[colab]' |
151 | + get_private_token = lambda do | |
152 | + `psql --tuples-only --host database --user colab -c "select private_token from users where login = 'admin-noosfero'" noosfero`.strip | |
153 | + end | |
154 | + variables(:get_private_token => get_private_token) | |
151 | 155 | end |
152 | 156 | |
153 | 157 | template '/etc/colab/plugins.d/spb.py' do | ... | ... |
cookbooks/colab/templates/noosfero.py.erb
... | ... | @@ -10,6 +10,8 @@ verbose_name = 'Noosfero Plugin' |
10 | 10 | |
11 | 11 | upstream = 'http://<%= node['peers']['social'] %>:80/social/' |
12 | 12 | |
13 | +private_token = '<%= @get_private_token.call %>' | |
14 | + | |
13 | 15 | urls = { |
14 | 16 | 'include': 'colab_noosfero.urls', |
15 | 17 | 'namespace': 'noosfero', # TODO: do not allow to change namespace | ... | ... |
... | ... | @@ -0,0 +1,17 @@ |
1 | +#!/usr/bin/env ruby | |
2 | + | |
3 | +login = ARGV[0] | |
4 | +email = ARGV[1] | |
5 | +password = SecureRandom.random_number.to_s | |
6 | + | |
7 | +user = User.find_by_login(login) | |
8 | +exit(0) if user | |
9 | + | |
10 | +user = User.create!( | |
11 | + login: login, | |
12 | + email: email, | |
13 | + password: password, | |
14 | + password_confirmation: password | |
15 | +) | |
16 | +user.activate | |
17 | +user.generate_private_token_if_not_exist | ... | ... |
cookbooks/noosfero/recipes/default.rb
... | ... | @@ -51,17 +51,24 @@ execute 'plugins:enable' do |
51 | 51 | command '/usr/lib/noosfero/script/noosfero-plugins enable ' + plugins.join(' ') |
52 | 52 | end |
53 | 53 | |
54 | +plugins_spb = [ | |
55 | + 'software_communities', | |
56 | + 'gov_user', | |
57 | + 'spb_migrations', | |
58 | +] | |
59 | + | |
60 | +# HACK disable plugins_spb before migrating | |
61 | +# FIXME fix the plugins to not depend on other pugins | |
62 | +execute 'noosfero:plugins_spb:disable' do | |
63 | + command '/usr/lib/noosfero/script/noosfero-plugins disable ' + plugins_spb.join(' ') | |
64 | +end | |
65 | + | |
54 | 66 | execute 'noosfero:migrate' do |
55 | 67 | command 'RAILS_ENV=production SCHEMA=/dev/null bundle exec rake db:migrate' |
56 | 68 | cwd '/usr/lib/noosfero' |
57 | 69 | user 'noosfero' |
58 | 70 | end |
59 | 71 | |
60 | -plugins_spb = [ | |
61 | - 'software_communities', | |
62 | - 'gov_user', | |
63 | - 'spb_migrations', | |
64 | -] | |
65 | 72 | |
66 | 73 | #FIXME: We did it, because we have to enable each plugin and migrate it separately. |
67 | 74 | plugins_spb.each do |plugin| |
... | ... | @@ -127,6 +134,21 @@ cookbook_file '/usr/lib/noosfero/config/noosfero.yml' do |
127 | 134 | source 'noosfero.yml' |
128 | 135 | notifies :restart, 'service[noosfero]' |
129 | 136 | end |
137 | + | |
138 | +cookbook_file "/usr/local/bin/noosfero-create-api-user" do | |
139 | + mode 0755 | |
140 | +end | |
141 | + | |
142 | +execute 'create-admin-token-noosfero' do | |
143 | + command [ | |
144 | + "RAILS_ENV=production bundle exec rails runner", | |
145 | + "/usr/local/bin/noosfero-create-api-user", | |
146 | + "admin-noosfero", # username | |
147 | + "noosfero@localhost.localdomain", # email | |
148 | + ].join(' ') | |
149 | + cwd '/usr/lib/noosfero' | |
150 | + user 'noosfero' | |
151 | +end | |
130 | 152 | ############################################### |
131 | 153 | # SELinux: permission to access static files noosfero |
132 | 154 | ################################################ | ... | ... |
cookbooks/postgresql/recipes/noosfero.rb
cookbooks/postgresql/templates/centos/pg_hba.conf.erb
... | ... | @@ -10,3 +10,4 @@ host all all ::1/128 ident |
10 | 10 | host colab colab <%= node['peers']['integration'] %>/32 trust |
11 | 11 | host gitlab gitlab <%= node['peers']['integration'] %>/32 trust |
12 | 12 | host noosfero noosfero <%= node['peers']['social'] %>/32 trust |
13 | +host noosfero colab <%= node['peers']['integration'] %>/32 trust | ... | ... |
roles/database_server.rb
... | ... | @@ -3,7 +3,7 @@ description 'Database server' |
3 | 3 | run_list *[ |
4 | 4 | 'recipe[postgresql]', |
5 | 5 | 'recipe[redis]', |
6 | - 'recipe[postgresql::colab]', | |
7 | - 'recipe[postgresql::gitlab]', | |
6 | + 'recipe[postgresql::colab]', # must come before the other apps | |
8 | 7 | 'recipe[postgresql::noosfero]', |
8 | + 'recipe[postgresql::gitlab]', | |
9 | 9 | ] | ... | ... |