コード例 #1
0
    def test_save_and_restore_user_configure(self):
        # GIVEN
        conf.DISABLE_V1_API = False
        conf.CHANNEL_OPTION = {
            conf.LOOPCHAIN_DEFAULT_CHANNEL: {
                "load_cert":
                False,
                "consensus_cert_use":
                False,
                "tx_cert_use":
                False,
                "key_load_type":
                conf.KeyLoadType.FILE_LOAD,
                "public_path":
                os.path.join(conf.LOOPCHAIN_ROOT_PATH,
                             'resources/default_pki/public.der'),
                "private_path":
                os.path.join(conf.LOOPCHAIN_ROOT_PATH,
                             'resources/default_pki/private.der'),
                "private_password":
                b'test'
            },
            conf.LOOPCHAIN_TEST_CHANNEL: {
                "load_cert":
                False,
                "consensus_cert_use":
                False,
                "tx_cert_use":
                False,
                "key_load_type":
                conf.KeyLoadType.FILE_LOAD,
                "public_path":
                os.path.join(conf.LOOPCHAIN_ROOT_PATH,
                             'resources/default_pki/public.der'),
                "private_path":
                os.path.join(conf.LOOPCHAIN_ROOT_PATH,
                             'resources/default_pki/private.der'),
                "private_password":
                b'test'
            }
        }

        # WHEN
        conf.Configure().save_user_configure_with_current_set()

        # THEN
        self.assertEqual(conf.DISABLE_V1_API, False)

        # WHEN
        conf.Configure().cleanup_configuration_setting_to_default()

        # THEN
        self.assertNotEqual(conf.DISABLE_V1_API, False)
コード例 #2
0
    def test_load_configure_json(self):
        # GIVEN
        ip_local_before_load_json = conf.IP_LOCAL
        token_type_token_before_load_json = conf_default.TOKEN_TYPE_TOKEN
        logging.debug(
            f"before json file load, conf.IP_LOCAL({ip_local_before_load_json})"
            f", conf.TOKEN_TYPE_TOKEN({token_type_token_before_load_json})")

        test_configure_json_path = "configure_json_for_test.json"
        configure_json_file = Path(test_configure_json_path)
        if not configure_json_file.is_file():
            test_configure_json_path = "testcase/unittest/configure_json_for_test.json"

        # WHEN
        conf.Configure().load_configure_json(test_configure_json_path)
        logging.debug(f"after json file load, conf.IP_LOCAL({conf.IP_LOCAL})"
                      f", conf.TOKEN_TYPE_TOKEN({conf.TOKEN_TYPE_TOKEN})")

        # THEN
        self.assertNotEqual(ip_local_before_load_json, conf.IP_LOCAL)
        self.assertNotEqual(token_type_token_before_load_json,
                            conf.TOKEN_TYPE_TOKEN)

        # BACK
        conf.IP_LOCAL = ip_local_before_load_json
        conf.TOKEN_TYPE_TOKEN = token_type_token_before_load_json
コード例 #3
0
ファイル: launcher.py プロジェクト: icon-project/loopchain
def main(argv):
    parser = argparse.ArgumentParser()
    for cmd_arg_type in command_arguments.Type:
        cmd_arg_attr = command_arguments.attributes[cmd_arg_type]
        parser.add_argument(*cmd_arg_attr.names, **cmd_arg_attr.kwargs)

    args, unknowns = parse_args_include_unknowns(parser, argv)
    quick_command = get_quick_command(unknowns)

    if args.version:
        print(json.dumps(conf.ICON_VERSIONS, indent=2))
        parser.exit()

    command_arguments.set_raw_commands(args)

    if args.radio_station_target == 'testnet':
        args.radio_station_target = conf.URL_CITIZEN_TESTNET
        args.configure_file_path = conf.CONF_PATH_LOOPCHAIN_TESTNET
    elif args.radio_station_target == 'mainnet':
        args.radio_station_target = conf.URL_CITIZEN_MAINNET
        args.configure_file_path = conf.CONF_PATH_LOOPCHAIN_MAINNET

    if args.configure_file_path:
        conf.Configure().load_configure_json(args.configure_file_path)

    if args.key_convert:
        key_convert()
        parser.exit()

    if args.develop:
        loggers.set_preset_type(loggers.PresetType.develop)
    else:
        loggers.set_preset_type(loggers.PresetType.production)
    logger_preset = loggers.get_preset()
    logger_preset.service_type = args.service_type
    loggers.update_preset(False)
    loggers.update_other_loggers()

    grpc_patcher.monkey_patch()
    async_.thread_monkey_patch()
    async_.concurrent_future_monkey_patch()

    if args.service_type in ("peer", "citizen"):
        start_as_peer(args)
    elif args.service_type == "rest":
        start_as_rest_server(args)
    elif args.service_type == "score":
        start_as_score(args)
    elif args.service_type == "channel":
        start_as_channel(args)
    elif args.service_type == "tool":
        start_as_tool(args, quick_command)
    elif args.service_type == "admin":
        start_as_admin(args, quick_command)
    else:
        print(
            f"not supported service type {args.service_type}\ncheck loopchain help.\n"
        )
        parser.print_help()
コード例 #4
0
ファイル: launcher.py プロジェクト: jckdotim/loopchain
def main(argv):
    parser = argparse.ArgumentParser()
    for cmd_arg_type in command_arguments.Type:
        cmd_arg_attr = command_arguments.attributes[cmd_arg_type]
        parser.add_argument(*cmd_arg_attr.names, **cmd_arg_attr.kwargs)

    args = parser.parse_args(argv)
    command_arguments.set_raw_commands(args)

    if args.radio_station_target == 'testnet':
        args.radio_station_target = conf.URL_CITIZEN_TESTNET
        args.configure_file_path = conf.CONF_PATH_LOOPCHAIN_TESTNET
    elif args.radio_station_target == 'mainnet':
        args.radio_station_target = conf.URL_CITIZEN_MAINNET
        args.configure_file_path = conf.CONF_PATH_LOOPCHAIN_MAINNET

    if args.configure_file_path:
        conf.Configure().load_configure_json(args.configure_file_path)

    if args.develop:
        loggers.set_preset_type(loggers.PresetType.develop)
    else:
        loggers.set_preset_type(loggers.PresetType.production)
    logger_preset = loggers.get_preset()
    logger_preset.service_type = args.service_type
    loggers.update_preset(False)
    loggers.update_other_loggers()

    grpc_patcher.monkey_patch()
    async .thread_monkey_patch()
    async .concurrent_future_monkey_patch()

    if args.service_type == "peer":
        start_as_peer(args, conf.NodeType.CommunityNode)
    elif args.service_type == "citizen":
        start_as_peer(args, conf.NodeType.CitizenNode)
    elif args.service_type == "rs" or args.service_type == "radiostation":
        start_as_rs(args)
    elif args.service_type == "rest":
        start_as_rest_server(args)
    elif args.service_type == "rest-rs":
        start_as_rest_server_rs(args)
    elif args.service_type == "score":
        start_as_score(args)
    elif args.service_type == "channel":
        start_as_channel(args)
    elif args.service_type == "tool":
        start_as_tool(args)
    elif args.service_type == "admin":
        start_as_admin(args)
    else:
        print(
            f"not supported service type {args.service_type}\ncheck loopchain help.\n"
        )
        os.system("python3 ./loopchain.py -h")
コード例 #5
0
def main(argv):
    logging.info("RadioStation main got argv(list): " + str(argv))

    try:
        opts, args = getopt.getopt(
            argv, "dhp:o:s:",
            ["help", "port=", "cert=", "configure_file_path=", "seed="])
    except getopt.GetoptError as e:
        logging.error(e)
        usage()
        sys.exit(1)

    # apply json configure values
    for opt, arg in opts:
        if (opt == "-o") or (opt == "--configure_file_path"):
            conf.Configure().load_configure_json(arg)

    # apply default configure values
    port = conf.PORT_RADIOSTATION
    cert = None
    pw = None
    seed = None

    # apply option values
    for opt, arg in opts:
        if opt == "-d":
            util.set_log_level_debug()
        elif (opt == "-p") or (opt == "--port"):
            port = arg
        elif opt == "--cert":
            cert = arg
        elif (opt == "-s") or (opt == "--seed"):
            try:
                seed = int(arg)
            except ValueError as e:
                util.exit_and_msg(f"seed or s opt must be int \n"
                                  f"intput value : {arg}")
        elif (opt == "-h") or (opt == "--help"):
            usage()
            return

    # Check Port is Using
    if util.check_port_using(conf.IP_RADIOSTATION, int(port)):
        logging.error('RadioStation Service Port is Using ' + str(port))
        return

    RadioStationService(conf.IP_RADIOSTATION, cert, pw, seed).serve(port)
コード例 #6
0
    def test_load_configure_json(self):
        # GIVEN
        ip_local_before_load_json = conf.IP_LOCAL
        logging.debug(
            f"before json file load, conf.IP_LOCAL({ip_local_before_load_json})"
        )

        test_configure_json_path = "configure_json_for_test.json"
        configure_json_file = Path(test_configure_json_path)
        if not configure_json_file.is_file():
            test_configure_json_path = "tests/unit/configure_json_for_test.json"

        # WHEN
        conf.Configure().load_configure_json(test_configure_json_path)
        logging.debug(f"after json file load, conf.IP_LOCAL({conf.IP_LOCAL})")

        # THEN
        self.assertNotEqual(ip_local_before_load_json, conf.IP_LOCAL)

        # BACK
        conf.IP_LOCAL = ip_local_before_load_json
コード例 #7
0
ファイル: test_block.py プロジェクト: JINWOO-J/loopchain
 def setUp(self):
     conf.Configure().init_configure()
     test_util.print_testname(self._testMethodName)
     self.peer_auth = Signer.from_prikey(os.urandom(32))
     set_mock(self)
コード例 #8
0
ファイル: peer.py プロジェクト: LoopNewtorkInc/Loopchain
def main(argv):
    # logging.debug("Peer main got argv(list): " + str(argv))

    try:
        opts, args = getopt.getopt(argv, "dhr:p:c:o:a:", [
            "help", "radio_station_target=", "port=", "score=", "public=",
            "private=", "password="******"configure_file_path="
        ])
    except getopt.GetoptError as e:
        logging.error(e)
        usage()
        sys.exit(1)

    # apply json configure values
    for opt, arg in opts:
        if (opt == "-o") or (opt == "--configure_file_path"):
            conf.Configure().load_configure_json(arg)

    # apply default configure values
    port = conf.PORT_PEER
    radio_station_ip = conf.IP_RADIOSTATION
    radio_station_port = conf.PORT_RADIOSTATION
    radio_station_ip_sub = conf.IP_RADIOSTATION
    radio_station_port_sub = conf.PORT_RADIOSTATION
    score = conf.DEFAULT_SCORE_PACKAGE
    public = conf.PUBLIC_PATH
    private = conf.PRIVATE_PATH
    pw = conf.DEFAULT_PW

    # Parse command line arguments.
    for opt, arg in opts:
        if (opt == "-r") or (opt == "--radio_station_target"):
            try:
                if ':' in arg:
                    target_list = util.parse_target_list(arg)
                    if len(target_list) == 2:
                        radio_station_ip, radio_station_port = target_list[0]
                        radio_station_ip_sub, radio_station_port_sub = target_list[
                            1]
                    else:
                        radio_station_ip, radio_station_port = target_list[0]
                    # util.logger.spam(f"peer "
                    #                  f"radio_station_ip({radio_station_ip}) "
                    #                  f"radio_station_port({radio_station_port}) "
                    #                  f"radio_station_ip_sub({radio_station_ip_sub}) "
                    #                  f"radio_station_port_sub({radio_station_port_sub})")
                elif len(arg.split('.')) == 4:
                    radio_station_ip = arg
                else:
                    raise Exception("Invalid IP format")
            except Exception as e:
                util.exit_and_msg(
                    f"'-r' or '--radio_station_target' option requires "
                    f"[IP Address of Radio Station]:[PORT number of Radio Station], "
                    f"or just [IP Address of Radio Station] format. error({e})"
                )
        elif (opt == "-p") or (opt == "--port"):
            port = arg
        elif (opt == "-c") or (opt == "--score"):
            score = arg
        elif (opt == "-a") or (opt == "--password"):
            pw = arg
        elif opt == "--public":
            public = arg
        elif opt == "--private":
            private = arg
        elif opt == "-d":
            util.set_log_level_debug()
        elif (opt == "-h") or (opt == "--help"):
            usage()
            return

    # run peer service with parameters
    logging.info(f"loopchain peer run with: port({port}) "
                 f"radio station({radio_station_ip}:{radio_station_port}) "
                 f"score({score})")

    # check Port Using
    if util.check_port_using(conf.IP_PEER, int(port)):
        util.exit_and_msg('Peer Service Port is Using ' + str(port))

    # str password to bytes
    if isinstance(pw, str):
        pw = pw.encode()

    ObjectManager().peer_service = PeerService(
        radio_station_ip=radio_station_ip,
        radio_station_port=radio_station_port,
        public_path=public,
        private_path=private,
        cert_pass=pw)

    # logging.debug("loopchain peer_service is: " + str(ObjectManager().peer_service))
    ObjectManager().peer_service.serve(port, score)
コード例 #9
0
ファイル: test_block.py プロジェクト: robmoorman/loopchain
 def setUp(self):
     conf.ENABLE_USER_CONFIG = False
     conf.Configure().init_configure()
     test_util.print_testname(self._testMethodName)
     self.peer_auth = test_util.create_default_peer_auth()
     set_mock(self)