jdc 0.2.1.pre → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +24 -1277
- data/README.md +102 -0
- data/bin/jdc +2 -12
- data/{lib/tunnel/helper-app → caldecott_helper}/server.rb +5 -5
- data/{lib/tunnel/config → config}/clients.yml +2 -2
- data/config/micro/paths.yml +22 -0
- data/config/micro/refresh_ip.rb +20 -0
- data/lib/cli/commands/admin.rb +58 -0
- data/lib/cli/commands/apps.rb +1129 -0
- data/lib/cli/commands/base.rb +228 -0
- data/lib/cli/commands/manifest.rb +56 -0
- data/lib/cli/commands/micro.rb +115 -0
- data/lib/cli/commands/misc.rb +126 -0
- data/lib/cli/commands/services.rb +178 -0
- data/lib/cli/commands/user.rb +14 -0
- data/lib/cli/config.rb +173 -0
- data/lib/cli/console_helper.rb +170 -0
- data/lib/cli/core_ext.rb +122 -0
- data/lib/cli/errors.rb +19 -0
- data/lib/cli/frameworks.rb +265 -0
- data/lib/cli/manifest_helper.rb +300 -0
- data/lib/cli/runner.rb +505 -0
- data/lib/cli/services_helper.rb +84 -0
- data/lib/cli/tunnel_helper.rb +332 -0
- data/lib/cli/usage.rb +86 -0
- data/lib/cli/version.rb +7 -0
- data/lib/cli/zip_util.rb +77 -0
- data/lib/cli.rb +53 -0
- data/lib/jdc/client.rb +457 -0
- data/lib/jdc/const.rb +25 -0
- data/lib/jdc/micro/switcher/base.rb +97 -0
- data/lib/{micro → jdc/micro}/switcher/darwin.rb +3 -5
- data/lib/{micro → jdc/micro}/switcher/dummy.rb +1 -1
- data/lib/jdc/micro/switcher/linux.rb +16 -0
- data/lib/{micro → jdc/micro}/switcher/windows.rb +5 -5
- data/lib/{micro → jdc/micro}/vmrun.rb +19 -26
- data/lib/{micro → jdc}/micro.rb +15 -15
- data/lib/jdc/signature/version.rb +27 -0
- data/lib/jdc/signer.rb +13 -0
- data/lib/jdc/timer.rb +12 -0
- data/lib/jdc.rb +2 -15
- metadata +210 -360
- data/Rakefile +0 -13
- data/lib/admin/README.md +0 -15
- data/lib/admin/curl.rb +0 -60
- data/lib/admin/guid.rb +0 -89
- data/lib/admin/plugin.rb +0 -6
- data/lib/admin/service_auth_token.rb +0 -94
- data/lib/admin/service_broker/add.rb +0 -47
- data/lib/admin/service_broker/service_brokers.rb +0 -24
- data/lib/admin/set_quota.rb +0 -44
- data/lib/console/README.md +0 -8
- data/lib/console/console.rb +0 -187
- data/lib/console/plugin.rb +0 -33
- data/lib/jdc/cli/app/app.rb +0 -43
- data/lib/jdc/cli/app/apps.rb +0 -87
- data/lib/jdc/cli/app/base.rb +0 -72
- data/lib/jdc/cli/app/delete.rb +0 -95
- data/lib/jdc/cli/app/deprecated.rb +0 -11
- data/lib/jdc/cli/app/env.rb +0 -78
- data/lib/jdc/cli/app/events.rb +0 -45
- data/lib/jdc/cli/app/files.rb +0 -137
- data/lib/jdc/cli/app/health.rb +0 -26
- data/lib/jdc/cli/app/instances.rb +0 -53
- data/lib/jdc/cli/app/logs.rb +0 -76
- data/lib/jdc/cli/app/push/create.rb +0 -108
- data/lib/jdc/cli/app/push/interactions.rb +0 -86
- data/lib/jdc/cli/app/push/sync.rb +0 -57
- data/lib/jdc/cli/app/push.rb +0 -103
- data/lib/jdc/cli/app/rename.rb +0 -35
- data/lib/jdc/cli/app/restart.rb +0 -31
- data/lib/jdc/cli/app/scale.rb +0 -63
- data/lib/jdc/cli/app/start.rb +0 -161
- data/lib/jdc/cli/app/stats.rb +0 -67
- data/lib/jdc/cli/app/stop.rb +0 -27
- data/lib/jdc/cli/domain/base.rb +0 -9
- data/lib/jdc/cli/domain/domains.rb +0 -40
- data/lib/jdc/cli/domain/map.rb +0 -55
- data/lib/jdc/cli/domain/unmap.rb +0 -56
- data/lib/jdc/cli/help.rb +0 -15
- data/lib/jdc/cli/interactive.rb +0 -105
- data/lib/jdc/cli/login_requirements.rb +0 -15
- data/lib/jdc/cli/organization/base.rb +0 -14
- data/lib/jdc/cli/organization/create.rb +0 -37
- data/lib/jdc/cli/organization/delete.rb +0 -63
- data/lib/jdc/cli/organization/org.rb +0 -45
- data/lib/jdc/cli/organization/orgs.rb +0 -30
- data/lib/jdc/cli/organization/rename.rb +0 -37
- data/lib/jdc/cli/populators/base.rb +0 -16
- data/lib/jdc/cli/populators/organization.rb +0 -32
- data/lib/jdc/cli/populators/populator_methods.rb +0 -64
- data/lib/jdc/cli/populators/space.rb +0 -33
- data/lib/jdc/cli/populators/target.rb +0 -13
- data/lib/jdc/cli/route/base.rb +0 -9
- data/lib/jdc/cli/route/delete.rb +0 -28
- data/lib/jdc/cli/route/map.rb +0 -68
- data/lib/jdc/cli/route/routes.rb +0 -26
- data/lib/jdc/cli/route/unmap.rb +0 -56
- data/lib/jdc/cli/service/base.rb +0 -9
- data/lib/jdc/cli/service/bind.rb +0 -44
- data/lib/jdc/cli/service/create.rb +0 -159
- data/lib/jdc/cli/service/delete.rb +0 -83
- data/lib/jdc/cli/service/rename.rb +0 -36
- data/lib/jdc/cli/service/service.rb +0 -42
- data/lib/jdc/cli/service/service_instance_helper.rb +0 -99
- data/lib/jdc/cli/service/services.rb +0 -111
- data/lib/jdc/cli/service/unbind.rb +0 -37
- data/lib/jdc/cli/space/base.rb +0 -29
- data/lib/jdc/cli/space/create.rb +0 -67
- data/lib/jdc/cli/space/delete.rb +0 -56
- data/lib/jdc/cli/space/rename.rb +0 -38
- data/lib/jdc/cli/space/space.rb +0 -66
- data/lib/jdc/cli/space/spaces.rb +0 -57
- data/lib/jdc/cli/space/switch.rb +0 -19
- data/lib/jdc/cli/start/base.rb +0 -41
- data/lib/jdc/cli/start/colors.rb +0 -13
- data/lib/jdc/cli/start/target.rb +0 -50
- data/lib/jdc/cli/start/target_prettifier.rb +0 -17
- data/lib/jdc/cli/start/targets.rb +0 -16
- data/lib/jdc/cli/user/base.rb +0 -30
- data/lib/jdc/cli/user/create.rb +0 -52
- data/lib/jdc/cli/user/passwd.rb +0 -37
- data/lib/jdc/cli/user/register.rb +0 -43
- data/lib/jdc/cli/user/users.rb +0 -32
- data/lib/jdc/cli.rb +0 -556
- data/lib/jdc/constants.rb +0 -11
- data/lib/jdc/errors.rb +0 -19
- data/lib/jdc/object_extensions.rb +0 -15
- data/lib/jdc/plugin.rb +0 -56
- data/lib/jdc/spacing.rb +0 -89
- data/lib/jdc/spec_helper.rb +0 -1
- data/lib/jdc/test_support.rb +0 -6
- data/lib/jdc/version.rb +0 -3
- data/lib/manifests/errors.rb +0 -35
- data/lib/manifests/loader/builder.rb +0 -39
- data/lib/manifests/loader/normalizer.rb +0 -145
- data/lib/manifests/loader/resolver.rb +0 -79
- data/lib/manifests/loader.rb +0 -31
- data/lib/manifests/manifests.rb +0 -344
- data/lib/manifests/plugin.rb +0 -140
- data/lib/micro/README.md +0 -9
- data/lib/micro/errors.rb +0 -4
- data/lib/micro/plugin.rb +0 -197
- data/lib/micro/switcher/base.rb +0 -79
- data/lib/micro/switcher/linux.rb +0 -16
- data/lib/tasks/gem_release.rake +0 -42
- data/lib/tunnel/README.md +0 -29
- data/lib/tunnel/helper-app/Gemfile +0 -10
- data/lib/tunnel/helper-app/Gemfile.lock +0 -48
- data/lib/tunnel/plugin.rb +0 -183
- data/lib/tunnel/tunnel.rb +0 -295
@@ -1,15 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
module JDCMicro
|
1
|
+
module JDC::Micro
|
4
2
|
class VMrun
|
5
3
|
attr_reader :vmx, :vmrun
|
6
4
|
|
7
5
|
def initialize(config)
|
8
|
-
@platform = config[
|
6
|
+
@platform = config['platform']
|
9
7
|
@user = 'root' # must use root as we muck around with system settings
|
10
|
-
@password = config[
|
11
|
-
@vmrun = config[
|
12
|
-
@vmx = config[
|
8
|
+
@password = config['password']
|
9
|
+
@vmrun = config['vmrun']
|
10
|
+
@vmx = config['vmx']
|
13
11
|
|
14
12
|
# TODO honor TMPDIR
|
15
13
|
if @platform == :windows
|
@@ -19,10 +17,6 @@ module JDCMicro
|
|
19
17
|
end
|
20
18
|
end
|
21
19
|
|
22
|
-
def vmx
|
23
|
-
@vmx
|
24
|
-
end
|
25
|
-
|
26
20
|
def connection_type
|
27
21
|
read_variable('ethernet0.connectionType')
|
28
22
|
end
|
@@ -41,7 +35,7 @@ module JDCMicro
|
|
41
35
|
|
42
36
|
def domain
|
43
37
|
# switch to Dir.mktmpdir
|
44
|
-
state_config =
|
38
|
+
state_config = JDC::Micro.escape_path(File.join(@temp_dir, 'state.yml'))
|
45
39
|
run('CopyFileFromGuestToHost', "/var/vcap/bosh/state.yml #{state_config}")
|
46
40
|
bosh_config = YAML.load_file(state_config)
|
47
41
|
bosh_config['properties']['domain']
|
@@ -49,8 +43,8 @@ module JDCMicro
|
|
49
43
|
|
50
44
|
def ip
|
51
45
|
# switch to Dir.mktmpdir
|
52
|
-
path =
|
53
|
-
ip_file =
|
46
|
+
path = JDC::Micro.escape_path(JDC::Micro.config_file('refresh_ip.rb'))
|
47
|
+
ip_file = JDC::Micro.escape_path(File.join(@temp_dir, 'ip.txt'))
|
54
48
|
run('CopyFileFromHostToGuest', "#{path} /tmp/refresh_ip.rb")
|
55
49
|
run('runProgramInGuest', '/tmp/refresh_ip.rb')
|
56
50
|
run('CopyFileFromGuestToHost', "/tmp/ip.txt #{ip_file}")
|
@@ -60,7 +54,7 @@ module JDCMicro
|
|
60
54
|
def list
|
61
55
|
vms = run("list")
|
62
56
|
vms.delete_if { |line| line =~ /^Total/ }
|
63
|
-
vms.map { |line|
|
57
|
+
vms.map { |line| JDC::Micro.escape_path(File.expand_path(line)) }
|
64
58
|
end
|
65
59
|
|
66
60
|
def offline?
|
@@ -74,12 +68,12 @@ module JDCMicro
|
|
74
68
|
elsif $?.exitstatus == 0
|
75
69
|
return true
|
76
70
|
else
|
77
|
-
raise
|
71
|
+
raise "failed to execute vmrun:\n#{result}"
|
78
72
|
end
|
79
73
|
end
|
80
74
|
|
81
75
|
def offline!
|
82
|
-
path =
|
76
|
+
path = JDC::Micro.escape_path(JDC::Micro.config_file('offline.conf'))
|
83
77
|
run('CopyFileFromHostToGuest', "#{path} /etc/dnsmasq.d/offline.conf")
|
84
78
|
run('runProgramInGuest', '/usr/bin/touch /var/vcap/micro/offline')
|
85
79
|
run('runProgramInGuest',
|
@@ -107,7 +101,7 @@ module JDCMicro
|
|
107
101
|
elsif $?.exitstatus == 1
|
108
102
|
return false
|
109
103
|
else
|
110
|
-
raise
|
104
|
+
raise "failed to execute vmrun:\n#{result}"
|
111
105
|
end
|
112
106
|
end
|
113
107
|
|
@@ -134,15 +128,14 @@ module JDCMicro
|
|
134
128
|
if command.include?('Guest')
|
135
129
|
command = "-gu #{@user} -gp #{@password} #{command}"
|
136
130
|
end
|
137
|
-
|
131
|
+
JDC::Micro.run_command(@vmrun, "#{command} #{@vmx} #{args}")
|
138
132
|
end
|
139
133
|
|
140
134
|
def running?
|
141
135
|
vms = list
|
142
136
|
if @platform == :windows
|
143
|
-
vms.
|
144
|
-
|
145
|
-
}
|
137
|
+
vms.map! { |x| x.downcase }
|
138
|
+
vms.include?(@vmx.downcase)
|
146
139
|
else
|
147
140
|
# Handle vmx being in a symlinked dir.
|
148
141
|
real_path = nil
|
@@ -154,19 +147,19 @@ module JDCMicro
|
|
154
147
|
end
|
155
148
|
end
|
156
149
|
|
157
|
-
def start
|
150
|
+
def start
|
158
151
|
run('start') unless running?
|
159
152
|
end
|
160
153
|
|
161
|
-
def stop
|
154
|
+
def stop
|
162
155
|
run('stop') if running?
|
163
156
|
end
|
164
157
|
|
165
158
|
def self.locate(platform)
|
166
|
-
paths = YAML.load_file(
|
159
|
+
paths = YAML.load_file(JDC::Micro.config_file('paths.yml'))
|
167
160
|
vmrun_paths = paths[platform.to_s]['vmrun']
|
168
161
|
vmrun_exe = @platform == :windows ? 'vmrun.exe' : 'vmrun'
|
169
|
-
vmrun =
|
162
|
+
vmrun = JDC::Micro.locate_file(vmrun_exe, "VMware", vmrun_paths)
|
170
163
|
err "Unable to locate vmrun, please supply --vmrun option" unless vmrun
|
171
164
|
vmrun
|
172
165
|
end
|
data/lib/{micro → jdc}/micro.rb
RENAMED
@@ -1,32 +1,32 @@
|
|
1
1
|
require 'find'
|
2
|
-
require "micro/errors"
|
3
2
|
|
4
|
-
module
|
3
|
+
module JDC::Micro
|
5
4
|
def config_file(file)
|
6
|
-
File.
|
5
|
+
File.join(File.dirname(__FILE__), '..', '..', 'config', 'micro', file)
|
7
6
|
end
|
8
7
|
|
9
8
|
def escape_path(path)
|
10
9
|
path = File.expand_path(path)
|
11
10
|
if RUBY_PLATFORM =~ /mingw|mswin32|cygwin/
|
12
11
|
if path.include?(' ')
|
13
|
-
'"' + path + '"'
|
12
|
+
return '"' + path + '"'
|
14
13
|
else
|
15
|
-
path
|
14
|
+
return path
|
16
15
|
end
|
17
16
|
else
|
18
|
-
path.gsub(' ', '\ ')
|
17
|
+
return path.gsub(' ', '\ ')
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
22
21
|
def locate_file(file, directory, search_paths)
|
23
22
|
search_paths.each do |path|
|
24
23
|
expanded_path = File.expand_path(path)
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
if File.exists?(expanded_path)
|
25
|
+
Find.find(expanded_path) do |current|
|
26
|
+
if File.directory?(current) && current.include?(directory)
|
27
|
+
full_path = File.join(current, file)
|
28
|
+
return self.escape_path(full_path) if File.exists?(full_path)
|
29
|
+
end
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -37,14 +37,14 @@ module JDCMicro
|
|
37
37
|
def run_command(command, args=nil)
|
38
38
|
# TODO switch to using posix-spawn instead
|
39
39
|
result = %x{#{command} #{args} 2>&1}
|
40
|
-
|
41
|
-
result.split(/\n/)
|
42
|
-
else
|
40
|
+
unless $?.exitstatus == 0
|
43
41
|
if block_given?
|
44
42
|
yield
|
45
43
|
else
|
46
|
-
raise
|
44
|
+
raise "failed to execute #{command} #{args}:\n#{result}"
|
47
45
|
end
|
46
|
+
else
|
47
|
+
result.split(/\n/)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
#encoding=utf-8
|
3
|
+
|
4
|
+
require File.expand_path('../../signer.rb', __FILE__)
|
5
|
+
|
6
|
+
module JDC
|
7
|
+
module Signature
|
8
|
+
module Version
|
9
|
+
|
10
|
+
include JDC::Signer
|
11
|
+
|
12
|
+
def generate_signature secret_key, req
|
13
|
+
return sign(secret_key, string_to_sign(req))
|
14
|
+
end
|
15
|
+
|
16
|
+
def string_to_sign req
|
17
|
+
str = [
|
18
|
+
req[:method],
|
19
|
+
req[:headers]['Content-MD5'],
|
20
|
+
req[:headers]['Content-Type'],
|
21
|
+
req[:headers]['Date'],
|
22
|
+
req[:headers]['Path']
|
23
|
+
].join("\n")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/jdc/signer.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
#encoding=utf-8
|
3
|
+
|
4
|
+
require 'base64'
|
5
|
+
require 'openssl'
|
6
|
+
|
7
|
+
module JDC
|
8
|
+
module Signer
|
9
|
+
def sign secret_key, string_to_sign, digest = 'sha1'
|
10
|
+
return Base64.encode64(OpenSSL::HMAC.digest(digest, secret_key, string_to_sign)).strip
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/jdc/timer.rb
ADDED
data/lib/jdc.rb
CHANGED
@@ -1,16 +1,3 @@
|
|
1
|
-
|
1
|
+
module JDC; end
|
2
2
|
|
3
|
-
require
|
4
|
-
|
5
|
-
require "jdc/cli"
|
6
|
-
|
7
|
-
command_files = "../jdc/cli/{app,route,domain,organization,space,service,start,user}/*.rb"
|
8
|
-
Dir[File.expand_path(command_files, __FILE__)].each do |file|
|
9
|
-
require file unless File.basename(file) == 'base.rb'
|
10
|
-
end
|
11
|
-
|
12
|
-
require "manifests/plugin"
|
13
|
-
require "admin/plugin"
|
14
|
-
require "console/plugin"
|
15
|
-
#require "tunnel/plugin"
|
16
|
-
require "micro/plugin"
|
3
|
+
require 'jdc/client'
|