diff --git a/Changelog.md b/Changelog.md index a04148de4..09d142cd4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -44,6 +44,7 @@ Note: Although this is a minor release, the configuration file changed because t * Don't display tag following button when logged out [#7155](https://github.com/diaspora/diaspora/pull/7155) * Fix message modal on profile page [#7137](https://github.com/diaspora/diaspora/pull/7137) * Display error message when aspect membership changes fail [#7132](https://github.com/diaspora/diaspora/pull/7132) +* Avoid the creation of pod that are none [#7145](https://github.com/diaspora/diaspora/pull/7145) ## Features * Deleted comments will be removed when loading more comments [#7045](https://github.com/diaspora/diaspora/pull/7045) diff --git a/Gemfile b/Gemfile index 5398486a4..4f054264b 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem "unicorn-worker-killer", "0.4.4" # Federation -gem "diaspora_federation-rails", "0.1.4" +gem "diaspora_federation-rails", "0.1.5" # API and JSON @@ -285,7 +285,7 @@ group :test do gem "webmock", "2.1.0", require: false gem "shoulda-matchers", "3.1.1" - gem "diaspora_federation-test", "0.1.4" + gem "diaspora_federation-test", "0.1.5" # Coverage gem 'coveralls', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 81b0ebf95..73164c720 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -177,17 +177,17 @@ GEM devise rails (>= 3.0.4) diaspora-prosody-config (0.0.7) - diaspora_federation (0.1.4) + diaspora_federation (0.1.5) faraday (~> 0.9.0) faraday_middleware (~> 0.10.0) nokogiri (~> 1.6, >= 1.6.8) typhoeus (~> 1.0) valid (~> 1.0) - diaspora_federation-rails (0.1.4) - diaspora_federation (= 0.1.4) + diaspora_federation-rails (0.1.5) + diaspora_federation (= 0.1.5) rails (~> 4.2) - diaspora_federation-test (0.1.4) - diaspora_federation (= 0.1.4) + diaspora_federation-test (0.1.5) + diaspora_federation (= 0.1.5) factory_girl (~> 4.7) diff-lcs (1.2.5) docile (1.1.5) @@ -207,7 +207,7 @@ GEM execjs multi_json (>= 1.3) rake - ethon (0.9.0) + ethon (0.9.1) ffi (>= 1.3.0) excon (0.49.0) execjs (2.7.0) @@ -934,8 +934,8 @@ DEPENDENCIES devise-token_authenticatable (= 0.5.2) devise_lastseenable (= 0.0.6) diaspora-prosody-config (= 0.0.7) - diaspora_federation-rails (= 0.1.4) - diaspora_federation-test (= 0.1.4) + diaspora_federation-rails (= 0.1.5) + diaspora_federation-test (= 0.1.5) entypo-rails (= 3.0.0.pre.rc2) eye (= 0.8.1) factory_girl_rails (= 4.7.0) diff --git a/app/models/pod.rb b/app/models/pod.rb index 031566433..a961353d6 100644 --- a/app/models/pod.rb +++ b/app/models/pod.rb @@ -21,11 +21,12 @@ class Pod < ActiveRecord::Base # this are only the most common errors, the rest will be +unknown_error+ CURL_ERROR_MAP = { - couldnt_resolve_host: :dns_failed, - couldnt_connect: :net_failed, - operation_timedout: :net_failed, - ssl_cipher: :ssl_failed, - ssl_cacert: :ssl_failed + couldnt_resolve_host: :dns_failed, + couldnt_connect: :net_failed, + operation_timedout: :net_failed, + ssl_cipher: :ssl_failed, + ssl_cacert: :ssl_failed, + redirected_to_other_hostname: :http_failed }.freeze DEFAULT_PORTS = [URI::HTTP::DEFAULT_PORT, URI::HTTPS::DEFAULT_PORT] diff --git a/config/initializers/diaspora_federation.rb b/config/initializers/diaspora_federation.rb index 05b105905..1b549fb17 100644 --- a/config/initializers/diaspora_federation.rb +++ b/config/initializers/diaspora_federation.rb @@ -93,7 +93,7 @@ DiasporaFederation.configure do |config| end end - on :receive_entity do |entity, recipient_id| + on :receive_entity do |entity, _sender, recipient_id| case entity when DiasporaFederation::Entities::AccountDeletion Diaspora::Federation::Receive.account_deletion(entity) diff --git a/db/migrate/20161015174300_remove_empty_pod.rb b/db/migrate/20161015174300_remove_empty_pod.rb new file mode 100644 index 000000000..482b4f5db --- /dev/null +++ b/db/migrate/20161015174300_remove_empty_pod.rb @@ -0,0 +1,11 @@ +class RemoveEmptyPod < ActiveRecord::Migration + def up + Pod.delete_all("host IS NULL") + + change_column :pods, :host, :string, null: false + end + + def down + change_column :pods, :host, :string, null: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 48a75a864..c8f63ceb5 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160906225138) do +ActiveRecord::Schema.define(version: 20161015174300) do create_table "account_deletions", force: :cascade do |t| t.string "diaspora_handle", limit: 255 @@ -358,7 +358,7 @@ ActiveRecord::Schema.define(version: 20160906225138) do add_index "photos", ["status_message_guid"], name: "index_photos_on_status_message_guid", length: {"status_message_guid"=>191}, using: :btree create_table "pods", force: :cascade do |t| - t.string "host", limit: 255 + t.string "host", limit: 255, null: false t.boolean "ssl" t.datetime "created_at", null: false t.datetime "updated_at", null: false diff --git a/spec/federation_callbacks_spec.rb b/spec/federation_callbacks_spec.rb index 4c6a631d0..349492713 100644 --- a/spec/federation_callbacks_spec.rb +++ b/spec/federation_callbacks_spec.rb @@ -343,7 +343,7 @@ describe "diaspora federation callbacks" do expect(Diaspora::Federation::Receive).to receive(:account_deletion).with(account_deletion) expect(Workers::ReceiveLocal).not_to receive(:perform_async) - DiasporaFederation.callbacks.trigger(:receive_entity, account_deletion, nil) + DiasporaFederation.callbacks.trigger(:receive_entity, account_deletion, account_deletion.author, nil) end it "receives a Retraction" do @@ -352,7 +352,7 @@ describe "diaspora federation callbacks" do expect(Diaspora::Federation::Receive).to receive(:retraction).with(retraction, 42) expect(Workers::ReceiveLocal).not_to receive(:perform_async) - DiasporaFederation.callbacks.trigger(:receive_entity, retraction, 42) + DiasporaFederation.callbacks.trigger(:receive_entity, retraction, retraction.author, 42) end it "receives a entity" do @@ -362,7 +362,7 @@ describe "diaspora federation callbacks" do expect(Diaspora::Federation::Receive).to receive(:perform).with(received).and_return(persisted) expect(Workers::ReceiveLocal).to receive(:perform_async).with(persisted.class.to_s, persisted.id, []) - DiasporaFederation.callbacks.trigger(:receive_entity, received, nil) + DiasporaFederation.callbacks.trigger(:receive_entity, received, received.author, nil) end it "receives a entity for a recipient" do @@ -372,7 +372,7 @@ describe "diaspora federation callbacks" do expect(Diaspora::Federation::Receive).to receive(:perform).with(received).and_return(persisted) expect(Workers::ReceiveLocal).to receive(:perform_async).with(persisted.class.to_s, persisted.id, [42]) - DiasporaFederation.callbacks.trigger(:receive_entity, received, 42) + DiasporaFederation.callbacks.trigger(:receive_entity, received, received.author, 42) end it "does not trigger a ReceiveLocal job if Receive.perform returned nil" do @@ -381,7 +381,7 @@ describe "diaspora federation callbacks" do expect(Diaspora::Federation::Receive).to receive(:perform).with(received).and_return(nil) expect(Workers::ReceiveLocal).not_to receive(:perform_async) - DiasporaFederation.callbacks.trigger(:receive_entity, received, nil) + DiasporaFederation.callbacks.trigger(:receive_entity, received, received.author, nil) end end