|
|
|
@ -39,7 +39,7 @@ import uuid
|
|
|
|
import xdg.BaseDirectory
|
|
|
|
import xdg.BaseDirectory
|
|
|
|
|
|
|
|
|
|
|
|
#import dat
|
|
|
|
#import dat
|
|
|
|
import metadatadb
|
|
|
|
import metadata
|
|
|
|
|
|
|
|
|
|
|
|
HASH_CHUNK_SIZE = 10485760 # 10mb
|
|
|
|
HASH_CHUNK_SIZE = 10485760 # 10mb
|
|
|
|
SQLITE_FILENAME = 'metadata.db'
|
|
|
|
SQLITE_FILENAME = 'metadata.db'
|
|
|
|
@ -91,7 +91,7 @@ def _kwargs_parse(kwargs_list):
|
|
|
|
action_object = sys.argv[1]
|
|
|
|
action_object = sys.argv[1]
|
|
|
|
action = sys.argv[2]
|
|
|
|
action = sys.argv[2]
|
|
|
|
|
|
|
|
|
|
|
|
metadatadb.configure(os.path.join(data_path, SQLITE_FILENAME))
|
|
|
|
metadata.configure(os.path.join(data_path, SQLITE_FILENAME))
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: Use a real UI library. This mess is just intended for development.
|
|
|
|
# TODO: Use a real UI library. This mess is just intended for development.
|
|
|
|
if action_object == 'platform':
|
|
|
|
if action_object == 'platform':
|
|
|
|
@ -100,24 +100,24 @@ if action_object == 'platform':
|
|
|
|
platform_shortcode = sys.argv[3]
|
|
|
|
platform_shortcode = sys.argv[3]
|
|
|
|
platform_name = sys.argv[4]
|
|
|
|
platform_name = sys.argv[4]
|
|
|
|
|
|
|
|
|
|
|
|
platform_data = metadatadb.Platform(shortcode=platform_shortcode,
|
|
|
|
platform_data = metadata.Platform(shortcode=platform_shortcode,
|
|
|
|
fullname=platform_name)
|
|
|
|
fullname=platform_name)
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
session.add(platform_data)
|
|
|
|
session.add(platform_data)
|
|
|
|
|
|
|
|
|
|
|
|
elif action == 'list':
|
|
|
|
elif action == 'list':
|
|
|
|
# TODO: Filter support is exclusively limited to SQLAlchemy's filter.ilike function. Figure
|
|
|
|
# TODO: Filter support is exclusively limited to SQLAlchemy's filter.ilike function. Figure
|
|
|
|
# out a good way to include other filters.
|
|
|
|
# out a good way to include other filters.
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
print(metadatadb.search(session, metadatadb.Platform, **filters))
|
|
|
|
print(metadata.search(session, metadata.Platform, **filters))
|
|
|
|
|
|
|
|
|
|
|
|
elif action == 'remove':
|
|
|
|
elif action == 'remove':
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
platforms = metadatadb.search(session, metadatadb.Platform, **filters)
|
|
|
|
platforms = metadata.search(session, metadata.Platform, **filters)
|
|
|
|
for platform in platforms:
|
|
|
|
for platform in platforms:
|
|
|
|
print('Removing %s.' % platform.fullname)
|
|
|
|
print('Removing %s.' % platform.fullname)
|
|
|
|
session.delete(platform)
|
|
|
|
session.delete(platform)
|
|
|
|
@ -127,20 +127,20 @@ if action_object == 'platform':
|
|
|
|
platform_shortcode = sys.argv[3]
|
|
|
|
platform_shortcode = sys.argv[3]
|
|
|
|
platform_name = sys.argv[4]
|
|
|
|
platform_name = sys.argv[4]
|
|
|
|
|
|
|
|
|
|
|
|
platform_data = metadatadb.Platform(shortcode=platform_shortcode,
|
|
|
|
platform_data = metadata.Platform(shortcode=platform_shortcode,
|
|
|
|
fullname=platform_name)
|
|
|
|
fullname=platform_name)
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
print(metadatadb.search(session, metadatadb.Platform))
|
|
|
|
print(metadata.search(session, metadata.Platform))
|
|
|
|
|
|
|
|
|
|
|
|
elif action_object == 'release-group':
|
|
|
|
elif action_object == 'release-group':
|
|
|
|
if action == 'add':
|
|
|
|
if action == 'add':
|
|
|
|
properties = _kwargs_parse(sys.argv[3:])
|
|
|
|
properties = _kwargs_parse(sys.argv[3:])
|
|
|
|
release_group = metadatadb.ReleaseGroup(name=properties['name'])
|
|
|
|
release_group = metadata.ReleaseGroup(name=properties['name'])
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
if properties['platform']:
|
|
|
|
if properties['platform']:
|
|
|
|
platform = metadatadb.search(session, metadatadb.Platform,
|
|
|
|
platform = metadata.search(session, metadata.Platform,
|
|
|
|
shortcode=properties['platform'])[0]
|
|
|
|
shortcode=properties['platform'])[0]
|
|
|
|
release_group.platform = platform
|
|
|
|
release_group.platform = platform
|
|
|
|
session.add(release_group)
|
|
|
|
session.add(release_group)
|
|
|
|
@ -150,15 +150,15 @@ elif action_object == 'release-group':
|
|
|
|
# out a good way to include other filters.
|
|
|
|
# out a good way to include other filters.
|
|
|
|
print('Listing release groups.')
|
|
|
|
print('Listing release groups.')
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
print(metadatadb.search(session, metadatadb.ReleaseGroup, **filters))
|
|
|
|
print(metadata.search(session, metadata.ReleaseGroup, **filters))
|
|
|
|
|
|
|
|
|
|
|
|
elif action == 'remove':
|
|
|
|
elif action == 'remove':
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
release_groups = metadatadb.search(session, metadatadb.ReleaseGroup, **filters)
|
|
|
|
release_groups = metadata.search(session, metadata.ReleaseGroup, **filters)
|
|
|
|
for release_group in release_groups:
|
|
|
|
for release_group in release_groups:
|
|
|
|
print('Removing %s.' % release_group.name)
|
|
|
|
print('Removing %s.' % release_group.name)
|
|
|
|
session.delete(release_group)
|
|
|
|
session.delete(release_group)
|
|
|
|
@ -166,12 +166,12 @@ elif action_object == 'release-group':
|
|
|
|
elif action_object == 'image':
|
|
|
|
elif action_object == 'image':
|
|
|
|
if action == 'add':
|
|
|
|
if action == 'add':
|
|
|
|
properties = _kwargs_parse(sys.argv[3:])
|
|
|
|
properties = _kwargs_parse(sys.argv[3:])
|
|
|
|
image = metadatadb.Image(filename=properties['filename'],
|
|
|
|
image = metadata.Image(filename=properties['filename'],
|
|
|
|
sha1sum=properties['sha1sum'])
|
|
|
|
sha1sum=properties['sha1sum'])
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
if properties['release-group']:
|
|
|
|
if properties['release-group']:
|
|
|
|
release_group = metadatadb.search(session, metadatadb.ReleaseGroup,
|
|
|
|
release_group = metadata.search(session, metadata.ReleaseGroup,
|
|
|
|
name=properties['release-group'])[0]
|
|
|
|
name=properties['release-group'])[0]
|
|
|
|
image.release_group = release_group
|
|
|
|
image.release_group = release_group
|
|
|
|
session.add(image)
|
|
|
|
session.add(image)
|
|
|
|
@ -181,15 +181,15 @@ elif action_object == 'image':
|
|
|
|
# out a good way to include other filters.
|
|
|
|
# out a good way to include other filters.
|
|
|
|
print('Listing release groups.')
|
|
|
|
print('Listing release groups.')
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
print(metadatadb.search(session, metadatadb.Image, **filters))
|
|
|
|
print(metadata.search(session, metadata.Image, **filters))
|
|
|
|
|
|
|
|
|
|
|
|
elif action == 'remove':
|
|
|
|
elif action == 'remove':
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
constraints = sys.argv[3:]
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
filters = _kwargs_parse(sys.argv[3:])
|
|
|
|
|
|
|
|
|
|
|
|
with metadatadb.get_db_session() as session:
|
|
|
|
with metadata.get_db_session() as session:
|
|
|
|
release_groups = metadatadb.search(session, metadatadb.Image, **filters)
|
|
|
|
release_groups = metadata.search(session, metadata.Image, **filters)
|
|
|
|
for image in release_groups:
|
|
|
|
for image in release_groups:
|
|
|
|
print('Removing %s.' % image.name)
|
|
|
|
print('Removing %s.' % image.name)
|
|
|
|
session.delete(image)
|
|
|
|
session.delete(image)
|
|
|
|
|