def create_ledger(ledger_name):
     """Create a ledger and wait for it to be active."""
     try:
         DdlServices.do_create_ledger(ledger_name)
         wait_for_active(ledger_name)
         DdlServices.reset_ledgers()
         return success_response('Ledger is active and ready to use.',
                                 HTTPStatus.CREATED)
     except Exception as e:
         logger.exception('Unable to create the ledger!')
         return fail_response(
             'Unable to create the ledger. error: {}. Please try again.'.
             format(e), HTTPStatus.UNPROCESSABLE_ENTITY)
 def delete_ledger(ledger_name):
     """Delete a ledger."""
     try:
         set_deletion_protection(ledger_name, False)
         DdlServices.do_delete_ledger(ledger_name)
         wait_for_deleted(ledger_name)
         DdlServices.reset_ledgers()
         return success_response('The ledger is successfully deleted.',
                                 HTTPStatus.ACCEPTED)
     except Exception as e:
         logger.exception('Unable to delete the ledger.')
         return fail_response(
             'Unable to delete the ledger. Please try again.',
             HTTPStatus.UNPROCESSABLE_ENTITY)
 def drop_table(ledger_name=None, table_name=None):
     """Create a Table"""
     try:
         with qldb.session(ledger_name) as session:
             session.execute_lambda(
                 lambda x: DdlServices.do_drop_table(x, table_name),
                 lambda retry_attempt: logger.info(
                     'Retrying due to OCC conflict...'))
             logger.info('Table dropped successfully.')
             return success_response('Table dropped successfully.',
                                     HTTPStatus.CREATED)
     except Exception:
         logger.exception('Error creating table.')
         return fail_response(
             'Unable to create the table. Please try again.',
             HTTPStatus.UNPROCESSABLE_ENTITY)
Exemple #4
0
 def insert_documents(ledger_name, table_name, documents):
     """
         Insert documents into a table in a QLDB ledger.
         """
     try:
         with qldb.session(ledger_name) as session:
             # An INSERT statement creates the initial revision of a document with a version number of zero.
             # QLDB also assigns a unique document identifier in GUID format as part of the metadata.
             session.execute_lambda(
                 lambda executor: DmlServices.do_insert_documents(executor, table_name, documents),
                 lambda retry_attempt: logger.info('Retrying due to OCC conflict...'))
             logger.info('Documents inserted successfully!')
             return success_response('Ledger is active and ready to use.', HTTPStatus.CREATED)
     except Exception as e:
         logger.exception('Error inserting or updating documents.')
         return fail_response('Error inserting or updating documents. error: {}. Please try again.'.format(e),
                              HTTPStatus.UNPROCESSABLE_ENTITY)
 def create_table_index(ledger_name=None,
                        table_name=None,
                        index_attribute=None):
     """Create index on tables in a particular ledger."""
     logger.info('Creating index on all tables in a single transaction...')
     try:
         with qldb.session(ledger_name) as session:
             session.execute_lambda(
                 lambda x: DdlServices.do_create_table_index(
                     x, table_name, index_attribute), lambda retry_attempt:
                 logger.info('Retrying due to OCC conflict...'))
             logger.info('Index created successfully.')
             return success_response('Index created successfully.',
                                     HTTPStatus.CREATED)
     except Exception:
         logger.exception('Unable to create index.')
         return fail_response(
             'Unable to create the index. Please try again.',
             HTTPStatus.UNPROCESSABLE_ENTITY)