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.
Files changed (151) hide show
  1. data/LICENSE +24 -1277
  2. data/README.md +102 -0
  3. data/bin/jdc +2 -12
  4. data/{lib/tunnel/helper-app → caldecott_helper}/server.rb +5 -5
  5. data/{lib/tunnel/config → config}/clients.yml +2 -2
  6. data/config/micro/paths.yml +22 -0
  7. data/config/micro/refresh_ip.rb +20 -0
  8. data/lib/cli/commands/admin.rb +58 -0
  9. data/lib/cli/commands/apps.rb +1129 -0
  10. data/lib/cli/commands/base.rb +228 -0
  11. data/lib/cli/commands/manifest.rb +56 -0
  12. data/lib/cli/commands/micro.rb +115 -0
  13. data/lib/cli/commands/misc.rb +126 -0
  14. data/lib/cli/commands/services.rb +178 -0
  15. data/lib/cli/commands/user.rb +14 -0
  16. data/lib/cli/config.rb +173 -0
  17. data/lib/cli/console_helper.rb +170 -0
  18. data/lib/cli/core_ext.rb +122 -0
  19. data/lib/cli/errors.rb +19 -0
  20. data/lib/cli/frameworks.rb +265 -0
  21. data/lib/cli/manifest_helper.rb +300 -0
  22. data/lib/cli/runner.rb +505 -0
  23. data/lib/cli/services_helper.rb +84 -0
  24. data/lib/cli/tunnel_helper.rb +332 -0
  25. data/lib/cli/usage.rb +86 -0
  26. data/lib/cli/version.rb +7 -0
  27. data/lib/cli/zip_util.rb +77 -0
  28. data/lib/cli.rb +53 -0
  29. data/lib/jdc/client.rb +457 -0
  30. data/lib/jdc/const.rb +25 -0
  31. data/lib/jdc/micro/switcher/base.rb +97 -0
  32. data/lib/{micro → jdc/micro}/switcher/darwin.rb +3 -5
  33. data/lib/{micro → jdc/micro}/switcher/dummy.rb +1 -1
  34. data/lib/jdc/micro/switcher/linux.rb +16 -0
  35. data/lib/{micro → jdc/micro}/switcher/windows.rb +5 -5
  36. data/lib/{micro → jdc/micro}/vmrun.rb +19 -26
  37. data/lib/{micro → jdc}/micro.rb +15 -15
  38. data/lib/jdc/signature/version.rb +27 -0
  39. data/lib/jdc/signer.rb +13 -0
  40. data/lib/jdc/timer.rb +12 -0
  41. data/lib/jdc.rb +2 -15
  42. metadata +210 -360
  43. data/Rakefile +0 -13
  44. data/lib/admin/README.md +0 -15
  45. data/lib/admin/curl.rb +0 -60
  46. data/lib/admin/guid.rb +0 -89
  47. data/lib/admin/plugin.rb +0 -6
  48. data/lib/admin/service_auth_token.rb +0 -94
  49. data/lib/admin/service_broker/add.rb +0 -47
  50. data/lib/admin/service_broker/service_brokers.rb +0 -24
  51. data/lib/admin/set_quota.rb +0 -44
  52. data/lib/console/README.md +0 -8
  53. data/lib/console/console.rb +0 -187
  54. data/lib/console/plugin.rb +0 -33
  55. data/lib/jdc/cli/app/app.rb +0 -43
  56. data/lib/jdc/cli/app/apps.rb +0 -87
  57. data/lib/jdc/cli/app/base.rb +0 -72
  58. data/lib/jdc/cli/app/delete.rb +0 -95
  59. data/lib/jdc/cli/app/deprecated.rb +0 -11
  60. data/lib/jdc/cli/app/env.rb +0 -78
  61. data/lib/jdc/cli/app/events.rb +0 -45
  62. data/lib/jdc/cli/app/files.rb +0 -137
  63. data/lib/jdc/cli/app/health.rb +0 -26
  64. data/lib/jdc/cli/app/instances.rb +0 -53
  65. data/lib/jdc/cli/app/logs.rb +0 -76
  66. data/lib/jdc/cli/app/push/create.rb +0 -108
  67. data/lib/jdc/cli/app/push/interactions.rb +0 -86
  68. data/lib/jdc/cli/app/push/sync.rb +0 -57
  69. data/lib/jdc/cli/app/push.rb +0 -103
  70. data/lib/jdc/cli/app/rename.rb +0 -35
  71. data/lib/jdc/cli/app/restart.rb +0 -31
  72. data/lib/jdc/cli/app/scale.rb +0 -63
  73. data/lib/jdc/cli/app/start.rb +0 -161
  74. data/lib/jdc/cli/app/stats.rb +0 -67
  75. data/lib/jdc/cli/app/stop.rb +0 -27
  76. data/lib/jdc/cli/domain/base.rb +0 -9
  77. data/lib/jdc/cli/domain/domains.rb +0 -40
  78. data/lib/jdc/cli/domain/map.rb +0 -55
  79. data/lib/jdc/cli/domain/unmap.rb +0 -56
  80. data/lib/jdc/cli/help.rb +0 -15
  81. data/lib/jdc/cli/interactive.rb +0 -105
  82. data/lib/jdc/cli/login_requirements.rb +0 -15
  83. data/lib/jdc/cli/organization/base.rb +0 -14
  84. data/lib/jdc/cli/organization/create.rb +0 -37
  85. data/lib/jdc/cli/organization/delete.rb +0 -63
  86. data/lib/jdc/cli/organization/org.rb +0 -45
  87. data/lib/jdc/cli/organization/orgs.rb +0 -30
  88. data/lib/jdc/cli/organization/rename.rb +0 -37
  89. data/lib/jdc/cli/populators/base.rb +0 -16
  90. data/lib/jdc/cli/populators/organization.rb +0 -32
  91. data/lib/jdc/cli/populators/populator_methods.rb +0 -64
  92. data/lib/jdc/cli/populators/space.rb +0 -33
  93. data/lib/jdc/cli/populators/target.rb +0 -13
  94. data/lib/jdc/cli/route/base.rb +0 -9
  95. data/lib/jdc/cli/route/delete.rb +0 -28
  96. data/lib/jdc/cli/route/map.rb +0 -68
  97. data/lib/jdc/cli/route/routes.rb +0 -26
  98. data/lib/jdc/cli/route/unmap.rb +0 -56
  99. data/lib/jdc/cli/service/base.rb +0 -9
  100. data/lib/jdc/cli/service/bind.rb +0 -44
  101. data/lib/jdc/cli/service/create.rb +0 -159
  102. data/lib/jdc/cli/service/delete.rb +0 -83
  103. data/lib/jdc/cli/service/rename.rb +0 -36
  104. data/lib/jdc/cli/service/service.rb +0 -42
  105. data/lib/jdc/cli/service/service_instance_helper.rb +0 -99
  106. data/lib/jdc/cli/service/services.rb +0 -111
  107. data/lib/jdc/cli/service/unbind.rb +0 -37
  108. data/lib/jdc/cli/space/base.rb +0 -29
  109. data/lib/jdc/cli/space/create.rb +0 -67
  110. data/lib/jdc/cli/space/delete.rb +0 -56
  111. data/lib/jdc/cli/space/rename.rb +0 -38
  112. data/lib/jdc/cli/space/space.rb +0 -66
  113. data/lib/jdc/cli/space/spaces.rb +0 -57
  114. data/lib/jdc/cli/space/switch.rb +0 -19
  115. data/lib/jdc/cli/start/base.rb +0 -41
  116. data/lib/jdc/cli/start/colors.rb +0 -13
  117. data/lib/jdc/cli/start/target.rb +0 -50
  118. data/lib/jdc/cli/start/target_prettifier.rb +0 -17
  119. data/lib/jdc/cli/start/targets.rb +0 -16
  120. data/lib/jdc/cli/user/base.rb +0 -30
  121. data/lib/jdc/cli/user/create.rb +0 -52
  122. data/lib/jdc/cli/user/passwd.rb +0 -37
  123. data/lib/jdc/cli/user/register.rb +0 -43
  124. data/lib/jdc/cli/user/users.rb +0 -32
  125. data/lib/jdc/cli.rb +0 -556
  126. data/lib/jdc/constants.rb +0 -11
  127. data/lib/jdc/errors.rb +0 -19
  128. data/lib/jdc/object_extensions.rb +0 -15
  129. data/lib/jdc/plugin.rb +0 -56
  130. data/lib/jdc/spacing.rb +0 -89
  131. data/lib/jdc/spec_helper.rb +0 -1
  132. data/lib/jdc/test_support.rb +0 -6
  133. data/lib/jdc/version.rb +0 -3
  134. data/lib/manifests/errors.rb +0 -35
  135. data/lib/manifests/loader/builder.rb +0 -39
  136. data/lib/manifests/loader/normalizer.rb +0 -145
  137. data/lib/manifests/loader/resolver.rb +0 -79
  138. data/lib/manifests/loader.rb +0 -31
  139. data/lib/manifests/manifests.rb +0 -344
  140. data/lib/manifests/plugin.rb +0 -140
  141. data/lib/micro/README.md +0 -9
  142. data/lib/micro/errors.rb +0 -4
  143. data/lib/micro/plugin.rb +0 -197
  144. data/lib/micro/switcher/base.rb +0 -79
  145. data/lib/micro/switcher/linux.rb +0 -16
  146. data/lib/tasks/gem_release.rake +0 -42
  147. data/lib/tunnel/README.md +0 -29
  148. data/lib/tunnel/helper-app/Gemfile +0 -10
  149. data/lib/tunnel/helper-app/Gemfile.lock +0 -48
  150. data/lib/tunnel/plugin.rb +0 -183
  151. data/lib/tunnel/tunnel.rb +0 -295
@@ -1,15 +1,13 @@
1
- require "micro/errors"
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[:platform]
6
+ @platform = config['platform']
9
7
  @user = 'root' # must use root as we muck around with system settings
10
- @password = config[:password]
11
- @vmrun = config[:vmrun]
12
- @vmx = config[:vmx]
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 = JDCMicro.escape_path(File.join(@temp_dir, 'state.yml'))
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 = JDCMicro.escape_path(JDCMicro.config_file('refresh_ip.rb'))
53
- ip_file = JDCMicro.escape_path(File.join(@temp_dir, 'ip.txt'))
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| JDCMicro.escape_path(File.expand_path(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 JDCMicro::MCFError, "failed to execute vmrun:\n#{result}"
71
+ raise "failed to execute vmrun:\n#{result}"
78
72
  end
79
73
  end
80
74
 
81
75
  def offline!
82
- path = JDCMicro.escape_path(JDCMicro.config_file('offline.conf'))
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 JDCMicro::MCFError, "failed to execute vmrun:\n#{result}"
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
- JDCMicro.run_command(@vmrun, "#{command} #{@vmx} #{args}")
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.any? { |x|
144
- x.downcase == @vmx.downcase
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(JDCMicro.config_file('paths.yml'))
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 = JDCMicro.locate_file(vmrun_exe, "VMware", vmrun_paths)
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
@@ -1,32 +1,32 @@
1
1
  require 'find'
2
- require "micro/errors"
3
2
 
4
- module JDCMicro
3
+ module JDC::Micro
5
4
  def config_file(file)
6
- File.expand_path("../../../../config/#{file}", __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
- next unless File.exists?(expanded_path)
26
- Find.find(expanded_path) do |current|
27
- if File.directory?(current) && current.include?(directory)
28
- full_path = File.join(current, file)
29
- return escape_path(full_path) if File.exists?(full_path)
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
- if $?.exitstatus == 0
41
- result.split(/\n/)
42
- else
40
+ unless $?.exitstatus == 0
43
41
  if block_given?
44
42
  yield
45
43
  else
46
- raise JDCMicro::MCFError, "failed to execute #{command} #{args}:\n#{result}"
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
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+ #encoding=utf-8
3
+
4
+ require 'time'
5
+
6
+ module JDC
7
+ module Timer
8
+ def get_time
9
+ return Time.now.utc.strftime("%Y%m%dT%H%M%SZ")
10
+ end
11
+ end
12
+ end
data/lib/jdc.rb CHANGED
@@ -1,16 +1,3 @@
1
- require "jdc/version"
1
+ module JDC; end
2
2
 
3
- require "jdc/object_extensions"
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'