cloudbees 0.1.4 → 0.1.5

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.
Files changed (3) hide show
  1. data/bin/cloudbees +116 -20
  2. data/lib/cloudbees/version.rb +1 -1
  3. metadata +4 -4
data/bin/cloudbees CHANGED
@@ -8,52 +8,148 @@ def has_program?(program)
8
8
  end
9
9
 
10
10
 
11
+ #if not detected bees on path - ask them to download from URL, install, and set bees home
12
+ #if no BEES_HOME, then can either search for it (home dir), or ask them to set it
13
+
11
14
 
12
15
  if not has_program?('bees') then
13
- abort('Please install the CloudBees SDK www.cloudbees.com/run.cb')
16
+ abort('No CloudBees detected. Please install the CloudBees SDK:
17
+ 1 download it from: http://cloudbees-downloads.s3.amazonaws.com/sdk/cloudbees-sdk-0.5.0-dist.zip
18
+ 2 unzip to location of your choice
19
+ 3 add the bees or bees.bat command to your path (depending on platform)
20
+ 4 set the BEES_HOME environment variable to point to where you installed the SDK
21
+ 5 there is no step 5.')
14
22
  end
15
23
 
16
24
  if not has_program?('warble') then
17
25
  abort('Please install warbler (gem install warbler)')
18
26
  end
19
27
 
28
+ if not ENV['BEES_HOME'] then
29
+ abort("You have the bees command installed, but the BEES_HOME environment variable is not set, please set it to where the SDK is installed.")
30
+ end
31
+
32
+
33
+ @usage = "
34
+ This provides ruby/rack/rails commands for CloudBees services, deploys your app using jruby and warbler to RUN@cloud.
35
+ Access your web console at https://run.cloudbees.com - you can find your app ids and db ids etc from there, create databases and more.
36
+
37
+ Usage:
38
+ cloudbees deploy [account_name/application_name]
39
+ - this will package the app in the current directory,
40
+ and deploy it with production environment settings.
41
+ Add on \"a description\" (with quotes) at the end optionally for tagging.
42
+ cloudbees tail
43
+ - open a live tail to your app as it is running
44
+ cloudbees restart
45
+ - restart the app, if you need to.
46
+ cloudbees delete
47
+ - delete the app
48
+ cloudbees help
49
+ - show help on the cloudbees SDK and the 'bees' command
50
+
51
+
52
+ "
20
53
 
21
- usage_message = 'Usage: cloudbees deploy USER/APPNAME ["(optional) description here"]'
22
54
 
23
- if ARGV.size < 2 then
24
- abort(usage_message)
55
+
56
+ if ARGV.size == 0 then
57
+ abort(@usage)
58
+
25
59
  end
26
60
 
27
- task = ARGV[0]
28
61
 
29
- if task != "deploy" then
30
- abort(usage_message)
62
+
63
+ @command = ARGV[0]
64
+
65
+ if not ["deploy", "tail", "restart", "delete", "help"].include? @command then
66
+ abort(@usage)
31
67
  end
32
68
 
69
+ def stash_app_id id
70
+ File.open("cloudbees.appid", 'w') {|f| f.write(id) }
71
+ end
72
+
73
+ def get_app_id
74
+ if ARGV.size == 1 then
75
+ if File.exists?('cloudbees.appid') then
76
+ File.read('cloudbees.appid')
77
+ else
78
+ puts "Please enter application id (acount_name/application_name)"
79
+ app_id = STDIN.gets.chomp
80
+ stash_app_id app_id
81
+ app_id
82
+ end
83
+ else
84
+ ARGV[2]
85
+ end
86
+ end
33
87
 
34
- app_id = ARGV[1]
88
+ def deploy
35
89
 
90
+ app_id = get_app_id
36
91
 
92
+ puts "Packaging the application locally, please wait..."
93
+ if not system("warble") then
94
+ abort("Unable to package the application as a war, see errors above")
95
+ end
37
96
 
38
- puts "Packaging the application locally, please wait..."
97
+ wars = Dir.glob("*.war")
98
+ if wars.size != 1 then
99
+ abort("Unable to find war to deploy - warbler failure.")
100
+ end
39
101
 
40
- packaging_success = system("warble")
102
+ puts "Now deploying to CloudBees..."
103
+ if ARGV.size == 3 then
104
+ `bees app:deploy -a #{app_id} -m "#{ARGV[2]}" #{wars[0]}`
105
+ else
106
+ `bees app:deploy -a #{app_id} #{wars[0]}"`
107
+ end
108
+ end
41
109
 
42
- if not packaging_success then
43
- abort("Unable to package the application as a war, see errors above")
110
+ def tail
111
+ app_id = get_app_id
112
+ system("bees app:tail -a #{app_id}")
44
113
  end
45
114
 
46
- wars = Dir.glob("*.war")
115
+ def restart
116
+ app_id = get_app_id
117
+ system("bees app:restart -a #{app_id}")
118
+ end
47
119
 
48
- if wars.size != 1 then
49
- abort("Unable to find war to deploy - warbler failure.")
120
+ def delete
121
+ puts "Please enter the app id that you want to delete:"
122
+ app_id = gets
123
+ system("bees app:delete -a #{app_id}")
50
124
  end
51
125
 
52
- puts "Now deploying to CloudBees..."
126
+ def help
127
+ puts @usage
128
+ puts "
129
+
130
+ Databases in rails:
131
+ You can use the CloudBees managed MySQL databases if you wish. You can create these with the bees command or
132
+ from run.cloudbees.com.
133
+ Your app will be deployed in production environment, so your database.yml (production) should look like:
53
134
 
54
- if ARGV.size == 2 then
55
- `bees app:deploy -a #{app_id} #{wars[0]}"`
56
- else
57
- `bees app:deploy -a #{app_id} -m "#{ARGV[2]}" #{wars[0]}`
135
+ adapter: jdbc
136
+ driver: com.cloudbees.jdbc.Driver
137
+ url: jdbc:cloudbees://BEES_DB_NAME(get from console)
138
+ username: BEES_DB_USERNAME(get from console)
139
+ password: BEES_DB_PASSWORD(get from console)
140
+
141
+ You can get more details about managed databases on you run.cloudbees.com console.
142
+
143
+ Also, you can use the 'bees' command for more low level control:
144
+ bees help
145
+
146
+ Also check out https://cloudbees.zendesk.com/entries/417131-rails for more info.
147
+ Please go to https://cloudbees.zendesk.com/categories/2200-run-cloud for any questions.
148
+
149
+ "
58
150
  end
59
151
 
152
+
153
+
154
+ eval(@command)
155
+
@@ -1,5 +1,5 @@
1
1
  module NAME
2
2
 
3
- VERSION = "0.1.4".freeze
3
+ VERSION = "0.1.5".freeze
4
4
 
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudbees
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Neale
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-31 00:00:00 +11:00
18
+ date: 2011-02-04 00:00:00 +11:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency