class Bosh::Gen::Generators::NewReleaseGenerator
Public Class Methods
source_root()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 15 def self.source_root File.join(File.dirname(__FILE__), "new_release_generator", "templates") end
Public Instance Methods
blobs_yaml()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 54 def blobs_yaml create_file "config/blobs.yml", YAML.dump({}) end
config_dev_yml()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 58 def config_dev_yml config_dev = { "dev_name" => project_name } create_file "config/dev.yml", YAML.dump(config_dev) end
config_final_yml()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 96 def config_final_yml case blobstore_type when :local say_status "warning", "config/final.yml defaulting to local blobstore /tmp/blobstore", :yellow config_final = { "blobstore" => { "provider" => "local", "options" => { "blobstore_path" => '/tmp/blobstore' } } } when :s3 config_final = { "blobstore" => { "provider" => "s3", "options" => { "bucket_name" => repository_name } } } when :swift config_final = { "blobstore" => { "provider" => "swift", "options" => { "container_name" => repository_name, "swift_provider" => swift_provider } } } end config_final["final_name"] = project_name create_file "config/final.yml", YAML.dump(config_final) end
config_private_yml()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 63 def config_private_yml case blobstore_type when :local config_private = { "blobstore" => { "simple" => { "user" => "USER", "password" => "PASSWORD" } } } when :s3 config_private = { "blobstore" => { "s3" => { "access_key_id" => settings.provider.credentials.aws_access_key_id, "secret_access_key" => settings.provider.credentials.aws_secret_access_key } } } # https://github.com/cloudfoundry/bosh/tree/master/blobstore_client#openstack-object-storage when :swift config_private = { "blobstore" => { "swift" => { settings.provider.name => settings.provider.credentials.to_hash } } } end create_file "config/private.yml", YAML.dump(config_private) end
create_blobstore()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 164 def create_blobstore say "" say "Finally..." blobstore = Cyoi::Cli::Blobstore.new([blobstore_name, settings_dir]) blobstore.execute! reload_settings! say "" end
create_root()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 19 def create_root self.destination_root = File.expand_path(repository_path, destination_root) empty_directory '.' FileUtils.cd(destination_root) unless options[:pretend] end
directories()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 44 def directories %w[jobs packages src blobs templates].each do |dir| directory dir end end
executables()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 50 def executables chmod "templates/make_manifest", 0755 end
git_init()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 128 def git_init create_file ".gitignore", " config/dev.yml config/private.yml config/settings.yml releases/**/*.tgz dev_releases blobs/* .blobs .dev_builds .vagrant .idea .DS_Store .final_builds/jobs/**/*.tgz .final_builds/packages/**/*.tgz *.swp *~ *# #* tmp my*.yml ".gsub(/^\s{8}/, '') end
license()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 36 def license template "LICENSE.md.tt", "LICENSE.md" end
rakefile()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 40 def rakefile copy_file "Rakefile" end
readme()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 32 def readme template "README.md.tt", "README.md" end
select_provider()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 25 def select_provider self.settings_dir = File.expand_path("config") provider = Cyoi::Cli::Provider.new([settings_dir]) provider.execute! reload_settings! end
setup_git()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 152 def setup_git git :init git :add => "." git :commit => "-m 'Initial scaffold'" end
show_location()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 158 def show_location say "" say "Next, change to BOSH release location:" say "cd #{repository_path}", :yellow end
Private Instance Methods
blobstore_name()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 182 def blobstore_name repository_name end
blobstore_type()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 210 def blobstore_type return :s3 if s3? return :swift if swift? return :local end
git(commands={})
click to toggle source
Run a command in git.
Examples¶ ↑
git :init git :add => "this.file that.rb" git :add => "onefile.rb", :rm => "badfile.cxx"
# File lib/bosh/gen/generators/new_release_generator.rb, line 238 def git(commands={}) if commands.is_a?(Symbol) run "git #{commands}" else commands.each do |cmd, options| run "git #{cmd} #{options}" end end end
job_name()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 198 def job_name project_name_underscored end
project_name()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 190 def project_name @project_name ||= File.basename(proposed_app_path).gsub(/-(?:boshrelease|release)$/, '') end
project_name_hyphenated()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 202 def project_name_hyphenated project_name.gsub(/[^A-Za-z0-9]+/, '-') end
project_name_underscored()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 206 def project_name_underscored project_name.gsub(/[^A-Za-z0-9]+/, '_') end
readwrite_aws_access_key()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 248 def readwrite_aws_access_key s3_credentials "readwrite_access_key", "READWRITE_AWS_ACCESS_KEY" end
readwrite_aws_secret_access_key()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 252 def readwrite_aws_secret_access_key s3_credentials "readwrite_secret_access_key", "READWRITE_AWS_SECRET_ACCESS_KEY" end
repository_name()
click to toggle source
converts the base name into having -boshrelease suffix
# File lib/bosh/gen/generators/new_release_generator.rb, line 178 def repository_name @repository_name ||= "#{project_name}-boshrelease" end
repository_path()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 186 def repository_path File.join(File.dirname(proposed_app_path), repository_name) end
s3?()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 216 def s3? settings.provider.name == "aws" end
s3_credentials(key, default)
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 256 def s3_credentials(key, default) @s3_credentials ||= begin creds = File.expand_path("~/.bosh_s3_credentials") if File.exist?(creds) YAML.load_file(creds) else {} end end @s3_credentials[key] || default end
swift?()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 220 def swift? settings.provider.name == "openstack" end
swift_provider()
click to toggle source
github.com/cloudfoundry/bosh/tree/master/blobstore_client#openstack-swift-provider TODO: supported: hp, openstack and rackspace; How to detect this from fog?
# File lib/bosh/gen/generators/new_release_generator.rb, line 226 def swift_provider "openstack" end
warden_net()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 194 def warden_net @warden_net ||= "10.244.#{rand(255) + 1}" end
year()
click to toggle source
# File lib/bosh/gen/generators/new_release_generator.rb, line 268 def year Date.today.year end