Compare commits
1 Commits
lash/init-
...
willruddic
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ef2a9b247 |
@@ -13,22 +13,22 @@ sw:
|
||||
CON Weka jina lako la kwanza
|
||||
enter_family_name: |-
|
||||
CON Weka jina lako la mwisho
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
enter_date_of_birth: |-
|
||||
CON Weka mwaka wa kuzaliwa
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
enter_gender: |-
|
||||
CON Weka jinsia yako
|
||||
1. Mwanaume
|
||||
2. Mwanamke
|
||||
3. Nyngine
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
enter_location: |-
|
||||
CON Weka eneo lako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
enter_products: |-
|
||||
CON Weka bidhaa ama huduma unauza
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
start: |-
|
||||
CON Salio %{account_balance} %{account_token_name}
|
||||
1. Tuma
|
||||
@@ -36,10 +36,10 @@ sw:
|
||||
3. Usaidizi
|
||||
enter_transaction_recipient: |-
|
||||
CON Weka nambari ya simu
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
enter_transaction_amount: |-
|
||||
CON Weka kiwango
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
account_management: |-
|
||||
CON Akaunti yangu
|
||||
1. Wasifu wangu
|
||||
@@ -47,7 +47,7 @@ sw:
|
||||
3. Angalia salio
|
||||
4. Angalia taarifa ya matumizi
|
||||
5. Badilisha nambari ya siri
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
metadata_management: |-
|
||||
CON Wasifu wangu
|
||||
1. Weka jina
|
||||
@@ -56,7 +56,7 @@ sw:
|
||||
4. Weka eneo
|
||||
5. Weka bidhaa
|
||||
6. Angalia wasifu wako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
display_user_metadata: |-
|
||||
CON Wasifu wako una maelezo yafuatayo:
|
||||
Jina: %{full_name}
|
||||
@@ -64,98 +64,98 @@ sw:
|
||||
Umri: %{age}
|
||||
Eneo: %{location}
|
||||
Unauza: %{products}
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
select_preferred_language: |-
|
||||
CON Chagua lugha
|
||||
1. Kingereza
|
||||
2. Kiswahili
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry_pin_entry: |-
|
||||
CON Nambari uliyoweka si sahihi, jaribu tena. Una majaribio %{remaining_attempts} yaliyobaki.
|
||||
0. Back
|
||||
enter_current_pin:
|
||||
first: |-
|
||||
CON Weka nambari ya siri.
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
enter_new_pin: |-
|
||||
CON Weka nambari ya siri mpya
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
new_pin_confirmation: |-
|
||||
CON Weka nambari yako ya siri tena
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
transaction_pin_authorization:
|
||||
first: |-
|
||||
CON %{recipient_information} atapokea %{transaction_amount} %{token_symbol} kutoka kwa %{sender_information}.
|
||||
Tafadhali weka nambari yako ya siri kudhibitisha.
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
display_metadata_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
account_balances_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako kuona salio.
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
account_statement_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako kuona taarifa ya matumizi.
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
name_edit_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
dob_edit_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
gender_edit_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
location_edit_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
products_edit_pin_authorization:
|
||||
first: |-
|
||||
CON Tafadhali weka PIN yako
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
retry: |-
|
||||
%{retry_pin_entry}
|
||||
account_balances:
|
||||
available_balance: |-
|
||||
CON Salio zako ni zifuatazo:
|
||||
salio: %{available_balance} %{token_symbol}
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
with_fees: |-
|
||||
CON Salio zako ni zifuatazo:
|
||||
salio: %{available_balance} %{token_symbol}
|
||||
ushuru: %{tax} %{token_symbol}
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
with_rewards: |-
|
||||
CON Salio zako ni zifuatazo:
|
||||
salio: %{available_balance} %{token_symbol}
|
||||
ushuru: %{tax} %{token_symbol}
|
||||
tuzo: %{bonus} %{token_symbol}
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
first_transaction_set: |-
|
||||
CON %{first_transaction_set}
|
||||
1. Mbele
|
||||
@@ -163,54 +163,54 @@ sw:
|
||||
middle_transaction_set: |-
|
||||
CON %{middle_transaction_set}
|
||||
1. Mbele
|
||||
2. Nyuma
|
||||
2. Rudi
|
||||
00. Ondoka
|
||||
last_transaction_set: |-
|
||||
CON %{last_transaction_set}
|
||||
2. Nyuma
|
||||
2. Rudi
|
||||
00. Ondoka
|
||||
exit: |-
|
||||
END Asante kwa kutumia huduma.
|
||||
END Asante kwa kutumia huduma
|
||||
exit_invalid_request: |-
|
||||
END Chaguo si sahihi.
|
||||
exit_invalid_menu_option: |-
|
||||
CON Chaguo lako sio sahihi. Kwa usaidizi piga simu %{support_phone}
|
||||
00. Nyuma
|
||||
00. Rudi
|
||||
99. Ondoka
|
||||
exit_invalid_input: |-
|
||||
CON Chaguo lako halipatikani. Hakuna kilichochaguliwa.
|
||||
00. Nyuma
|
||||
CON Chaguo lako halipatikani. Hakuna kilichochaguliwa
|
||||
00. Rudi
|
||||
99. Ondoka
|
||||
exit_pin_blocked: |-
|
||||
END PIN yako imefungwa. Kwa usaidizi tafadhali piga simu %{support_phone}.
|
||||
END PIN yako imefungwa. Kwa usaidizi tafadhali piga simu %{support_phone}
|
||||
exit_invalid_pin: |-
|
||||
END PIN uliyobonyeza sio sahihi. PIN lazima iwe na nambari nne. Kwa usaidizi piga simu %{support_phone}.
|
||||
END PIN uliyobonyeza sio sahihi. PIN lazima iwe na nambari nne. Kwa usaidizi piga simu %{support_phone}
|
||||
exit_invalid_new_pin: |-
|
||||
END PIN uliyobonyeza sio sahihi. PIN lazima iwe tofauti na pin yako ya sasa. Kwa usaidizi piga simu %{support_phone}.
|
||||
END PIN uliyobonyeza sio sahihi. PIN lazima iwe tofauti na pin yako ya sasa. Kwa usaidizi piga simu %{support_phone}
|
||||
exit_pin_mismatch: |-
|
||||
END PIN mpya na udhibitisho wa pin mpya hazilingani. Tafadhali jaribu tena. Kwa usaidizi piga simu %{support_phone}.
|
||||
END PIN mpya na udhibitisho wa pin mpya hazilingani. Tafadhali jaribu tena. Kwa usaidizi piga simu %{support_phone}
|
||||
exit_invalid_recipient: |-
|
||||
CON Mpokeaji wa nambari hapatikani au sio sahihi.
|
||||
00. Jaribu tena
|
||||
99. Ondoka
|
||||
exit_successful_transaction: |-
|
||||
CON Ombi lako limetumwa. %{recipient_information} atapokea %{transaction_amount} %{token_symbol} kutoka kwa %{sender_information}.
|
||||
00. Nyuma
|
||||
CON Ombi lako limetumwa. %{recipient_information} atapokea %{transaction_amount} %{token_symbol} kutoka kwa %{sender_information}
|
||||
00. Rudi
|
||||
99. Ondoka
|
||||
exit_insufficient_balance: |-
|
||||
CON Malipo ya %{amount} %{token_symbol} kwa %{recipient_information} halijakamilika kwa sababu salio lako haitoshi.
|
||||
CON Malipo ya %{amount} %{token_symbol} kwa %{recipient_information} halijakamilika kwa sababu salio lako haitoshi
|
||||
Akaunti yako ya Sarafu ina salio ifuatayo: %{token_balance}
|
||||
00. Nyuma
|
||||
00. Rudi
|
||||
99. Ondoka
|
||||
invalid_service_code: |-
|
||||
Bonyeza %{valid_service_code} kutumia mtandao wa Sarafu
|
||||
help: |-
|
||||
CON Kwa usaidizi piga simu %{support_phone}
|
||||
0. Nyuma
|
||||
0. Rudi
|
||||
9. Ondoka
|
||||
complete: |-
|
||||
CON Ombi lako limetumwa. Utapokea uthibitishaji wa SMS kwa muda mfupi.
|
||||
00. Nyuma
|
||||
00. Rudi
|
||||
99. Ondoka
|
||||
account_creation_prompt: |-
|
||||
END Akaunti yako ya Sarafu inatayarishwa. Utapokea ujumbe wa SMS akaunti yako ikiwa tayari.
|
||||
|
||||
@@ -5,13 +5,7 @@ set -a
|
||||
if [ -z $DEV_DATA_DIR ]; then
|
||||
export DEV_DATA_DIR=`mktemp -d`
|
||||
else
|
||||
mkdir -vp $DEV_DATA_DIR
|
||||
fi
|
||||
|
||||
if [ -z $STATE_DIR ]; then
|
||||
export STATE_DIR=/run/cic_init
|
||||
mkdir -vp $STATE_DIR
|
||||
echo 0 > $STATE_DIR/init
|
||||
mkdir -p $DEV_DATA_DIR
|
||||
fi
|
||||
|
||||
if [ -z $DEV_CONFIG_RESET ]; then
|
||||
|
||||
@@ -117,8 +117,6 @@ export CIC_DEFAULT_TOKEN_SYMBOL=$CIC_DEFAULT_TOKEN_SYMBOL
|
||||
export TOKEN_NAME=$TOKEN_NAME
|
||||
" >> "${DEV_DATA_DIR}"/env_reset
|
||||
|
||||
echo -n $CIC_REGISTRY_ADDRESS > $STATE_DIR/registry
|
||||
|
||||
set +a
|
||||
set +e
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ then
|
||||
>&2 echo -e "\033[;31mFAILED\033[;39m RUN_MASK 1 - contract deployment"
|
||||
exit 1;
|
||||
fi
|
||||
echo -n 1 > $STATE_DIR/init
|
||||
>&2 echo -e "\033[;32mSUCCEEDED\033[;39m RUN_MASK 1 - contract deployment"
|
||||
fi
|
||||
|
||||
@@ -28,6 +27,5 @@ then
|
||||
>&2 echo -e "\033[;31mFAILED\033[;39m RUN_MASK 2 - custodial service initialization"
|
||||
exit 1;
|
||||
fi
|
||||
echo -n 2 > $STATE_DIR/init
|
||||
>&2 echo -e "\033[;32mSUCCEEDED\033[;39m RUN_MASK 2 - custodial service initialization"
|
||||
fi
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
include requirements.txt initness/data/config/**
|
||||
@@ -1,3 +0,0 @@
|
||||
"""Initness reports the initialization state and entry-point variables for the contract migrations process of the CIC services deployment.
|
||||
"""
|
||||
from .state import *
|
||||
@@ -1,3 +0,0 @@
|
||||
[httpd]
|
||||
host = localhost
|
||||
port = 8000
|
||||
@@ -1,2 +0,0 @@
|
||||
[state]
|
||||
base_dir = /run/cic_init
|
||||
@@ -1,87 +0,0 @@
|
||||
# standard import
|
||||
import json
|
||||
import os
|
||||
import logging
|
||||
import argparse
|
||||
import sys
|
||||
from http.server import (
|
||||
HTTPServer,
|
||||
BaseHTTPRequestHandler,
|
||||
)
|
||||
|
||||
# external imports
|
||||
import confini
|
||||
|
||||
# local imports
|
||||
from initness import get_state
|
||||
|
||||
|
||||
logging.basicConfig(level=logging.WARNING)
|
||||
logg = logging.getLogger()
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
data_dir = os.path.join(script_dir, '..', 'data')
|
||||
default_config_dir = os.path.join(data_dir, 'config')
|
||||
config_dir = os.environ.get('CONFINI_DIR', default_config_dir)
|
||||
|
||||
argparser = argparse.ArgumentParser()
|
||||
argparser.add_argument('-c', '--config', dest='c', type=str, help='configuration override directory')
|
||||
argparser.add_argument('--host', type=str, help='httpd host')
|
||||
argparser.add_argument('--port', type=str, help='httpd port')
|
||||
argparser.add_argument('--state-dir', dest='state_dir', type=str, help='directory to read state from')
|
||||
argparser.add_argument('--env-prefix', default=os.environ.get('CONFINI_ENV_PREFIX'), dest='env_prefix', type=str, help='environment prefix for variables to overwrite configuration')
|
||||
argparser.add_argument('-v', action='store_true', help='be verbose')
|
||||
argparser.add_argument('-vv', action='store_true', help='be more verbose')
|
||||
args = argparser.parse_args()
|
||||
|
||||
if args.vv:
|
||||
logging.getLogger().setLevel(logging.DEBUG)
|
||||
elif args.v:
|
||||
logging.getLogger().setLevel(logging.INFO)
|
||||
|
||||
override_dirs = []
|
||||
if args.c:
|
||||
override_dirs = [args.c]
|
||||
config = confini.Config(config_dir, args.env_prefix, override_dirs=override_dirs)
|
||||
config.process()
|
||||
# override args
|
||||
args_override = {
|
||||
'HTTPD_HOST': getattr(args, 'host'),
|
||||
'HTTPD_PORT': getattr(args, 'port'),
|
||||
'STATE_BASE_DIR': getattr(args, 'state_dir'),
|
||||
}
|
||||
config.dict_override(args_override, 'cli flag')
|
||||
logg.debug('loaded config: {}\n'.format(config))
|
||||
|
||||
|
||||
class StateRequestHandler(BaseHTTPRequestHandler):
|
||||
|
||||
state_store_dir = None
|
||||
|
||||
def do_GET(self):
|
||||
|
||||
o = get_state(self.state_store_dir)
|
||||
self.send_response(200, 'yarr')
|
||||
self.end_headers()
|
||||
|
||||
self.wfile.write(json.dumps(o).encode('utf-8'))
|
||||
|
||||
|
||||
def run(store, host=None, port=None):
|
||||
port = int(port, 10)
|
||||
server_address = (host, port)
|
||||
httpd = HTTPServer(server_address, StateRequestHandler)
|
||||
httpd.serve_forever()
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
os.stat(config.get('STATE_BASE_DIR'))
|
||||
except FileNotFoundError:
|
||||
os.makedirs(config.get('STATE_BASE_DIR'))
|
||||
store = StateRequestHandler.state_store_dir=config.get('STATE_BASE_DIR')
|
||||
run(store, host=config.get('HTTPD_HOST'), port=config.get('HTTPD_PORT'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,31 +0,0 @@
|
||||
# standard imports
|
||||
import os
|
||||
|
||||
def get_state(state_store_dir):
|
||||
init_path = os.path.join(state_store_dir, 'init')
|
||||
init_level = 0
|
||||
registry_address = None
|
||||
|
||||
try:
|
||||
f = open(init_path, 'r')
|
||||
init_level = f.read()
|
||||
init_level = init_level.rstrip()
|
||||
f.close()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
registry_path = os.path.join(state_store_dir, 'registry')
|
||||
try:
|
||||
f = open(registry_path, 'r')
|
||||
registry_address = f.read()
|
||||
registry_address = registry_address.rstrip()
|
||||
f.close()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
o = {
|
||||
'runlevel': init_level,
|
||||
'registry': registry_address,
|
||||
}
|
||||
|
||||
return o
|
||||
@@ -1 +0,0 @@
|
||||
confini>=0.3.6rc4,<0.5.0
|
||||
@@ -1,21 +0,0 @@
|
||||
from setuptools import setup
|
||||
|
||||
f = open('requirements.txt', 'r')
|
||||
requirements = f.read()
|
||||
f.close()
|
||||
|
||||
setup(
|
||||
name='initness',
|
||||
version='0.0.1a1',
|
||||
install_requires=requirements,
|
||||
packages=[
|
||||
'initness',
|
||||
'initness.runnable',
|
||||
],
|
||||
include_package_data=True,
|
||||
entry_points = {
|
||||
'console_scripts': [
|
||||
'cic-init-server=initness.runnable.server:main',
|
||||
],
|
||||
},
|
||||
)
|
||||
@@ -1,27 +0,0 @@
|
||||
# standard imports
|
||||
import unittest
|
||||
import tempfile
|
||||
import os
|
||||
|
||||
# local imports
|
||||
from initness.runnable.server import get_state
|
||||
|
||||
class TestInitness(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.dir = tempfile.mkdtemp()
|
||||
f = open(os.path.join(self.dir, 'init'), 'w')
|
||||
f.write('42')
|
||||
f.close()
|
||||
f = open(os.path.join(self.dir, 'registry'), 'w')
|
||||
f.write('0xdeadbeef')
|
||||
f.close()
|
||||
|
||||
def test_state(self):
|
||||
o = get_state(self.dir)
|
||||
self.assertEqual(o['runlevel'], '42')
|
||||
self.assertEqual(o['registry'], '0xdeadbeef')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user