def link(self, id, out_format): try: result, errors = self.control.link(id) client_utils.print_data(self.get_resource(), result, out_format) client_utils.print_data(self.get_resource(), errors, out_format, 'FAIL') except TypeError as e: raise click.BadArgumentUsage(e.message) except Exception as e: raise click.ClickException(e.message)
def delete(self, id, file, out_format): try: if file: parameters = file elif id: parameters = [{"id":id}] else: raise TypeError('You need to specify either --id or --file') result, errors = self.control.delete(parameters=parameters) client_utils.print_data(self.get_resource(), result, out_format) client_utils.print_data(self.get_resource(), errors, out_format, 'FAIL') except TypeError as e: raise click.BadArgumentUsage(e.message) except Exception as e: raise click.ClickException(e.message)
def create(self, attributes, file, out_format): try: if file: parameters = file elif attributes: parameters = [attributes] else: # click.get_current_context.get_help() raise TypeError('You need to specify either --attributes or --file') result, errors = self.control.create(parameters) client_utils.print_data(self.get_resource(), result, out_format) client_utils.print_data(self.get_resource(), errors, out_format, 'FAIL') except TypeError as e: raise click.BadArgumentUsage(e.message) except Exception as e: raise click.ClickException(e.message)
def list_roles_by_query(self, out_format, parameters): try: data = [] result = self.control.index(parameters) for row in result: row2 = {} row.update(row['scope']) del row['scope'] for key, value in row.iteritems(): if 'id' in value: row2[key]= value['id'] name = self.control.custom_query('/%ss/%s'% (key, row2[key]),key)['name'] row2['%s_name'%key] = name data.append(row2) client_utils.print_data(self.get_resource(), data, out_format) except TypeError as e: raise click.BadArgumentUsage(e.message) except Exception as e: raise click.ClickException(e.message)
def index(self, out_format, parameters=None): try: result = self.control.index(parameters=None) client_utils.print_data(self.get_resource(), result, out_format) except Exception as e: raise click.ClickException(e.message)