Module: Judo::Config
Class Method Summary collapse
Instance Method Summary collapse
- #access_id ⇒ Object
- #access_secret ⇒ Object
- #check_version ⇒ Object
- #db_version ⇒ Object
- #default_options(pwd, dir = find_judo_dir(pwd)) ⇒ Object
- #ec2 ⇒ Object
- #find_judo_dir(check) ⇒ Object
- #get_db_version ⇒ Object
- #get_ec2(aws_id, aws_key) ⇒ Object
- #get_sdb(aws_id, aws_key) ⇒ Object
-
#judo_config ⇒ Object
def create_security_group ## EC2 create_security_group ec2.create_security_group(‘judo’, ‘Judo’) ## EC2 authorize_security_group ec2.authorize_security_group_IP_ingress(“judo”, 22, 22,‘tcp’,‘0.0.0.0/0’) rescue Aws::AwsError end.
- #judo_config_file ⇒ Object
- #judo_dir ⇒ Object
- #read_judo_config ⇒ Object
- #repo_dir ⇒ Object
- #s3 ⇒ Object
- #s3_bucket ⇒ Object
- #s3_put(k, file) ⇒ Object
- #s3_url(k) ⇒ Object
- #sdb ⇒ Object
Class Method Details
.all ⇒ Object
62 63 64 |
# File 'lib/judo/config.rb', line 62 def self.all @@all ||= (dirs.map { |d| new(d) }) end |
.current ⇒ Object
66 67 68 |
# File 'lib/judo/config.rb', line 66 def self.current all.detect { |d| Dir.pwd == d.dir or Dir.pwd =~ /^#{d.dir}\// } end |
Instance Method Details
#access_id ⇒ Object
22 23 24 |
# File 'lib/judo/config.rb', line 22 def access_id judo_config["access_id"] end |
#access_secret ⇒ Object
26 27 28 |
# File 'lib/judo/config.rb', line 26 def access_secret judo_config["access_secret"] end |
#check_version ⇒ Object
14 15 16 |
# File 'lib/judo/config.rb', line 14 def check_version abort "judo db is newer than the current gem - upgrade judo and try again" if get_db_version > db_version end |
#db_version ⇒ Object
5 6 7 |
# File 'lib/judo/config.rb', line 5 def db_version 1 end |
#default_options(pwd, dir = find_judo_dir(pwd)) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/judo/config.rb', line 70 def (pwd, dir = find_judo_dir(pwd)) puts "PWD: #{pwd}" puts "DIR: #{dir}" config = YAML.load File.read("#{dir}/config.yml") repo_dir = config["repo"] || File.dirname(dir) group_config = Dir["#{repo_dir}/*/config.json"].detect { |d| File.dirname(d) == pwd } { :judo_dir => dir, :group => group_config ? File.basename(File.dirname(group_config)) : nil, :repo => repo_dir, :bucket => config["s3_bucket"], :access_id => config["access_id"], :access_secret => config["access_secret"] }.delete_if { |key,value| value.nil? } rescue Object => e puts e.inspect {} end |
#ec2 ⇒ Object
34 35 36 |
# File 'lib/judo/config.rb', line 34 def ec2 @ec2 ||= get_ec2(access_id, access_secret) end |
#find_judo_dir(check) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/judo/config.rb', line 89 def find_judo_dir(check) if check == "/" if File.exists?("#{ENV['HOME']}/.judo") "#{ENV['HOME']}/.judo" else nil end else File.exists?(check + "/.judo") ? check + "/.judo" : find_judo_dir(File.dirname(check)) end end |
#get_db_version ⇒ Object
9 10 11 12 |
# File 'lib/judo/config.rb', line 9 def get_db_version version = @sdb.get_attributes("judo_config", "judo")[:attributes]["dbversion"] version and version.first.to_i or db_version end |
#get_ec2(aws_id, aws_key) ⇒ Object
30 31 32 |
# File 'lib/judo/config.rb', line 30 def get_ec2(aws_id, aws_key) Aws::Ec2.new(aws_id, aws_key, :logger => Logger.new(nil)) end |
#get_sdb(aws_id, aws_key) ⇒ Object
107 108 109 |
# File 'lib/judo/config.rb', line 107 def get_sdb(aws_id, aws_key) Aws::SdbInterface.new(aws_id, aws_key, :logger => Logger.new(nil)) end |
#judo_config ⇒ Object
def create_security_group
## EC2 create_security_group
ec2.create_security_group('judo', 'Judo')
## EC2 authorize_security_group
ec2.authorize_security_group_IP_ingress("judo", 22, 22,'tcp','0.0.0.0/0')
rescue Aws::AwsError
end
46 47 48 |
# File 'lib/judo/config.rb', line 46 def judo_config @config ||= read_judo_config end |
#judo_config_file ⇒ Object
50 51 52 |
# File 'lib/judo/config.rb', line 50 def judo_config_file "#{judo_dir}/config.yml" end |
#judo_dir ⇒ Object
54 55 56 |
# File 'lib/judo/config.rb', line 54 def judo_dir @judo_dir ||= find_judo_dir(Dir.pwd) || abort("fatal: Not a judo repository (or any of the parent directories): .judo\nrun commands from the judo repository or type 'judo init' to setup the current directory as a new judo repository") end |
#read_judo_config ⇒ Object
101 102 103 104 105 |
# File 'lib/judo/config.rb', line 101 def read_judo_config YAML.load File.read(judo_config_file) rescue Errno::ENOENT {} end |
#repo_dir ⇒ Object
18 19 20 |
# File 'lib/judo/config.rb', line 18 def repo_dir judo_config["repo"] || File.dirname(judo_dir) end |
#s3 ⇒ Object
117 118 119 |
# File 'lib/judo/config.rb', line 117 def s3 @s3 ||= Aws::S3.new(access_id, access_secret, :logger => Logger.new(nil)) end |
#s3_bucket ⇒ Object
121 122 123 |
# File 'lib/judo/config.rb', line 121 def s3_bucket @s3_bucket ||= s3.bucket(judo_config["s3_bucket"]) end |
#s3_put(k, file) ⇒ Object
129 130 131 |
# File 'lib/judo/config.rb', line 129 def s3_put(k, file) s3_bucket.put(k, file) end |
#s3_url(k) ⇒ Object
125 126 127 |
# File 'lib/judo/config.rb', line 125 def s3_url(k) Aws::S3Generator::Key.new(s3_bucket, k).get end |
#sdb ⇒ Object
111 112 113 114 115 |
# File 'lib/judo/config.rb', line 111 def sdb @sdb ||= get_sdb(access_id, access_secret) # @version_ok ||= check_version @sdb end |