jdc 0.2.1.pre → 0.2.1
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.
- 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'
|