[PATCH conductor] Remove helper method error_messages_for, added partial view _error_messages for displaying validation errors.
by jzigmund@redhat.com
From: Jozef Zigmund <jzigmund(a)redhat.com>
---
src/app/helpers/application_helper.rb | 9 ---------
src/app/views/catalog_entries/_form.haml | 3 ++-
src/app/views/catalogs/_form.haml | 3 ++-
src/app/views/deployments/_edit.haml | 3 ++-
src/app/views/deployments/_launch_new.haml | 3 ++-
src/app/views/deployments/_new.haml | 3 ++-
src/app/views/hardware_profiles/_form.haml | 3 ++-
src/app/views/instances/_edit.haml | 3 ++-
src/app/views/layouts/_error_messages.haml | 4 ++++
src/app/views/permissions/new.haml | 3 ++-
src/app/views/pool_families/_form.haml | 3 ++-
src/app/views/pools/_form.haml | 3 ++-
src/app/views/provider_accounts/_form.haml | 3 ++-
src/app/views/realm_mappings/new.haml | 4 +++-
src/app/views/realms/_form.haml | 3 ++-
src/app/views/roles/_form.haml | 3 ++-
src/app/views/settings/self_service.haml | 3 ++-
src/app/views/users/_form.haml | 3 ++-
18 files changed, 37 insertions(+), 25 deletions(-)
create mode 100644 src/app/views/layouts/_error_messages.haml
diff --git a/src/app/helpers/application_helper.rb b/src/app/helpers/application_helper.rb
index c3cf0cc..06570ee 100644
--- a/src/app/helpers/application_helper.rb
+++ b/src/app/helpers/application_helper.rb
@@ -257,14 +257,5 @@ module ApplicationHelper
session[:javascript_enabled]
end
- def error_messages_for(obj)
- return unless obj and obj.errors.present?
- flash[:error] ||= ""
- obj.errors.each_pair do |attr, error|
- #TODO - Need to format this in some sensible way... <ul>?
- flash[:error] << "#{attr.to_s.humanize} #{error}"
- end
- end
-
module_function :count_uptime
end
diff --git a/src/app/views/catalog_entries/_form.haml b/src/app/views/catalog_entries/_form.haml
index 66c5e1a..c93c9b6 100644
--- a/src/app/views/catalog_entries/_form.haml
+++ b/src/app/views/catalog_entries/_form.haml
@@ -1,4 +1,5 @@
-= error_messages_for @catalog_entry
+- if @catalog_entry.errors.any?
+ = render 'layouts/error_messages', :object => @catalog_entry
%fieldset
%p
= form.label :name
diff --git a/src/app/views/catalogs/_form.haml b/src/app/views/catalogs/_form.haml
index 9a46e0c..db0fdcf 100644
--- a/src/app/views/catalogs/_form.haml
+++ b/src/app/views/catalogs/_form.haml
@@ -1,4 +1,5 @@
-= error_messages_for @catalog
+- if @catalog.errors.any?
+ = render 'layouts/error_messages', :object => @catalog
%fieldset
%p
= form.label :name
diff --git a/src/app/views/deployments/_edit.haml b/src/app/views/deployments/_edit.haml
index ba11a05..9aa7fe1 100644
--- a/src/app/views/deployments/_edit.haml
+++ b/src/app/views/deployments/_edit.haml
@@ -1,4 +1,5 @@
-= error_messages_for @deployment
+- if @deployment.errors.any?
+ = render 'layouts/error_messages', :object => @deployment
%h2 Edit deployment
= form_for @deployment do
%ul
diff --git a/src/app/views/deployments/_launch_new.haml b/src/app/views/deployments/_launch_new.haml
index 417ec99..d4c915e 100644
--- a/src/app/views/deployments/_launch_new.haml
+++ b/src/app/views/deployments/_launch_new.haml
@@ -15,7 +15,8 @@
.content
= form_for :deployment, {:url => new_deployment_path, :method => :get, :html => {:class => 'generic'}} do
- = error_messages_for @deployment
+ - if @deployment.errors.any?
+ = render 'layouts/error_messages', :object => @deployment
= hidden_field :deployment, :pool_id
%fieldset
%p
diff --git a/src/app/views/deployments/_new.haml b/src/app/views/deployments/_new.haml
index 7e7a930..9c36365 100644
--- a/src/app/views/deployments/_new.haml
+++ b/src/app/views/deployments/_new.haml
@@ -1,4 +1,5 @@
-= error_messages_for @deployment
+- if @deployment.errors.any?
+ = render 'layouts/error_messages', :object => @deployment
%header.page-header
%h1{:class => controller.controller_name}
Deployment
diff --git a/src/app/views/hardware_profiles/_form.haml b/src/app/views/hardware_profiles/_form.haml
index 8326038..8173f82 100644
--- a/src/app/views/hardware_profiles/_form.haml
+++ b/src/app/views/hardware_profiles/_form.haml
@@ -1,4 +1,5 @@
-= error_messages_for @hardware_profile
+- if @hardware_profile.errors.any?
+ = render 'layouts/error_messages', :object => @hardware_profile
= hwp_form.label :name
= hwp_form.text_field :name
%table
diff --git a/src/app/views/instances/_edit.haml b/src/app/views/instances/_edit.haml
index 475b528..f94551e 100644
--- a/src/app/views/instances/_edit.haml
+++ b/src/app/views/instances/_edit.haml
@@ -1,4 +1,5 @@
-= error_messages_for @instance
+- if @instance.errors.any?
+ = render 'layouts/error_messages', :object => @instance
%h2 Edit instance
= form_for @instance do
%ul
diff --git a/src/app/views/layouts/_error_messages.haml b/src/app/views/layouts/_error_messages.haml
new file mode 100644
index 0000000..612861b
--- /dev/null
+++ b/src/app/views/layouts/_error_messages.haml
@@ -0,0 +1,4 @@
+= pluralize(object.errors.count, "error") + " prohibited this record from being saved:"
+%ul
+- object.errors.full_messages.each do |msg|
+ %li= msg
\ No newline at end of file
diff --git a/src/app/views/permissions/new.haml b/src/app/views/permissions/new.haml
index 08f3295..25bae8e 100644
--- a/src/app/views/permissions/new.haml
+++ b/src/app/views/permissions/new.haml
@@ -1,5 +1,6 @@
.conductor_form
- = error_messages_for @permission
+ - if @permission.errors.any?
+ = render 'layouts/error_messages', :object => @permission
%h2
Add new Permission for #{(a)permission_object.name}
%br/
diff --git a/src/app/views/pool_families/_form.haml b/src/app/views/pool_families/_form.haml
index 7dde46a..faae226 100644
--- a/src/app/views/pool_families/_form.haml
+++ b/src/app/views/pool_families/_form.haml
@@ -1,4 +1,5 @@
-= error_messages_for @pool_family
+- if @pool_family.errors.any?
+ = render 'layouts/error_messages', :object => @pool_family
%fieldset
%p
= form.label :name,'Pool Family Name'
diff --git a/src/app/views/pools/_form.haml b/src/app/views/pools/_form.haml
index 50e91fa..9ab7804 100644
--- a/src/app/views/pools/_form.haml
+++ b/src/app/views/pools/_form.haml
@@ -1,5 +1,6 @@
= form_for @pool, :html => {:class => 'generic'} do |form|
- = error_messages_for @pool
+ - if @pool.errors.any?
+ = render 'layouts/error_messages', :object => @pool
%fieldset
%p
diff --git a/src/app/views/provider_accounts/_form.haml b/src/app/views/provider_accounts/_form.haml
index 0388616..ef5e181 100644
--- a/src/app/views/provider_accounts/_form.haml
+++ b/src/app/views/provider_accounts/_form.haml
@@ -1,4 +1,5 @@
-= error_messages_for @provider_account
+- if @provider_account.errors.any?
+ = render 'layouts/error_messages', :object => @provider_account
= render :partial => 'provider_selection'
%fieldset.options
= form.submit 'Save', :class => "button"
diff --git a/src/app/views/realm_mappings/new.haml b/src/app/views/realm_mappings/new.haml
index 9e2772b..232f7a2 100644
--- a/src/app/views/realm_mappings/new.haml
+++ b/src/app/views/realm_mappings/new.haml
@@ -1,7 +1,9 @@
= render :partial => 'layouts/admin_header'
%div#view
-= error_messages_for @realm_target
+- if @realm_target.errors.any?
+ = render 'layouts/error_messages', :object => @realm_target
+
%h2 Create a new Realm Mapping
= form_for @realm_target, :url => realm_mappings_path do |f|
= f.hidden_field :frontend_realm_id
diff --git a/src/app/views/realms/_form.haml b/src/app/views/realms/_form.haml
index 42d879d..1a79296 100644
--- a/src/app/views/realms/_form.haml
+++ b/src/app/views/realms/_form.haml
@@ -1,4 +1,5 @@
-- error_messages_for @realm
+- if @realm.errors.any?
+ = render 'layouts/error_messages', :object => @realm
%fieldset
= form.label :name, 'Realm Name'
= form.text_field :name, :title => 'realm_name', :value => @realm.name, :class => 'em long'
diff --git a/src/app/views/roles/_form.haml b/src/app/views/roles/_form.haml
index a3192a7..ffcd1b9 100644
--- a/src/app/views/roles/_form.haml
+++ b/src/app/views/roles/_form.haml
@@ -1,4 +1,5 @@
-- error_messages_for @role
+- if @role.errors.any?
+ = render 'layouts/error_messages', :object => @role
%fieldset
= form.label :name, 'Name'
= form.text_field :name, :class => "em long"
diff --git a/src/app/views/settings/self_service.haml b/src/app/views/settings/self_service.haml
index acabed0..bb4d1fc 100644
--- a/src/app/views/settings/self_service.haml
+++ b/src/app/views/settings/self_service.haml
@@ -53,7 +53,8 @@
= t('.quota') + ":"
= text_field :self_service_default_quota, :maximum_running_instances, :class => 'grid_5'
.grid_2.la (instances)
- = error_messages_for @self_service_default_quota if @self_service_default_quota
+ - if @self_service_default_quota.errors.any?
+ = render 'layouts/error_messages', :object => @self_service_default_quota
-#%h3 POOLS
-#%fieldset.clearfix
%label.grid_2.alpha Permissions:
diff --git a/src/app/views/users/_form.haml b/src/app/views/users/_form.haml
index 5e56d73..0a41f27 100644
--- a/src/app/views/users/_form.haml
+++ b/src/app/views/users/_form.haml
@@ -1,4 +1,5 @@
-- error_messages_for @user
+- if @user.errors.any?
+ = render 'layouts/error_messages', :object => @user
%fieldset
%p
--
1.7.6.2
12 years, 7 months
[PATCH] Use a thread to do instance creates.
by Ian Main
From: Chris Lalancette <clalance(a)redhat.com>
I modified Chris' patch to use a thread instead of fork. This pushes
the communications with deltacloud into a thread which can take as long
as it needs to complete the start.
In the future we may want to put a retry in here too.
Signed-off-by: Ian Main <imain(a)redhat.com>
---
src/app/util/taskomatic.rb | 67 +++++++++++++++++++++++++++----------------
1 files changed, 42 insertions(+), 25 deletions(-)
diff --git a/src/app/util/taskomatic.rb b/src/app/util/taskomatic.rb
index 84dabd0..eae459a 100644
--- a/src/app/util/taskomatic.rb
+++ b/src/app/util/taskomatic.rb
@@ -26,27 +26,15 @@ module Taskomatic
task.state = Task::STATE_PENDING
task.save!
- task.instance.provider_account = match.provider_account
- task.instance.create_auth_key unless task.instance.instance_key
-
- dcloud_instance = create_dcloud_instance(task.instance, match)
-
- handle_dcloud_error(dcloud_instance)
+ create_dcloud_instance(task.instance, match)
task.state = Task::STATE_RUNNING
- task.save!
-
- Rails.logger.info "Task instance create completed with key #{dcloud_instance.id} and state #{dcloud_instance.state}"
- task.instance.external_key = dcloud_instance.id
- task.instance.state = dcloud_to_instance_state(dcloud_instance.state)
- task.instance.save!
rescue HttpException => ex
task.failure_code = Task::FAILURE_PROVIDER_CONTACT_FAILED
handle_create_instance_error(task, ex)
rescue Exception => ex
handle_create_instance_error(task, ex)
ensure
- task.instance.save!
task.save!
end
end
@@ -146,18 +134,47 @@ module Taskomatic
end
def self.create_dcloud_instance(instance, match)
- client = match.provider_account.connect
-
- overrides = HardwareProfile.generate_override_property_values(instance.hardware_profile, match.hwp)
-
- client.create_instance(:image_id => match.provider_image.target_identifier,
- :name => instance.name.tr("/", "-"),
- :hwp_id => match.hwp.external_key,
- :hwp_memory => overrides[:memory],
- :hwp_cpu => overrides[:cpu],
- :hwp_storage => overrides[:storage],
- :realm_id => (match.realm.external_key rescue nil),
- :keyname => (instance.instance_key.name))
+ # because creating an instance can take a potentially long time (and
+ # creating multiple of them just prolongs this), we start a new thread
+ # that does this work. The new thread continues to run in the background
+ # and communicates the status back to the main UI via the database
+
+ Thread.new do
+ begin
+ instance.provider_account = match.provider_account
+ instance.create_auth_key unless instance.instance_key
+
+ client = match.provider_account.connect
+
+ overrides = HardwareProfile.generate_override_property_values(instance.hardware_profile, match.hwp)
+
+ dcloud_instance = client.create_instance(:image_id => match.provider_image.target_identifier,
+ :name => instance.name.tr("/", "-"),
+ :hwp_id => match.hwp.external_key,
+ :hwp_memory => overrides[:memory],
+ :hwp_cpu => overrides[:cpu],
+ :hwp_storage => overrides[:storage],
+ :realm_id => (match.realm.external_key rescue nil),
+ :keyname => (instance.instance_key.name))
+
+ handle_dcloud_error(dcloud_instance)
+
+ Rails.logger.info "Task instance create completed with key #{dcloud_instance.id} and state #{dcloud_instance.state}"
+ instance.external_key = dcloud_instance.id
+ instance.state = dcloud_to_instance_state(dcloud_instance.state)
+ rescue Exception => ex
+ # any sort of exception causes us to put the instance in CREATE_FAILED
+ # FIXME: if the exception is raised *after* the create_instance, this
+ # isn't true and will result in a rogue instance
+ Rails.logger.error ex.message
+ Rails.logger.error ex.backtrace.join("\n")
+ instance.state = Instance::STATE_CREATE_FAILED
+ raise ex
+ ensure
+ instance.save!
+ Thread.exit
+ end
+ end
end
def self.matches(instance)
--
1.7.6.2
12 years, 7 months
THANK YOU!
by wes hayutin
I wanted to thank all you guys for you rapid response to some build
issues and blockers. You guys are really turning around issues very
quickly!
Thank you very much!!!
Wes
12 years, 7 months
Qs re #2121 - Warden + OAuth
by Matt Wagner
Hi all,
I picked up #2121 this morning, to integrate a warden authentication
strategy that provides two-legged OAuth. (Which someone described as
"our favorite catch-phrase ever.")
I've spent a bit looking into this, and I think I have a decent
understanding of the technical side of things. But what's not clear to
me at all is the user story.
I think we're actually trying to do two very different things with
OAuth.
One is to be an OAuth "server" that aeolus-image can connect to. I'm
thinking this is more a case of 3-legged OAuth, though, as I think we
want aeolus-image to have user-level permissions. (i.e., aeolus-image
authenticates the user to Conductor via token.)
The other is to act as an OAuth client when connecting to other
services, using two-legged OAuth. Off the top of my head, we want to be
consumers of Katello, iwhd, and Factory. (Actually, I'm thinking that we
want Katello to work both ways, and I'm not sure how this is normally
handled. I suspect that sometimes we'll want to make calls to Katello,
and other times they may wish to make calls to us.)
How many of these things are in scope for this sprint? How many of these
providers actually support OAuth on their end yet?
And how about #2309, "Ensure that owner information is stored as
meta-data in iwhd"? Does it make any sense to consider passing this
information along via OAuth from aeolus-image to Factory?
I'll tinker with getting some OAuth "stuff" in place, but it'd be really
helpful if someone could help fill in the user story / use cases so that
it's not just an academic exercise on my part.
Best,
Matt
12 years, 7 months
[PATCH conductor 1/2] Updated LDAP auth and switched to symbols in settings.yml
by Jan Provazník
From: Jan Provaznik <jprovazn(a)redhat.com>
- LDAP auth is now more configurable, whole username distinguish name
can be set in settings.yml, it's now also compatible with Active Directory.
- also switched to symbols in config/settings.yml to avoid mess (existing :iwhd tag)
---
src/app/models/provider.rb | 2 +-
src/app/models/user.rb | 2 +-
src/config/initializers/warden.rb | 2 +-
src/config/settings.yml | 16 ++++++++++------
src/lib/ldap.rb | 7 ++++---
5 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb
index 84106d3..1b11029 100644
--- a/src/app/models/provider.rb
+++ b/src/app/models/provider.rb
@@ -37,7 +37,7 @@ class Provider < ActiveRecord::Base
require 'util/conductor'
include PermissionedObject
- DEFAULT_DELTACLOUD_URL = SETTINGS_CONFIG['default_deltacloud_url']
+ DEFAULT_DELTACLOUD_URL = SETTINGS_CONFIG[:default_deltacloud_url]
has_many :provider_accounts, :dependent => :destroy
has_many :hardware_profiles, :dependent => :destroy
diff --git a/src/app/models/user.rb b/src/app/models/user.rb
index c4f87c8..3d275b6 100644
--- a/src/app/models/user.rb
+++ b/src/app/models/user.rb
@@ -106,7 +106,7 @@ class User < ActiveRecord::Base
end
def self.authenticate_using_ldap(username, password)
- if Ldap.valid_ldap_authentication?(username, password, SETTINGS_CONFIG['auth']['ldap'])
+ if Ldap.valid_ldap_authentication?(username, password, SETTINGS_CONFIG[:auth][:ldap])
u = User.find_by_login(username) || create_ldap_user!(username)
return u
else
diff --git a/src/config/initializers/warden.rb b/src/config/initializers/warden.rb
index 251fb42..33e7dfd 100644
--- a/src/config/initializers/warden.rb
+++ b/src/config/initializers/warden.rb
@@ -5,7 +5,7 @@ Rails.configuration.middleware.use RailsWarden::Manager do |config|
# all UI requests are handled in the default scope
config.scope_defaults(
:user,
- :strategies => [SETTINGS_CONFIG['auth']['strategy'].to_sym],
+ :strategies => [SETTINGS_CONFIG[:auth][:strategy].to_sym],
:store => true,
:action => 'unauthenticated'
)
diff --git a/src/config/settings.yml b/src/config/settings.yml
index 621500c..0a629f1 100644
--- a/src/config/settings.yml
+++ b/src/config/settings.yml
@@ -1,10 +1,14 @@
-default_deltacloud_url: http://localhost:3002/api
+:default_deltacloud_url: http://localhost:3002/api
-auth:
+:auth:
# supported strategies: database, ldap
- strategy: database
- ldap:
- host: localhost
- base: ou=People,dc=my-domain,dc=com
+ :strategy: database
+ :ldap:
+ :host: localhost
+ # '%s' expression in username_dn string will be replaced
+ # by user's login
+ # username_dn: "deltacloud\%s"
+ :username_dn: uid=%s,ou=People,dc=my-domain,dc=com
+ # :port: 389
:iwhd:
:url: http://localhost:9090
diff --git a/src/lib/ldap.rb b/src/lib/ldap.rb
index 53f6978..2f91ba6 100644
--- a/src/lib/ldap.rb
+++ b/src/lib/ldap.rb
@@ -23,13 +23,14 @@ module Ldap
def initialize(config)
@ldap = Net::LDAP.new
- @ldap.host = config['host']
- @base = config['base']
+ @ldap.host = config[:host]
+ @ldap.port = config[:port] || 389
+ @username_dn = config[:username_dn]
end
def bind?(uid, password)
begin
- @ldap.auth "uid=#{uid},#{@base}", password
+ @ldap.auth(@username_dn % uid, password)
@ldap.bind
rescue Exception => e
Rails.logger.error e.message
--
1.7.6
12 years, 7 months
2-legged OAuth vs Basic
by Pete Zaitcev
Guys, here's a basic question: if we implement an authentication from scratch,
as is the case in iwhd, what does 2-legged OAuth buy us that Basic would not?
It is my understanding that although Basic is quite weak, 2-legged OAuth
does not offer a protection from any new attacks, despite offering a timestamp
and nonce. It can still be replayed, if used without SSL, right? I mean, if
the replay is offered fast enough. So, why is there a tilt towards OAuth?
Is there a commonality with 3-legged OAuth that we want to exploit? Or what?
-- Pete
12 years, 7 months
How to generate JSON response
by Jan Provazník
Hi,
today I was trying to solve a problem with wrong "Download key" link.
Problem is more general and is in a way how we generate JSON data which
are used by backbone for autoupdating a page. In short, problem is that
we generate JSON hash in model (using standard as_json), but we are
adding view-related stuff (links) by calling views helper methods,
example from app/models/instance.rb:
def as_json(options={})
super(options).merge({
:owner => owner.name,
:provider => provider_account ? provider_account.provider.name : '',
:href => Rails.application.routes.url_helpers.instance_path(id),
:instance_key_path => instance_key_path,
})
end
This Rails.application.routes.url_helpers.instance_path doesn't work
properly if rails application runs with some prefix (relative_url_root,
/conductor in our case), helper methods called by this way return paths
w/o prefix part.
There are 2 ways how to deal with this:
1) try to fix links generated from model by:
a) passing prefix as param to as_json method, then prepend it to
generated links (hack)
b) generate links in controller and then pass them as params to
as_json method (smaller hack, but still violates MVC design as there
will be other view-related stuff in model)
2) generate JSON in view template (only for controller/actions used by
backbone) - this means more code, but it is quite clean. Above example
rewritten to template would look like this:
+++ app/views/instances/_list.json.haml:
= @instances.map{|i| json_hash(i)}.to_json.html_safe
+++ app/helpers/instances_helper.rb
module InstancesHelper
def json_hash(inst)
inst.as_json.merge({
:owner => inst.owner.name,
:provider => inst.provider_account ?
inst.provider_account.provider.name : '',
:href => instance_path(inst.id),
:instance_key_path => key_instance_path(inst.id),
})
end
end
Above view/helepr method could be simplified by using gem for creating
json/xml: https://github.com/nesquena/rabl
But this means adding another gem (not in fedora) and another
dependency, so I'm pesimistic about this ;).
All above methods seem to be not 100% ideal, I would expect something
easier/cleaner but I surprisingly wasn't able to fine better solution -
I would expect that many people hit same problem. But maybe I just used
wrong google queries.
And here comes my question:
What do you think is the best way how to solved this?
If no response, I'll probably use option 2).
Thanks, Jan
12 years, 7 months
Consistent %{release} handling for packages built from git
by James Laska
Greetings #aeolus,
I've been poking around with a script to ease the process of building
and installing packages from git for various aeolus components. This
script will be called by existing test automation scripts to prepare the
environment prior to running tests.
One thing I'm discovering is that not all git-built packages use a
%{release} field. For example, the RPM %{release} field doesn't change
even when the code changes. This makes it 1) hard to track down what
source code is included in which git-built package, and 2) difficult to
determine whether the git-build package installed last week, is older
than the git-built package built today.
For example [1] ...
$ git clone git://github.com/clalancette/oz.git
$ cd oz && make rpm
...
Wrote: /tmp/jlaska-rpm/SRPMS/oz-0.7.0-1.fc15.src.rpm
Wrote: /tmp/jlaska-rpm/RPMS/noarch/oz-0.7.0-1.fc15.noarch.rpm
^^^^^^^
As compared to aeolus-conductor, which includes a timestamp and githash
in the %{release} ...
$ git clone git://git.fedorahosted.org/git/aeolus/conductor.git
$ cd conductor && make rpms
Wrote: /root/rpmbuild/SRPMS/aeolus-conductor-0.4.0-0.20110920170119git369190d.fc16.src.rpm
Wrote: /root/rpmbuild/RPMS/noarch/aeolus-conductor-0.4.0-0.20110920170119git369190d.fc16.noarch.rpm
Wrote: /root/rpmbuild/RPMS/noarch/aeolus-conductor-daemons-0.4.0-0.20110920170119git369190d.fc16.noarch.rpm
Wrote: /root/rpmbuild/RPMS/noarch/aeolus-conductor-doc-0.4.0-0.20110920170119git369190d.fc16.noarch.rpm
Wrote: /root/rpmbuild/RPMS/noarch/aeolus-conductor-devel-0.4.0-0.20110920170119git369190d.fc16.noarch.rpm
I guess the question for the list is, would folks be open to adjusting
their [MR]akefile and .spec's to accommodate including either a
timestamp or git-hash (or both) in the RPM %{release} for packages built
from git? The packages for official Fedora releases wouldn't need this
additional information (although it doesn't hurt). The following
modules would be impacted by this proposal ...
* audrey
* iwhd
* imagefactory - stores $(git describe) in %{version} -- that
works too
* libdeltacloud
Thanks,
James
[1] Not meant to pick on Chris, I just like working in oz.git
12 years, 7 months
[PATCH conductor] Remove the typhoeus dependency.
by Chris Lalancette
As far as I can tell (and from what jayg has told me),
this is no longer necessary.
Signed-off-by: Chris Lalancette <clalance(a)redhat.com>
---
aeolus-conductor.spec.in | 1 -
src/Gemfile | 1 -
src/Gemfile.lock | 2 --
src/config/application.rb | 1 -
4 files changed, 0 insertions(+), 5 deletions(-)
diff --git a/aeolus-conductor.spec.in b/aeolus-conductor.spec.in
index cb5e4d8..4ec3445 100644
--- a/aeolus-conductor.spec.in
+++ b/aeolus-conductor.spec.in
@@ -26,7 +26,6 @@ Requires: rubygem(will_paginate) >= 3.0
Requires: rubygem(parseconfig)
Requires: rubygem(deltacloud-client) >= 0.4.0
Requires: rubygem(simple-navigation)
-Requires: rubygem(typhoeus)
Requires: rubygem(rest-client) >= 1.6.1
Requires: rubygem(builder)
Requires: rubygem(json)
diff --git a/src/Gemfile b/src/Gemfile
index d063047..67295bd 100644
--- a/src/Gemfile
+++ b/src/Gemfile
@@ -10,7 +10,6 @@ gem 'haml'
gem 'will_paginate', '>= 3.0.pre1'
gem 'nokogiri'
gem 'simple-navigation'
-gem 'typhoeus'
gem 'rest-client'
gem 'rack-restful_submit'
gem 'uuidtools'
diff --git a/src/Gemfile.lock b/src/Gemfile.lock
index 0f3912b..5a55b25 100644
--- a/src/Gemfile.lock
+++ b/src/Gemfile.lock
@@ -138,7 +138,6 @@ GEM
timecop (0.3.5)
treetop (1.4.9)
polyglot (>= 0.2.5)
- typhoeus (0.2.0)
tzinfo (0.3.26)
uuidtools (2.1.1)
vcr (1.10.0)
@@ -179,7 +178,6 @@ DEPENDENCIES
sqlite3
thin
timecop
- typhoeus
uuidtools
vcr
webmock
diff --git a/src/config/application.rb b/src/config/application.rb
index 41d12e9..ded491d 100644
--- a/src/config/application.rb
+++ b/src/config/application.rb
@@ -17,7 +17,6 @@ else
require 'will_paginate'
require 'nokogiri'
require 'simple-navigation'
- require 'typhoeus'
require 'rest-client'
require 'rack-restful_submit'
require 'uuidtools'
--
1.7.4.4
12 years, 7 months