Skip to content
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.

Commit

Permalink
Merge branch 'vblob'
Browse files Browse the repository at this point in the history
Change-Id: I0d637989462d702ac746afea2c07b5104d9a627a
  • Loading branch information
SonicWang committed Dec 1, 2011
2 parents 915856a + 1498ce1 commit 77fa31f
Show file tree
Hide file tree
Showing 66 changed files with 1,441 additions and 0 deletions.
25 changes: 25 additions & 0 deletions blob/Gemfile
@@ -0,0 +1,25 @@
source :rubygems

gem "eventmachine"
gem "em-http-request"
gem "nats", '>= 0.4.10'
gem "ruby-hmac"
gem "uuidtools"
gem "datamapper", ">= 0.10.2"
gem "do_sqlite3"
gem "dm-sqlite-adapter"
gem "sinatra"
gem "thin"
gem "aws-s3"
gem "json"
gem "yajl-ruby"

gem 'vcap_common', :require => ['vcap/common', 'vcap/component']
gem 'vcap_logging', '>=0.1.3', :require => ['vcap/logging']

group :test do
gem "rake"
gem "rspec"
gem "rcov"
gem "ci_reporter"
end
133 changes: 133 additions & 0 deletions blob/Gemfile.lock
@@ -0,0 +1,133 @@
GEM
remote: http://rubygems.org/
specs:
addressable (2.2.4)
aws-s3 (0.6.2)
builder
mime-types
xml-simple
bcrypt-ruby (2.1.4)
builder (3.0.0)
ci_reporter (1.6.4)
builder (>= 2.1.2)
daemons (1.1.2)
data_objects (0.10.3)
addressable (~> 2.1)
datamapper (1.1.0)
dm-aggregates (= 1.1.0)
dm-constraints (= 1.1.0)
dm-core (= 1.1.0)
dm-migrations (= 1.1.0)
dm-serializer (= 1.1.0)
dm-timestamps (= 1.1.0)
dm-transactions (= 1.1.0)
dm-types (= 1.1.0)
dm-validations (= 1.1.0)
diff-lcs (1.1.2)
dm-aggregates (1.1.0)
dm-core (~> 1.1.0)
dm-constraints (1.1.0)
dm-core (~> 1.1.0)
dm-core (1.1.0)
addressable (~> 2.2.4)
dm-do-adapter (1.1.0)
data_objects (~> 0.10.2)
dm-core (~> 1.1.0)
dm-migrations (1.1.0)
dm-core (~> 1.1.0)
dm-serializer (1.1.0)
dm-core (~> 1.1.0)
fastercsv (~> 1.5.4)
json (~> 1.4.6)
dm-sqlite-adapter (1.1.0)
dm-do-adapter (~> 1.1.0)
do_sqlite3 (~> 0.10.2)
dm-timestamps (1.1.0)
dm-core (~> 1.1.0)
dm-transactions (1.1.0)
dm-core (~> 1.1.0)
dm-types (1.1.0)
bcrypt-ruby (~> 2.1.4)
dm-core (~> 1.1.0)
fastercsv (~> 1.5.4)
json (~> 1.4.6)
stringex (~> 1.2.0)
uuidtools (~> 2.1.2)
dm-validations (1.1.0)
dm-core (~> 1.1.0)
do_sqlite3 (0.10.3)
data_objects (= 0.10.3)
em-http-request (0.3.0)
addressable (>= 2.0.0)
escape_utils
eventmachine (>= 0.12.9)
escape_utils (0.2.4)
eventmachine (0.12.10)
fastercsv (1.5.4)
json (1.4.6)
json_pure (1.5.1)
little-plugger (1.1.2)
logging (1.5.0)
little-plugger (>= 1.1.2)
mime-types (1.16)
nats (0.4.10)
daemons (>= 1.1.0)
eventmachine (>= 0.12.10)
json_pure (>= 1.5.1)
posix-spawn (0.3.6)
rack (1.2.2)
rake (0.8.7)
rcov (0.9.9)
rspec (2.5.0)
rspec-core (~> 2.5.0)
rspec-expectations (~> 2.5.0)
rspec-mocks (~> 2.5.0)
rspec-core (2.5.1)
rspec-expectations (2.5.0)
diff-lcs (~> 1.1.2)
rspec-mocks (2.5.0)
ruby-hmac (0.4.0)
sinatra (1.2.1)
rack (~> 1.1)
tilt (< 2.0, >= 1.2.2)
stringex (1.2.1)
thin (1.2.11)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
tilt (1.2.2)
uuidtools (2.1.2)
vcap_common (0.99)
eventmachine (~> 0.12.10)
logging (>= 1.5.0)
nats
posix-spawn
thin
yajl-ruby
vcap_logging (0.1.3)
xml-simple (1.1.0)
yajl-ruby (0.8.2)

PLATFORMS
ruby

DEPENDENCIES
aws-s3
ci_reporter
datamapper (>= 0.10.2)
dm-sqlite-adapter
do_sqlite3
em-http-request
eventmachine
json
nats (>= 0.4.10)
rake
rcov
rspec
ruby-hmac
sinatra
thin
uuidtools
vcap_common
vcap_logging (>= 0.1.3)
yajl-ruby
39 changes: 39 additions & 0 deletions blob/Rakefile
@@ -0,0 +1,39 @@
require 'rake'

desc "Run specs"
task "spec" => ["bundler:install:test", "test:spec"]

desc "Run specs using RCov"
task "spec:rcov" => ["bundler:install:test", "test:spec:rcov"]

namespace "bundler" do
desc "Install gems"
task "install" do
sh("bundle install")
end

desc "Install gems for test"
task "install:test" do
sh("bundle install --without development production")
end

desc "Install gems for production"
task "install:production" do
sh("bundle install --without development test")
end

desc "Install gems for development"
task "install:development" do
sh("bundle install --without test production")
end
end

namespace "test" do
task "spec" do |t|
sh("cd spec && ../../base/bin/nats-util start && rake spec && ../../base/bin/nats-util stop")
end

task "spec:rcov" do |t|
sh("cd spec && rake spec:rcov")
end
end
29 changes: 29 additions & 0 deletions blob/bin/blob_gateway
@@ -0,0 +1,29 @@
#!/usr/bin/env ruby
# -*- mode: ruby -*-
# Copyright (c) 2009-2011 VMware, Inc.
#

ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', 'base', 'lib')
require 'base/gateway'

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
require 'blob_service/blob_provisioner'

class VCAP::Services::Blob::Gateway < VCAP::Services::Base::Gateway

def provisioner_class
VCAP::Services::Blob::Provisioner
end

def default_config_file
config_base_dir = ENV["CLOUD_FOUNDRY_CONFIG_PATH"] || File.join(File.dirname(__FILE__), '..', 'config')
File.join(config_base_dir, 'blob_gateway.yml')
end

end

VCAP::Services::Blob::Gateway.new.start


37 changes: 37 additions & 0 deletions blob/bin/blob_node
@@ -0,0 +1,37 @@
#!/usr/bin/env ruby
# -*- mode: ruby -*-
# Copyright (c) 2009-2011 VMware, Inc.

ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', 'base', 'lib')
require 'base/node_bin'

$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
require "blob_service/blob_node"

class VCAP::Services::Blob::NodeBin < VCAP::Services::Base::NodeBin

def node_class
VCAP::Services::Blob::Node
end

def default_config_file
config_base_dir = ENV["CLOUD_FOUNDRY_CONFIG_PATH"] || File.join(File.dirname(__FILE__), '..', 'config')
File.join(config_base_dir, 'blob_node.yml')
end

def additional_config(options, config)
options[:config_template] = File.expand_path("../../resources/blob.conf.erb", __FILE__)
options[:port_range] = parse_property(config, "port_range", Range)
options[:nodejs_path] = parse_property(config, "nodejs_path", String)
options[:blobd_log_dir] = parse_property(config, "blobd_log_dir", String)
options[:blobd_path] = parse_property(config, "blobd_path", String)
options[:available_memory] = parse_property(config, "available_memory", Integer)
options[:max_memory] = parse_property(config, "max_memory", Integer)
options
end

end

VCAP::Services::Blob::NodeBin.new.start
23 changes: 23 additions & 0 deletions blob/config/blob_gateway.yml
@@ -0,0 +1,23 @@
---
# cloud_controller_uri: api.vcap.me
service:
name: vblob
version: "1.0"
description: 'vBlob service'
plans: ['free']
tags: ['vblob', 'vblob-1.0', 'nosql']
ip_route: localhost
#proxy:
# host: proxy
# port: 8080
# keepalive: true
index: 0
token: "0xdeadbeef"
mbus: nats://localhost:4222
logging:
level: debug
pid: /var/vcap/sys/run/blob_service.pid
# allow_over_provisioning: false
# z_interval: 30
# check_orphan_interval: 3600
# double_check_orphan_interval: 300
20 changes: 20 additions & 0 deletions blob/config/blob_node.yml
@@ -0,0 +1,20 @@
---
local_db: sqlite3:/var/vcap/services/blob/blob_node.db
mbus: nats://localhost:4222
index: 0
base_dir: /var/vcap/services/blob/instances
ip_route: 127.0.0.1
logging:
level: debug
blobd_log_dir: /var/vcap/sys/service-log/blob
pid: /var/vcap/sys/run/blob_node.pid
available_memory: 4096
max_memory: 128
node_id: blob_node_1
nodejs_path: node
blobd_path: /var/vcap/packages/blob/bin
port_range:
first: 45001
last: 65000
# z_interval: 30
# max_nats_payload: 1048576

0 comments on commit 77fa31f

Please sign in to comment.