miasma 0.2.34 → 0.2.36
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/CHANGELOG.md +3 -0
- data/lib/miasma/models/load_balancer/balancer.rb +1 -1
- data/lib/miasma/models/orchestration/resource.rb +2 -0
- data/lib/miasma/specs.rb +12 -0
- data/lib/miasma/specs/compute_abstract.rb +118 -0
- data/lib/miasma/specs/load_balancer_abstract.rb +88 -0
- data/lib/miasma/specs/orchestration_abstract.rb +121 -0
- data/lib/miasma/specs/storage_abstract.rb +113 -0
- data/lib/miasma/version.rb +1 -1
- data/miasma.gemspec +0 -4
- metadata +8 -47
- data/bin/miasma-test +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f76d5c922de15936a098e29670707f23ca81b498
|
4
|
+
data.tar.gz: e9cff2b8a5130c0133a10d82e1cf188f3987e2dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 579a263c2aa3f4dd5231af2852fd401e3b872dbf117f737dfdebcf8808364640209e8515d8516b183a18a1ebd86558fa160865898717d3de42241aab9823753e
|
7
|
+
data.tar.gz: 982331e848c3a20c67e6e32cd6a5fb24923fab270db778c2e639b0c577bc502931bc0464c464de913f873d864eee7d7e9b85715a7b91eb74a4a3eef09f91b3ef
|
data/CHANGELOG.md
CHANGED
@@ -39,7 +39,7 @@ module Miasma
|
|
39
39
|
end
|
40
40
|
|
41
41
|
attribute :name, String
|
42
|
-
attribute :state, Symbol, :allowed_values => [:active, :pending]
|
42
|
+
attribute :state, Symbol, :allowed_values => [:active, :pending, :terminated]
|
43
43
|
attribute :status, String
|
44
44
|
attribute :servers, Server, :multiple => true, :coerce => lambda{|v| Server.new(v)}
|
45
45
|
attribute :public_addresses, Address, :multiple => true, :coerce => lambda{|v| Address.new(v)}
|
data/lib/miasma/specs.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'specs', '*.rb')).each do |s_file|
|
2
|
+
s_file_name = File.basename(s_file).sub('.rb', '')
|
3
|
+
require "miasma/specs/#{s_file_name}"
|
4
|
+
end
|
5
|
+
|
6
|
+
def miasma_spec_sleep(interval=20)
|
7
|
+
if(ENV['MIASMA_TEST_LIVE_REQUESTS'])
|
8
|
+
sleep(20)
|
9
|
+
else
|
10
|
+
sleep(0.1)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
MIASMA_COMPUTE_ABSTRACT = ->{
|
2
|
+
|
3
|
+
# Required `let`s:
|
4
|
+
# * compute: compute API
|
5
|
+
# * build_args: server build arguments [Smash]
|
6
|
+
|
7
|
+
describe Miasma::Models::Compute, :vcr do
|
8
|
+
|
9
|
+
it 'should provide #servers collection' do
|
10
|
+
compute.servers.must_be_kind_of Miasma::Models::Compute::Servers
|
11
|
+
end
|
12
|
+
|
13
|
+
describe Miasma::Models::Compute::Servers do
|
14
|
+
|
15
|
+
it 'should provide instance class used within collection' do
|
16
|
+
compute.servers.model.must_equal Miasma::Models::Compute::Server
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should build new instance for collection' do
|
20
|
+
instance = compute.servers.build(:name => 'test')
|
21
|
+
instance.must_be_kind_of Miasma::Models::Compute::Server
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should provide #all servers' do
|
25
|
+
compute.servers.all.must_be_kind_of Array
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Miasma::Models::Compute::Server do
|
31
|
+
|
32
|
+
before do
|
33
|
+
unless($miasma_instance)
|
34
|
+
VCR.use_cassette('Miasma_Models_Compute_Aws/GLOBAL_compute_instance_create') do
|
35
|
+
@instance = compute.servers.build(build_args)
|
36
|
+
@instance.save
|
37
|
+
until(@instance.state == :running)
|
38
|
+
miasma_spec_sleep
|
39
|
+
@instance.reload
|
40
|
+
end
|
41
|
+
$miasma_instance = @instance
|
42
|
+
end
|
43
|
+
Kernel.at_exit do
|
44
|
+
VCR.use_cassette('Miasma_Models_Compute_Aws/GLOBAL_compute_instance_destroy') do
|
45
|
+
$miasma_instance.destroy
|
46
|
+
end
|
47
|
+
end
|
48
|
+
else
|
49
|
+
@instance = $miasma_instance
|
50
|
+
end
|
51
|
+
@instance.reload
|
52
|
+
end
|
53
|
+
|
54
|
+
let(:instance){ @instance }
|
55
|
+
|
56
|
+
describe 'instance methods' do
|
57
|
+
|
58
|
+
it 'should have a name' do
|
59
|
+
instance.name.must_equal build_args[:name]
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should have an image_id' do
|
63
|
+
instance.image_id.must_equal build_args[:image_id]
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should have a flavor_id' do
|
67
|
+
instance.flavor_id.must_equal build_args[:flavor_id]
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should have an address' do
|
71
|
+
instance.addresses.detect do |addr|
|
72
|
+
addr.version == 4
|
73
|
+
end.address.must_match /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should have a status' do
|
77
|
+
instance.status.wont_be_nil
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should be in :running state' do
|
81
|
+
instance.state.must_equal :running
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
describe 'instance lifecycle' do
|
89
|
+
it 'should create new server, reload details and destroy server' do
|
90
|
+
instance = compute.servers.build(build_args)
|
91
|
+
instance.save
|
92
|
+
instance.id.wont_be_nil
|
93
|
+
instance.state.must_equal :pending
|
94
|
+
compute.servers.reload.get(instance.id).wont_be_nil
|
95
|
+
until(instance.state == :running)
|
96
|
+
miasma_spec_sleep
|
97
|
+
instance.reload
|
98
|
+
end
|
99
|
+
instance.state.must_equal :running
|
100
|
+
instance.destroy
|
101
|
+
while(instance.state == :running)
|
102
|
+
miasma_spec_sleep
|
103
|
+
instance.reload
|
104
|
+
end
|
105
|
+
[:pending, :terminated].must_include instance.state
|
106
|
+
if(instance.state == :pending)
|
107
|
+
until(instance.state == :terminated)
|
108
|
+
miasma_spec_sleep
|
109
|
+
instance.reload
|
110
|
+
end
|
111
|
+
instance.state.must_equal :terminated
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
}
|
@@ -0,0 +1,88 @@
|
|
1
|
+
MIASMA_LOAD_BALANCER_ABSTRACT = ->{
|
2
|
+
|
3
|
+
# Required `let`s:
|
4
|
+
# * load_balancer: load balancer API
|
5
|
+
# * build_args: load balancer build arguments [Smash]
|
6
|
+
|
7
|
+
describe Miasma::Models::LoadBalancer, :vcr do
|
8
|
+
|
9
|
+
it 'should provide #balancers collection' do
|
10
|
+
load_balancer.balancers.must_be_kind_of Miasma::Models::LoadBalancer::Balancers
|
11
|
+
end
|
12
|
+
|
13
|
+
describe Miasma::Models::LoadBalancer::Balancers do
|
14
|
+
|
15
|
+
it 'should provide instance class used within collection' do
|
16
|
+
load_balancer.balancers.model.must_equal Miasma::Models::LoadBalancer::Balancer
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should build new instance for collection' do
|
20
|
+
instance = load_balancer.balancers.build
|
21
|
+
instance.must_be_kind_of Miasma::Models::LoadBalancer::Balancer
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should provide #all balancers' do
|
25
|
+
load_balancer.balancers.all.must_be_kind_of Array
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Miasma::Models::LoadBalancer::Balancer do
|
31
|
+
|
32
|
+
before do
|
33
|
+
unless($miasma_balancer)
|
34
|
+
VCR.use_cassette('Miasma_Models_LoadBalancer_Aws/GLOBAL_load_balancer_create') do
|
35
|
+
@balancer = load_balancer.balancers.build(build_args)
|
36
|
+
@balancer.save
|
37
|
+
until(@balancer.state == :active)
|
38
|
+
miasma_spec_sleep
|
39
|
+
@balancer.reload
|
40
|
+
end
|
41
|
+
$miasma_balancer = @balancer
|
42
|
+
end
|
43
|
+
Kernel.at_exit do
|
44
|
+
VCR.use_cassette('Miasma_Models_LoadBalancer_Aws/GLOBAL_load_balancer_destroy') do
|
45
|
+
$miasma_balancer.destroy
|
46
|
+
end
|
47
|
+
end
|
48
|
+
else
|
49
|
+
@balancer = $miasma_balancer
|
50
|
+
end
|
51
|
+
@balancer.reload
|
52
|
+
end
|
53
|
+
|
54
|
+
let(:balancer){ @balancer }
|
55
|
+
|
56
|
+
describe 'collection' do
|
57
|
+
|
58
|
+
it 'should include balancer' do
|
59
|
+
load_balancer.balancers.reload.get(balancer.id).wont_be_nil
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'balancer methods' do
|
65
|
+
|
66
|
+
it 'should have a name' do
|
67
|
+
balancer.name.must_equal build_args[:name]
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should be in :active state' do
|
71
|
+
balancer.state.must_equal :active
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should have a status' do
|
75
|
+
balancer.status.wont_be_nil
|
76
|
+
balancer.status.must_be_kind_of String
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should have a public address' do
|
80
|
+
balancer.public_addresses.wont_be :empty?
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
MIASMA_ORCHESTRATION_ABSTRACT = ->{
|
2
|
+
|
3
|
+
# Required `let`s:
|
4
|
+
# * orchestration: orchestration API
|
5
|
+
# * build_args: stack build arguments [Smash]
|
6
|
+
|
7
|
+
describe Miasma::Models::Orchestration, :vcr do
|
8
|
+
|
9
|
+
it 'should provide #stacks collection' do
|
10
|
+
orchestration.stacks.must_be_kind_of Miasma::Models::Orchestration::Stacks
|
11
|
+
end
|
12
|
+
|
13
|
+
describe Miasma::Models::Orchestration::Stacks do
|
14
|
+
|
15
|
+
it 'should provide instance class used within collection' do
|
16
|
+
orchestration.stacks.model.must_equal Miasma::Models::Orchestration::Stack
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should build new instance for collection' do
|
20
|
+
instance = orchestration.stacks.build
|
21
|
+
instance.must_be_kind_of Miasma::Models::Orchestration::Stack
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should provide #all stacks' do
|
25
|
+
orchestration.stacks.all.must_be_kind_of Array
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Miasma::Models::Orchestration::Stacks do
|
31
|
+
|
32
|
+
before do
|
33
|
+
unless($miasma_stack)
|
34
|
+
VCR.use_cassette('Miasma_Models_Orchestration_Aws/GLOBAL_orchestration_stack_create') do
|
35
|
+
@stack = orchestration.stacks.build(build_args)
|
36
|
+
@stack.save
|
37
|
+
until(@stack.state == :create_complete)
|
38
|
+
miasma_spec_sleep
|
39
|
+
@stack.reload
|
40
|
+
end
|
41
|
+
@stack.template
|
42
|
+
orchestration.stacks.reload
|
43
|
+
$miasma_stack = @stack
|
44
|
+
end
|
45
|
+
Kernel.at_exit do
|
46
|
+
VCR.use_cassette('Miasma_Models_Compute_Aws/GLOBAL_orchestration_stack_destroy') do
|
47
|
+
$miasma_stack.destroy
|
48
|
+
end
|
49
|
+
end
|
50
|
+
else
|
51
|
+
@stack = $miasma_stack
|
52
|
+
end
|
53
|
+
@stack.reload
|
54
|
+
end
|
55
|
+
|
56
|
+
let(:stack){ @stack }
|
57
|
+
|
58
|
+
describe 'collection' do
|
59
|
+
|
60
|
+
it 'should include stack' do
|
61
|
+
orchestration.stacks.all.detect{|s| s.id == stack.id}.wont_be_nil
|
62
|
+
orchestration.stacks.get(stack.id).wont_be_nil
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
describe 'instance methods' do
|
68
|
+
|
69
|
+
it 'should have a name' do
|
70
|
+
stack.name.must_equal build_args[:name]
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should be in :create_complete state' do
|
74
|
+
stack.state.must_equal :create_complete
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should have a status' do
|
78
|
+
stack.status.must_be_kind_of String
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should have a creation time' do
|
82
|
+
stack.created.must_be_kind_of Time
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should have parameters used for creation' do
|
86
|
+
stack.parameters.to_smash.must_equal build_args[:parameters].to_smash
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should include the templated used for creation' do
|
90
|
+
stack.template.to_smash.must_equal build_args[:template].to_smash
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
describe 'instance lifecycle' do
|
98
|
+
it 'should create new stack, reload details and destroy stack' do
|
99
|
+
stack = orchestration.stacks.build(build_args.merge(:name => 'miasma-test-stack-2'))
|
100
|
+
stack.save
|
101
|
+
stack.id.wont_be_nil
|
102
|
+
stack.state.must_equal :create_in_progress
|
103
|
+
orchestration.stacks.reload.get(stack.id).wont_be_nil
|
104
|
+
until(stack.state == :create_complete)
|
105
|
+
miasma_spec_sleep
|
106
|
+
stack.reload
|
107
|
+
end
|
108
|
+
stack.state.must_equal :create_complete
|
109
|
+
stack.destroy
|
110
|
+
[:delete_in_progress, :delete_complete].must_include stack.state
|
111
|
+
until(stack.state == :delete_complete)
|
112
|
+
miasma_spec_sleep
|
113
|
+
stack.reload
|
114
|
+
end
|
115
|
+
stack.state.must_equal :delete_complete
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
}
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
MIASMA_STORAGE_ABSTRACT = ->{
|
4
|
+
|
5
|
+
# Required `let`s:
|
6
|
+
# * storage: storage API
|
7
|
+
|
8
|
+
describe Miasma::Models::Storage, :vcr do
|
9
|
+
|
10
|
+
it 'should provide #buckets collection' do
|
11
|
+
storage.buckets.must_be_kind_of Miasma::Models::Storage::Buckets
|
12
|
+
end
|
13
|
+
|
14
|
+
describe Miasma::Models::Storage::Buckets do
|
15
|
+
|
16
|
+
it 'should provide instance class used within collection' do
|
17
|
+
storage.buckets.model.must_equal Miasma::Models::Storage::Bucket
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should build new instance for collection' do
|
21
|
+
storage.buckets.build.must_be_kind_of Miasma::Models::Storage::Bucket
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should provide #all buckets' do
|
25
|
+
storage.buckets.all.must_be_kind_of Array
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Miasma::Models::Storage::Bucket do
|
31
|
+
|
32
|
+
it 'should act like a bucket' do
|
33
|
+
bucket = storage.buckets.build(:name => 'miasma-test-bucket-010')
|
34
|
+
bucket.save
|
35
|
+
bucket.reload
|
36
|
+
|
37
|
+
# should include the bucket
|
38
|
+
storage.buckets.reload.get('miasma-test-bucket-010').wont_be_nil
|
39
|
+
# should have a name
|
40
|
+
bucket.name.must_equal 'miasma-test-bucket-010'
|
41
|
+
# should have a #files collection
|
42
|
+
bucket.files.must_be_kind_of Miasma::Models::Storage::Files
|
43
|
+
#should provide #all files
|
44
|
+
bucket.files.all.must_be_kind_of Array
|
45
|
+
# should include reference to containing bucket
|
46
|
+
bucket.files.bucket.must_equal bucket
|
47
|
+
# should build new instance for collection
|
48
|
+
bucket.files.build.must_be_kind_of Miasma::Models::Storage::File
|
49
|
+
|
50
|
+
file_content = 'blahblahblah'
|
51
|
+
file = bucket.files.build
|
52
|
+
file.name = 'miasma-test-file'
|
53
|
+
file.body = file_content
|
54
|
+
file.save
|
55
|
+
file.reload
|
56
|
+
|
57
|
+
# should have a name
|
58
|
+
file.name.must_equal 'miasma-test-file'
|
59
|
+
# should have a size
|
60
|
+
file.size.must_equal file_content.size
|
61
|
+
# should have an updated timestamp
|
62
|
+
file.updated.must_be_kind_of Time
|
63
|
+
# should create a valid url
|
64
|
+
open(file.url).read.must_equal file_content
|
65
|
+
# should have a body
|
66
|
+
file.body.must_respond_to :readpartial
|
67
|
+
file.body.readpartial(Miasma::Models::Storage::READ_BODY_CHUNK_SIZE).must_equal file_content
|
68
|
+
file.destroy
|
69
|
+
|
70
|
+
big_file_content = '*' * Miasma::Models::Storage::MAX_BODY_SIZE_FOR_STRINGIFY
|
71
|
+
big_file = bucket.files.build
|
72
|
+
big_file.name = 'miasma-test-file-big'
|
73
|
+
big_file.body = big_file_content
|
74
|
+
big_file.save
|
75
|
+
big_file.reload
|
76
|
+
|
77
|
+
# should be the correct size
|
78
|
+
big_file.size.must_equal big_file.size
|
79
|
+
# should provide streaming body
|
80
|
+
big_file.body.must_respond_to :readpartial
|
81
|
+
content = big_file.body.readpartial(big_file.size)
|
82
|
+
content.must_equal big_file_content
|
83
|
+
big_file.destroy
|
84
|
+
|
85
|
+
require 'tempfile'
|
86
|
+
local_io_file = Tempfile.new('miasma-storage-test')
|
87
|
+
big_io_content = '*' * (Miasma::Models::Storage::MAX_BODY_SIZE_FOR_STRINGIFY * 1.3)
|
88
|
+
local_io_file.write big_io_content
|
89
|
+
local_io_file.flush
|
90
|
+
local_io_file.rewind
|
91
|
+
remote_file = bucket.files.build
|
92
|
+
remote_file.name = 'miasma-test-io-object-010'
|
93
|
+
remote_file.body = local_io_file
|
94
|
+
remote_file.save
|
95
|
+
remote_file.reload
|
96
|
+
|
97
|
+
# should be the correct size
|
98
|
+
remote_file.size.must_equal local_io_file.size
|
99
|
+
# should provide streaming body
|
100
|
+
remote_file.body.must_respond_to :readpartial
|
101
|
+
content = ''
|
102
|
+
while(chunk = remote_file.body.readpartial(1024))
|
103
|
+
content << chunk
|
104
|
+
end
|
105
|
+
content.must_equal big_io_content
|
106
|
+
remote_file.destroy
|
107
|
+
bucket.destroy
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
}
|
data/lib/miasma/version.rb
CHANGED
data/miasma.gemspec
CHANGED
@@ -19,11 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_runtime_dependency 'miasma-aws'
|
20
20
|
s.add_runtime_dependency 'miasma-open-stack'
|
21
21
|
s.add_runtime_dependency 'miasma-rackspace'
|
22
|
-
s.executables << 'miasma-test'
|
23
22
|
# Include development dependencies for running tests
|
24
23
|
s.add_development_dependency 'pry'
|
25
|
-
s.add_development_dependency 'minitest'
|
26
|
-
s.add_development_dependency 'vcr'
|
27
|
-
s.add_development_dependency 'webmock'
|
28
24
|
s.files = Dir['{bin,lib}/**/*'] + %w(miasma.gemspec README.md CHANGELOG.md LICENSE)
|
29
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miasma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -148,59 +148,15 @@ dependencies:
|
|
148
148
|
- - ">="
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
|
-
- !ruby/object:Gem::Dependency
|
152
|
-
name: minitest
|
153
|
-
requirement: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - ">="
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
158
|
-
type: :development
|
159
|
-
prerelease: false
|
160
|
-
version_requirements: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - ">="
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: '0'
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
name: vcr
|
167
|
-
requirement: !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - ">="
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: '0'
|
172
|
-
type: :development
|
173
|
-
prerelease: false
|
174
|
-
version_requirements: !ruby/object:Gem::Requirement
|
175
|
-
requirements:
|
176
|
-
- - ">="
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
version: '0'
|
179
|
-
- !ruby/object:Gem::Dependency
|
180
|
-
name: webmock
|
181
|
-
requirement: !ruby/object:Gem::Requirement
|
182
|
-
requirements:
|
183
|
-
- - ">="
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
version: '0'
|
186
|
-
type: :development
|
187
|
-
prerelease: false
|
188
|
-
version_requirements: !ruby/object:Gem::Requirement
|
189
|
-
requirements:
|
190
|
-
- - ">="
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: '0'
|
193
151
|
description: Smoggy API
|
194
152
|
email: code@chrisroberts.org
|
195
|
-
executables:
|
196
|
-
- miasma-test
|
153
|
+
executables: []
|
197
154
|
extensions: []
|
198
155
|
extra_rdoc_files: []
|
199
156
|
files:
|
200
157
|
- CHANGELOG.md
|
201
158
|
- LICENSE
|
202
159
|
- README.md
|
203
|
-
- bin/miasma-test
|
204
160
|
- lib/miasma.rb
|
205
161
|
- lib/miasma/error.rb
|
206
162
|
- lib/miasma/models.rb
|
@@ -229,6 +185,11 @@ files:
|
|
229
185
|
- lib/miasma/models/storage/buckets.rb
|
230
186
|
- lib/miasma/models/storage/file.rb
|
231
187
|
- lib/miasma/models/storage/files.rb
|
188
|
+
- lib/miasma/specs.rb
|
189
|
+
- lib/miasma/specs/compute_abstract.rb
|
190
|
+
- lib/miasma/specs/load_balancer_abstract.rb
|
191
|
+
- lib/miasma/specs/orchestration_abstract.rb
|
192
|
+
- lib/miasma/specs/storage_abstract.rb
|
232
193
|
- lib/miasma/types.rb
|
233
194
|
- lib/miasma/types/api.rb
|
234
195
|
- lib/miasma/types/collection.rb
|
data/bin/miasma-test
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'vcr'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'webmock/minitest'
|
6
|
-
require 'minitest/autorun'
|
7
|
-
|
8
|
-
require 'miasma'
|
9
|
-
|
10
|
-
miasma_spec_dir = File.join(File.dirname(File.dirname(__FILE__)), 'test', 'specs')
|
11
|
-
|
12
|
-
# Always load in generic model specs
|
13
|
-
Dir.glob(File.join(miasma_spec_dir, 'models', '*.rb')).each do |path|
|
14
|
-
require File.expand_path(path)
|
15
|
-
end
|
16
|
-
|
17
|
-
library_spec_dir = File.join(Dir.pwd, 'test', 'specs')
|
18
|
-
|
19
|
-
unless(File.directory?(library_spec_dir))
|
20
|
-
$stderr.puts "ERROR: Failed to locate expected spec directory! (#{library_spec_dir})"
|
21
|
-
exit -1
|
22
|
-
end
|
23
|
-
|
24
|
-
if(ARGV.empty?)
|
25
|
-
cassette_directory = File.join(library_spec_dir, 'cassettes')
|
26
|
-
|
27
|
-
Dir.glob(File.join(library_spec_dir, '**/**/*_spec.rb')).each do |path|
|
28
|
-
require File.expand_path(path)
|
29
|
-
end
|
30
|
-
|
31
|
-
else
|
32
|
-
cassette_directory = File.join(library_spec_dir, 'cassettes')
|
33
|
-
|
34
|
-
ARGV.each do |path|
|
35
|
-
full_path = File.expand_path(path)
|
36
|
-
if(File.exists?(full_path))
|
37
|
-
require full_path
|
38
|
-
else
|
39
|
-
$stderr.puts "ERROR: Failed to locate specified path! (#{full_path})"
|
40
|
-
exit -1
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
FileUtils.mkdir_p(cassette_directory)
|
47
|
-
|
48
|
-
VCR.configure do |c|
|
49
|
-
c.cassette_library_dir = cassette_directory
|
50
|
-
c.hook_into :webmock
|
51
|
-
end
|