You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by Chris Lalancette <cl...@redhat.com> on 2011/05/26 17:44:42 UTC

[PATCHv2 0/5]: Deltacloud core spec file updates

All,
     This is version 2 of a short series to improve the dependency situation
in deltacloud.  Based on the feedback from both mfojtik and marios, I've gone
ahead and made this a more complete update of the dependency information.  In
particular I've:

1.  Updated the spec file in the repo to match the on in fedora
2.  Added sub-packages to that spec file
3.  Updated bundler to have the correct dependencies
4.  Updated the gemspec to have the correct dependencies

Please review.

Thanks,
Chris Lalancette


[PATCHv2 1/5] Remove rubygem-deltacloud-core.spec

Posted by Chris Lalancette <cl...@redhat.com>.
It's just confusing to have 2 specs lying around.

Signed-off-by: Chris Lalancette <cl...@redhat.com>
---
 server/support/fedora/rubygem-deltacloud-core.spec |  127 --------------------
 1 files changed, 0 insertions(+), 127 deletions(-)
 delete mode 100644 server/support/fedora/rubygem-deltacloud-core.spec

diff --git a/server/support/fedora/rubygem-deltacloud-core.spec b/server/support/fedora/rubygem-deltacloud-core.spec
deleted file mode 100644
index 23a766d..0000000
--- a/server/support/fedora/rubygem-deltacloud-core.spec
+++ /dev/null
@@ -1,127 +0,0 @@
-%global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
-%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
-%global gemname deltacloud-core
-%global geminstdir %{gemdir}/gems/%{gemname}-%{version}
-
-Summary: Deltacloud REST API
-Name: rubygem-%{gemname}
-Version: 0.3.0
-Release: 1%{?dist}
-Group: Development/Languages
-License: ASL 2.0 and MIT
-URL: http://incubator.apache.org/deltacloud
-Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Requires: rubygems
-Requires: ruby(abi) = 1.8
-Requires: rubygem(haml)
-Requires: rubygem(sinatra) >= 1.0
-Requires: rubygem(rack) >= 1.1.0
-Requires: rubygem(thin)
-Requires: rubygem(json) >= 1.4.0
-Requires(post): chkconfig
-Requires(preun): chkconfig
-Requires(preun): initscripts
-Requires(postun): initscripts
-BuildRequires: rubygems
-BuildRequires: ruby(abi) = 1.8
-BuildRequires: rubygem(json) >= 1.4.0
-BuildRequires: rubygem(rake) >= 0.8.7
-BuildRequires: rubygem(rack-test) >= 0.5.0
-BuildRequires: rubygem(rspec) >= 1.3.0
-BuildArch: noarch
-Provides: rubygem(%{gemname}) = %{version}
-
-%description
-The Deltacloud API is built as a service-based REST API.
-You do not directly link a Deltacloud library into your program to use it.
-Instead, a client speaks the Deltacloud API over HTTP to a server
-which implements the REST interface.
-
-%package doc
-Summary: Documentation for %{name}
-Group: Documentation
-Requires:%{name} = %{version}-%{release}
-
-%description doc
-Documentation for %{name}
-
-%prep
-
-%build
-
-%install
-rm -rf %{buildroot}
-mkdir -p %{buildroot}%{gemdir}
-mkdir -p %{buildroot}%{_initddir}
-gem install --local --install-dir %{buildroot}%{gemdir} \
-            --force --rdoc %{SOURCE0}
-mkdir -p %{buildroot}/%{_bindir}
-mkdir -p %{buildroot}/config
-mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir}
-mv %{buildroot}%{geminstdir}/support/fedora/%{gemname} %{buildroot}%{_initddir}
-mv -f %{buildroot}%{geminstdir}/support/fedora/deltacloudd %{buildroot}%{geminstdir}/bin
-rmdir %{buildroot}%{gemdir}/bin
-find %{buildroot}%{geminstdir}/bin -type f | xargs chmod 755
-find %{buildroot}%{geminstdir}/lib -type f | xargs chmod -x
-chmod 755 %{buildroot}%{_initddir}/%{gemname}
-
-%check
-pushd %{geminstdir}
-rake test:mock
-popd
-
-%clean
-rm -rf %{buildroot}
-
-%post
-# This adds the proper /etc/rc*.d links for the script
-/sbin/chkconfig --add %{gemname}
-
-%preun
-if [ $1 -eq 0 ] ; then
-    /sbin/service %{gemname} stop >/dev/null 2>&1
-    /sbin/chkconfig --del %{gemname}
-fi
-
-%postun
-if [ "$1" -ge "1" ] ; then
-    /sbin/service %{gemname} condrestart >/dev/null 2>&1 || :
-fi
-
-%files
-%defattr(-, root, root, -)
-%{_initddir}/%{gemname}
-%{_bindir}/deltacloudd
-%dir %{geminstdir}/
-%{geminstdir}/bin
-%{geminstdir}/LICENSE
-%{geminstdir}/NOTICE
-%{geminstdir}/DISCLAIMER
-%{geminstdir}/config.ru
-%{geminstdir}/*.rb
-%{geminstdir}/Rakefile
-%{geminstdir}/views
-%{geminstdir}/lib
-%{geminstdir}/public/images
-%{geminstdir}/public/stylesheets
-%{geminstdir}/public/favicon.ico
-%{gemdir}/cache/%{gemname}-%{version}.gem
-%{gemdir}/specifications/%{gemname}-%{version}.gemspec
-%{geminstdir}/config/drivers.yaml
-# MIT
-%{gemdir}/gems/%{gemname}-%{version}/public/javascripts
-
-%files doc
-%defattr(-, root, root, -)
-%{gemdir}/doc/%{gemname}-%{version}
-%{geminstdir}/tests
-%{geminstdir}/support
-%{geminstdir}/%{gemname}.gemspec
-
-%changelog
-* Fri Apr  8 2011 David Lutterkort <lu...@redhat.com> - 0.3.0-1
-- - Renamed COPYING to LICENSE, include NOTICE and DISCLAIMER
-
-* Mon Jan 31 2011 Michal Fojtik <mf...@redhat.com> - 0.2.0-1
-- Initial package
-- 
1.7.4.4


[PATCHv2 5/5] Add dependencies to the Gem specification.

Posted by Chris Lalancette <cl...@redhat.com>.
Signed-off-by: Chris Lalancette <cl...@redhat.com>
---
 server/deltacloud-core.gemspec |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/server/deltacloud-core.gemspec b/server/deltacloud-core.gemspec
index ebe8051..302e497 100644
--- a/server/deltacloud-core.gemspec
+++ b/server/deltacloud-core.gemspec
@@ -66,6 +66,8 @@ Gem::Specification.new do |s|
   s.add_dependency('rack-accept', '~> 0.4.3')
   s.add_dependency('json', '>= 1.1.9')
   s.add_dependency('net-ssh', '>= 2.0.0')
+  s.add_dependency('thin', '>= 1.2.5')
+  s.add_dependency('nokogiri', ">= 1.4.3')
   s.add_development_dependency('compass', '>= 0.8.17')
   s.add_development_dependency('nokogiri', '>= 1.4.1', '< 1.4.4')
   s.add_development_dependency('rack-test', '>= 0.5.3')
-- 
1.7.4.4


[PATCHv2 4/5] Fix up the dependencies for bundler.

Posted by Chris Lalancette <cl...@redhat.com>.
Signed-off-by: Chris Lalancette <cl...@redhat.com>
---
 server/Gemfile      |   42 ++++++++++++++++++++++++------------------
 server/Gemfile.lock |   51 ++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 58 insertions(+), 35 deletions(-)

diff --git a/server/Gemfile b/server/Gemfile
index f72f0b5..3ab3d5c 100644
--- a/server/Gemfile
+++ b/server/Gemfile
@@ -1,32 +1,30 @@
 source "http://rubygems.org"
 
-gem "rake"
-gem "eventmachine"
 gem "haml"
 gem "sinatra"
 gem "rack"
-gem "rack-accept"
 gem "thin"
-gem "rerun"
-gem "json"
 gem "net-ssh"
+gem "json"
+gem "rack-accept"
+gem "rake"
+gem "nokogiri"
 
-group :linode do
-  gem 'linode'
+group :azure do
+  gem 'waz-blobs'
 end
 
-group :amazon do
-  gem 'activesupport'
+group :ec2 do
   gem 'aws'
 end
 
-group 'terremark' do
-  gem 'fog'
-  gem 'excon'
+group :gogrid do
 end
 
-group :azure do
-  gem 'waz-blobs'
+group :mock do
+end
+
+group :opennebula do
 end
 
 group :rackspace do
@@ -38,18 +36,26 @@ group :rhevm do
   gem 'rest-client'
 end
 
+group :rimuhosting do
+end
+
+group :sbc do
+end
+
+group 'terremark' do
+  gem 'fog'
+  gem 'excon'
+end
+
 group :test do
   gem 'ruby-debug', :platforms => :mri_18
   gem 'ruby-debug19', :platforms => :mri_19, :require => 'ruby-debug'
   gem "compass"
   gem "vcr"
   gem "webmock"
-  gem "nokogiri"
   gem "rack-test"
   gem "ci_reporter"
   gem "cucumber"
   gem "rcov"
-  gem "rspec", "< 2.0.0" 
-  # This gem is needed by activesupport (aws)
-  gem "i18n"
+  gem "rspec", "< 2.0.0"
 end
diff --git a/server/Gemfile.lock b/server/Gemfile.lock
index 0d48011..f4cec9b 100644
--- a/server/Gemfile.lock
+++ b/server/Gemfile.lock
@@ -1,10 +1,19 @@
 GEM
   remote: http://rubygems.org/
   specs:
-    amazon-ec2 (0.9.15)
-      xml-simple (>= 1.0.12)
+    addressable (2.2.6)
     archive-tar-minitar (0.5.2)
+    aws (2.5.3)
+      http_connection
+      uuidtools
+      xml-simple
     builder (2.1.2)
+    ci_reporter (1.6.4)
+      builder (>= 2.1.2)
+    cloudfiles (1.4.16)
+      mime-types (>= 1.16)
+    cloudservers (0.4.1)
+      json
     columnize (0.3.1)
     compass (0.10.5)
       haml (>= 3.0.4)
@@ -33,14 +42,11 @@ GEM
       json (~> 1.4.6)
       term-ansicolor (~> 1.0.5)
     haml (3.0.21)
-    httparty (0.6.1)
-      crack (= 0.1.8)
+    http_connection (1.4.1)
     json (1.4.6)
     linecache (0.43)
     linecache19 (0.5.11)
       ruby_core_source (>= 0.1.4)
-    linode (0.6.2)
-      httparty (>= 0.4.4)
     mime-types (1.16)
     net-ssh (2.0.23)
     nokogiri (1.4.3.1)
@@ -51,10 +57,8 @@ GEM
       rack (>= 1.0)
     rake (0.8.7)
     rcov (0.9.9)
-    rerun (0.5.2)
-    right_aws (2.0.0)
-      right_http_connection (>= 1.2.1)
-    right_http_connection (1.2.4)
+    rest-client (1.6.1)
+      mime-types (>= 1.16)
     rspec (1.3.0)
     ruby-debug (0.10.3)
       columnize (>= 0.1)
@@ -79,30 +83,43 @@ GEM
       daemons (>= 1.0.9)
       eventmachine (>= 0.12.6)
       rack (>= 1.0.0)
-    xml-simple (1.0.12)
+    uuidtools (2.1.2)
+    vcr (1.10.0)
+    waz-blobs (0.1.1)
+      rest-client (>= 1.0.3)
+      ruby-hmac
+    webmock (1.6.4)
+      addressable (~> 2.2, > 2.2.5)
+      crack (>= 0.1.7)
+    xml-simple (1.0.15)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  amazon-ec2
+  aws
+  ci_reporter
+  cloudfiles
+  cloudservers
   compass
   cucumber
-  eventmachine
+  excon
   fog
   haml
   json
-  linode
+  net-ssh
   nokogiri
   rack
   rack-accept
   rack-test
   rake
   rcov
-  rerun
-  right_aws
-  rspec
+  rest-client
+  rspec (< 2.0.0)
   ruby-debug
   ruby-debug19
   sinatra
   thin
+  vcr
+  waz-blobs
+  webmock
-- 
1.7.4.4


[PATCHv2 2/5] Update the Fedora spec file to match the one in Fedora.

Posted by Chris Lalancette <cl...@redhat.com>.
Signed-off-by: Chris Lalancette <cl...@redhat.com>
---
 server/support/fedora/deltacloud-core.spec |  127 +++++++++++++++------------
 server/support/fedora/deltacloudd          |  128 ----------------------------
 server/support/fedora/deltacloudd-fedora   |    5 +
 3 files changed, 75 insertions(+), 185 deletions(-)
 delete mode 100755 server/support/fedora/deltacloudd
 create mode 100644 server/support/fedora/deltacloudd-fedora

diff --git a/server/support/fedora/deltacloud-core.spec b/server/support/fedora/deltacloud-core.spec
index c4b783d..9d765ba 100644
--- a/server/support/fedora/deltacloud-core.spec
+++ b/server/support/fedora/deltacloud-core.spec
@@ -1,16 +1,14 @@
-%global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
-%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
-%global geminstdir %{gemdir}/gems/deltacloud-core-%{version}
+%global app_root %{_datadir}/%{name}
 
 Summary: Deltacloud REST API
 Name: deltacloud-core
 Version: 0.3.0
-Release: 1%{?dist}
+Release: 5%{?dist}
 Group: Development/Languages
 License: ASL 2.0 and MIT
 URL: http://incubator.apache.org/deltacloud
-Source0: http://gems.rubyforge.org/gems/deltacloud-core-%{version}.gem
-# Note: This would be needed only for EPEL branches:
+Source0: http://gems.rubyforge.org/gems/%{name}-%{version}.gem
+Source1: deltacloudd-fedora
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Requires: rubygems
 Requires: ruby(abi) = 1.8
@@ -18,28 +16,29 @@ Requires: rubygem(haml)
 Requires: rubygem(sinatra) >= 1.0
 Requires: rubygem(rack) >= 1.1.0
 Requires: rubygem(thin)
-Requires: rubygem(haml)
+Requires: rubygem(net-ssh)
 Requires: rubygem(json) >= 1.4.0
-Requires: rubygem(net-ssh) >= 2.0.0
 Requires: rubygem(rack-accept)
-Requires(post): chkconfig
-Requires(preun): chkconfig
-Requires(preun): initscripts
+Requires: rubygem(nokogiri)
+Requires(post):   chkconfig
+Requires(preun):  chkconfig
+Requires(preun):  initscripts
 Requires(postun): initscripts
 BuildRequires: rubygems
 BuildRequires: ruby(abi) = 1.8
-BuildRequires: rubygem(sinatra) >= 1.0
 BuildRequires: rubygem(haml)
-BuildRequires: rubygem(rack) >= 1.1.0
-BuildRequires: rubygem(nokogiri) >= 1.4.3
-BuildRequires: rubygem(net-ssh) >= 2.0.0
+BuildRequires: rubygem(sinatra) >= 1.0
+BuildRequires: rubygem(nokogiri)
+BuildRequires: rubygem(net-ssh)
+BuildRequires: rubygem(aws)
 BuildRequires: rubygem(rack-accept)
-BuildRequires: rubygem(json) >= 1.4.0
 BuildRequires: rubygem(rake) >= 0.8.7
+BuildRequires: rubygem(rack) >= 1.1.0
 BuildRequires: rubygem(rack-test) >= 0.5.0
 BuildRequires: rubygem(rspec) >= 1.3.0
+BuildRequires: rubygem(json) >= 1.4.0
 BuildArch: noarch
-Provides: deltacloud-core = %{version}
+Obsoletes: rubygem-deltacloud-core
 
 %description
 The Deltacloud API is built as a service-based REST API.
@@ -50,33 +49,35 @@ which implements the REST interface.
 %package doc
 Summary: Documentation for %{name}
 Group: Documentation
-Requires:%{name} = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
 
 %description doc
 Documentation for %{name}
 
 %prep
+%setup -q -c -T
+gem unpack -V --target=%{_builddir} %{SOURCE0}
+pushd %{_builddir}/%{name}-%{version}
+popd
 
 %build
 
 %install
 rm -rf %{buildroot}
-mkdir -p %{buildroot}%{gemdir}
+mkdir -p %{buildroot}%{app_root}
 mkdir -p %{buildroot}%{_initddir}
-gem install --local --install-dir %{buildroot}%{gemdir} \
-            --force --rdoc %{SOURCE0}
-mkdir -p %{buildroot}/%{_bindir}
-mkdir -p %{buildroot}/config
-mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir}
-mv %{buildroot}%{geminstdir}/support/fedora/deltacloud-core %{buildroot}%{_initddir}
-mv -f %{buildroot}%{geminstdir}/support/fedora/deltacloudd %{buildroot}%{geminstdir}/bin
-rmdir %{buildroot}%{gemdir}/bin
-find %{buildroot}%{geminstdir}/bin -type f | xargs chmod 755
-find %{buildroot}%{geminstdir}/lib -type f | xargs chmod -x
-chmod 755 %{buildroot}%{_initddir}/deltacloud-core
+mkdir -p %{buildroot}%{_bindir}
+cp -r %{_builddir}/%{name}-%{version}/* %{buildroot}%{app_root}
+mv %{buildroot}%{app_root}/support/fedora/%{name} %{buildroot}%{_initddir}
+install -m 0755 %{SOURCE1} %{buildroot}%{_bindir}/deltacloudd
+find %{buildroot}%{app_root}/lib -type f | xargs chmod -x
+chmod 0755 %{buildroot}%{_initddir}/%{name}
+chmod 0755 %{buildroot}%{app_root}/bin/deltacloudd
+rm -rf %{buildroot}%{app_root}/support
+rdoc --op %{buildroot}%{_defaultdocdir}/%{name}
 
 %check
-pushd %{buildroot}%{geminstdir}
+pushd %{buildroot}%{app_root}
 rake test:mock
 popd
 
@@ -85,50 +86,62 @@ rm -rf %{buildroot}
 
 %post
 # This adds the proper /etc/rc*.d links for the script
-/sbin/chkconfig --add deltacloud-core
+/sbin/chkconfig --add %{name}
 
 %preun
 if [ $1 -eq 0 ] ; then
-    /sbin/service deltacloud-core stop >/dev/null 2>&1
-    /sbin/chkconfig --del deltacloud-core
+    /sbin/service %{name} stop >/dev/null 2>&1
+    /sbin/chkconfig --del %{name}
 fi
 
 %postun
 if [ "$1" -ge "1" ] ; then
-    /sbin/service deltacloud-core condrestart >/dev/null 2>&1 || :
+    /sbin/service %{name} condrestart >/dev/null 2>&1 || :
 fi
 
 %files
 %defattr(-, root, root, -)
-%{_initddir}/deltacloud-core
+%{_initddir}/%{name}
 %{_bindir}/deltacloudd
-%dir %{geminstdir}/
-%{geminstdir}/bin
-%{geminstdir}/LICENSE
-%{geminstdir}/DISCLAIMER
-%{geminstdir}/NOTICE
-%{geminstdir}/config.ru
-%{geminstdir}/*.rb
-%{geminstdir}/Rakefile
-%{geminstdir}/views
-%{geminstdir}/lib
-%{geminstdir}/public/images
-%{geminstdir}/public/stylesheets
-%{geminstdir}/public/favicon.ico
-%{gemdir}/cache/deltacloud-core-%{version}.gem
-%{gemdir}/specifications/deltacloud-core-%{version}.gemspec
-%{geminstdir}/config/drivers.yaml
+%dir %{app_root}/
+%{app_root}/bin
+%{app_root}/config.ru
+%{app_root}/*.rb
+%{app_root}/views
+%{app_root}/lib
+%{app_root}/config
+%dir %{app_root}/public
+%{app_root}/public/images
+%{app_root}/public/stylesheets
+%{app_root}/public/favicon.ico
+%doc %{app_root}/DISCLAIMER
+%doc %{app_root}/NOTICE
+%doc %{app_root}/LICENSE
 # MIT
-%{gemdir}/gems/deltacloud-core-%{version}/public/javascripts
+%{app_root}/public/javascripts
 
 %files doc
 %defattr(-, root, root, -)
-%{gemdir}/doc/deltacloud-core-%{version}
-%{geminstdir}/tests
-%{geminstdir}/support
-%{geminstdir}/deltacloud-core.gemspec
+%{_defaultdocdir}/%{name}
+%{app_root}/tests
+%{app_root}/%{name}.gemspec
+%{app_root}/Rakefile
 
 %changelog
+* Fri May 20 2011 Michal Fojtik <mf...@redhat.com> - 0.3.0-5
+- Obsoleted rubygem-deltacloud-core
+
+* Wed May 11 2011 Michal Fojtik <mf...@redhat.com> - 0.3.0-4
+- Fixed memory calculation for RHEV-M (client)
+
+* Wed May 11 2011 Michal Fojtik <mf...@redhat.com> - 0.3.0-3
+- Fixed loadbalancer bug
+
+* Thu May 5 2011 Michal Fojtik <mf...@redhat.com> - 0.3.0-2
+- Fixed documentation generation
+- Replaced moving with copying
+- Removed support folder from doc subpackage
+
 * Fri Apr  8 2011 David Lutterkort <lu...@redhat.com> - 0.3.0-1
 - Renamed COPYING to LICENSE, include NOTICE and DISCLAIMER
 
diff --git a/server/support/fedora/deltacloudd b/server/support/fedora/deltacloudd
deleted file mode 100755
index 70be6ca..0000000
--- a/server/support/fedora/deltacloudd
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'rubygems'
-require 'optparse'
-
-# See if we can require +name+ and return +true+ if the library is there,
-# +false+ otherwise. Note that, as a side effect, the library will be
-# loaded
-def library_present?(name)
-  begin
-    require name
-    true
-  rescue LoadError
-    false
-  end
-end
-
-options = {
-  :env => 'development'
-}
-optparse = OptionParser.new do |opts|
-
-opts.banner = <<BANNER
-Usage:
-deltacloudd -i <driver> [options]
-
-Options:
-BANNER
-  opts.on( '-i', '--driver DRIVER', 'Driver to use') do |driver|
-    ENV["API_DRIVER"] = driver
-  end
-  opts.on( '-r', '--hostname HOSTNAME',
-           'Bind to HOST address (default: localhost)') do |host|
-    ENV["API_HOST"] = host
-  end
-  opts.on( '-p', '--port PORT', 'Use PORT (default: 3001)') do |port|
-    ENV["API_PORT"] = port
-  end
-  opts.on( '-P', '--provider PROVIDER', 'Use PROVIDER (default is set in the driver)') do |provider|
-    ENV['API_PROVIDER'] = provider
-  end
-  opts.on( '-e', '--env ENV', 'Environment (default: "development")') { |env| options[:env] = env }
-  opts.on( '-h', '--help', '') { options[:help] = true }
-end
-
-optparse.parse!
-
-if options[:help]
- puts optparse
- exit(0)
-end
-
-unless ENV["API_DRIVER"]
-  puts "You need to specify a driver to use (-i <driver>)"
-  exit(1)
-end
-
-ENV["API_HOST"] = "localhost" unless ENV["API_HOST"]
-ENV["API_PORT"] = "3001" unless ENV["API_PORT"]
-
-msg = "Starting Deltacloud API :: #{ENV["API_DRIVER"]} "
-msg << ":: #{ENV['API_PROVIDER']} " if ENV['API_PROVIDER']
-msg << ":: http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api"
-puts msg
-puts
-
-dirname="#{File.dirname(__FILE__)}/.."
-
-have_thin = library_present?('thin')
-have_rerun = library_present?('rerun')
-
-unless have_thin
-  require 'rack'
-
-  # We can't chdir with webrick so add our root directory
-  # onto the load path
-  $: << dirname
-
-  # Read in config.ru and convert it to an instance of Rack::Builder
-  cfgfile = File.read(File.join(dirname, 'config.ru'))
-  inner_app = eval("Rack::Builder.new {(" + cfgfile + "\n )}.to_app",
-                   nil, 'config.ru')
-
-  app = Rack::Builder.new {
-    use Rack::CommonLogger # apache-like logging
-    use Rack::Reloader if options[:env] == "development"
-    set :root, dirname # Set Sinatra root since we can't chdir to ../
-    run inner_app
-  }.to_app
-
-  # There's a bug with string ports on JRuby so convert to int
-  # http://jira.codehaus.org/browse/JRUBY-4868
-  port = ENV["API_PORT"].to_i
-
-  puts "=> Ctrl-C to shutdown server"
-  Rack::Handler::WEBrick.run(app,
-                             :Host => ENV["API_HOST"],
-                             :Port => port,
-                             :AccessLog => [])
-else
-  argv_opts = ARGV.clone
-  argv_opts << ['start'] unless Thin::Runner.commands.include?(options[0])
-  argv_opts << ['--address', ENV["API_HOST"] ]
-  argv_opts << ['--port', ENV["API_PORT"] ]
-  argv_opts << ['--rackup', 'config.ru' ]
-  argv_opts << ['--chdir', dirname ]
-  argv_opts << ['-e', options[:env] ]
-  argv_opts << ['--threaded', '-D', '--stats', '/stats']
-
-  argv_opts.flatten!
-
-  if have_rerun && options[:env] == "development"
-    argv_opts.unshift "thin"
-    command = argv_opts.join(" ")
-    topdir = File::expand_path(File::join(File::dirname(__FILE__), ".."))
-    rerun = Rerun::Runner.new(command, :dir => topdir)
-    rerun.start
-    rerun.join
-  else
-    thin = Thin::Runner.new(argv_opts)
-
-    begin
-      thin.run!
-    rescue Exception => e
-      puts "ERROR: #{e.message}"
-    end
-  end
-end
diff --git a/server/support/fedora/deltacloudd-fedora b/server/support/fedora/deltacloudd-fedora
new file mode 100644
index 0000000..2afbee4
--- /dev/null
+++ b/server/support/fedora/deltacloudd-fedora
@@ -0,0 +1,5 @@
+#!/usr/bin/ruby
+
+root_path = File.join('/', 'usr', 'share', 'deltacloud-core')
+$:.unshift File.join(root_path, 'lib')
+load File.join(root_path, 'bin', 'deltacloudd')
-- 
1.7.4.4


[PATCHv2 3/5] Create subpackages in the RPM spec file.

Posted by Chris Lalancette <cl...@redhat.com>.
These subpackages will bring in all of the dependencies
necessary to run the core to connect to the various
backends.

Signed-off-by: Chris Lalancette <cl...@redhat.com>
---
 server/support/fedora/deltacloud-core.spec |  122 +++++++++++++++++++++++++++-
 1 files changed, 121 insertions(+), 1 deletions(-)

diff --git a/server/support/fedora/deltacloud-core.spec b/server/support/fedora/deltacloud-core.spec
index 9d765ba..fa915bc 100644
--- a/server/support/fedora/deltacloud-core.spec
+++ b/server/support/fedora/deltacloud-core.spec
@@ -3,7 +3,7 @@
 Summary: Deltacloud REST API
 Name: deltacloud-core
 Version: 0.3.0
-Release: 5%{?dist}
+Release: 6%{?dist}
 Group: Development/Languages
 License: ASL 2.0 and MIT
 URL: http://incubator.apache.org/deltacloud
@@ -54,6 +54,93 @@ Requires: %{name} = %{version}-%{release}
 %description doc
 Documentation for %{name}
 
+%package azure
+Summary: Deltacloud Core for Azure
+Requires: %{name} = %{version}-%{release}
+Requires: rubygem(waz-blobs)
+
+%description azure
+The azure sub-package brings in all dependencies necessary to use deltacloud
+core to connect to Azure.
+
+%package ec2
+Summary: Deltacloud Core for EC2
+Requires: %{name} = %{version}-%{release}
+Requires: rubygem(aws)
+
+%description ec2
+The ec2 sub-package brings in all dependencies necessary to use deltacloud
+core to connect to EC2.
+
+%package gogrid
+Summary: Deltacloud Core for GoGrid
+Requires: %{name} = %{version}-%{release}
+
+%description gogrid
+The gogrid sub-package brings in all dependencies necessary to use deltacloud
+core to connect to GoGrid.
+
+%package mock
+Summary: Deltacloud Core for Mock
+Requires: %{name} = %{version}-%{release}
+
+%description mock
+The mock sub-package brings in all dependencies necessary to use deltacloud
+core to connect to Mock.
+
+%package opennebula
+Summary: Deltacloud Core for OpenNebula
+Requires: %{name} = %{version}-%{release}
+
+%description opennebula
+The opennebula sub-package brings in all dependencies necessary to use
+deltacloud core to connect to OpenNebula.
+
+%package rackspace
+Summary: Deltacloud Core for Rackspace
+Requires: %{name} = %{version}-%{release}
+Requires: rubygem(cloudfiles)
+Requires: rubygem(cloudservers)
+
+%description rackspace
+The rackspace sub-package brings in all dependencies necessary to use deltacloud
+core to connect to Rackspace.
+
+%package rhevm
+Summary: Deltacloud Core for RHEV-M
+Requires: %{name} = %{version}-%{release}
+Requires: rubygem(rest-client)
+
+%description rhevm
+The rhevm sub-package brings in all dependencies necessary to use deltacloud
+core to connect to RHEV-M.
+
+%package rimuhosting
+Summary: Deltacloud Core for Rimuhosting
+Requires: %{name} = %{version}-%{release}
+
+%description rimuhosting
+The rimuhosting sub-package brings in all dependencies necessary to use
+deltacloud core to connect to Rimuhosting.
+
+%package sbc
+Summary: Deltacloud Core for SBC
+Requires: %{name} = %{version}-%{release}
+
+%description sbc
+The sbc sub-package brings in all dependencies necessary to use deltacloud core
+to connect to SBC.
+
+%package terremark
+Summary: Deltacloud Core for Terremark
+Requires: %{name} = %{version}-%{release}
+Requires: rubygem(fog)
+Requires: rubygem(excon)
+
+%description terremark
+The terremark sub-package brings in all dependencies necessary to use deltacloud
+core to connect to Terremark.
+
 %prep
 %setup -q -c -T
 gem unpack -V --target=%{_builddir} %{SOURCE0}
@@ -127,7 +214,40 @@ fi
 %{app_root}/%{name}.gemspec
 %{app_root}/Rakefile
 
+%files azure
+%defattr(-, root, root, -)
+
+%files ec2
+%defattr(-, root, root, -)
+
+%files gogrid
+%defattr(-, root, root, -)
+
+%files mock
+%defattr(-, root, root, -)
+
+%files opennebula
+%defattr(-, root, root, -)
+
+%files rackspace
+%defattr(-, root, root, -)
+
+%files rhevm
+%defattr(-, root, root, -)
+
+%files rimuhosting
+%defattr(-, root, root, -)
+
+%files sbc
+%defattr(-, root, root, -)
+
+%files terremark
+%defattr(-, root, root, -)
+
 %changelog
+* Thu May 26 2011 Chris Lalancette <cl...@redhat.com> - 0.3.0-6
+- Create sub-packages to bring in dependencies
+
 * Fri May 20 2011 Michal Fojtik <mf...@redhat.com> - 0.3.0-5
 - Obsoleted rubygem-deltacloud-core
 
-- 
1.7.4.4