biosphere 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc686dce74249976a49fd057c0afe79a7fe09912
4
- data.tar.gz: aa2aa286f7d61f3c9f0c8693f5368597303c1b8b
3
+ metadata.gz: 045992d0dc9ffbcdd966f6ff94110d9d9e8b5378
4
+ data.tar.gz: 9002f10cb4b3dccbf4b0fd9d22400c81e0053afe
5
5
  SHA512:
6
- metadata.gz: 97e05ad763e9c9869e73b234cd6542f7b0c4451c170f1381b8ae88ed6365763de5653847b97e7bb3a3689cbb36939e389d57ee18e0d84c75f4026c8140c8b67b
7
- data.tar.gz: 95c255c267f676aba43ff08b63cc3045a3c9cf7bcde66e6c2bea9c2c0a9dd0b6e19b4c94c8cc34aa30beaa6809a3f9da5657b383fa237e57795676ad22118491
6
+ metadata.gz: f4f2c56774a1236da21a63956b7487b7f7e04b9f1d6524ed1b03666cd21c58fc6cea82835f6a7ceb31e091904ddb4256e1c76cbc6129ed812f21a2371419e2f6
7
+ data.tar.gz: 80026305f5df130666ad2e3e1d4706560a84392c1d32eb8197a42df6a435d47c7d104b54e63b2c0fbe0e1dfbeb1a9a15c1c5abf78e8f83848bb9b8c4ccd6feda
data/bin/biosphere CHANGED
@@ -216,7 +216,7 @@ elsif ARGV[0] == "destroy" && options.src
216
216
  puts "\nAborted!"
217
217
  elsif answer == "y"
218
218
  puts "\nDestroying deployment #{deployment} (this may take several minutes)"
219
- tf_apply = %x( terraform destroy -state=#{options.build_dir}/#{deployment}.tfstate #{options.build_dir})
219
+ tf_apply = %x( terraform destroy -force -state=#{options.build_dir}/#{deployment}.tfstate #{options.build_dir})
220
220
  puts "\n" + tf_apply
221
221
  s3.save("#{options.build_dir}/#{deployment}.tfstate")
222
222
  s3.save("#{options.build_dir}/state.node")
@@ -5,7 +5,7 @@ class Biosphere
5
5
 
6
6
  class Deployment
7
7
 
8
- attr_reader :export, :name, :_settings
8
+ attr_reader :export, :name, :_settings, :feature_manifests
9
9
  attr_accessor :state, :node
10
10
  def initialize(*args)
11
11
 
@@ -25,8 +25,10 @@ class Biosphere
25
25
  elsif args[0].kind_of?(::Biosphere::Settings)
26
26
  @_settings = args.shift
27
27
  settings = @_settings.settings
28
+ @feature_manifests = @_settings.feature_manifests
28
29
  end
29
30
 
31
+
30
32
  @export = {
31
33
  "provider" => {},
32
34
  "resource" => {},
@@ -60,6 +62,10 @@ class Biosphere
60
62
  @deployments = []
61
63
  @outputs = []
62
64
 
65
+ if @feature_manifests
66
+ node[:feature_manifests] = @feature_manifests
67
+ end
68
+
63
69
  self.setup(settings)
64
70
 
65
71
  end
@@ -187,7 +193,6 @@ class Biosphere
187
193
 
188
194
  @export["resource"][resource[:type].to_s][resource[:name].to_s] = proxy.output
189
195
  end
190
-
191
196
  end
192
197
 
193
198
  def to_json(pretty=false)
@@ -43,17 +43,58 @@ class Biosphere
43
43
  return @settings_hash
44
44
  end
45
45
 
46
+ def add_feature_manifest(feature, manifests=nil)
47
+ if manifests
48
+ if !manifests.is_a?(Array)
49
+ manifests = [manifests]
50
+ end
51
+
52
+ c = @feature_manifests_hash ||= ::Hash.new
53
+ c = DeepDup.deep_dup(c)
54
+ a = (c[feature] ||= ::Array.new)
55
+ c[feature] = (a + manifests).uniq
56
+ @feature_manifests_hash = c
57
+ end
58
+
59
+ return feature_manifests(feature)
60
+ end
61
+
62
+ def set_feature_manifests(obj)
63
+ @feature_manifests_hash = obj
64
+ end
65
+
66
+ def feature_manifests(feature=nil)
67
+ if feature
68
+ if @feature_manifests_hash
69
+ return @feature_manifests_hash[feature]
70
+ else
71
+ return nil
72
+ end
73
+ else
74
+ return @feature_manifests_hash
75
+ end
76
+ end
77
+
46
78
  def path()
47
79
  return @path
48
- end
80
+ end
81
+
82
+ # Finds files from relative path
83
+ def find_files(p)
84
+ entries = Dir[($current_biosphere_path_stack + "/" + p)] - [".", ".."]
85
+ return entries
86
+ end
87
+
88
+
49
89
  end
50
90
 
51
- class_attribute :settings_hash, :path
91
+ class_attribute :settings_hash, :feature_manifests_hash, :path
52
92
 
53
- attr_accessor :settings, :path
93
+ attr_accessor :settings, :path, :feature_manifests
54
94
 
55
95
  def initialize(settings = {})
56
96
  @settings = DeepDup.deep_dup(self.class.settings_hash)
97
+ @feature_manifests = DeepDup.deep_dup(self.class.feature_manifests_hash)
57
98
  @path = self.class.path
58
99
  if settings
59
100
  @settings.deep_merge!(settings)
@@ -64,7 +105,9 @@ class Biosphere
64
105
  return @settings[key]
65
106
  end
66
107
 
108
+ # Initiate defaults
67
109
  settings({})
110
+ set_feature_manifests({})
68
111
 
69
112
  self.path = ""
70
113
 
@@ -144,6 +144,7 @@ class Biosphere
144
144
  src_path = Pathname.new(@src_path.last + "/" + File.dirname(filename)).cleanpath.to_s
145
145
  # Push current src_path and overwrite @src_path so that it tracks recursive loads
146
146
  @src_path << src_path
147
+ $current_biosphere_path_stack = src_path
147
148
 
148
149
  #puts "Trying to open file: " + src_path + "/" + File.basename(filename)
149
150
  if File.exists?(src_path + "/" + File.basename(filename))
@@ -1,3 +1,3 @@
1
1
  class Biosphere
2
- Version = "0.1.1"
2
+ Version = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biosphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juho Mäkinen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-20 00:00:00.000000000 Z
11
+ date: 2017-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec