cloud_powers 0.2.7.7 → 0.2.7.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dddd6e24bcc57ee3942a78fd8a52deb86eceea3f
4
- data.tar.gz: 199c02d466c0e148f627889a897d1aa81a47e842
3
+ metadata.gz: d8bd572a3a1ae322c326bc2778e4d58464adc153
4
+ data.tar.gz: a37df9f75de74c6a90e5064a60463f9d4ac0f789
5
5
  SHA512:
6
- metadata.gz: d00f1430705b74800aaf4320c90c968dead4ebf1bf31cfdffe450395d0c5ca6499968608c1938874147454cd449a54eccea978ccd7ade2bfd136b230d21b359d
7
- data.tar.gz: c25172ea9cf20bbe2f8b6f9900cf3bdc022c23dc807c114354dfc13468de24e84fb337390fa61ca2c447ed3d902f79e3c9fa93c5852272965d8499bd8a84f693
6
+ metadata.gz: df44d2f42e5c84e9bd348ebb58f978df11bd366d7a1411000218ab2707222f02ccf739f2b6f1d25ca04755d9c8b99c9e45149477271a65125b75622ff095d018
7
+ data.tar.gz: ea1ce1fa67d5683938c35c136ffbc5f48862a196e2597787cc42889000e65b768ec105bfe6d3f722a1bc0dfddb8799dd6eebd2454ca7cdd876a79a1a22c87c0c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloud_powers (0.2.7.7)
4
+ cloud_powers (0.2.7.8)
5
5
  activesupport-core-ext (~> 4)
6
6
  aws-sdk (~> 2)
7
7
  dotenv (~> 2.1)
@@ -15,12 +15,12 @@ GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
17
  activesupport-core-ext (4.0.0.3)
18
- aws-sdk (2.6.7)
19
- aws-sdk-resources (= 2.6.7)
20
- aws-sdk-core (2.6.7)
18
+ aws-sdk (2.6.9)
19
+ aws-sdk-resources (= 2.6.9)
20
+ aws-sdk-core (2.6.9)
21
21
  jmespath (~> 1.0)
22
- aws-sdk-resources (2.6.7)
23
- aws-sdk-core (= 2.6.7)
22
+ aws-sdk-resources (2.6.9)
23
+ aws-sdk-core (= 2.6.9)
24
24
  byebug (9.0.6)
25
25
  diff-lcs (1.2.5)
26
26
  dotenv (2.1.1)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # CloudPowers
1
+ {<img src="https://badge.fury.io/rb/cloud_powers.svg" alt="Gem Version" />}[https://badge.fury.io/rb/cloud_powers]# CloudPowers
2
2
 
3
3
  ## Description
4
4
 
@@ -24,6 +24,11 @@ module Smash
24
24
  # * TODO: use time codes
25
25
  def boot_time
26
26
  begin
27
+ ec2(Smash::CloudPowers::AwsStubs.node_stub)
28
+ sqs(Smash::CloudPowers::AwsStubs.queue_stub)
29
+ sns(Smash::CloudPowers::AwsStubs.broadcast_stub)
30
+ kinesis(Smash::CloudPowers::AwsStubs.pipe_stub)
31
+
27
32
  @boot_time ||=
28
33
  ec2.describe_instances(dry_run: zfind(:testing), instance_ids:[instance_id]).
29
34
  reservations[0].instances[0].launch_time.to_i
@@ -1,3 +1,3 @@
1
1
  module CloudPowers
2
- VERSION = "0.2.7.7"
2
+ VERSION = "0.2.7.8"
3
3
  end
@@ -1,9 +1,30 @@
1
1
  module Smash
2
2
  module CloudPowers
3
- # Provides stubbing for development work in CloudPowers or in a project that uses is
3
+ # Provides stubbing for development work in CloudPowers or in a project that uses is. Here's a little bit
4
+ # of a deeper picture, so this all makes sense...
5
+ # The AWS SDK makes HTTP requests to get things done but if you want to do some development on your project,
6
+ # it might get pretty expensive. In steps "stubbing". In order to get the SDK to not make any real HTTP
7
+ # requests and at the same time allow the SDK to respond to your code as if it were really making the requests
8
+ # you have to give the client that makes the request in question some fake data that it can use when it builds
9
+ # a response to return to your code. So to stub your client, follow these simple steps:
10
+ #
11
+ # 1. pick the appropriate client e.g. +sqs+ for Amazon's queue service, +ec2+ for their EC2 instances, etc
12
+ # 2. use the +Smash::CloudPowers::AwsResources.<your chosen client>+ method to create the client and
13
+ # automatically set an appropriate instance variable to that value. This method caches the client so
14
+ # once you've stubbed it, you can make any call against it that you stubbed. That method should be called
15
+ # before you need to make any HTTP requests using the client.
16
+ #
17
+ # and that's it. You have a stubbed client that you can use for development in your own projects that use
18
+ # the CloudPowers gem or you can screw around with CloudPowers itself, in the console or something like that
19
+ # by stubbing the client and making Smash::CloudPowers method calls that use the client you stubbed.
4
20
  module AwsStubs
5
21
 
6
22
  # Stub metadata for EC2 instance
23
+ #
24
+ # Notes
25
+ # * defaults can't be overriden or don't have good support for
26
+ # for it yet but you can use this hash as a guide
27
+ # for your own custom configuration
7
28
  def self.instance_metadata_stub(opts = {})
8
29
  {
9
30
  'ami-id' => 'ami-1234',
@@ -52,16 +73,17 @@ module Smash
52
73
  # for it yet but you can use this hash as a guide
53
74
  # for your own custom configuration
54
75
  def self.node_stub(opts = {})
76
+ time = opts[:launch_time] || Time.new((Time.now.utc.to_i / 86400 * 86400)) # midnight
55
77
  {
56
78
  stub_responses: {
57
79
  create_tags: {},
58
80
  run_instances: {
59
81
  instances: [
60
- { instance_id: 'asd-1234', launch_time: Time.now, state: { name: 'running' } },
61
- { instance_id: 'qwe-4323', launch_time: Time.now, state: { name: 'running' } },
62
- { instance_id: 'tee-4322', launch_time: Time.now, state: { name: 'running' } },
63
- { instance_id: 'bbf-6969', launch_time: Time.now, state: { name: 'running' } },
64
- { instance_id: 'lkj-0987', launch_time: Time.now, state: { name: 'running' } },
82
+ { instance_id: 'asd-1234', launch_time: time, state: { name: 'running' } },
83
+ { instance_id: 'qwe-4323', launch_time: time , state: { name: 'running' } },
84
+ { instance_id: 'tee-4322', launch_time: time, state: { name: 'running' } },
85
+ { instance_id: 'bbf-6969', launch_time: time, state: { name: 'running' } },
86
+ { instance_id: 'lkj-0987', launch_time: time, state: { name: 'running' } },
65
87
  ]},
66
88
  describe_instances: {
67
89
  reservations: [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloud_powers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7.7
4
+ version: 0.2.7.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Phillipps
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-10-13 00:00:00.000000000 Z
12
+ date: 2016-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport-core-ext
@@ -209,7 +209,6 @@ files:
209
209
  - ".travis.yml"
210
210
  - Gemfile
211
211
  - Gemfile.lock
212
- - Gemfile.lock_b
213
212
  - LICENSE.txt
214
213
  - README.md
215
214
  - README.rdoc.mdown
data/Gemfile.lock_b DELETED
@@ -1,59 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cloud_powers (0.2.4)
5
- activesupport-core-ext (~> 4)
6
- aws-sdk (~> 2)
7
- dotenv (~> 2.1)
8
- httparty (~> 0.14)
9
- rubyzip (~> 1.2)
10
- zip-zip (~> 0.3)
11
-
12
- GEM
13
- remote: https://rubygems.org/
14
- specs:
15
- activesupport-core-ext (4.0.0.3)
16
- aws-sdk (2.6.3)
17
- aws-sdk-resources (= 2.6.3)
18
- aws-sdk-core (2.6.3)
19
- jmespath (~> 1.0)
20
- aws-sdk-resources (2.6.3)
21
- aws-sdk-core (= 2.6.3)
22
- byebug (9.0.5)
23
- diff-lcs (1.2.5)
24
- dotenv (2.1.1)
25
- httparty (0.14.0)
26
- multi_xml (>= 0.5.2)
27
- jmespath (1.3.1)
28
- multi_xml (0.5.5)
29
- rake (10.5.0)
30
- rspec (3.5.0)
31
- rspec-core (~> 3.5.0)
32
- rspec-expectations (~> 3.5.0)
33
- rspec-mocks (~> 3.5.0)
34
- rspec-core (3.5.3)
35
- rspec-support (~> 3.5.0)
36
- rspec-expectations (3.5.0)
37
- diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.5.0)
39
- rspec-mocks (3.5.0)
40
- diff-lcs (>= 1.2.0, < 2.0)
41
- rspec-support (~> 3.5.0)
42
- rspec-support (3.5.0)
43
- rubyzip (1.2.0)
44
- zip-zip (0.3)
45
- rubyzip (>= 1.0.0)
46
- websocket (>= 1.2.3)
47
-
48
- PLATFORMS
49
- ruby
50
-
51
- DEPENDENCIES
52
- bundler (~> 1.12)
53
- byebug (~> 9)
54
- cloud_powers!
55
- rake (~> 10.0)
56
- rspec (~> 3.0)
57
-
58
- BUNDLED WITH
59
- 1.12.5