startapp 0.1.6
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 +7 -0
- data/COPYRIGHT +1 -0
- data/LICENSE +11 -0
- data/README.md +95 -0
- data/Rakefile +6 -0
- data/autocomplete/rhc_bash +1672 -0
- data/bin/app +37 -0
- data/conf/express.conf +8 -0
- data/features/assets/deploy.tar.gz +0 -0
- data/features/core_feature.rb +191 -0
- data/features/deployments_feature.rb +129 -0
- data/features/domains_feature.rb +58 -0
- data/features/keys_feature.rb +37 -0
- data/features/members_feature.rb +166 -0
- data/lib/rhc/auth/basic.rb +64 -0
- data/lib/rhc/auth/token.rb +102 -0
- data/lib/rhc/auth/token_store.rb +53 -0
- data/lib/rhc/auth.rb +5 -0
- data/lib/rhc/autocomplete.rb +66 -0
- data/lib/rhc/autocomplete_templates/bash.erb +39 -0
- data/lib/rhc/cartridge_helpers.rb +118 -0
- data/lib/rhc/cli.rb +40 -0
- data/lib/rhc/command_runner.rb +185 -0
- data/lib/rhc/commands/account.rb +25 -0
- data/lib/rhc/commands/alias.rb +124 -0
- data/lib/rhc/commands/app.rb +726 -0
- data/lib/rhc/commands/apps.rb +20 -0
- data/lib/rhc/commands/authorization.rb +115 -0
- data/lib/rhc/commands/base.rb +174 -0
- data/lib/rhc/commands/cartridge.rb +329 -0
- data/lib/rhc/commands/clone.rb +66 -0
- data/lib/rhc/commands/configure.rb +20 -0
- data/lib/rhc/commands/create.rb +100 -0
- data/lib/rhc/commands/delete.rb +19 -0
- data/lib/rhc/commands/deploy.rb +32 -0
- data/lib/rhc/commands/deployment.rb +82 -0
- data/lib/rhc/commands/domain.rb +172 -0
- data/lib/rhc/commands/env.rb +142 -0
- data/lib/rhc/commands/force_stop.rb +17 -0
- data/lib/rhc/commands/git_clone.rb +34 -0
- data/lib/rhc/commands/logout.rb +51 -0
- data/lib/rhc/commands/logs.rb +21 -0
- data/lib/rhc/commands/member.rb +148 -0
- data/lib/rhc/commands/port_forward.rb +197 -0
- data/lib/rhc/commands/reload.rb +17 -0
- data/lib/rhc/commands/restart.rb +17 -0
- data/lib/rhc/commands/scp.rb +54 -0
- data/lib/rhc/commands/server.rb +40 -0
- data/lib/rhc/commands/setup.rb +60 -0
- data/lib/rhc/commands/show.rb +43 -0
- data/lib/rhc/commands/snapshot.rb +137 -0
- data/lib/rhc/commands/ssh.rb +51 -0
- data/lib/rhc/commands/sshkey.rb +97 -0
- data/lib/rhc/commands/start.rb +17 -0
- data/lib/rhc/commands/stop.rb +17 -0
- data/lib/rhc/commands/tail.rb +47 -0
- data/lib/rhc/commands/threaddump.rb +14 -0
- data/lib/rhc/commands/tidy.rb +17 -0
- data/lib/rhc/commands.rb +396 -0
- data/lib/rhc/config.rb +321 -0
- data/lib/rhc/context_helper.rb +121 -0
- data/lib/rhc/core_ext.rb +202 -0
- data/lib/rhc/coverage_helper.rb +33 -0
- data/lib/rhc/deployment_helpers.rb +111 -0
- data/lib/rhc/exceptions.rb +256 -0
- data/lib/rhc/git_helpers.rb +106 -0
- data/lib/rhc/help_formatter.rb +55 -0
- data/lib/rhc/helpers.rb +481 -0
- data/lib/rhc/highline_extensions.rb +479 -0
- data/lib/rhc/json.rb +51 -0
- data/lib/rhc/output_helpers.rb +260 -0
- data/lib/rhc/rest/activation.rb +11 -0
- data/lib/rhc/rest/alias.rb +42 -0
- data/lib/rhc/rest/api.rb +87 -0
- data/lib/rhc/rest/application.rb +348 -0
- data/lib/rhc/rest/attributes.rb +36 -0
- data/lib/rhc/rest/authorization.rb +8 -0
- data/lib/rhc/rest/base.rb +79 -0
- data/lib/rhc/rest/cartridge.rb +162 -0
- data/lib/rhc/rest/client.rb +650 -0
- data/lib/rhc/rest/deployment.rb +18 -0
- data/lib/rhc/rest/domain.rb +98 -0
- data/lib/rhc/rest/environment_variable.rb +15 -0
- data/lib/rhc/rest/gear_group.rb +16 -0
- data/lib/rhc/rest/httpclient.rb +145 -0
- data/lib/rhc/rest/key.rb +44 -0
- data/lib/rhc/rest/membership.rb +105 -0
- data/lib/rhc/rest/mock.rb +1042 -0
- data/lib/rhc/rest/user.rb +32 -0
- data/lib/rhc/rest.rb +148 -0
- data/lib/rhc/scp_helpers.rb +27 -0
- data/lib/rhc/ssh_helpers.rb +380 -0
- data/lib/rhc/tar_gz.rb +51 -0
- data/lib/rhc/usage_templates/command_help.erb +51 -0
- data/lib/rhc/usage_templates/command_syntax_help.erb +11 -0
- data/lib/rhc/usage_templates/help.erb +61 -0
- data/lib/rhc/usage_templates/missing_help.erb +1 -0
- data/lib/rhc/usage_templates/options_help.erb +12 -0
- data/lib/rhc/vendor/okjson.rb +600 -0
- data/lib/rhc/vendor/parseconfig.rb +178 -0
- data/lib/rhc/vendor/sshkey.rb +253 -0
- data/lib/rhc/vendor/zliby.rb +628 -0
- data/lib/rhc/version.rb +5 -0
- data/lib/rhc/wizard.rb +637 -0
- data/lib/rhc.rb +34 -0
- data/spec/coverage_helper.rb +82 -0
- data/spec/direct_execution_helper.rb +339 -0
- data/spec/keys/example.pem +23 -0
- data/spec/keys/example_private.pem +27 -0
- data/spec/keys/server.pem +19 -0
- data/spec/rest_spec_helper.rb +31 -0
- data/spec/rhc/assets/cert.crt +22 -0
- data/spec/rhc/assets/cert_key_rsa +27 -0
- data/spec/rhc/assets/empty.txt +0 -0
- data/spec/rhc/assets/env_vars.txt +7 -0
- data/spec/rhc/assets/env_vars_2.txt +1 -0
- data/spec/rhc/assets/foo.txt +1 -0
- data/spec/rhc/assets/targz_corrupted.tar.gz +1 -0
- data/spec/rhc/assets/targz_sample.tar.gz +0 -0
- data/spec/rhc/auth_spec.rb +442 -0
- data/spec/rhc/cli_spec.rb +186 -0
- data/spec/rhc/command_spec.rb +435 -0
- data/spec/rhc/commands/account_spec.rb +42 -0
- data/spec/rhc/commands/alias_spec.rb +333 -0
- data/spec/rhc/commands/app_spec.rb +777 -0
- data/spec/rhc/commands/apps_spec.rb +39 -0
- data/spec/rhc/commands/authorization_spec.rb +157 -0
- data/spec/rhc/commands/cartridge_spec.rb +665 -0
- data/spec/rhc/commands/clone_spec.rb +41 -0
- data/spec/rhc/commands/deployment_spec.rb +327 -0
- data/spec/rhc/commands/domain_spec.rb +401 -0
- data/spec/rhc/commands/env_spec.rb +493 -0
- data/spec/rhc/commands/git_clone_spec.rb +102 -0
- data/spec/rhc/commands/logout_spec.rb +86 -0
- data/spec/rhc/commands/member_spec.rb +247 -0
- data/spec/rhc/commands/port_forward_spec.rb +217 -0
- data/spec/rhc/commands/scp_spec.rb +77 -0
- data/spec/rhc/commands/server_spec.rb +69 -0
- data/spec/rhc/commands/setup_spec.rb +118 -0
- data/spec/rhc/commands/snapshot_spec.rb +179 -0
- data/spec/rhc/commands/ssh_spec.rb +163 -0
- data/spec/rhc/commands/sshkey_spec.rb +188 -0
- data/spec/rhc/commands/tail_spec.rb +81 -0
- data/spec/rhc/commands/threaddump_spec.rb +84 -0
- data/spec/rhc/config_spec.rb +407 -0
- data/spec/rhc/helpers_spec.rb +531 -0
- data/spec/rhc/highline_extensions_spec.rb +314 -0
- data/spec/rhc/json_spec.rb +30 -0
- data/spec/rhc/rest_application_spec.rb +258 -0
- data/spec/rhc/rest_client_spec.rb +752 -0
- data/spec/rhc/rest_spec.rb +740 -0
- data/spec/rhc/targz_spec.rb +55 -0
- data/spec/rhc/wizard_spec.rb +756 -0
- data/spec/spec_helper.rb +575 -0
- data/spec/wizard_spec_helper.rb +330 -0
- metadata +469 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
require 'rhc/commands/base'
|
|
2
|
+
require 'rhc/config'
|
|
3
|
+
|
|
4
|
+
module RHC::Commands
|
|
5
|
+
class Alias < Base
|
|
6
|
+
summary "Add or remove a custom domain name for an app"
|
|
7
|
+
syntax "<action>"
|
|
8
|
+
description <<-DESC
|
|
9
|
+
Each application may have one or more custom domain names (known as
|
|
10
|
+
aliases) mapped to it. You may then configure your custom DNS entry
|
|
11
|
+
CNAME to point to your OpenShift application to serve web requests
|
|
12
|
+
from that name.
|
|
13
|
+
|
|
14
|
+
Each alias may have a single SSL certificate associated with the name
|
|
15
|
+
to handle SSL traffic. See the 'add' command for more info.
|
|
16
|
+
DESC
|
|
17
|
+
default_action :help
|
|
18
|
+
|
|
19
|
+
summary "Add a custom domain name for the application"
|
|
20
|
+
syntax "<application> <alias> [--namespace NAME]"
|
|
21
|
+
takes_application :argument => true
|
|
22
|
+
argument :app_alias, "Custom domain name for the application", []
|
|
23
|
+
alias_action :"app add-alias", :root_command => true, :deprecated => true
|
|
24
|
+
def add(app, app_alias)
|
|
25
|
+
rest_app = find_app
|
|
26
|
+
rest_app.add_alias(app_alias)
|
|
27
|
+
success "Alias '#{app_alias}' has been added."
|
|
28
|
+
0
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
summary "Remove a custom domain name for the application"
|
|
32
|
+
syntax "<application> <alias> [--namespace NAME]"
|
|
33
|
+
takes_application :argument => true
|
|
34
|
+
argument :app_alias, "Custom domain name for the application", []
|
|
35
|
+
alias_action :"app remove-alias", :root_command => true, :deprecated => true
|
|
36
|
+
def remove(app, app_alias)
|
|
37
|
+
rest_app = find_app
|
|
38
|
+
rest_app.remove_alias(app_alias)
|
|
39
|
+
success "Alias '#{app_alias}' has been removed."
|
|
40
|
+
0
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
summary "Add or change the SSL certificate for an existing alias"
|
|
44
|
+
description <<-DESC
|
|
45
|
+
Add or update the SSL certificate for your custom domain alias to
|
|
46
|
+
allow secure HTTPS communication with your app.
|
|
47
|
+
|
|
48
|
+
Certificate files must be Base64 PEM-encoded and typically have a
|
|
49
|
+
.crt or .pem extension. You may combine multiple certificates and
|
|
50
|
+
certificate chains in a single file. The RSA or DSA private key
|
|
51
|
+
must always be provided in a separate file.
|
|
52
|
+
|
|
53
|
+
Pass phrase for the certificate private key is required if the
|
|
54
|
+
provided private key is encrypted.
|
|
55
|
+
DESC
|
|
56
|
+
syntax "<application> <alias> --certificate FILE --private-key FILE [--passphrase PASSPHRASE]"
|
|
57
|
+
takes_application :argument => true
|
|
58
|
+
argument :app_alias, "Custom domain name for the application (required)", []
|
|
59
|
+
option ["--certificate FILE"], "SSL certificate filepath (file in .crt or .pem format)", :required => true
|
|
60
|
+
option ["--private-key FILE"], "Private key filepath for the given SSL certificate", :required => true
|
|
61
|
+
option ["--passphrase PASSPHRASE"], "Private key pass phrase, required if the private key is encrypted", :required => false
|
|
62
|
+
def update_cert(app, app_alias)
|
|
63
|
+
certificate_file_path = options.certificate
|
|
64
|
+
raise ArgumentError, "Certificate file not found: #{certificate_file_path}" if !File.exist?(certificate_file_path) || !File.file?(certificate_file_path)
|
|
65
|
+
|
|
66
|
+
private_key_file_path = options.private_key
|
|
67
|
+
raise ArgumentError, "Private key file not found: #{private_key_file_path}" if !File.exist?(private_key_file_path) || !File.file?(private_key_file_path)
|
|
68
|
+
|
|
69
|
+
certificate_content = File.read(certificate_file_path)
|
|
70
|
+
raise ArgumentError, "Invalid certificate file: #{certificate_file_path} is empty" if certificate_content.to_s.strip.length == 0
|
|
71
|
+
|
|
72
|
+
private_key_content = File.read(private_key_file_path)
|
|
73
|
+
raise ArgumentError, "Invalid private key file: #{private_key_file_path} is empty" if private_key_content.to_s.strip.length == 0
|
|
74
|
+
|
|
75
|
+
rest_app = find_app
|
|
76
|
+
rest_alias = rest_app.find_alias(app_alias)
|
|
77
|
+
if rest_client.api_version_negotiated >= 1.4
|
|
78
|
+
rest_alias.add_certificate(certificate_content, private_key_content, options.passphrase)
|
|
79
|
+
success "SSL certificate successfully added."
|
|
80
|
+
0
|
|
81
|
+
else
|
|
82
|
+
raise RHC::Rest::SslCertificatesNotSupported, "The server does not support SSL certificates for custom aliases."
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
summary "Delete the SSL certificate from an existing alias"
|
|
87
|
+
syntax "<application> <alias>"
|
|
88
|
+
takes_application :argument => true
|
|
89
|
+
argument :app_alias, "Custom domain name for the application (required)", []
|
|
90
|
+
option ["--confirm"], "Pass to confirm deleting the application"
|
|
91
|
+
def delete_cert(app, app_alias)
|
|
92
|
+
rest_app = find_app
|
|
93
|
+
rest_alias = rest_app.find_alias(app_alias)
|
|
94
|
+
if rest_client.api_version_negotiated >= 1.4
|
|
95
|
+
confirm_action "#{color("This is a non-reversible action! Your SSL certificate will be permanently deleted from application '#{app}'.", :yellow)}\n\nAre you sure you want to delete the SSL certificate?"
|
|
96
|
+
rest_alias.delete_certificate
|
|
97
|
+
success "SSL certificate successfully deleted."
|
|
98
|
+
0
|
|
99
|
+
else
|
|
100
|
+
raise RHC::Rest::SslCertificatesNotSupported, "The server does not support SSL certificates for custom aliases."
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
summary "List the aliases on an application"
|
|
105
|
+
syntax "<application>"
|
|
106
|
+
takes_application :argument => true
|
|
107
|
+
alias_action "aliases", :root_command => true
|
|
108
|
+
def list(app)
|
|
109
|
+
rest_app = find_app
|
|
110
|
+
items = rest_app.aliases.map do |a|
|
|
111
|
+
a.is_a?(String) ?
|
|
112
|
+
[a, 'no', '-'] :
|
|
113
|
+
[a.id, a.has_private_ssl_certificate? ? 'yes' : 'no', a.has_private_ssl_certificate? ? Date.parse(a.certificate_added_at) : '-']
|
|
114
|
+
end
|
|
115
|
+
if items.empty?
|
|
116
|
+
info "No aliases associated with the application #{app}."
|
|
117
|
+
else
|
|
118
|
+
say table(items, :header => ["Alias", "Has Certificate?", "Certificate Added"])
|
|
119
|
+
end
|
|
120
|
+
0
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end
|
|
124
|
+
end
|