Skip to content

Commit

Permalink
implement changes for uuid support in api and dbs
Browse files Browse the repository at this point in the history
  • Loading branch information
cherusk committed Nov 29, 2023
1 parent e6f5c97 commit 21306ac
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 41 deletions.
12 changes: 6 additions & 6 deletions api/archive_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ def delete_breeder_table(table_name=None):
return query

@staticmethod
def fetch_tables(breeder_name=None):
def fetch_tables(uuid=None):
query = f"""
SELECT tablename FROM pg_tables WHERE tablename ~ '^{breeder_name}.*';
SELECT tablename FROM pg_tables WHERE tablename ~ '^{uuid}.*';
"""

return query
Expand All @@ -82,9 +82,9 @@ def delete_trigger(trigger_name=None, table_name=None):
return query

@staticmethod
def fetch_triggers(breeder_name=None):
def fetch_triggers(breeder_id=None):
query = f"""
SELECT tgname FROM pg_trigger WHERE tgname ~ '^{breeder_name}.*';
SELECT tgname FROM pg_trigger WHERE tgname ~ '^{breeder_id}.*';
"""

return query
Expand Down Expand Up @@ -124,9 +124,9 @@ def delete_procedure(procedure_name=None):
return query

@staticmethod
def fetch_procedures(breeder_name=None):
def fetch_procedures(breeder_id=None):
query = f"""
SELECT proname FROM pg_proc WHERE proname ~ '^{breeder_name}.*';
SELECT proname FROM pg_proc WHERE proname ~ '^{breeder_id}.*';
"""

return query
Expand Down
28 changes: 16 additions & 12 deletions api/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
import logging

import json
import uuid


AIRFLOW_API_BASE_URL = os.environ.get('AIRFLOW__URL')
AIRFLOW_API_VERSION = "v1"
Expand Down Expand Up @@ -75,7 +77,7 @@
)


def breeders_name_delete(breeder_name): # noqa: E501
def breeders_id_delete(breeder_id): # noqa: E501
"""breeders_delete
Purge a breeder # noqa: E501
Expand All @@ -96,10 +98,10 @@ def breeders_name_delete(breeder_name): # noqa: E501
db_config = ARCHIVE_DB_CONFIG.copy()
db_config.update(dict(dbname="archive_db"))

__query = archive.queries.delete_breeder_table(table_name=breeder_name)
__query = archive.queries.delete_breeder_table(table_name=breeder_id)
archive.archive_db.execute(db_info=db_config, query=__query)

__query = archive.queries.fetch_procedures(breeder_name=breeder_name)
__query = archive.queries.fetch_procedures(breeder_id=breeder_id)
procedures = archive.archive_db.execute(db_info=db_config, query=__query, with_result=True)

for procedure_name in procedures:
Expand All @@ -108,7 +110,7 @@ def breeders_name_delete(breeder_name): # noqa: E501
__query = archive.queries.delete_procedure(procedure_name=procedure_name[0])
archive.archive_db.execute(db_info=db_config, query=__query)

__query = archive.queries.fetch_tables(breeder_name=breeder_name)
__query = archive.queries.fetch_tables(breeder_id=breeder_id)
archive_tables = archive.archive_db.execute(db_info=db_config, query=__query, with_result=True)

for table_name in archive_tables:
Expand All @@ -123,10 +125,10 @@ def breeders_name_delete(breeder_name): # noqa: E501
db_table_name = 'breeder_meta_data'

__query = meta_data.queries.remove_breeder_meta(table_name=db_table_name,
breeder_name=breeder_name)
breeder_id=breeder_id)
archive.archive_db.execute(db_info=db_config, query=__query)

return Response(json.dumps(dict(message=f"Purged Breeder named {breeder_name}")),
return Response(json.dumps(dict(message=f"Purged Breeder named {breeder_id}")),
status=200,
mimetype='application/json')

Expand Down Expand Up @@ -157,7 +159,7 @@ def breeders_get(): # noqa: E501
mimetype='application/json')


def breeders_name_get(breeder_name): # noqa: E501
def breeders_id_get(breeder_uuid): # noqa: E501
"""breeders_name_get
Obtain information about breeder from its name # noqa: E501
Expand All @@ -169,7 +171,7 @@ def breeders_name_get(breeder_name): # noqa: E501
db_config.update(dict(dbname='meta_data'))
db_table_name = 'breeder_meta_data'

__query = meta_data.queries.fetch_meta_data(table_name=db_table_name, breeder_name=breeder_name)
__query = meta_data.queries.fetch_meta_data(table_name=db_table_name, breeder_id=breeder_uuid)
breeder_meta_data = archive.archive_db.execute(db_info=db_config, query=__query, with_result=True)

breeder_meta_data_row = breeder_meta_data[0]
Expand All @@ -190,7 +192,8 @@ def breeders_post(content): # noqa: E501

breeder_config_full = content
breeder_config = dict(content.get('breeder'))
breeder_id = breeder_config.get('name')
breeder_name = breeder_config.get('name')
uuid = uuid.uuid4()

def create_breeder(api_client, content):

Expand Down Expand Up @@ -218,13 +221,13 @@ def create_breeder(api_client, content):
db_config = ARCHIVE_DB_CONFIG.copy()
db_config.update(dict(dbname="archive_db"))

__query = archive.queries.create_breeder_table(table_name=dag_name)
__query = archive.queries.create_breeder_table(table_name=uuid)
archive.archive_db.execute(db_info=db_config, query=__query)

for target in targets:
identifier = hashlib.sha256(str.encode(target.get('address'))).hexdigest()[0:6]
hash_suffix = hashlib.sha256(str.encode(target.get('address'))).hexdigest()[0:6]
for run_id in range(0, parallel_runs):
dag_id = f'{dag_name}_{run_id}_{identifier}'
dag_id = f'{uuid}_{run_id}_{hash_suffix}'

__query = archive.queries.create_breeder_table(table_name=dag_id)
archive.archive_db.execute(db_info=db_config, query=__query)
Expand All @@ -249,6 +252,7 @@ def create_breeder(api_client, content):
archive.archive_db.execute(db_info=db_config, query=__query)

__query = meta_data.queries.insert_breeder_meta(table_name=db_table_name,
breeder_id=uuid,
creation_ts=datetime.datetime.now(),
meta_state=breeder_config)
archive.archive_db.execute(db_info=db_config, query=__query)
Expand Down
15 changes: 8 additions & 7 deletions api/meta_data_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ def create_meta_breeder_table(table_name=None):
query = f"""
CREATE TABLE IF NOT EXISTS {table_name}
(
id uuid PRIMARY KEY,
creation_tsz TIMESTAMPTZ,
definition jsonb NOT NULL
);
Expand All @@ -16,34 +17,34 @@ def create_meta_breeder_table(table_name=None):
return query

@staticmethod
def insert_breeder_meta(table_name=None, creation_ts=None, meta_state=None):
def insert_breeder_meta(table_name=None, breeder_id=None, creation_ts=None, meta_state=None):

json_string = json.dumps(meta_state)

query = f"""
INSERT INTO {table_name} (creation_tsz, definition)
VALUES('{creation_ts}', '{json_string}');
VALUES('{breeder_id}', '{creation_ts}', '{json_string}');
"""

return query

def remove_breeder_meta(table_name=None, breeder_name=None):
def remove_breeder_meta(table_name=None, breeder_id=None):
query = f"""
DELETE FROM {table_name} WHERE definition->>'name' = '{breeder_name}';
DELETE FROM {table_name} WHERE id = '{breeder_id}';
"""

return query

def fetch_meta_data(table_name=None, breeder_name=None):
def fetch_meta_data(table_name=None, breeder_id=None):
query = f"""
SELECT creation_tsz, definition FROM {table_name} WHERE definition->>'name' = '{breeder_name}';
SELECT id, creation_tsz, definition FROM {table_name} WHERE id = '{breeder_id}';
"""

return query

def fetch_breeders_list(table_name=None):
query = f"""
SELECT definition->>'name',creation_tsz FROM {table_name};
SELECT id, definition->>'name', creation_tsz FROM {table_name};
"""

return query
18 changes: 9 additions & 9 deletions api/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ paths:
items:
type: object
required:
- name
- id
properties:
name:
id:
type: string
'400':
description: Invalid request
Expand All @@ -61,7 +61,7 @@ paths:
schema:
type: object
responses:
'204':
'200':
description: Successfully created the breeder
'400':
description: Invalid request
Expand Down Expand Up @@ -98,11 +98,11 @@ paths:
message:
type: string

/breeders/{name}:
/breeders/{id}:
delete:
description: Purge a breeder
parameters:
- name: name
- name: id
in: path
required: true
schema:
Expand All @@ -127,9 +127,9 @@ paths:
message:
type: string
get:
description: Obtain information about breeder from its name
description: Obtain information about breeder from its id(uuid)
parameters:
- name: name
- name: id
in: path
required: true
schema:
Expand All @@ -144,9 +144,9 @@ paths:
items:
type: object
required:
- name
- id
properties:
name:
id:
type: string
'400':
description: Invalid request
Expand Down
14 changes: 7 additions & 7 deletions cli/maskfile.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ curl --request POST \

**OPTIONS**
* name
* flags: --name
* flags: --uuid
* type: string
* desc: name of breeder to be purged
* desc: uuid of breeder to be purged
* hostname
* flags: --hostname
* type: string
Expand All @@ -112,7 +112,7 @@ set -eEux
__api_version="${api_version:-v0}"

curl --request DELETE \
"http://${hostname}:${port}/${__api_version}/breeders/${name}"
"http://${hostname}:${port}/${__api_version}/breeders/${uuid}"
~~~

### breeder update
Expand Down Expand Up @@ -156,9 +156,9 @@ curl --request PUT \

**OPTIONS**
* name
* flags: --name
* flags: --uuid
* type: string
* desc: name of breeder to get details from
* desc: uuid of breeder to get details from
* hostname
* flags: --hostname
* type: string
Expand All @@ -181,6 +181,6 @@ __api_version="${api_version:-v0}"

curl --request GET \
-H 'Content-Type: application/json' \
--data "{ \"name\": \"${name}\" }" \
"http://${hostname}:${port}/${__api_version}/breeders/${name}"
--data "{ \"id\": \"${uuid}\" }" \
"http://${hostname}:${port}/${__api_version}/breeders/${uuid}"
~~~

0 comments on commit 21306ac

Please sign in to comment.