cloud_powers 0.2.7.1 → 0.2.7.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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/cloud_powers/auth.rb +9 -5
- data/lib/cloud_powers/aws_resources.rb +20 -19
- data/lib/cloud_powers/self_awareness.rb +1 -1
- data/lib/cloud_powers/storage.rb +49 -1
- data/lib/cloud_powers/synapse/broadcast/broadcast.rb +9 -2
- data/lib/cloud_powers/synapse/pipe/pipe.rb +2 -0
- data/lib/cloud_powers/synapse/queue/board.rb +9 -2
- data/lib/cloud_powers/synapse/queue/queue.rb +16 -5
- data/lib/cloud_powers/version.rb +1 -1
- data/lib/cloud_powers/zenv.rb +70 -22
- data/lib/stubs/aws_stubs.rb +12 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2903624136e4fac9b36e82f2374ba9f9dc640661
|
4
|
+
data.tar.gz: 6baf7a5cbcdff6352d626e8fd709025f8fd246fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63905c6b21fee990c6e5d92c89c603866f5d4bee8ec545615c9172d3a684a462ca969fb0fb0b0318bfd50eff3723f6fe49a8992427aec00a4f3c9ac5273a2c61
|
7
|
+
data.tar.gz: 75788dace7b21879318c8b0a666bba446823cc3616b135a9b29bc7fb98d90dd355708743a72e37b08eb09e4e5d7215227a031c002952c68dc0c5e0bd73e648be
|
data/Gemfile.lock
CHANGED
data/lib/cloud_powers/auth.rb
CHANGED
@@ -13,12 +13,16 @@ module Smash
|
|
13
13
|
# resources in the account that zfind searches for, using the <tt>ACCOUNT_NUMBER</tt>
|
14
14
|
# key.
|
15
15
|
#
|
16
|
-
#
|
16
|
+
# Returns
|
17
17
|
# <tt>Aws::Credentials</tt>
|
18
18
|
#
|
19
|
-
#
|
19
|
+
# Example
|
20
20
|
# Auth.creds
|
21
|
-
# => Aws::Credentials
|
21
|
+
# => Aws::Credentials # can be used to authenticate to AWS
|
22
|
+
#
|
23
|
+
# Notes
|
24
|
+
# * This method relies on +#zfind()+ to locate the key/secret strings
|
25
|
+
# * See +Smash::CloudPowers::Zenv#zfind()+
|
22
26
|
def self.creds
|
23
27
|
@creds ||= Aws::Credentials.new(
|
24
28
|
zfind(:aws_access_key_id),
|
@@ -29,10 +33,10 @@ module Smash
|
|
29
33
|
# This method is able to be called before an object is instantiated in order
|
30
34
|
# to provide a region in AWS-landia.
|
31
35
|
#
|
32
|
-
#
|
36
|
+
# Returns
|
33
37
|
# The region set in configuration or a <tt>'us-west-2'</tt> default <tt>String</tt>
|
34
38
|
#
|
35
|
-
#
|
39
|
+
# Example
|
36
40
|
# Auth.region
|
37
41
|
# => 'us-east-1'
|
38
42
|
def self.region
|
@@ -11,7 +11,7 @@ module Smash
|
|
11
11
|
|
12
12
|
# Get the region from the environment/context or use a default region for AWS API calls.
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# Returns
|
15
15
|
# +String+
|
16
16
|
def region
|
17
17
|
zfind(:aws_region) || 'us-west-2'
|
@@ -25,10 +25,10 @@ module Smash
|
|
25
25
|
# * * region - defaulted to use the <tt>#region()</tt> method
|
26
26
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
27
27
|
#
|
28
|
-
#
|
29
|
-
#
|
28
|
+
# Returns
|
29
|
+
# +AWS::EC2::Client+
|
30
30
|
#
|
31
|
-
#
|
31
|
+
# Example
|
32
32
|
# images = ec2.describe_images
|
33
33
|
# images.first[:image_id]
|
34
34
|
# # => 'asdf'
|
@@ -53,7 +53,7 @@ module Smash
|
|
53
53
|
# * * region: defaulted to use the `#region()` method
|
54
54
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
55
55
|
#
|
56
|
-
#
|
56
|
+
# Returns
|
57
57
|
# Aws::EC2::Image
|
58
58
|
def image(name, opts = {})
|
59
59
|
config = {
|
@@ -65,16 +65,17 @@ module Smash
|
|
65
65
|
end
|
66
66
|
|
67
67
|
# Get or create an Kinesis client and cache that client so that a Context is more well tied together
|
68
|
+
#
|
68
69
|
# Parameters
|
69
70
|
# * opts <tt>Hash</tt>
|
70
71
|
# * * stub_responses: defaulted to false but it can be overriden with the desired responses for local testing
|
71
72
|
# * * region: defaulted to use the `#region()` method
|
72
73
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
73
74
|
#
|
74
|
-
#
|
75
|
-
# AWS::Kinesis client
|
75
|
+
# Returns
|
76
|
+
# +AWS::Kinesis client+
|
76
77
|
#
|
77
|
-
#
|
78
|
+
# Example
|
78
79
|
# pipe_to('somePipe') { update_body(status: 'waHoo') } # uses Aws::Kinesis::Client.put_recor()
|
79
80
|
# # => sequence_number: '1676151970'
|
80
81
|
def kinesis(opts = {})
|
@@ -96,12 +97,12 @@ module Smash
|
|
96
97
|
# * * region: defaulted to use the `#region()` method
|
97
98
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
98
99
|
#
|
99
|
-
#
|
100
|
-
# AWS::S3 client
|
100
|
+
# Returns
|
101
|
+
# +AWS::S3 client+
|
101
102
|
#
|
102
|
-
#
|
103
|
-
# expect(s3.head_bucket).to be_empty
|
104
|
-
# # passing
|
103
|
+
# Example
|
104
|
+
# expect(s3.head_bucket('exampleBucket')).to be_empty
|
105
|
+
# # passing test
|
105
106
|
def s3(opts = {})
|
106
107
|
config = {
|
107
108
|
stub_responses: false,
|
@@ -120,10 +121,10 @@ module Smash
|
|
120
121
|
# * * region: defaulted to use the `#region()` method
|
121
122
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
122
123
|
#
|
123
|
-
#
|
124
|
-
# AWS::SNS client
|
124
|
+
# Returns
|
125
|
+
# +AWS::SNS client+
|
125
126
|
#
|
126
|
-
#
|
127
|
+
# Example
|
127
128
|
# create_channel!('testBroadcast') # uses Aws::SNS::Client
|
128
129
|
# # => true
|
129
130
|
def sns(opts = {})
|
@@ -145,10 +146,10 @@ module Smash
|
|
145
146
|
# * * region: defaulted to use the `#region()` method
|
146
147
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
147
148
|
#
|
148
|
-
#
|
149
|
-
# AWS::SQS client
|
149
|
+
# Returns
|
150
|
+
# +AWS::SQS client+
|
150
151
|
#
|
151
|
-
#
|
152
|
+
# Example
|
152
153
|
# create_queue('someQueue') # Uses Aws::SQS::Client
|
153
154
|
def sqs(opts = {})
|
154
155
|
config = {
|
data/lib/cloud_powers/storage.rb
CHANGED
@@ -6,6 +6,38 @@ module Smash
|
|
6
6
|
module Storage
|
7
7
|
include Smash::CloudPowers::AwsResources
|
8
8
|
|
9
|
+
# Searches a local task storage location for the given +file+ name
|
10
|
+
# if it exists - exit the method
|
11
|
+
# if it does <i>not</i> exist - get the file from s3 and place it in
|
12
|
+
# the directory that was just searched bucket using +#zfind()+
|
13
|
+
#
|
14
|
+
# Parameters
|
15
|
+
# * file +String+ - the name of the file we're searching for
|
16
|
+
#
|
17
|
+
# Returns
|
18
|
+
# nothing
|
19
|
+
#
|
20
|
+
# Example
|
21
|
+
# * file tree
|
22
|
+
# project_root- |
|
23
|
+
# |_sub_directory
|
24
|
+
# | |_current_file.rb
|
25
|
+
# |_task_storage
|
26
|
+
# | |_demorific.rb
|
27
|
+
# | |_foobar.rb
|
28
|
+
# * code:
|
29
|
+
# source_task('demorific')
|
30
|
+
# # file tree doesn't change because this file exists
|
31
|
+
# source_task('custom_greetings')
|
32
|
+
# # file tree now looks like this
|
33
|
+
# * new file tree
|
34
|
+
# project_root- |
|
35
|
+
# |_sub_directory
|
36
|
+
# | |_current_file.rb
|
37
|
+
# |_task_storage
|
38
|
+
# | |_demorific.rb
|
39
|
+
# | |_foobar.rb
|
40
|
+
# | |_custom_greetings.js # could be an after effects JS script
|
9
41
|
def source_task(file)
|
10
42
|
# TODO: better path management
|
11
43
|
bucket = zfind('task storage')
|
@@ -19,17 +51,33 @@ module Smash
|
|
19
51
|
end
|
20
52
|
end
|
21
53
|
|
54
|
+
# Search through a bucket to find a file, based on a regex
|
55
|
+
#
|
56
|
+
# Parameters
|
57
|
+
# * bucket +String+ - the bucket to search through in AWS
|
58
|
+
# * pattern +Regex+ - the Regex pattern you want to use for the
|
59
|
+
# search
|
60
|
+
#
|
61
|
+
# Example
|
62
|
+
# matches = search('neuronTasks', /[Dd]emo\w*/)
|
63
|
+
# # => ['Aws::S3::Type::ListObjectOutPut','Aws::S3::Type::ListObjectOutPut',...] # anything that matched that regex
|
64
|
+
# matches.first.contents.size
|
65
|
+
# # => 238934 # integer representation of the file size
|
22
66
|
def search(bucket, pattern)
|
23
67
|
s3.list_objects(bucket: bucket).contents.select do |o|
|
24
68
|
o.key =~ pattern
|
25
69
|
end
|
26
70
|
end
|
27
71
|
|
72
|
+
# Send the log files to the S3 log file bucket
|
73
|
+
#
|
74
|
+
# Returns
|
75
|
+
# +Aws::S3::Type::PutObjectOutput+
|
28
76
|
def send_logs_to_s3
|
29
77
|
File.open(log_file) do |file|
|
30
78
|
s3.put_object(
|
31
79
|
bucket: log_bucket,
|
32
|
-
key:
|
80
|
+
key: instance_id,
|
33
81
|
body: file
|
34
82
|
)
|
35
83
|
end
|
@@ -29,6 +29,7 @@ module Smash
|
|
29
29
|
#################
|
30
30
|
|
31
31
|
# Creates a connection point for 1..N nodes to create a connection with the Broadcast
|
32
|
+
# <b>Not Implimented</b>
|
32
33
|
#
|
33
34
|
# Parameters
|
34
35
|
# * channel +String+
|
@@ -60,6 +61,7 @@ module Smash
|
|
60
61
|
end
|
61
62
|
|
62
63
|
# Creates a connection to the Broadcast so that new messages will be picked up
|
64
|
+
#
|
63
65
|
# Parameters channel <Broadcast::Channel>
|
64
66
|
def listen_on(channel)
|
65
67
|
sns.subscribe(
|
@@ -70,6 +72,7 @@ module Smash
|
|
70
72
|
end
|
71
73
|
|
72
74
|
# Lists the created topics in SNS.
|
75
|
+
#
|
73
76
|
# Returns results <Array
|
74
77
|
def real_channels
|
75
78
|
results = []
|
@@ -84,9 +87,13 @@ module Smash
|
|
84
87
|
end
|
85
88
|
|
86
89
|
# Send a message to a Channel using SNS#publish
|
87
|
-
#
|
88
|
-
#
|
90
|
+
#
|
91
|
+
# Parameters
|
92
|
+
# * opts +Hash+ - this includes all the keys AWS uses but for now it only has defaults
|
89
93
|
# for topic_arn and the message
|
94
|
+
# * * +:topic_arn+ - the ARN for the topic in AWS
|
95
|
+
# * * +:message+ - the message that should be broadcasted to whoever is listening on this
|
96
|
+
# Channel (AWS Topic)
|
90
97
|
def send_broadcast(opts = {})
|
91
98
|
msg = opts.delete(:message) || ""
|
92
99
|
|
@@ -38,6 +38,7 @@ module Smash
|
|
38
38
|
end
|
39
39
|
|
40
40
|
# Use the KCL and LangDaemon to read from a stream
|
41
|
+
#
|
41
42
|
# Parameters stream String
|
42
43
|
#
|
43
44
|
# Notes
|
@@ -70,6 +71,7 @@ module Smash
|
|
70
71
|
end
|
71
72
|
|
72
73
|
# Read messages from the Pipe without using the KCL
|
74
|
+
#
|
73
75
|
# Parameters stream String
|
74
76
|
#
|
75
77
|
# Notes
|
@@ -10,7 +10,14 @@ module Smash
|
|
10
10
|
include Smash::CloudPowers::Helper
|
11
11
|
include Smash::CloudPowers::Zenv
|
12
12
|
|
13
|
-
|
13
|
+
# The URL the Aws::SQS::Queue uses
|
14
|
+
attr_accessor :address
|
15
|
+
# The name the Aws::SQS::Queue uses
|
16
|
+
attr_accessor :name
|
17
|
+
# An Aws::SQS::QueuePoller for this Board/SQS::Queue
|
18
|
+
attr_accessor :poller
|
19
|
+
# An Aws::SQS::Client. See +#Smash::CloudPowers::AwsResources.sqs()+
|
20
|
+
attr_accessor :sqs
|
14
21
|
|
15
22
|
# Creates a Board object.
|
16
23
|
# The +#new()+ method is wrapped in +#build()+ and +#create!()+ but isn't private so
|
@@ -22,7 +29,7 @@ module Smash
|
|
22
29
|
#
|
23
30
|
# Returns
|
24
31
|
# +Queue::Board+
|
25
|
-
def initialize(name, this_sqs
|
32
|
+
def initialize(name, this_sqs = sqs)
|
26
33
|
@sqs = this_sqs
|
27
34
|
@name = name
|
28
35
|
end
|
@@ -11,13 +11,24 @@ module Smash
|
|
11
11
|
# A simple Struct that acts as a Name to URL map
|
12
12
|
#
|
13
13
|
# Parameters
|
14
|
-
# *
|
15
|
-
#
|
14
|
+
# * :set_name +String+ (optional) - An optional name. It should be the same name as the
|
15
|
+
# the Board and/or Queue you're working with, or else this Struct isn't that useful
|
16
|
+
# * :set_url +String+ (optional) - An optional URL. It should be the same URL as the
|
17
|
+
# the Board and/or Queue you're working with, or else this Struct isn't that useful
|
18
|
+
#
|
19
|
+
# Attributes
|
20
|
+
# * name +String+ - the +:set_name+ or parse the +#address()+ for the name
|
21
|
+
# * url +String+ - the +:set_url+ or add the name to the end of a best guess at the URL
|
16
22
|
#
|
17
23
|
# Example
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
24
|
+
# name_url_map = NUMap.new(nil, 'https://sqs.us-west-53.amazonaws.com/001101010010/fooBar')
|
25
|
+
# name_url_map.name
|
26
|
+
# # => 'fooBar'
|
27
|
+
#
|
28
|
+
# # and now in reverse
|
29
|
+
# url_name_map = NUMap.new('snargleBargle')
|
30
|
+
# url_name_map.address
|
31
|
+
# # => 'https://sqs.us-west-53.amazonaws.com/001101010010/snargleBargle'
|
21
32
|
NUMap = Struct.new(:set_name, :set_url) do
|
22
33
|
# Gives you back the name, even if it hasn't been set
|
23
34
|
#
|
data/lib/cloud_powers/version.rb
CHANGED
data/lib/cloud_powers/zenv.rb
CHANGED
@@ -1,17 +1,25 @@
|
|
1
1
|
require 'dotenv'
|
2
2
|
require_relative 'helper'
|
3
|
+
|
3
4
|
module Smash
|
4
5
|
module CloudPowers
|
5
6
|
# This module provides some environment variable management and functionality
|
7
|
+
# Hopefully it should provide us with some "Zen", when dealing with normally
|
8
|
+
# annoying env issues. Meh, it probably won't but I like the name, so it stays :}
|
6
9
|
# System ENV, dotenv ENV and instance variables are considered for now but this
|
7
|
-
# will also use elasticache/redis...some other stuff too, in the coming
|
10
|
+
# will also use elasticache/redis...some other stuff too, in the coming versions
|
8
11
|
module Zenv
|
9
12
|
include Smash::CloudPowers::Helper
|
10
13
|
|
11
14
|
# Attempts to find a file by searching the current directory for the file
|
12
|
-
# then walking up the file tree and searching at each stop
|
13
|
-
#
|
14
|
-
#
|
15
|
+
# then walking up the file tree and searching at each stop all the way up
|
16
|
+
# to the root directory
|
17
|
+
#
|
18
|
+
# Parameters
|
19
|
+
# * name +String+ - name of the file or directory to find
|
20
|
+
#
|
21
|
+
# Returns
|
22
|
+
# +Pathname+ - path to the file or directory given as the +name+ parameter
|
15
23
|
def file_tree_search(name)
|
16
24
|
next_dir = Pathname.new(`pwd`.strip).parent
|
17
25
|
current_dir = Pathname.new(`pwd`.strip)
|
@@ -24,8 +32,12 @@ module Smash
|
|
24
32
|
return nil
|
25
33
|
end
|
26
34
|
|
27
|
-
# Search through the .
|
28
|
-
# return all the .env-vars
|
35
|
+
# Search through the {Dotenv}[https://github.com/bkeepers/dotenv]
|
36
|
+
# variables for a key or if no key is given, return all the .env-vars
|
37
|
+
# and their values
|
38
|
+
#
|
39
|
+
# Parameters
|
40
|
+
# * key +String+ -
|
29
41
|
def env_vars(key = '')
|
30
42
|
return ENV if key.empty?
|
31
43
|
ENV[to_snake(key).upcase]
|
@@ -33,8 +45,11 @@ module Smash
|
|
33
45
|
|
34
46
|
# Search through the instance variables for a key or if no key is given,
|
35
47
|
# return all the i-vars and their values
|
48
|
+
#
|
36
49
|
# Parameters [key <String]: The key to search for
|
50
|
+
#
|
37
51
|
# Returns
|
52
|
+
# the value of the +key+ searched for
|
38
53
|
def i_vars(key = '')
|
39
54
|
if key.empty?
|
40
55
|
return self.instance_variables.inject({}) do |r,v|
|
@@ -47,9 +62,23 @@ module Smash
|
|
47
62
|
# PROJECT_ROOT should be set as early as possible in this Node's initilize
|
48
63
|
# method. This method tries to search for it, using #zfind() and if a `nil`
|
49
64
|
# result is returned from that search, `pwd` is used as the PROJECT_ROOT.
|
50
|
-
#
|
51
|
-
#
|
65
|
+
#
|
66
|
+
# Returns
|
67
|
+
# +Pathname+ - path to the project root or where ever <tt>`pwd`</tt> resolves
|
68
|
+
# to for the caller
|
69
|
+
#
|
70
|
+
# Notes
|
71
|
+
# * TODO: improve this...it needs to find the gem's method's caller's project
|
52
72
|
# root or at least the gem's method's caller's file's location.
|
73
|
+
#
|
74
|
+
# Example
|
75
|
+
# # called from cerebrum/cerebrum.rb in /home/ubuntu
|
76
|
+
# project_root
|
77
|
+
# # => '/home/ubuntu/cerebrum/'
|
78
|
+
# # or
|
79
|
+
# # called from go_nuts.rb#begin_going_crazy():(line -999999999.9) in /Users/crazyman/.ssh/why/all/the/madness/
|
80
|
+
# project_root
|
81
|
+
# # => '/Users/crazyman/.ssh/why/all/the/madness/'
|
53
82
|
def project_root
|
54
83
|
if @project_root.nil?
|
55
84
|
file_home = Pathname.new(
|
@@ -60,18 +89,31 @@ module Smash
|
|
60
89
|
@project_root
|
61
90
|
end
|
62
91
|
|
63
|
-
# Manually set the
|
64
|
-
#
|
65
|
-
#
|
92
|
+
# Manually set the +@project_root+ i-var as a +Pathname+ object.
|
93
|
+
#
|
94
|
+
# Parameters New path to the project root +String+|+Pathname+
|
95
|
+
#
|
96
|
+
# Returns +Pathname+ - +@project_root+
|
97
|
+
#
|
98
|
+
# Example
|
99
|
+
# project_root
|
100
|
+
# # => '/home/ubuntu/cerebrum/'
|
101
|
+
# project_root = Pathname.new(`pwd`)
|
102
|
+
# project_root == `pwd`
|
103
|
+
# # => true
|
66
104
|
def project_root=(var)
|
67
105
|
@project_root = Pathname.new(var)
|
68
106
|
end
|
69
107
|
|
70
108
|
# Search through the system environment variables for a key or if no key
|
71
109
|
# is given, return all the system-env-vars and their values
|
110
|
+
#
|
72
111
|
# Parameters [key <String>]: The key to search for
|
73
|
-
#
|
74
|
-
#
|
112
|
+
#
|
113
|
+
# Returns
|
114
|
+
# * if a +key+ is given as a parameter, +String+
|
115
|
+
# * if no +key+ is given as a parameter, +Hash+
|
116
|
+
# with this structure +{ key => value, ... }+ is returned for all keys with a value.
|
75
117
|
# Keys with no value are ommitted from the result.
|
76
118
|
def system_vars(key = '')
|
77
119
|
if key.empty?
|
@@ -92,15 +134,21 @@ module Smash
|
|
92
134
|
end
|
93
135
|
|
94
136
|
# ZFind looks for the key in a preditermined order of importance:
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
137
|
+
# * i-vars are considered first becuase they might be tracking different
|
138
|
+
# locations for multiple tasks or something like that.
|
139
|
+
# * dotenv files are second because they were manually set, so for sure
|
140
|
+
# it's important
|
141
|
+
# * System Env[@] variables are up next. Hopefully by this time we've found
|
142
|
+
# our information but if not, it should "search" through the system env too.
|
143
|
+
#
|
144
|
+
# Parameters
|
145
|
+
# * key +String+|+Symbol+ - the key to search for
|
146
|
+
#
|
147
|
+
# Returns
|
148
|
+
# +String+
|
149
|
+
#
|
150
|
+
# Notes
|
151
|
+
# * TODO: implement a search for all 3 that can find close matches
|
104
152
|
def zfind(key)
|
105
153
|
project_root if @project_root.nil?
|
106
154
|
res = (i_vars[to_snake(key).upcase] or
|
data/lib/stubs/aws_stubs.rb
CHANGED
@@ -35,9 +35,10 @@ module Smash
|
|
35
35
|
# * * region - defaulted to use the <tt>#region()</tt> method
|
36
36
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
37
37
|
#
|
38
|
-
#
|
38
|
+
# Returns
|
39
39
|
# <tt>AWS::EC2::Client</tt>
|
40
|
-
#
|
40
|
+
#
|
41
|
+
# Example
|
41
42
|
# config = stub_responses: {
|
42
43
|
# run_instances: {
|
43
44
|
# instances: [{ instance_id: 'asd-1234', launch_time: Time.now, state: { name: 'running' }]
|
@@ -91,16 +92,17 @@ module Smash
|
|
91
92
|
end
|
92
93
|
|
93
94
|
# Stub data for a SNS client
|
95
|
+
#
|
94
96
|
# Parameters
|
95
97
|
# * opts +Hash+
|
96
98
|
# * * stub_responses: defaulted to false but it can be overriden with the desired responses for local testing
|
97
99
|
# * * region: defaulted to use the `#region()` method
|
98
100
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
99
101
|
#
|
100
|
-
#
|
102
|
+
# Returns
|
101
103
|
# AWS::SNS client
|
102
104
|
#
|
103
|
-
#
|
105
|
+
# Example
|
104
106
|
# config = {
|
105
107
|
# stub_responses: {
|
106
108
|
# create_topic: {},
|
@@ -136,10 +138,10 @@ module Smash
|
|
136
138
|
# * * region: defaulted to use the `#region()` method
|
137
139
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
138
140
|
#
|
139
|
-
#
|
141
|
+
# Returns
|
140
142
|
# AWS::Kinesis client
|
141
143
|
#
|
142
|
-
#
|
144
|
+
# Example
|
143
145
|
# config = {
|
144
146
|
# stub_responses: {
|
145
147
|
# create_stream: {},
|
@@ -205,10 +207,10 @@ module Smash
|
|
205
207
|
# * * region: defaulted to use the `#region()` method
|
206
208
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
207
209
|
#
|
208
|
-
#
|
210
|
+
# Returns
|
209
211
|
# AWS::S3 client
|
210
212
|
#
|
211
|
-
#
|
213
|
+
# Example
|
212
214
|
# config = {
|
213
215
|
# stub_responses: {
|
214
216
|
# head_bucket: {}
|
@@ -234,10 +236,10 @@ module Smash
|
|
234
236
|
# * * region: defaulted to use the `#region()` method
|
235
237
|
# * * AWS::Credentials object, which will also scour the context and environment for your keys
|
236
238
|
#
|
237
|
-
#
|
239
|
+
# Returns
|
238
240
|
# AWS::SQS client
|
239
241
|
#
|
240
|
-
#
|
242
|
+
# Example
|
241
243
|
# create_queue('someQueue') # uses AWS::SQS
|
242
244
|
# some_queue_url = queue_search('someQueue').first # uses AWS::SQS
|
243
245
|
def self.queue_stub(opts = {})
|
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.
|
4
|
+
version: 0.2.7.2
|
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-
|
12
|
+
date: 2016-10-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport-core-ext
|