def generate(args): """ Generate CQL and/or load it into a cassandra instance/cluster. """ try: generator = CQLGenerator(args.cql_dir, safe_only=args.ban_unsafe) except Exception as e: print(e.message) sys.exit(1) cql = generator.generate_cql( keyspace_name=args.keyspace, replication_factor=args.replication, outfile=args.outfile) if args.dry_run: return # filter out comments, to make debugging easier cql = "\n".join( [line for line in cql.split('\n') if line.strip() and not line.strip().startswith('--')]) # no blank lines or pointless whitespace commands = [x.strip() for x in cql.split(';') if x.strip()] # connect if args.verbose > 0: print("Attempting to connect to {0}:{1}".format(args.host, args.port)) try: connection = connect(args.host, args.port, cql_version='3.0.4') except Exception as e: print("CONNECTION ERROR: {0}".format(e.message)) sys.exit(1) cursor = connection.cursor() # execute commands execute_commands(cursor, commands, args.verbose) if args.verbose > 0: print('\n----\n') print("Done. Disconnecting.") cursor.close() connection.close()
def generate(args): """ Generate CQL and/or load it into a cassandra instance/cluster. """ try: generator = CQLGenerator(args.cql_dir, safe_only=args.ban_unsafe) except Exception as e: print(e.message) sys.exit(1) cql = generator.generate_cql(keyspace_name=args.keyspace, replication_factor=args.replication, outfile=args.outfile) if args.dry_run: return # filter out comments, to make debugging easier cql = "\n".join([ line for line in cql.split('\n') if line.strip() and not line.strip().startswith('--') ]) # no blank lines or pointless whitespace commands = [x.strip() for x in cql.split(';') if x.strip()] # connect if args.verbose > 0: print("Attempting to connect to {0}:{1}".format(args.host, args.port)) try: connection = connect(args.host, args.port, cql_version='3.0.4') except Exception as e: print("CONNECTION ERROR: {0}".format(e.message)) sys.exit(1) cursor = connection.cursor() # execute commands execute_commands(cursor, commands, args.verbose) if args.verbose > 0: print('\n----\n') print("Done. Disconnecting.") cursor.close() connection.close()
def run(args): """ Generate CQL and/or load it into a cassandra instance/cluster. """ try: generator = CQLGenerator(args.cql_dir, safe_only=args.ban_unsafe) except Exception as e: print e.message sys.exit(1) cql = generator.generate_cql( keyspace_name=args.keyspace, replication_factor=args.replication, outfile=args.outfile) if args.dry_run: return # filter out comments, to make debugging easier cql = "\n".join( [line for line in cql.split('\n') if line.strip() and not line.strip().startswith('--')]) # no blank lines or pointless whitespace commands = [x.strip() for x in cql.split(';') if x.strip()] # connect if args.verbose > 0: print "Attempting to connect to {0}:{1}".format(args.host, args.port) try: connection = connect(args.host, args.port, cql_version='3') except Exception as e: print "CONNECTION ERROR: {0}".format(e.message) sys.exit(1) cursor = connection.cursor() for command in commands: try: cursor.execute(command, {}) except ProgrammingError as pe: # if somewhat verbose, then print out all errors. # if less verbose, print out only non-already-existing errors message = pe.message.lower() significant_error = ( "already exist" not in message and "existing keyspace" not in message) if args.verbose > 1 or significant_error: print '\n----\n' print command print "{0}".format(pe.message.strip()) if significant_error: sys.exit(1) else: # extremely verbose - notify that command executed correctly. if args.verbose > 2: print '\n----\n' print command print "Ok." if args.verbose > 0: print '\n----\n' print "Done. Disconnecting." cursor.close() connection.close()
def run(args): """ Generate CQL and/or load it into a cassandra instance/cluster. """ try: generator = CQLGenerator(args.cql_dir, safe_only=args.ban_unsafe) except Exception as e: print e.message sys.exit(1) cql = generator.generate_cql(keyspace_name=args.keyspace, replication_factor=args.replication, outfile=args.outfile) if args.dry_run: return # filter out comments, to make debugging easier cql = "\n".join([ line for line in cql.split('\n') if line.strip() and not line.strip().startswith('--') ]) # no blank lines or pointless whitespace commands = [x.strip() for x in cql.split(';') if x.strip()] # connect if args.verbose > 0: print "Attempting to connect to {0}:{1}".format(args.host, args.port) try: connection = connect(args.host, args.port, cql_version='3') except Exception as e: print "CONNECTION ERROR: {0}".format(e.message) sys.exit(1) cursor = connection.cursor() for command in commands: try: cursor.execute(command, {}) except ProgrammingError as pe: # if somewhat verbose, then print out all errors. # if less verbose, print out only non-already-existing errors message = pe.message.lower() significant_error = ("already exist" not in message and "existing keyspace" not in message) if args.verbose > 1 or significant_error: print '\n----\n' print command print "{0}".format(pe.message.strip()) if significant_error: sys.exit(1) else: # extremely verbose - notify that command executed correctly. if args.verbose > 2: print '\n----\n' print command print "Ok." if args.verbose > 0: print '\n----\n' print "Done. Disconnecting." cursor.close() connection.close()