bosh-gen 0.6.2 → 0.7.0
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.
- data/ChangeLog.md +12 -0
- data/lib/bosh/gen/cli.rb +8 -2
- data/lib/bosh/gen/generators/deployment_manifest_generator.rb +11 -1
- data/lib/bosh/gen/generators/extract_package_generator.rb +65 -0
- data/lib/bosh/gen/generators/new_release_generator.rb +1 -0
- data/lib/bosh/gen/models/deployment_manifest.rb +1 -1
- data/lib/bosh/gen/models/release_detection.rb +1 -1
- data/lib/bosh/gen/version.rb +1 -1
- metadata +6 -5
data/ChangeLog.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## v0.7.0
|
4
|
+
|
5
|
+
Added:
|
6
|
+
|
7
|
+
* `extract-pkg` - extract a package and its dependencies from a target release
|
8
|
+
|
9
|
+
Changed/Renamed:
|
10
|
+
|
11
|
+
* `extract` -> `extract-job`
|
12
|
+
* `new` -> `.gitignore` includes `.vagrant`, to support `bosh-solo`
|
13
|
+
* `manifest` -> update to soon-to-be-released stemcell 0.6.2
|
14
|
+
|
3
15
|
## v0.6.0
|
4
16
|
|
5
17
|
Added:
|
data/lib/bosh/gen/cli.rb
CHANGED
@@ -69,13 +69,19 @@ module Bosh
|
|
69
69
|
Bosh::Gen::Generators::JobTemplateGenerator.start([job_name, file_path])
|
70
70
|
end
|
71
71
|
|
72
|
-
desc "extract SOURCE_RELEASE_PATH SOURCE_JOB_NAME [JOB_NAME]", "Extracts a job from another release and all its dependent packages and source"
|
73
|
-
def
|
72
|
+
desc "extract-job SOURCE_RELEASE_PATH SOURCE_JOB_NAME [JOB_NAME]", "Extracts a job from another release and all its dependent packages and source"
|
73
|
+
def extract_job(source_release_path, source_job_name, target_job_name=nil)
|
74
74
|
target_job_name ||= source_job_name
|
75
75
|
require 'bosh/gen/generators/extract_job_generator'
|
76
76
|
Bosh::Gen::Generators::ExtractJobGenerator.start([source_release_path, source_job_name, target_job_name])
|
77
77
|
end
|
78
78
|
|
79
|
+
desc "extract-pkg SOURCE_RELEASE_PATH SOURCE_PACKAGE_NAME", "Extracts a package from another release and all its dependent packages and sources"
|
80
|
+
def extract_pkg(source_release_path, source_package_name)
|
81
|
+
require 'bosh/gen/generators/extract_package_generator'
|
82
|
+
Bosh::Gen::Generators::ExtractPackageGenerator.start([source_release_path, source_package_name])
|
83
|
+
end
|
84
|
+
|
79
85
|
desc "manifest NAME PATH UUID", "Creates a deployment manifest based on the release located at PATH"
|
80
86
|
method_option :force, :type => :boolean, :desc => "Force override existing target manifest file"
|
81
87
|
method_option :addresses, :aliases => ['-a'], :type => :array, :desc => "List of IP addresses available for jobs"
|
@@ -12,6 +12,12 @@ module Bosh::Gen
|
|
12
12
|
argument :ip_addresses
|
13
13
|
argument :flags, :type => :hash
|
14
14
|
|
15
|
+
def create_root
|
16
|
+
self.destination_root = File.expand_path(name, destination_root)
|
17
|
+
empty_directory '.'
|
18
|
+
FileUtils.cd(destination_root) unless options[:pretend]
|
19
|
+
end
|
20
|
+
|
15
21
|
def check_release_path_is_release
|
16
22
|
unless File.exist?(release_path)
|
17
23
|
raise Thor::Error.new("target path '#{release_path}' doesn't exist")
|
@@ -33,6 +39,10 @@ module Bosh::Gen
|
|
33
39
|
create_file manifest_file_name, manifest.to_yaml, :force => flags[:force]
|
34
40
|
end
|
35
41
|
|
42
|
+
def setup_bosh_deployment_target
|
43
|
+
run "bosh deployment #{manifest_file_name}"
|
44
|
+
end
|
45
|
+
|
36
46
|
private
|
37
47
|
def release_detector
|
38
48
|
@release_detector ||= Bosh::Gen::Models::ReleaseDetection.new(release_path)
|
@@ -40,7 +50,7 @@ module Bosh::Gen
|
|
40
50
|
|
41
51
|
# Whether +name+ contains .yml suffix or nor, returns a .yml filename for manifest to be generated
|
42
52
|
def manifest_file_name
|
43
|
-
basename =
|
53
|
+
basename = "manifest.yml"
|
44
54
|
end
|
45
55
|
|
46
56
|
def job_manifests
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'thor/group'
|
3
|
+
|
4
|
+
module Bosh::Gen
|
5
|
+
module Generators
|
6
|
+
class ExtractPackageGenerator < Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
argument :source_release_path
|
10
|
+
argument :source_package_name
|
11
|
+
|
12
|
+
def check_root_is_release
|
13
|
+
unless File.exist?("jobs") && File.exist?("packages")
|
14
|
+
raise Thor::Error.new("run inside a BOSH release project")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def using_source_release_for_templates
|
19
|
+
source_paths << File.join(source_release_path)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Extract target package and all its dependencies
|
23
|
+
def detect_dependent_packages
|
24
|
+
spec = YAML.load_file(source_package_dir("spec"))
|
25
|
+
@packages = [target_package_name]
|
26
|
+
@packages << spec["packages"] if spec["packages"]
|
27
|
+
end
|
28
|
+
|
29
|
+
def copy_dependent_packages
|
30
|
+
@packages.each {|package| directory "packages/#{package}"}
|
31
|
+
end
|
32
|
+
|
33
|
+
def copy_dependent_sources
|
34
|
+
@blobs = false
|
35
|
+
@packages.each do |package|
|
36
|
+
directory "src/#{package}" if File.exist?(File.join(source_release_path, "src", package))
|
37
|
+
if File.exist?(File.join(source_release_path, "blobs", package))
|
38
|
+
directory "blobs/#{package}"
|
39
|
+
@blobs = true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def readme
|
45
|
+
if @blobs
|
46
|
+
say_status "readme", "Upload blobs with 'bosh upload blobs'"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
def target_package_name
|
52
|
+
source_package_name
|
53
|
+
end
|
54
|
+
|
55
|
+
def package_dir(path="")
|
56
|
+
File.join("packages", source_package_name, path)
|
57
|
+
end
|
58
|
+
|
59
|
+
def source_package_dir(path="")
|
60
|
+
File.join(source_release_path, "packages", source_package_name, path)
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -8,7 +8,7 @@ module Bosh::Gen::Models
|
|
8
8
|
@manifest = {}
|
9
9
|
@cloud_properties = cloud_properties
|
10
10
|
@security_groups = ["default"]
|
11
|
-
@stemcell_version = "0.
|
11
|
+
@stemcell_version = "0.6.2"
|
12
12
|
@stemcell = { "name" => "bosh-stemcell", "version" => @stemcell_version }
|
13
13
|
@persistent_disk = cloud_properties.delete("persistent_disk").to_i
|
14
14
|
@static_ips = cloud_properties.delete("static_ips") || []
|
data/lib/bosh/gen/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh-gen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/bosh/gen/cli.rb
|
129
129
|
- lib/bosh/gen/generators/deployment_manifest_generator.rb
|
130
130
|
- lib/bosh/gen/generators/extract_job_generator.rb
|
131
|
+
- lib/bosh/gen/generators/extract_package_generator.rb
|
131
132
|
- lib/bosh/gen/generators/job_generator.rb
|
132
133
|
- lib/bosh/gen/generators/job_generator/templates/.gitkeep
|
133
134
|
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%/monit.tt
|
@@ -208,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
208
209
|
version: '0'
|
209
210
|
segments:
|
210
211
|
- 0
|
211
|
-
hash:
|
212
|
+
hash: 1843884671280331738
|
212
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
214
|
none: false
|
214
215
|
requirements:
|
@@ -217,10 +218,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
218
|
version: '0'
|
218
219
|
segments:
|
219
220
|
- 0
|
220
|
-
hash:
|
221
|
+
hash: 1843884671280331738
|
221
222
|
requirements: []
|
222
223
|
rubyforge_project:
|
223
|
-
rubygems_version: 1.8.
|
224
|
+
rubygems_version: 1.8.24
|
224
225
|
signing_key:
|
225
226
|
specification_version: 3
|
226
227
|
summary: ''
|