Example #1
0
    def test_integration_dev(self):
        # Get options
        opts = load_config(self.CONFIG)

        # TODO: There should be a more elegant way of obtaining all the releases
        releases = (
            [key for key in opts["cas"].keys()] +
            [key + "-pg" for key in opts["cas"].keys()] +
            list(opts["msps"]["AlphaMSP"]["orderers"]["nodes"].keys()) +
            [("cdb-" + key)
             for key in opts["msps"]["BetaMSP"]["peers"]["nodes"].keys()] +
            [key for key in opts["msps"]["BetaMSP"]["peers"]["nodes"].keys()])

        # Run Fabric script
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        runner_fabric(opts)

        # Delete all deployments from Helm
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        execute(f"helm delete --purge {' '.join(releases)}")

        # Delete the namespaces
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        execute("kubectl delete ns alpha beta")
Example #2
0
def main(settings_file, verbose=False):  # pragma: no cover
    opts = load_config(settings_file)
    extract_credentials(opts, 'orderer', verbose=verbose)
    extract_credentials(opts, 'peer', verbose=verbose)
    extract_crypto(opts, 'orderer', verbose=verbose)
    extract_crypto(opts, 'peer', verbose=verbose)
    upgrade_charts(opts, 'orderer', verbose=verbose)
    upgrade_charts(opts, 'peer', verbose=verbose)
Example #3
0
def crypto(ctx):  # pragma: no cover
    opts = load_config(ctx.obj['settings_file'])
    # Set up Admin MSPs
    admin_msp(opts, opts['orderers']['msp'], verbose=ctx.obj['verbose'])
    admin_msp(opts, opts['peers']['msp'], verbose=ctx.obj['verbose'])
    # Genesis & Channel
    genesis_block(opts, verbose=ctx.obj['verbose'])
    channel_tx(opts, verbose=ctx.obj['verbose'])
    # Setup node MSPs
    setup_nodes(opts, 'orderer', verbose=ctx.obj['verbose'])
    setup_nodes(opts, 'peer', verbose=ctx.obj['verbose'])
Example #4
0
 def test_load_config(self, mock_check_cluster, mock_open, mock_path,
                      mock_yaml):
     mock_yaml.load.side_effect = [{
         'core': {
             'chart_repo': 'a-repo',
             'cluster': 'a-cluster',
             'dir_config': './a_dir',
             'dir_values': './another_dir'
         }
     }]
     mock_path.isdir.side_effect = [False]
     mock_path.abspath.side_effect = [
         '/home/user/a_dir', '/home/user/another_dir'
     ]
     load_config('./some_settings.yaml')
     mock_open.assert_called_once_with('./some_settings.yaml')
     mock_yaml.load.assert_called_once()
     mock_check_cluster.assert_called_once_with('a-cluster')
     mock_path.isdir.assert_called_once_with('a-repo')
     assert mock_path.expanduser.call_count == 2
     assert mock_path.abspath.call_count == 2
Example #5
0
 def test_load_config_repodir(self, mock_check_cluster, mock_open,
                              mock_path, mock_yaml):
     mock_yaml.load.side_effect = [{
         "core": {
             "chart_repo": "./a_repo_dir",
             "dir_config": "./config",
             "dir_crypto": "./crypto",
             "dir_values": "./helm_values",
         }
     }]
     mock_path.isdir.side_effect = [True]
     mock_path.abspath.side_effect = [
         "/home/user/a_repo_dir",
         "/home/user/config",
         "/home/user/crypto",
         "/home/user/helm_values",
     ]
     load_config("./some_settings.yaml")
     mock_open.assert_called_once_with("./some_settings.yaml")
     mock_yaml.load.assert_called_once()
     mock_check_cluster.assert_not_called()
     mock_path.isdir.assert_called_once_with("./a_repo_dir")
     assert mock_path.expanduser.call_count == 4
     assert mock_path.abspath.call_count == 4
Example #6
0
def fabric(ctx):  # pragma: no cover
    opts = load_config(ctx.obj['settings_file'])
    # Setup CA
    setup_ca(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
    # Crypto material
    admin_msp(opts, opts['orderers']['msp'], verbose=ctx.obj['verbose'])
    admin_msp(opts, opts['peers']['msp'], verbose=ctx.obj['verbose'])
    genesis_block(opts, verbose=ctx.obj['verbose'])
    channel_tx(opts, verbose=ctx.obj['verbose'])
    setup_nodes(opts, 'orderer', verbose=ctx.obj['verbose'])
    setup_nodes(opts, 'peer', verbose=ctx.obj['verbose'])
    # Orderers
    setup_ord(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
    # Peers
    setup_peer(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
    setup_channel(opts, verbose=ctx.obj['verbose'])
Example #7
0
    def test_integration_qa(self):
        # Get options
        opts = load_config(self.CONFIG)

        # Save TLS of each CA in its relevant secret
        ns_create("cas")

        # TODO: Eventually we should enable getting path for multiple CAs programatically
        execute(
            (
                "kubectl -n cas create secret tls ca--tls "
                + f"--cert={self.TLS_PATH}.crt "
                + f"--key={self.TLS_PATH}.key"
            )
        )

        # TODO: There should be a more elegant way of obtaining all the releases
        releases = (
            [key for key in opts["cas"].keys()]
            + [key + "-pg" for key in opts["cas"].keys()]
            + list(opts["msps"]["AlphaMSP"]["orderers"]["nodes"].keys())
            + [
                ("cdb-" + key)
                for key in opts["msps"]["BetaMSP"]["peers"]["nodes"].keys()
            ]
            + [key for key in opts["msps"]["BetaMSP"]["peers"]["nodes"].keys()]
        )

        # Run Fabric script
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        runner_fabric(opts)

        # Delete all deployments from Helm
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        execute(f"helm delete --purge {' '.join(releases)}")

        # Delete the namespaces
        check_cluster(
            self.CONTEXT
        )  # Dangerous operation, recheck we have not shifted context
        execute("kubectl delete ns cas alpha beta")
Example #8
0
def deploy(settings):
    opts = load_config(settings.settings_file)
    runner_deploy(opts, upgrade=settings.upgrade, verbose=settings.verbose)
Example #9
0
def settings(ctx):  # pragma: no cover
    data = load_config(ctx.obj['settings_file'])
    print('Settings successfully loaded...\n')
    if ctx.obj['verbose']:
        # TODO: Pretty print & colorise output
        print(json.dumps(data, indent=4))
Example #10
0
def composer_up(settings):
    opts = load_config(settings.settings_file)
    runner_composer_up(opts, verbose=settings.verbose)
Example #11
0
def cert_auth(settings):
    opts = load_config(settings.settings_file)
    runner_ca(opts, upgrade=settings.upgrade, verbose=settings.verbose)
Example #12
0
def main(settings_file, verbose=False):  # pragma: no cover
    opts = load_config(settings_file)
    upgrade_network(opts, verbose=verbose)
Example #13
0
def composer(ctx):  # pragma: no cover
    opts = load_config(ctx.obj['settings_file'])
    deploy_composer(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
    setup_admin(opts, verbose=ctx.obj['verbose'])
    install_network(opts, verbose=ctx.obj['verbose'])
Example #14
0
def ca(ctx):  # pragma: no cover
    opts = load_config(ctx.obj['settings_file'])
    setup_ca(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
Example #15
0
def fabric(settings):
    opts = load_config(settings.settings_file)
    runner_fabric(opts, upgrade=settings.upgrade, verbose=settings.verbose)
Example #16
0
def crypto(settings):
    opts = load_config(settings.settings_file)
    runner_crypto(opts)
Example #17
0
def settings(settings):
    data = load_config(settings.settings_file)
    print("Settings successfully loaded...\n")
    if settings.verbose:
        # TODO: Pretty print & colorise output
        print(json.dumps(data, indent=4))
Example #18
0
def peer(settings):
    opts = load_config(settings.settings_file)
    runner_peer(opts, upgrade=settings.upgrade)
Example #19
0
def composer(settings):
    opts = load_config(settings.settings_file)
    runner_composer(opts, upgrade=settings.upgrade, verbose=settings.verbose)
Example #20
0
def settings(settings):
    data = load_config(settings.settings_file)
    logging.info("Settings successfully loaded...\n")
    logging.debug(pretty_print(json.dumps(data, indent=4)))
Example #21
0
def crypto(settings):
    opts = load_config(settings.settings_file)
    runner_crypto(opts, verbose=settings.verbose)
Example #22
0
def peer(ctx):  # pragma: no cover
    opts = load_config(ctx.obj['settings_file'])
    setup_peer(opts, upgrade=ctx.obj['upgrade'], verbose=ctx.obj['verbose'])
    setup_channel(opts, verbose=ctx.obj['verbose'])