shelly 0.5.2 → 0.5.3
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 +6 -0
- data/lib/shelly/cli/endpoint.rb +12 -6
- data/lib/shelly/cli/main/add.rb +2 -0
- data/lib/shelly/cli/organization.rb +2 -0
- data/lib/shelly/client/organizations.rb +3 -2
- data/lib/shelly/helpers.rb +1 -0
- data/lib/shelly/organization.rb +2 -2
- data/lib/shelly/version.rb +1 -1
- data/spec/shelly/cli/endpoint_spec.rb +40 -12
- data/spec/shelly/cli/main_spec.rb +11 -2
- data/spec/shelly/cli/organization_spec.rb +8 -0
- data/spec/shelly/client_spec.rb +1 -1
- data/spec/shelly/organization_spec.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8ceb2fd1ee786894862ba5705645a85570e3cd2
|
4
|
+
data.tar.gz: 09486cb2b72d9926e1e9788f6aa47adbadc13fea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88c7950e4fa032ecbdadd102520fd5d824e16980dda250aa270e449671840fbefa1f72aa836621151c83a78f1eb4c97d2306dd626ab1b1b1a4b13915c2bd3c1a
|
7
|
+
data.tar.gz: b34402a098cb424aea9e1f843a31f411c499656e2caaf8b8cfc52ca913514129a73682e0d175e591b2cbb20c58f0c511df3540b3eee83ad2eadec61527e86b6d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 0.5.3 / 2015-02-15
|
2
|
+
|
3
|
+
* [bugfix] Don't ask user about assigning new ip address on creating new
|
4
|
+
endpoint with SNI
|
5
|
+
* [improvement] User is able to provide referral code for new organization
|
6
|
+
|
1
7
|
## 0.5.2 / 2015-02-11
|
2
8
|
|
3
9
|
* [improvement] Disable email confirmation on registration
|
data/lib/shelly/cli/endpoint.rb
CHANGED
@@ -79,6 +79,7 @@ module Shelly
|
|
79
79
|
def create(cert_path = nil, key_path = nil, bundle_path = nil)
|
80
80
|
app = multiple_clouds(options[:cloud],
|
81
81
|
"endpoint create [CERT_PATH] [KEY_PATH] [BUNDLE_PATH]")
|
82
|
+
sni = options["sni"]
|
82
83
|
|
83
84
|
say "Every unique IP address assigned to endpoint costs 10€/month"
|
84
85
|
say "It's required for SSL/TLS"
|
@@ -87,7 +88,7 @@ module Shelly
|
|
87
88
|
say "Assigned IP address can be used to catch all domains pointing to that address, without SSL/TLS enabled"
|
88
89
|
exit(0) unless yes?("Are you sure you want to create endpoint without certificate (yes/no):")
|
89
90
|
elsif app.endpoints.count > 0
|
90
|
-
ask_if_endpoints_were_already_created(app)
|
91
|
+
ask_if_endpoints_were_already_created(app, sni)
|
91
92
|
else
|
92
93
|
exit(0) unless yes?("Are you sure you want to create endpoint? (yes/no):")
|
93
94
|
end
|
@@ -95,7 +96,7 @@ module Shelly
|
|
95
96
|
certificate, key = read_certificate_components(cert_path, key_path,
|
96
97
|
bundle_path)
|
97
98
|
|
98
|
-
endpoint = app.create_endpoint(certificate, key,
|
99
|
+
endpoint = app.create_endpoint(certificate, key, sni)
|
99
100
|
|
100
101
|
say "Endpoint was created for #{app} cloud", :green
|
101
102
|
if endpoint['ip_address']
|
@@ -184,14 +185,19 @@ module Shelly
|
|
184
185
|
end
|
185
186
|
end
|
186
187
|
|
187
|
-
def ask_if_endpoints_were_already_created(app)
|
188
|
+
def ask_if_endpoints_were_already_created(app, sni)
|
188
189
|
cli = Shelly::CLI::Endpoint.new
|
189
190
|
cli.options = {:cloud => app}
|
190
191
|
cli.list
|
191
192
|
say_new_line
|
192
|
-
|
193
|
-
"
|
194
|
-
"(yes/no):"
|
193
|
+
question = unless sni.nil?
|
194
|
+
"You already have assigned endpoint(s). Are you sure you" \
|
195
|
+
" want to create another one with SNI? (yes/no):"
|
196
|
+
else
|
197
|
+
"You already have assigned endpoint(s). Are you sure you" \
|
198
|
+
" want to create another one with a new IP address? (yes/no):"
|
199
|
+
end
|
200
|
+
exit(0) unless yes?(question)
|
195
201
|
end
|
196
202
|
end
|
197
203
|
end
|
data/lib/shelly/cli/main/add.rb
CHANGED
@@ -11,6 +11,8 @@ module Shelly
|
|
11
11
|
:desc => "Server size [large, small]"
|
12
12
|
method_option "redeem-code", :type => :string, :aliases => "-r",
|
13
13
|
:desc => "Redeem code for free credits"
|
14
|
+
method_option "referral-code", :type => :string,
|
15
|
+
:desc => "Referral code for additional credit"
|
14
16
|
method_option "organization", :type => :string, :aliases => "-o",
|
15
17
|
:desc => "Add cloud to existing organization"
|
16
18
|
method_option "skip-requirements-check", :type => :boolean,
|
@@ -26,6 +26,8 @@ module Shelly
|
|
26
26
|
|
27
27
|
method_option "redeem-code", :type => :string, :aliases => "-r",
|
28
28
|
:desc => "Redeem code for free credits"
|
29
|
+
method_option "referral-code", :type => :string,
|
30
|
+
:desc => "Referral code for additional credit"
|
29
31
|
desc "add", "Add a new organization"
|
30
32
|
map "create" => :add
|
31
33
|
map "new" => :add
|
@@ -7,8 +7,9 @@ class Shelly::Client
|
|
7
7
|
get("/organizations/#{name}")
|
8
8
|
end
|
9
9
|
|
10
|
-
def create_organization(attributes)
|
11
|
-
post("/organizations", :organization => attributes
|
10
|
+
def create_organization(attributes, referral_code = nil)
|
11
|
+
post("/organizations", :organization => attributes,
|
12
|
+
:referral_code => referral_code)
|
12
13
|
end
|
13
14
|
|
14
15
|
def members(name)
|
data/lib/shelly/helpers.rb
CHANGED
@@ -24,6 +24,7 @@ module Shelly
|
|
24
24
|
organization = Shelly::Organization.new
|
25
25
|
organization.name = ask_for_organization_name
|
26
26
|
organization.redeem_code = options["redeem-code"]
|
27
|
+
organization.referral_code = options["referral-code"]
|
27
28
|
organization.create
|
28
29
|
say "Organization '#{organization.name}' created", :green
|
29
30
|
organization.name
|
data/lib/shelly/organization.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Shelly
|
2
2
|
class Organization < Model
|
3
|
-
attr_accessor :name, :app_code_names, :redeem_code
|
3
|
+
attr_accessor :name, :app_code_names, :redeem_code, :referral_code
|
4
4
|
|
5
5
|
def initialize(attributes = {})
|
6
6
|
@name = attributes["name"]
|
@@ -15,7 +15,7 @@ module Shelly
|
|
15
15
|
|
16
16
|
def create
|
17
17
|
attributes = {:name => name, :redeem_code => redeem_code}
|
18
|
-
shelly.create_organization(attributes)
|
18
|
+
shelly.create_organization(attributes, referral_code)
|
19
19
|
end
|
20
20
|
|
21
21
|
def memberships
|
data/lib/shelly/version.rb
CHANGED
@@ -76,21 +76,49 @@ describe Shelly::CLI::Endpoint do
|
|
76
76
|
@app.stub(:endpoints).and_return([])
|
77
77
|
end
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
79
|
+
context "with certificate" do
|
80
|
+
it "should create endpoint with provided certificate" do
|
81
|
+
@app.should_receive(:create_endpoint).with("crt\n", "key", nil).
|
82
|
+
and_return(endpoint_response('ip_address' => '10.0.0.1'))
|
82
83
|
|
83
|
-
|
84
|
-
|
85
|
-
|
84
|
+
$stdout.should_receive(:puts).with("Every unique IP address assigned to endpoint costs 10\u20AC/month")
|
85
|
+
$stdout.should_receive(:puts).with("It's required for SSL/TLS")
|
86
|
+
$stdout.should_receive(:print).with("Are you sure you want to create endpoint? (yes/no): ")
|
86
87
|
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
$stdout.should_receive(:puts).with(green "Endpoint was created for #{@app.to_s} cloud")
|
89
|
+
$stdout.should_receive(:puts).with("Deployed certificate on front end servers.")
|
90
|
+
$stdout.should_receive(:puts).with("Point your domain to private IP address: 10.0.0.1")
|
90
91
|
|
91
|
-
|
92
|
-
|
93
|
-
|
92
|
+
fake_stdin(["yes"]) do
|
93
|
+
invoke(@cli, :create, "crt_path", "key_path")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "when sni option is true" do
|
98
|
+
before do
|
99
|
+
@app.stub_chain(:endpoints, :count).and_return(1)
|
100
|
+
@cli.stub(:list)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should create endpoint with provided certificate" do
|
104
|
+
@app.should_receive(:create_endpoint).with("crt\n", "key", true).
|
105
|
+
and_return(endpoint_response('ip_address' => '10.0.0.1'))
|
106
|
+
|
107
|
+
$stdout.should_receive(:puts).with("Every unique IP address assigned to endpoint costs 10\u20AC/month")
|
108
|
+
$stdout.should_receive(:puts).with("It's required for SSL/TLS")
|
109
|
+
$stdout.should_receive(:puts).with("\n")
|
110
|
+
$stdout.should_receive(:print).with("You already have assigned" \
|
111
|
+
" endpoint(s). Are you sure you want to create another one with" \
|
112
|
+
" SNI? (yes/no): ")
|
113
|
+
$stdout.should_receive(:puts).with(green "Endpoint was created for #{@app.to_s} cloud")
|
114
|
+
$stdout.should_receive(:puts).with("Deployed certificate on front end servers.")
|
115
|
+
$stdout.should_receive(:puts).with("Point your domain to private IP address: 10.0.0.1")
|
116
|
+
|
117
|
+
@cli.options = {"sni" => true}
|
118
|
+
fake_stdin(["yes"]) do
|
119
|
+
invoke(@cli, :create, "crt_path", "key_path")
|
120
|
+
end
|
121
|
+
end
|
94
122
|
end
|
95
123
|
end
|
96
124
|
|
@@ -668,7 +668,7 @@ More info at http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository\e[0m
|
|
668
668
|
it "should ask user to create a new organization" do
|
669
669
|
@app.should_receive(:organization_name=).with('org-name')
|
670
670
|
@client.should_receive(:create_organization).
|
671
|
-
with({:name => "org-name", :redeem_code => nil})
|
671
|
+
with({:name => "org-name", :redeem_code => nil}, nil)
|
672
672
|
$stdout.should_receive(:print).
|
673
673
|
with("Organization name (foo - default): ")
|
674
674
|
$stdout.should_receive(:puts).
|
@@ -681,7 +681,16 @@ More info at http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository\e[0m
|
|
681
681
|
it "should use --redeem-code option" do
|
682
682
|
@main.options = {'redeem-code' => 'discount'}
|
683
683
|
@client.should_receive(:create_organization).
|
684
|
-
with({:name => "org-name", :redeem_code => 'discount'})
|
684
|
+
with({:name => "org-name", :redeem_code => 'discount'}, nil)
|
685
|
+
fake_stdin(["foo", "none", "", "org-name"]) do
|
686
|
+
invoke(@main, :add)
|
687
|
+
end
|
688
|
+
end
|
689
|
+
|
690
|
+
it "should use --referral-code option" do
|
691
|
+
@main.options = {'referral-code' => 'test'}
|
692
|
+
@client.should_receive(:create_organization).
|
693
|
+
with({:name => "org-name", :redeem_code=>nil}, 'test')
|
685
694
|
fake_stdin(["foo", "none", "", "org-name"]) do
|
686
695
|
invoke(@main, :add)
|
687
696
|
end
|
@@ -85,6 +85,14 @@ describe Shelly::CLI::Organization do
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
it "should accept referral-code option" do
|
89
|
+
@organization.should_receive(:referral_code=).with("test")
|
90
|
+
@cli.options = {"referral-code" => "test"}
|
91
|
+
fake_stdin("org-name") do
|
92
|
+
invoke(@cli, :add)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
88
96
|
context "on failure" do
|
89
97
|
it "should display validation errors" do
|
90
98
|
body = {"message" => "Validation Failed", "errors" =>
|
data/spec/shelly/client_spec.rb
CHANGED
@@ -192,7 +192,7 @@ describe Shelly::Client do
|
|
192
192
|
describe "#create_organization" do
|
193
193
|
it "should send post with organization's attributes" do
|
194
194
|
@client.should_receive(:post).with("/organizations",
|
195
|
-
:organization
|
195
|
+
{:organization=>{:name=>"new-organization"}, :referral_code=>nil})
|
196
196
|
@client.create_organization(:name => "new-organization")
|
197
197
|
end
|
198
198
|
end
|
@@ -65,9 +65,10 @@ describe Shelly::Organization do
|
|
65
65
|
describe "#create" do
|
66
66
|
it "should create organization via API client" do
|
67
67
|
@client.should_receive(:create_organization).with(
|
68
|
-
:name
|
68
|
+
{:name=>"new-organization", :redeem_code=>"discount"}, "test")
|
69
69
|
@organization.name = "new-organization"
|
70
70
|
@organization.redeem_code = "discount"
|
71
|
+
@organization.referral_code = "test"
|
71
72
|
@organization.create
|
72
73
|
end
|
73
74
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shelly Cloud team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -359,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
359
|
version: '0'
|
360
360
|
requirements: []
|
361
361
|
rubyforge_project: shelly
|
362
|
-
rubygems_version: 2.
|
362
|
+
rubygems_version: 2.4.5
|
363
363
|
signing_key:
|
364
364
|
specification_version: 4
|
365
365
|
summary: Shelly Cloud command line tool
|