obelisk 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/bundler +16 -0
- data/bin/obelisk_cli +12 -51
- data/bin/rake +16 -0
- data/erb/extensions.ad.erb +4 -4
- data/erb/sip.ad.erb +1 -1
- data/lib/obelisk.rb +15 -2
- data/lib/obelisk/version.rb +1 -1
- data/obelisk.gemspec +2 -1
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18e420a4fdaa33cb7ae3a0178d90260005be6071
|
4
|
+
data.tar.gz: 6a8bcb0b9c5a5bea95f983f5465616ecf662038d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afa63bdd1d323ebb87491a61d3ca046c092365e318b1be6c4fb483714a084605389d9cee98f7458d017947e0fa33db1143f4e9bd73c36c5733d0b6a3a28731c9
|
7
|
+
data.tar.gz: 7634d667b0a77d38bdd7476646647b6101647794facb8ca48a09360254b74691241a1c39b0593c684fd6deac3e5f3746df46b4fc546004bb2164a24f243044e7
|
data/bin/bundler
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'bundler' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
15
|
+
|
16
|
+
load Gem.bin_path('bundler', 'bundler')
|
data/bin/obelisk_cli
CHANGED
@@ -1,55 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'obelisk_cli' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
2
8
|
|
3
|
-
|
4
|
-
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
5
12
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require "obelisk"
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
9
15
|
|
10
|
-
|
11
|
-
VALID_COMMANDS = %w{install generate update}
|
12
|
-
|
13
|
-
op = OptionParser.new do |opts|
|
14
|
-
opts.banner =
|
15
|
-
%Q{Usage: obelisk_cli [options] command
|
16
|
-
Commands:
|
17
|
-
install Copy or merge configuration file for Obelisk
|
18
|
-
generate Generate config files for Asterisk
|
19
|
-
update Replace config files for Asterisk in case of any change
|
20
|
-
Options:}
|
21
|
-
opts.on("-o", "--outdir [DIR]", "Output directory for generated config files") { |dir| options[:dir] = dir }
|
22
|
-
opts.on("-r", "--restart", "Restart Asterisk in case of config change") { options[:restart] = true }
|
23
|
-
opts.on("-c", "--config [FILE]", "Specify config FILE for Obelisk") { |file| options[:config] = file }
|
24
|
-
opts.on_tail("-h", "--help", "Show this message") { puts opts; exit }
|
25
|
-
end
|
26
|
-
|
27
|
-
op.parse!
|
28
|
-
|
29
|
-
ARGV.select! { |arg| VALID_COMMANDS.include? arg }
|
30
|
-
(puts op.help; exit 1) if ARGV.empty?
|
31
|
-
|
32
|
-
Obelisk.load_conf options[:config]
|
33
|
-
$conf[:asterisk_conf_dir] = options[:dir] if options[:dir]
|
34
|
-
|
35
|
-
ARGV.each do |arg|
|
36
|
-
case arg
|
37
|
-
when "install"
|
38
|
-
if Obelisk.save_def_conf options[:config]
|
39
|
-
puts "Found and updated config file. Please, check it."
|
40
|
-
else
|
41
|
-
puts "Default configuration file's been saved. Change it accordingly."
|
42
|
-
end
|
43
|
-
when "generate"
|
44
|
-
Obelisk.make_erb_conf :force => true, :restart => options[:restart]
|
45
|
-
puts "All files has been generated."
|
46
|
-
when "update"
|
47
|
-
if Obelisk.make_erb_conf(:restart => options[:restart])
|
48
|
-
puts "Asterisk config files have been updated"
|
49
|
-
else
|
50
|
-
puts "Already up to date."
|
51
|
-
end
|
52
|
-
else
|
53
|
-
puts op
|
54
|
-
end
|
55
|
-
end
|
16
|
+
load Gem.bin_path('obelisk', 'obelisk_cli')
|
data/bin/rake
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'rake' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
15
|
+
|
16
|
+
load Gem.bin_path('rake', 'rake')
|
data/erb/extensions.ad.erb
CHANGED
@@ -7,9 +7,9 @@
|
|
7
7
|
[<%= current_context %>-ad-users]
|
8
8
|
|
9
9
|
<% end -%>
|
10
|
-
exten => <%= user[:extension] %>,1,Dial(SIP/<%= user[:
|
11
|
-
exten => <%= user[:extension] %>,hint,SIP/<%= user[:
|
12
|
-
exten => <%= user[:
|
13
|
-
exten => <%= user[:
|
10
|
+
exten => <%= user[:extension] %>,1,Dial(SIP/<%= user[:login] %>)
|
11
|
+
exten => <%= user[:extension] %>,hint,SIP/<%= user[:login] %>,CustomPresence:<%= user[:login] %>
|
12
|
+
exten => <%= user[:login] %>,1,Dial(SIP/<%= user[:login] %>)
|
13
|
+
exten => <%= user[:login] %>,hint,SIP/<%= user[:login] %>,CustomPresence:<%= user[:login] %>
|
14
14
|
|
15
15
|
<% end -%>
|
data/erb/sip.ad.erb
CHANGED
data/lib/obelisk.rb
CHANGED
@@ -5,6 +5,8 @@ require "yaml"
|
|
5
5
|
require "erb"
|
6
6
|
require "logger"
|
7
7
|
require "fileutils"
|
8
|
+
require "curb"
|
9
|
+
require "json"
|
8
10
|
|
9
11
|
module Obelisk
|
10
12
|
DEFAULT_CONFIG_PATH = "#{Dir.home}/.obelisk.conf"
|
@@ -16,7 +18,7 @@ module Obelisk
|
|
16
18
|
bind_pass: "pass",
|
17
19
|
},
|
18
20
|
:mapping => {
|
19
|
-
samaccountname: :
|
21
|
+
samaccountname: :login,
|
20
22
|
info: :secret,
|
21
23
|
facsimiletelephonenumber: :context,
|
22
24
|
ipphone: :extension,
|
@@ -34,6 +36,7 @@ module Obelisk
|
|
34
36
|
},
|
35
37
|
:asterisk_conf_dir => "/tmp/asterisk",
|
36
38
|
:asterisk_restart_command => %q{asterisk -x "core restart gracefully"},
|
39
|
+
:obelisk_portal_update_url => "http://localhost:3000/contacts/updatedb",
|
37
40
|
:erb_file_dir => File.expand_path(File.dirname(__FILE__) + "/../erb")
|
38
41
|
}
|
39
42
|
|
@@ -43,6 +46,7 @@ module Obelisk
|
|
43
46
|
params[:conf_dir] ||= $conf[:asterisk_conf_dir]
|
44
47
|
params[:force] ||= false
|
45
48
|
params[:restart] ||= false
|
49
|
+
params[:updb] ||= false
|
46
50
|
FileUtils.mkdir_p params[:conf_dir]
|
47
51
|
b = binding
|
48
52
|
up = false
|
@@ -60,9 +64,18 @@ module Obelisk
|
|
60
64
|
end
|
61
65
|
end
|
62
66
|
system $conf[:asterisk_restart_command] if up && params[:restart]
|
67
|
+
update_rails_db users if up && params[:updb]
|
63
68
|
up
|
64
69
|
end
|
65
70
|
|
71
|
+
def self.update_rails_db(users)
|
72
|
+
users.each { |u| u.delete :secret }
|
73
|
+
c = Curl::Easy.http_post $conf[:obelisk_portal_update_url], JSON.dump(users) do |curl|
|
74
|
+
curl.headers['Accept'] = 'application/json'
|
75
|
+
curl.headers['Content-Type'] = 'application/json'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
66
79
|
def self.get_ad_users(ou = nil)
|
67
80
|
load_conf
|
68
81
|
settings = {
|
@@ -78,7 +91,7 @@ module Obelisk
|
|
78
91
|
ActiveDirectory::Base.setup(settings)
|
79
92
|
ActiveDirectory::User.find(:all).select{ |u| u.valid_attribute? :info }.map do |u|
|
80
93
|
k = $conf[:mapping].values
|
81
|
-
v = $conf[:mapping].keys.map { |attr| u.valid_attribute?(attr) ? u.send(attr) : $conf[:defaults][attr] }
|
94
|
+
v = $conf[:mapping].keys.map { |attr| u.valid_attribute?(attr) ? u.send(attr).force_encoding("UTF-8") : $conf[:defaults][attr] }
|
82
95
|
Hash[k.zip v]
|
83
96
|
end
|
84
97
|
end
|
data/lib/obelisk/version.rb
CHANGED
data/obelisk.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: obelisk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- goredar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,11 +52,27 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: curb
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: Generate Asterisk configs and provides integration of Rails app
|
56
70
|
email:
|
57
71
|
- goredar@gmail.com
|
58
72
|
executables:
|
73
|
+
- bundler
|
59
74
|
- obelisk_cli
|
75
|
+
- rake
|
60
76
|
extensions: []
|
61
77
|
extra_rdoc_files: []
|
62
78
|
files:
|
@@ -65,7 +81,9 @@ files:
|
|
65
81
|
- LICENSE.txt
|
66
82
|
- README.md
|
67
83
|
- Rakefile
|
84
|
+
- bin/bundler
|
68
85
|
- bin/obelisk_cli
|
86
|
+
- bin/rake
|
69
87
|
- erb/extensions.ad.erb
|
70
88
|
- erb/sip.ad.erb
|
71
89
|
- lib/obelisk.rb
|