Detailed changes
@@ -63,6 +63,11 @@
, rev_ai_token : Text
, server : { host : Text, port : Natural }
, sgx : Text
+, sgx_creds :
+ List
+ { mapKey : Text
+ , mapValue : { account : Text, password : Text, username : Text }
+ }
, simpleswap_api_key : Text
, sims :
{ esim :
@@ -14,6 +14,9 @@ in
web_root = "https://example.com",
ogm_path = "/var/www/media.example.com",
ogm_web_root = "https://media.example.com",
+ sgx_creds = [
+ { mapKey = "component-other.localhost", mapValue = { account = "", username = "", password = "" } }
+ ],
creds = {
account = "00000",
username = "dashboard user",
@@ -68,7 +68,7 @@ class AdminAction
end
def forward
- TrivialBackendSgxRepo.new.get(customer_id).then do |sgx|
+ TrivialBackendSgxRepo.new(redis: REDIS).get(customer_id).then do |sgx|
EMPromise.all([
REDIS.rename("catapult_fwd-#{old_tel}", "catapult_fwd-#{new_tel}"),
sgx.register!(new_tel),
@@ -18,7 +18,7 @@ class Bwmsgsv2Repo
@jid = jid
@redis = redis
@ibr_repo = ibr_repo
- @trivial_repo = TrivialBackendSgxRepo.new(jid: jid, **kwargs)
+ @trivial_repo = TrivialBackendSgxRepo.new(jid: jid, redis: redis, **kwargs)
end
def get(customer_id, tel: nil)
@@ -75,7 +75,7 @@ protected
def registration(sgx)
EMPromise.resolve(sgx.registered?)
rescue NotLoaded::NotLoadedError
- @ibr_repo.registered?(@jid, from: sgx.from_jid)
+ @ibr_repo.registered?(sgx.jid, from: sgx.from_jid)
end
def from_redis(from_jid, tel)
@@ -157,7 +157,7 @@ class CustomerRepo
protected
def mksgx(cid)
- TrivialBackendSgxRepo.new.get(cid).then { |s| s.with(registered?: false) }
+ TrivialBackendSgxRepo.get_unregistered(cid, redis: redis)
end
def mget(*keys)
@@ -8,21 +8,27 @@ class TrivialBackendSgxRepo
jid: CONFIG[:sgx],
creds: CONFIG[:creds],
component_jid: CONFIG[:component][:jid],
+ redis: LazyObject.new { REDIS },
**with
)
@jid = Blather::JID.new(jid)
@creds = creds
@component_jid = component_jid
+ @redis = redis
@with = with
end
+ def self.get_unregistered(customer_id, **kwargs)
+ new(**kwargs).get(customer_id).then { |s| s.with(registered?: false) }
+ end
+
def get(customer_id, tel: nil)
- EMPromise.resolve(nil).then do
+ @redis.get("jmp_customer_backend_sgx-#{customer_id}").then do |sgx_jid|
+ creds = sgx_jid ? CONFIG[:sgx_creds][sgx_jid] : @creds
BackendSgx.new(
- jid: @jid, creds: @creds,
+ jid: sgx_jid ? Blather::JID.new(sgx_jid) : @jid, creds: creds,
from_jid: Blather::JID.new("customer_#{customer_id}", @component_jid),
- ogm_url: NotLoaded.new(:ogm_url),
- fwd: NotLoaded.new(:fwd_timeout),
+ ogm_url: NotLoaded.new(:ogm_url), fwd: NotLoaded.new(:fwd_timeout),
transcription_enabled: NotLoaded.new(:transcription_enabled),
registered?: tel ? ibr_for(tel) : NotLoaded.new(:registered?)
).with(@with)
@@ -7,6 +7,7 @@ BackendSgx::IQ_MANAGER = Minitest::Mock.new
AdminAction::LaunchSnikket::IQ_MANAGER = Minitest::Mock.new
Customer::BLATHER = Minitest::Mock.new
AdminActionRepo::REDIS = Minitest::Mock.new
+TrivialBackendSgxRepo::REDIS = Minitest::Mock.new
class AdminCommandTest < Minitest::Test
def admin_command(tel="+15556667777")
@@ -58,6 +59,12 @@ class AdminCommandTest < Minitest::Test
[ProxiedJID]
)
+ TrivialBackendSgxRepo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-testuser"]
+ )
+
TrustLevelRepo::REDIS.expect(
:get,
EMPromise.resolve("Customer"),
@@ -93,6 +100,7 @@ class AdminCommandTest < Minitest::Test
assert_mock Command::COMMAND_MANAGER
assert_mock TrustLevelRepo::REDIS
assert_mock Subaccount::DB
+ assert_mock TrivialBackendSgxRepo::REDIS
end
em :test_no_user
@@ -53,7 +53,7 @@ class BackendSgxTest < Minitest::Test
assert_equal "+15555550000", ibr.phone
end]
)
- sgx = TrivialBackendSgxRepo.new.get("test").sync
+ sgx = TrivialBackendSgxRepo.new(redis: FakeRedis.new).get("test").sync
sgx.register!("+15555550000")
BackendSgx::IQ_MANAGER.verify
end
@@ -17,6 +17,7 @@ PlanInfo::DB = FakeDB.new(
]
)
Subaccount::DB = Minitest::Mock.new
+TrivialBackendSgxRepo::REDIS = Minitest::Mock.new
class CustomerInfoTest < Minitest::Test
def test_info_does_not_crash
@@ -124,6 +125,12 @@ class CustomerInfoTest < Minitest::Test
[String, ["test"]]
)
+ TrivialBackendSgxRepo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
+
cust = customer(sgx: sgx, plan_name: "test_usd")
trust_repo = Minitest::Mock.new
@@ -134,6 +141,7 @@ class CustomerInfoTest < Minitest::Test
assert_mock trust_repo
assert_mock CustomerUsage::DB
assert_mock Subaccount::DB
+ assert_mock TrivialBackendSgxRepo::REDIS
end
em :test_admin_info_does_not_crash
@@ -160,6 +168,12 @@ class CustomerInfoTest < Minitest::Test
[String, ["test"]]
)
+ TrivialBackendSgxRepo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
+
cust = customer(sgx: sgx, plan_name: "test_usd")
call_attempt_repo = Minitest::Mock.new
@@ -181,6 +195,7 @@ class CustomerInfoTest < Minitest::Test
assert_mock trust_repo
assert_mock CustomerUsage::DB
assert_mock Subaccount::DB
+ assert_mock TrivialBackendSgxRepo::REDIS
end
em :test_admin_info_with_tel_does_not_crash
@@ -212,6 +227,12 @@ class CustomerInfoTest < Minitest::Test
[String, ["test"]]
)
+ TrivialBackendSgxRepo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
+
plan = CustomerPlan.new("test", plan: nil, expires_at: nil)
cust = Customer.new(
"test",
@@ -227,6 +248,7 @@ class CustomerInfoTest < Minitest::Test
assert_mock sgx
assert_mock trust_repo
assert_mock Subaccount::DB
+ assert_mock TrivialBackendSgxRepo::REDIS
end
em :test_inactive_admin_info_does_not_crash
@@ -255,6 +277,12 @@ class CustomerInfoTest < Minitest::Test
[String, ["parent"]]
)
+ TrivialBackendSgxRepo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
+
cust = customer(
sgx: sgx,
plan_name: "test_usd",
@@ -269,6 +297,7 @@ class CustomerInfoTest < Minitest::Test
assert_mock trust_repo
assert_mock CustomerUsage::DB
assert_mock Subaccount::DB
+ assert_mock TrivialBackendSgxRepo::REDIS
end
em :test_admin_info_subaccount_does_not_crash
end
@@ -58,7 +58,7 @@ class CustomerRepoTest < Minitest::Test
db: FAKE_DB,
braintree: Minitest::Mock.new
)
- sgx_repo = Minitest::Mock.new(TrivialBackendSgxRepo.new)
+ sgx_repo = Minitest::Mock.new(TrivialBackendSgxRepo.new(redis: FAKE_REDIS))
CustomerRepo.new(
redis: redis,
db: db,
@@ -149,6 +149,11 @@ class CustomerRepoTest < Minitest::Test
"jmp_customer_jid-test", "test@example.com"
]
)
+ redis.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
assert_kind_of Customer, repo.create("test@example.com").sync
assert_mock braintree
assert_mock braintree_customer
@@ -176,6 +181,11 @@ class CustomerRepoTest < Minitest::Test
"jmp_customer_jid-testp", "test@parented.example.com"
]
)
+ redis.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-testp"]
+ )
redis.expect(
:get,
EMPromise.resolve("test@parented.example.com"),
@@ -1233,6 +1233,11 @@ class RegistrationTest < Minitest::Test
nil,
["jmp_group_codes", nil]
)
+ Bwmsgsv2Repo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
Bwmsgsv2Repo::REDIS.expect(
:set,
nil,
@@ -1351,6 +1356,11 @@ class RegistrationTest < Minitest::Test
assert_equal "Referral Bonus", params[5]
}]
)
+ Bwmsgsv2Repo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
Bwmsgsv2Repo::REDIS.expect(
:set,
nil,
@@ -1451,6 +1461,11 @@ class RegistrationTest < Minitest::Test
nil,
["jmp_group_codes", nil]
)
+ Bwmsgsv2Repo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
Bwmsgsv2Repo::REDIS.expect(
:set,
nil,
@@ -1535,6 +1550,11 @@ class RegistrationTest < Minitest::Test
EMPromise.resolve(OpenStruct.new(cmd_tuples: 1)),
[String, ["+15555550000"]]
)
+ Bwmsgsv2Repo::REDIS.expect(
+ :get,
+ EMPromise.resolve(nil),
+ ["jmp_customer_backend_sgx-test"]
+ )
Bwmsgsv2Repo::REDIS.expect(
:set,
nil,