-
Notifications
You must be signed in to change notification settings - Fork 897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed error with replication setup when default exclude list used #17999
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -158,6 +158,12 @@ | |
expect(described_class).to receive(:refresh_excludes).with(YAML.safe_load(tables)) | ||
described_class.save_remote_region(tables) | ||
end | ||
|
||
it "does not updates list of tables to be excluded from replication if passed paramere is empty" do | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it okay to have an empty exclusion_list? I think there are some tables we are counting on never replicating (MiqDatabase). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, we have this but it's not being used very thoroughly for application-side tables (but rather for AR and other system-type tables). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are probably lots of tables that would cause problems if they were replicated, but we have never tried to enumerate them in any serious way. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, this has some typos |
||
allow(MiqRegion).to receive(:replication_type=) | ||
expect(described_class).not_to receive(:refresh_excludes) | ||
described_class.save_remote_region("") | ||
end | ||
end | ||
|
||
describe ".save_global_region" do | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this exclude list empty?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or rather why would it ever be empty unless the user specifically wanted to exclude nothing? (which as @bdunne noted will likely not go well)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, after going back over the previous two PRs it looks like this condition was previously preventing us from calling the refresh_excludes if the exclude list parameter was empty.
I'm not particularly happy that this UI-side concern (dealing with an empty list that shouldn't be treated as an empty list) is being pushed into this method, but I'm not sure how else this can be solved with the new way this is working.
Can you add a comment that says that this is here because the UI passes an empty array for "no changes" so we can rely on the
refresh_excludes
call which is run as a part ofreplication_type=
?