Example #1
0
class FileTagList(object):

    def __init__(self, args=None, silent=False):
        if args is None:
            args = self._get_args()
        self.args = args
        self.silent = silent
        verify_has_connection_settings()
        server_url = get_server_url()
        verify_server_is_running(url=server_url)
        self.connection = Connection(server_url, token=get_token())

    def _get_args(self):
        self.parser = self.get_parser()
        return self.parser.parse_args()

    @classmethod
    def get_parser(cls, parser=None):
        # If called from main, use the subparser provided.
        # Otherwise create a top-level parser here.
        if parser is None:
            parser = argparse.ArgumentParser(__file__)

        parser.add_argument(
            'target',
            metavar='TARGET',
            nargs='?',
            help='show tags only for the specified file')

        return parser

    def run(self):
        if self.args.target:
            try:
                files = self.connection.get_data_object_index(
                    min=1, max=1,
                    query_string=self.args.target, type='file')
            except LoomengineUtilsError as e:
                raise SystemExit(
                    "ERROR! Failed to get data object list: '%s'" % e)

            try:
                tag_data = self.connection.list_data_tags(files[0]['uuid'])
            except LoomengineUtilsError as e:
                raise SystemExit("ERROR! Failed to get tag list: '%s'" % e)
            tags = tag_data.get('tags', [])
        else:
            try:
                tag_list = self.connection.get_data_tag_index()
            except LoomengineUtilsError as e:
                raise SystemExit("ERROR! Failed to get tag list: '%s'" % e)
            tags = [item.get('tag') for item in tag_list]
        if not self.silent:
            print '[showing %s tags]' % len(tags)
            for tag in tags:
                print tag
Example #2
0
class FileTagAdd(object):
    """Add a new file tags
    """

    def __init__(self, args=None, silent=False):
        # Args may be given as an input argument for testing purposes
        # or from the main parser.
        # Otherwise get them from the parser.
        if args is None:
            args = self._get_args()
        self.args = args
        self.silent = silent
        verify_has_connection_settings()
        server_url = get_server_url()
        verify_server_is_running(url=server_url)
        self.connection = Connection(server_url, token=get_token())

    def _get_args(self):
        self.parser = self.get_parser()
        return self.parser.parse_args()

    @classmethod
    def get_parser(cls, parser=None):
        # If called from main, use the subparser provided.
        # Otherwise create a top-level parser here.
        if parser is None:
            parser = argparse.ArgumentParser(__file__)

        parser.add_argument(
            'target',
            metavar='TARGET',
            help='identifier for file to be tagged')
        parser.add_argument(
            'tag',
            metavar='TAG', help='tag name to be added')
        return parser

    def run(self):
        try:
            files = self.connection.get_data_object_index(
                min=1, max=1,
                query_string=self.args.target, type='file')
        except LoomengineUtilsError as e:
            raise SystemExit("ERROR! Failed to get data object list: '%s'" % e)
        tag_data = {'tag': self.args.tag}
        try:
            tag = self.connection.post_data_tag(files[0]['uuid'], tag_data)
        except LoomengineUtilsError as e:
            raise SystemExit("ERROR! Failed to create tag: '%s'" % e)

        if not self.silent:
            print 'Target "%s@%s" has been tagged as "%s"' % \
                (files[0]['value'].get('filename'),
                 files[0].get('uuid'),
                 tag.get('tag'))
Example #3
0
class FileTagAdd(object):
    """Add a new file tags
    """
    def __init__(self, args=None):

        # Args may be given as an input argument for testing purposes
        # or from the main parser.
        # Otherwise get them from the parser.
        if args is None:
            args = self._get_args()
        self.args = args
        verify_has_connection_settings()
        server_url = get_server_url()
        verify_server_is_running(url=server_url)
        self.connection = Connection(server_url, token=get_token())

    def _get_args(self):
        self.parser = self.get_parser()
        return self.parser.parse_args()

    @classmethod
    def get_parser(cls, parser=None):
        # If called from main, use the subparser provided.
        # Otherwise create a top-level parser here.
        if parser is None:
            parser = argparse.ArgumentParser(__file__)

        parser.add_argument('target',
                            metavar='TARGET',
                            help='identifier for file to be tagged')
        parser.add_argument('tag', metavar='TAG', help='tag name to be added')
        return parser

    def run(self):
        files = self.connection.get_data_object_index(
            min=1, max=1, query_string=self.args.target, type='file')

        tag_data = {'tag': self.args.tag}
        tag = self.connection.post_data_tag(files[0]['uuid'], tag_data)
        print 'Target "%s@%s" has been tagged as "%s"' % \
            (files[0]['value'].get('filename'),
             files[0].get('uuid'),
             tag.get('tag'))
Example #4
0
class FileTagList(object):
    def __init__(self, args=None):
        if args is None:
            args = self._get_args()
        self.args = args
        verify_has_connection_settings()
        server_url = get_server_url()
        verify_server_is_running(url=server_url)
        self.connection = Connection(server_url, token=get_token())

    def _get_args(self):
        self.parser = self.get_parser()
        return self.parser.parse_args()

    @classmethod
    def get_parser(cls, parser=None):
        # If called from main, use the subparser provided.
        # Otherwise create a top-level parser here.
        if parser is None:
            parser = argparse.ArgumentParser(__file__)

        parser.add_argument('target',
                            metavar='TARGET',
                            nargs='?',
                            help='show tags only for the specified file')

        return parser

    def run(self):
        if self.args.target:
            files = self.connection.get_data_object_index(
                min=1, max=1, query_string=self.args.target, type='file')

            tag_data = self.connection.list_data_tags(files[0]['uuid'])
            tags = tag_data.get('tags', [])
        else:
            tag_list = self.connection.get_data_tag_index()
            tags = [item.get('tag') for item in tag_list]
        print '[showing %s tags]' % len(tags)
        for tag in tags:
            print tag