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.
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'