cloudfoundry-community/bosh-cloudstack-cpi

View on GitHub
blobstore_client/bin/blobstore_client_console

Summary

Maintainability
Test Coverage
#!/usr/bin/env ruby
#
# Copyright (c) 2009-2012 VMware, Inc.
#
# Usage example:
#
# => Debugger enabled
# => Welcome to BOSH blobstore client console
# You can use 'bsc' to access blobstore client methods
# irb(main):001:0> oid = bsc.create("test data content")
# => "eyJvaWQiOiJlNGQ5MTUzMy1iOTZiLVlYjc1YzQ1NTAi%0ALCJwdXJsIjpudWxsfQ==%0A"
# irb(main):002:0> bsc.get(oid)
# => "test data content"
# irb(main):003:0> bsc.delete(oid)
# => true

require 'blobstore_client'
require 'irb'
require 'irb/completion'
require 'ostruct'
require 'optparse'
require 'psych'

@provider = nil
config_file = nil

opts_parser = OptionParser.new do |opts|
  opts.on('-p', '--provider PROVIDER') { |p| @provider = p }
  opts.on('-c', '--config FILE') { |file| config_file = file }
end
opts_parser.parse!

unless @provider && config_file
  puts opts_parser
  puts "\nExample config file:"
  puts <<-YAML
---
endpoint: http://1.2.3.4:25250
user: agent
password: agent
bucket: resources

  YAML
  exit(1)
end

@config = Psych.load_file(config_file)

module ConsoleHelpers
  def bsc
    @bsc ||= Bosh::Blobstore::Client.create(@provider, @config)
  end
end

include ConsoleHelpers

begin
  require 'ruby-debug'
  puts '=> Debugger enabled'
rescue LoadError
  puts '=> ruby-debug not found, debugger disabled'
end

puts '=> Welcome to BOSH blobstore client console'
puts "You can use 'bsc' to access blobstore client methods"

IRB.start