Exemple #1
0
def mock_application(service_name=None):
    service_name = service_name or os.getcwd().split("/")[-1].split("-")[-1]
    config = importlib.import_module(f"{service_name}.config")

    # service_settings = {c: getattr(config, c) for c in dir(config) if c.isupper()}
    # service_settings.update({"INIESTA_DRY_RUN": True})
    config.INIESTA_DRY_RUN = True

    new_settings = LazySettings()
    new_settings.configure(config)

    Iniesta.load_config(new_settings)

    class Dummy:
        config = None

    dummy = Dummy()
    dummy.config = new_settings

    with open(f"{service_name}/app.py", "r") as file:
        for line in file:
            if "Insanic(" in line:
                variable_name = line.split("=")[0].strip()
                exec(f"{variable_name} = dummy")
            elif line.startswith("Iniesta."):
                exec(line)
                break

    return dummy
    def sqs_client(self, insanic_application, create_service_sqs):
        Iniesta.load_config(insanic_application.config)
        SQSClient.queue_urls = {
            SQSClient.default_queue_name(): create_service_sqs["QueueUrl"]
        }
        sqs_client = SQSClient()

        return sqs_client
Exemple #3
0
    def sqs_client(self, insanic_application):
        from iniesta import Iniesta

        Iniesta.load_config(insanic_application.config)
        SQSClient.queue_urls = {SQSClient.default_queue_name(): "hello"}
        client = SQSClient()
        yield client

        SQSClient.handlers = {}
Exemple #4
0
def send(message):
    # TODO: documentation for read me

    Iniesta.load_config(settings)

    message = message or {}

    loop = asyncio.get_event_loop()
    sqs_client = loop.run_until_complete(SQSClient.initialize())
    message = sqs_client.create_message(message=message)
    loop.run_until_complete(message.send())

    click.echo("Message Sent")
    click.echo(f"MessageId: {message.message_id}")

    Iniesta.unload_config(settings)
Exemple #5
0
def publish(event, message, version):
    # TODO: documentation for read me

    # app = mock_application()
    loop = asyncio.get_event_loop()
    Iniesta.load_config(settings)

    version = version or 1
    message = message or {}

    sns_client = SNSClient()

    message = sns_client.create_message(event=event,
                                        message=message,
                                        version=version,
                                        raw_event=True)
    # message.add_event(event, raw=True)
    result = loop.run_until_complete(message.publish())

    if result["ResponseMetadata"]["HTTPStatusCode"] == 200:
        click.echo("Publish Success!")
    else:
        click.echo("Publish Failed!")
    click.echo("\n")
    click.echo("REQUEST INFO")
    click.echo(f"Message Event : {message.event}")
    click.echo(f"Message Data : {message.message}")
    click.echo(f"Full Payload : {message}")
    click.echo(f"Message Length : {message.size}")
    click.echo("\n")
    click.echo("RESPONSE INFO")
    click.echo(f"Message ID : {result['MessageId']}")
    click.echo(
        f"Message Length : {result['ResponseMetadata']['HTTPHeaders']['content-length']}"
    )

    Iniesta.unload_config(settings)
Exemple #6
0
 def load_configs(self):
     Iniesta.load_config(settings)