module RHC::DeploymentHelpers
Protected Instance Methods
activate_deployment(rest_app, deployment_id)
click to toggle source
# File lib/rhc/deployment_helpers.rb, line 94 def activate_deployment(rest_app, deployment_id) say "Activating deployment '#{deployment_id}' on application #{rest_app.name} ..." ssh_url = URI(rest_app.ssh_url) remote_cmd = "gear activate --all #{deployment_id}" begin ssh_ruby(ssh_url.host, ssh_url.user, remote_cmd) success "Success" rescue ssh_cmd = "ssh -t #{ssh_url.user}@#{ssh_url.host} '#{remote_cmd}'" warn "Error activating deployment. You can try to activate manually with:\n#{ssh_cmd}" raise end end
deploy_artifact(rest_app, artifact, hot_deploy, force_clean_build)
click to toggle source
# File lib/rhc/deployment_helpers.rb, line 12 def deploy_artifact(rest_app, artifact, hot_deploy, force_clean_build) is_file = File.file?(artifact) is_url = URI::ABS_URI.match(artifact).present? if rest_app.deployment_type == 'binary' if is_file deploy_local_file(rest_app, artifact, hot_deploy, force_clean_build) elsif is_url deploy_file_from_url(rest_app, artifact, hot_deploy, force_clean_build) else paragraph do warn "The application '#{rest_app.name}' is configured for binary deployments but the artifact " "provided ('#{artifact}') is not a binary file. Please provide the path to a deployable file on " "your local filesystem or a url, or configure your app to deploy from a git reference with 'rhc " "configure-app #{rest_app.name} --deployment-type git'." end raise IncompatibleDeploymentTypeException end elsif is_file || is_url paragraph do warn "The application '#{rest_app.name}' is configured for git " "reference deployments but the artifact provided ('#{artifact}') is #{is_file ? 'a file' : 'a url'}. Please " "provide a git reference to deploy (branch, tag or commit SHA1) or configure your app to deploy from binaries " "with 'rhc configure-app #{rest_app.name} --deployment-type binary'." end raise IncompatibleDeploymentTypeException else deploy_git_ref(rest_app, artifact, hot_deploy, force_clean_build) end end
deploy_file_from_url(rest_app, file_url, hot_deploy, force_clean_build)
click to toggle source
# File lib/rhc/deployment_helpers.rb, line 76 def deploy_file_from_url(rest_app, file_url, hot_deploy, force_clean_build) say "Deployment of file '#{file_url}' in progress for application #{rest_app.name} ..." ssh_url = URI(rest_app.ssh_url) file_url = URI(file_url) remote_cmd = "oo-binary-deploy#{hot_deploy ? ' --hot-deploy' : ''}#{force_clean_build ? ' --force-clean-build' : ''}" begin ssh_send_url_ruby(ssh_url.host, ssh_url.user, remote_cmd, file_url) success "Success" rescue ssh_cmd = "ssh -t #{ssh_url.user}@#{ssh_url.host} '#{remote_cmd}'" warn "Error deploying file from url. You can try to deploy manually with:\n#{ssh_cmd}" raise end end
deploy_git_ref(rest_app, ref, hot_deploy, force_clean_build)
click to toggle source
# File lib/rhc/deployment_helpers.rb, line 43 def deploy_git_ref(rest_app, ref, hot_deploy, force_clean_build) say "Deployment of git ref '#{ref}' in progress for application #{rest_app.name} ..." ssh_url = URI(rest_app.ssh_url) remote_cmd = "gear deploy #{ref}#{hot_deploy ? ' --hot-deploy' : ''}#{force_clean_build ? ' --force-clean-build' : ''}" begin ssh_ruby(ssh_url.host, ssh_url.user, remote_cmd) success "Success" rescue ssh_cmd = "ssh -t #{ssh_url.user}@#{ssh_url.host} '#{remote_cmd}'" warn "Error deploying git ref. You can try to deploy manually with:\n#{ssh_cmd}" raise end end
deploy_local_file(rest_app, filename, hot_deploy, force_clean_build)
click to toggle source
# File lib/rhc/deployment_helpers.rb, line 59 def deploy_local_file(rest_app, filename, hot_deploy, force_clean_build) filename = File.expand_path(filename) say "Deployment of file '#{filename}' in progress for application #{rest_app.name} ..." ssh_url = URI(rest_app.ssh_url) remote_cmd = "oo-binary-deploy#{hot_deploy ? ' --hot-deploy' : ''}#{force_clean_build ? ' --force-clean-build' : ''}" begin ssh_send_file_ruby(ssh_url.host, ssh_url.user, remote_cmd, filename) success "Success" rescue ssh_cmd = "ssh -t #{ssh_url.user}@#{ssh_url.host} '#{remote_cmd}'" warn "Error deploying local file. You can try to deploy manually with:\n#{ssh_cmd}" raise end end