Skip to content

Commit b8156b1

Browse files
authored
TD-717: Add global_allow field to routing (#93)
* TD-717: Add global_allow field to routing * Remove ct:log * Fix spec * Bump dialyzer cache
1 parent deccc5a commit b8156b1

File tree

6 files changed

+47
-36
lines changed

6 files changed

+47
-36
lines changed

.github/workflows/erlang-checks.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ jobs:
3838
thrift-version: ${{ needs.setup.outputs.thrift-version }}
3939
run-ct-with-compose: true
4040
use-coveralls: true
41-
cache-version: v3
41+
cache-version: v4

apps/hellgate/src/hg_routing.erl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,7 @@ check_terms_acceptability(recurrent_payment, Terms, VS) ->
647647
acceptable_payment_terms(
648648
#domain_PaymentsProvisionTerms{
649649
allow = Allow,
650+
global_allow = GlobalAllow,
650651
currencies = CurrenciesSelector,
651652
categories = CategoriesSelector,
652653
payment_methods = PMsSelector,
@@ -660,7 +661,8 @@ acceptable_payment_terms(
660661
% TODO varsets getting mixed up
661662
% it seems better to pass down here hierarchy of contexts w/ appropriate module accessors
662663
ParentName = 'PaymentsProvisionTerms',
663-
_ = acceptable_allow(ParentName, Allow),
664+
_ = acceptable_allow(ParentName, global_allow, GlobalAllow),
665+
_ = acceptable_allow(ParentName, allow, Allow),
664666
_ = try_accept_term(ParentName, currency, getv(currency, VS), CurrenciesSelector),
665667
_ = try_accept_term(ParentName, category, getv(category, VS), CategoriesSelector),
666668
_ = try_accept_term(ParentName, payment_tool, getv(payment_tool, VS), PMsSelector),
@@ -723,14 +725,14 @@ acceptable_partial_refunds_terms(
723725
acceptable_partial_refunds_terms(undefined, _RVS) ->
724726
throw(?rejected({'PartialRefundsProvisionTerms', undefined})).
725727

726-
acceptable_allow(_ParentName, undefined) ->
728+
acceptable_allow(_ParentName, _Type, undefined) ->
727729
true;
728-
acceptable_allow(_ParentName, {constant, true}) ->
730+
acceptable_allow(_ParentName, _Type, {constant, true}) ->
729731
true;
730-
acceptable_allow(ParentName, {constant, false}) ->
731-
throw(?rejected({ParentName, allow}));
732-
acceptable_allow(_ParentName, Ambiguous) ->
733-
error({misconfiguration, {'Could not reduce predicate to a value', {allow, Ambiguous}}}).
732+
acceptable_allow(ParentName, Type, {constant, false}) ->
733+
throw(?rejected({ParentName, Type}));
734+
acceptable_allow(_ParentName, Type, Ambiguous) ->
735+
error({misconfiguration, {'Could not reduce predicate to a value', {Type, Ambiguous}}}).
734736

735737
%%
736738

apps/hellgate/test/hg_ct_domain.hrl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@
177177

178178
-define(payment_terms, #domain_PaymentsProvisionTerms{
179179
allow = {constant, true},
180+
global_allow = {constant, true},
180181
currencies =
181182
{value,
182183
?ordset([

apps/hellgate/test/hg_route_rules_tests_SUITE.erl

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ mock_party_management(SupPid) ->
249249
?candidate({constant, true}, ?trm(1)),
250250
?candidate({constant, true}, ?trm(2)),
251251
?candidate({constant, true}, ?trm(3)),
252-
?candidate({constant, true}, ?trm(4))
252+
?candidate({constant, true}, ?trm(4)),
253+
?candidate({constant, true}, ?trm(7))
253254
]}
254255
}};
255256
('ComputeRoutingRuleset', {?ruleset(1), ?base_routing_rule_domain_revision, _}) ->
@@ -334,6 +335,13 @@ mock_party_management(SupPid) ->
334335
allow = {constant, false}
335336
}
336337
}};
338+
('ComputeProviderTerminalTerms', {?prv(7), _, ?base_routing_rule_domain_revision, _}) ->
339+
{ok, #domain_ProvisionTermSet{
340+
payments = ?payment_terms#domain_PaymentsProvisionTerms{
341+
allow = {constant, true},
342+
global_allow = {constant, false}
343+
}
344+
}};
337345
('ComputeProviderTerminalTerms', {?prv(1), _, ?routing_with_risk_coverage_set_domain_revision, _}) ->
338346
{ok, #domain_ProvisionTermSet{
339347
payments = ?payment_terms#domain_PaymentsProvisionTerms{
@@ -455,7 +463,8 @@ no_route_found_for_payment(_C) ->
455463
{?prv(1), ?trm(1), {'PaymentsProvisionTerms', cost}},
456464
{?prv(2), ?trm(2), {'PaymentsProvisionTerms', category}},
457465
{?prv(3), ?trm(3), {'PaymentsProvisionTerms', payment_tool}},
458-
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}}
466+
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}},
467+
{?prv(7), ?trm(7), {'PaymentsProvisionTerms', global_allow}}
459468
],
460469
RejectedRoutes1
461470
),
@@ -474,7 +483,8 @@ no_route_found_for_payment(_C) ->
474483
{?prv(1), ?trm(1), {'PaymentsProvisionTerms', currency}},
475484
{?prv(2), ?trm(2), {'PaymentsProvisionTerms', category}},
476485
{?prv(3), ?trm(3), {'PaymentsProvisionTerms', payment_tool}},
477-
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}}
486+
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}},
487+
{?prv(7), ?trm(7), {'PaymentsProvisionTerms', global_allow}}
478488
],
479489
RejectedRoutes2
480490
).
@@ -513,7 +523,8 @@ gather_route_success(_C) ->
513523
[
514524
{?prv(2), ?trm(2), {'PaymentsProvisionTerms', category}},
515525
{?prv(3), ?trm(3), {'PaymentsProvisionTerms', payment_tool}},
516-
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}}
526+
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}},
527+
{?prv(7), ?trm(7), {'PaymentsProvisionTerms', global_allow}}
517528
],
518529
RejectedRoutes
519530
).
@@ -553,7 +564,8 @@ rejected_by_table_prohibitions(_C) ->
553564
{?prv(3), ?trm(3), {'RoutingRule', undefined}},
554565
{?prv(1), ?trm(1), {'PaymentsProvisionTerms', payment_tool}},
555566
{?prv(2), ?trm(2), {'PaymentsProvisionTerms', category}},
556-
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}}
567+
{?prv(4), ?trm(4), {'PaymentsProvisionTerms', allow}},
568+
{?prv(7), ?trm(7), {'PaymentsProvisionTerms', global_allow}}
557569
],
558570
RejectedRoutes
559571
),
@@ -620,11 +632,11 @@ ruleset_misconfig(_C) ->
620632

621633
-spec routes_selected_for_low_risk_score(config()) -> test_return().
622634
routes_selected_for_low_risk_score(C) ->
623-
routes_selected_with_risk_score(C, low, [?prv(1), ?prv(2), ?prv(3), ?prv(4)]).
635+
routes_selected_with_risk_score(C, low, [?prv(1), ?prv(2), ?prv(3), ?prv(4), ?prv(7)]).
624636

625637
-spec routes_selected_for_high_risk_score(config()) -> test_return().
626638
routes_selected_for_high_risk_score(C) ->
627-
routes_selected_with_risk_score(C, high, [?prv(2), ?prv(3), ?prv(4)]).
639+
routes_selected_with_risk_score(C, high, [?prv(2), ?prv(3), ?prv(4), ?prv(7)]).
628640

629641
routes_selected_with_risk_score(_C, RiskScore, ProviderRefs) ->
630642
Currency = ?cur(<<"RUB">>),
@@ -879,6 +891,7 @@ construct_domain_fixture() ->
879891
{terminal, ?trm(4)} => {terminal, ?terminal_obj(?trm(4), ?prv(4))},
880892
{terminal, ?trm(5)} => {terminal, ?terminal_obj(?trm(5), ?prv(5))},
881893
{terminal, ?trm(6)} => {terminal, ?terminal_obj(?trm(6), ?prv(6))},
894+
{terminal, ?trm(7)} => {terminal, ?terminal_obj(?trm(7), ?prv(7))},
882895
{terminal, ?trm(11)} => {terminal, ?terminal_obj(?trm(11), ?prv(11))},
883896
{terminal, ?trm(12)} => {terminal, ?terminal_obj(?trm(12), ?prv(12))},
884897
{payment_institution, ?pinst(1)} =>

compose.yaml

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ services:
2020
limiter:
2121
condition: service_healthy
2222
shumway:
23-
condition: service_healthy
23+
condition: service_started
2424
bender:
2525
condition: service_healthy
2626
working_dir: $PWD
2727
command: /sbin/init
2828

2929
dominant:
30-
image: ghcr.io/valitydev/dominant:sha-fdf5277
30+
image: ghcr.io/valitydev/dominant:sha-486d2ef
3131
command: /opt/dominant/bin/dominant foreground
3232
depends_on:
3333
machinegun:
@@ -69,16 +69,20 @@ services:
6969
machinegun:
7070
condition: service_healthy
7171
shumway:
72-
condition: service_healthy
72+
condition: service_started
7373
healthcheck:
7474
test: "/opt/limiter/bin/limiter ping"
7575
interval: 5s
7676
timeout: 1s
7777
retries: 20
7878

7979
shumway:
80-
image: docker.io/rbkmoney/shumway:44eb989065b27be619acd16b12ebdb2288b46c36
80+
image: ghcr.io/valitydev/shumway:sha-658587c
8181
restart: unless-stopped
82+
depends_on:
83+
- shumway-db
84+
ports:
85+
- "8022"
8286
entrypoint:
8387
- java
8488
- -Xmx512m
@@ -87,15 +91,10 @@ services:
8791
- --spring.datasource.url=jdbc:postgresql://shumway-db:5432/shumway
8892
- --spring.datasource.username=postgres
8993
- --spring.datasource.password=postgres
90-
- --management.metrics.export.statsd.enabled=false
91-
depends_on:
92-
shumway-db:
93-
condition: service_healthy
94+
- --management.endpoint.metrics.enabled=false
95+
- --management.endpoint.prometheus.enabled=false
9496
healthcheck:
95-
test: "curl http://localhost:8023/actuator/health"
96-
interval: 5s
97-
timeout: 1s
98-
retries: 40
97+
disable: true
9998

10099
party-management:
101100
image: ghcr.io/valitydev/party-management:sha-18bba50
@@ -106,22 +105,18 @@ services:
106105
dominant:
107106
condition: service_started
108107
shumway:
109-
condition: service_healthy
108+
condition: service_started
110109
healthcheck:
111110
test: "/opt/party-management/bin/party-management ping"
112111
interval: 10s
113112
timeout: 5s
114113
retries: 10
115114

116115
shumway-db:
117-
image: docker.io/library/postgres:9.6
116+
image: docker.io/library/postgres:13.10
117+
ports:
118+
- "5432"
118119
environment:
119120
- POSTGRES_DB=shumway
120121
- POSTGRES_USER=postgres
121122
- POSTGRES_PASSWORD=postgres
122-
- SERVICE_NAME=shumway-db
123-
healthcheck:
124-
test: ["CMD-SHELL", "pg_isready -U postgres"]
125-
interval: 5s
126-
timeout: 5s
127-
retries: 5

rebar.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
{<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.11.0">>},2},
1818
{<<"damsel">>,
1919
{git,"https://github.com/valitydev/damsel.git",
20-
{ref,"2374f52326fb9b10e79e0ec0a769af35529938e9"}},
20+
{ref,"c65fc2e6a829f440a82720b3602b7bab4f30b71d"}},
2121
0},
2222
{<<"dmt_client">>,
2323
{git,"https://github.com/valitydev/dmt-client.git",

0 commit comments

Comments
 (0)