def get_digest_result(self):
     """Retrieving the digest of a particular ledger."""
     try:
         data = get_requested_data()
         digest = get_digest_result(data["ledger_name"])
         return digest
     except Exception as e:
         logger.exception('Unable to get a ledger digest!')
         return fail_response('Unable to delete the ledger. Please try again.', HTTPStatus.UNPROCESSABLE_ENTITY)
 def describe_ledger(ledger_name):
     """
     Returns information about a ledger, including its state and when it was created.
     """
     try:
         logger.info("Let's describe ledger...{}".format(ledger_name))
         ledger = qldb.client().describe_ledger(Name=ledger_name)
         logger.info('Success. describe ledger...{}.'.format(ledger))
         return ledger
     except Exception as e:
         logger.exception('Unable to list ledgers!')
         return fail_response('Unable to list ledgers!. Please try again.',
                              HTTPStatus.UNPROCESSABLE_ENTITY)
 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)
    def get_ledger_list():
        """
        List all ledgers.

        :rtype: list
        :return: List of ledgers.
        """
        try:
            logger.info("Let's list all the ledgers...")
            ledgers = DdlServices.ledger_list()
            logger.info('Success. List of ledgers: {}.'.format(ledgers))
            return ledgers
        except Exception as e:
            logger.exception('Unable to list ledgers!')
            return fail_response('Unable to list ledgers!. Please try again.',
                                 HTTPStatus.UNPROCESSABLE_ENTITY)
Пример #7
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 list_tables(ledger_name):
     """
         Connect to a session for a given ledger using default settings.
         """
     try:
         qldb_session = qldb.session(ledger_name)
         logger.info('Listing table names ')
         tables = qldb_session.list_tables()
         _tables = []
         for table in tables:
             _tables.append(table)
         return _tables
     except Exception as e:
         logger.exception('Unable to create session.')
         return fail_response(
             'Unable to connect ledgers!. Please try again.',
             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)