本文整理汇总了Python中lib.db.DB.query方法的典型用法代码示例。如果您正苦于以下问题:Python DB.query方法的具体用法?Python DB.query怎么用?Python DB.query使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lib.db.DB
的用法示例。
在下文中一共展示了DB.query方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: LongRunTestCase
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
#.........这里部分代码省略.........
self.config.backups[self.backup.name] = self.backup
# build an options object for use with the backup
self.options = BlankClass()
self.options.dry_run = False
self.options.message = False
self.options.email = False
self.options.shutdown = False
self.options.norecurse = False
# How many cycles?
self.cycles = 20
def tearDown(self):
self.config.data_passphrase = self.old_pass
# Remove all DB records created during this test
self.clean_db()
shutil.rmtree(self.test_folder)
self.assertFalse(os.path.isdir(self.test_folder))
def testLongRun(self):
# Run a full backup
b = Run(self.backup.name, const.FullBackup, self.options)
b.run()
for cycle in xrange(self.cycles):
print(str(cycle)+"\r")
time.sleep(1)
# Change some files
with open(os.path.join(self.files_folder, "incr"), "w") as f:
f.write(os.urandom(100))
with open(os.path.join(self.files_folder, str(cycle)), "w") as f:
f.write(os.urandom(100))
# Run an incr backup
b = Run(self.backup.name, const.IncrBackup, self.options)
b.run()
# Attempt to restore every file
r = Restore(self.restore_folder, [self.files_folder],
datetime.now(), self.options)
r.run()
# Lets break it
# os.remove(os.path.join(self.restore_folder, self.files_folder[1:], "1"))
# with open(os.path.join(self.files_folder, "incr"), "w") as f:
# f.write("-1")
# with open(os.path.join(self.restore_folder, self.files_folder[1:], "8"), "w") as f:
# f.write("-1")
# Check that the restored folder and original folder are identical
left = unicode(self.files_folder)
right = unicode(os.path.join(self.restore_folder, self.files_folder[1:]))
d = utils.dircmp(left, right)
self.assertEqual(d.left_only, set())
self.assertEqual(d.right_only, set())
self.assertEqual(d.diff_files, set())
self.assertTrue(len(d.same_files) > 0)
# Check that all files are in the DB
for folder, _, local_files in os.walk(self.files_folder):
for file in local_files:
path = os.path.join(file, folder)
# This will raise an exception if it does not exist
self.db.select_path(path, build=False)
############################################################################
#
# Utility Routines
#
############################################################################
def mark_db_ids(self):
self.max_fs_id = self.db.query("select max(fs_id) from fs", ())[0][0]
if self.max_fs_id is None:
self.max_fs_id = 0
self.max_version_id = self.db.query("select max(version_id) from versions", ())[0][0]
if self.max_version_id is None:
self.max_version_id = 0
self.max_run_id = self.db.query("select max(run_id) from runs", ())[0][0]
if self.max_run_id is None:
self.max_run_id = 0
self.max_message_id = self.db.query("select max(message_id) from messages", ())[0][0]
if self.max_message_id is None:
self.max_message_id = 0
def clean_db(self):
self.db.execute("delete from messages where message_id > ?", (self.max_message_id,))
self.db.execute("delete from versions where version_id > ?", (self.max_version_id,))
self.db.execute("delete from fs where fs_id > ?", (self.max_fs_id,))
self.db.execute("delete from runs where run_id > ?", (self.max_run_id,))
示例2: Tester
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
class Tester():
def __init__(self, test_folder, options):
self.test_folder = os.path.join(test_folder, "tester")
self.options = options
self.config = Config.get_config()
self.store_folder = os.path.join(self.test_folder, "stores")
self.files_folder = os.path.join(self.test_folder, "files")
self.restore_folder = os.path.join(self.test_folder, "restore")
self.db = DB()
self.max_fs_id = self.db.query("select max(fs_id) from fs", ())[0][0]
if self.max_fs_id is None:
self.max_fs_id = 0
self.max_version_id = self.db.query("select max(version_id) from versions", ())[0][0]
if self.max_version_id is None:
self.max_version_id = 0
self.max_run_id = self.db.query("select max(run_id) from runs", ())[0][0]
if self.max_run_id is None:
self.max_run_id = 0
self.max_message_id = self.db.query("select max(message_id) from messages", ())[0][0]
if self.max_message_id is None:
self.max_message_id = 0
log.debug("MAX IDs", self.max_fs_id, self.max_version_id, self.max_run_id, self.max_message_id)
self.teststring1 = os.urandom(204800)
self.teststring2 = os.urandom(204800)
def run(self):
try:
self.simpleCycleTest()
self.restoreTest()
except:
pass
if self.options.message:
try:
from lib.dlg import Notify
Notify(const.AppTitle, "Test run is complete")
except:
log.debug("Unable to notify. No-one logged in?")
if self.options.email:
self.send_email(True)
if self.options.shutdown:
os.system("shutdown -P +2")
def simpleCycleTest(self):
try:
# build the test files/folders
self.make_folders()
# fill the files folder with the initial set of files
self.fill_files()
# Build a backup and store
self.build_config()
# self.run_test()
for i in xrange(int(self.options.cycles)):
log.info("Cycle", i)
# Run a full and one incremental
self.run_cycle_test()
except Exception as e:
log.error("Test run failed: %s" % str(e))
finally:
self.cleanup()
log.info("********Success")
def restoreTest(self):
try:
# build the test files/folders
self.make_folders()
# fill the files folder with the initial set of files
self.fill_files()
except:
pass
# def build_config(self):
# log.trace("build_config")
# try:
# if self.options.store:
# store = self.config.storage[self.options.store]
# else:
# # Make the store about 3x the options size
# s, dummy, dummy = utils.from_readable_form(self.options.size)
# store_size = utils.readable_form(s * 3)
# store = FolderStore("teststore1", store_size, True, os.path.join(self.store_folder, "teststore1"))
# self.config.storage[store.name] = store
#
# backup = Backup("testbackup1")
# backup.include_folders = [self.files_folder]
# backup.store = store.name
# backup.notify_msg = False
#.........这里部分代码省略.........
示例3: DB
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
if line == "":
pass
else:
print line + "\n"
if select.select([sys.stdin, ], [], [], 0.5)[0]:
foo = sys.stdin().readline().strip()
if foo == "exit":
break
elif comm.lower == "sms":
command = agentkey + " " + "PORT" + " " + port1 + " " + foo
db = DB(config=config)
db.query("SELECT path from modems where id=" + modem)
path2 = db.fetchone()[0]
db.query("SELECT controlkey from modems where id=" + modem)
key2 = db.fetchone()[0]
number2 = agentnumber
db.query("SELECT type from modems where id=" + modem)
modemtype2 = db.fetchone()[0]
if modemtype2 == "usb":
usb = serial.serialposix(port='/dev/ttyUSB2', baudrate=115200,
bytesize=8, parity='N', stopbits=1)
usb.write("ATZ\r\n")
sleep(1)
line = read_modem(usb)
print line
sleep(1)
示例4: VerifyTestCase
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
#.........这里部分代码省略.........
run = runs[0]
v = Verify("testbackup", run.start_time)
self.assertTrue(v.run())
def testBadVerify(self):
# Run a full backup
b = Run("testbackup", const.FullBackup, self.options)
b.run()
# Get the times
runs = self.db.runs("testbackup")
run = runs[0]
# Get the location of the data file from the streamer
streamer = StreamOut(None, self.store, b.backup_folder)
datafile = os.path.join(self.store.root, streamer.get_path(0))
size = os.path.getsize(datafile)
# Now corrupt the data file a little
with open(datafile, "r+b") as f:
f.seek(size // 2, 0)
f.write("X")
v = Verify("testbackup", run.start_time)
self.assertRaises(Exception, v.run)
def testBadConfig(self):
# Run a full backup
b = Run("testbackup", const.FullBackup, self.options)
b.run()
# Get the times
runs = self.db.runs("testbackup")
run = runs[0]
# Delete The Config File
configfile = os.path.join(run.folder, const.ConfigName)
self.store.remove_file(configfile)
v = Verify("testbackup", run.start_time)
self.assertRaises(Exception, v.run)
def testBadVerifyEncrypted(self):
backup = self.config.backups[self.backup.name]
backup.encrypt = True
self.config.backups[backup.name] = backup
# Run a full backup
b = Run("testbackup", const.FullBackup, self.options)
b.run()
# Get the times
runs = self.db.runs("testbackup")
run = runs[0]
# Get the location of the data file from the streamer
streamer = StreamOut(None, self.store, b.backup_folder)
datafile = os.path.join(self.store.root, streamer.get_path(0))
# Now corrupt the data file a little
size = os.path.getsize(datafile)
with open(datafile, "r+b") as f:
f.seek(size // 2, 0)
f.write("X")
v = Verify("testbackup", run.start_time)
self.assertRaises(Exception, v.run)
############################################################################
#
# Utility Routines
#
############################################################################
def mark_db_ids(self):
self.max_fs_id = self.db.query("select max(fs_id) from fs", ())[0][0]
if self.max_fs_id is None:
self.max_fs_id = 0
self.max_version_id = self.db.query("select max(version_id) from versions", ())[0][0]
if self.max_version_id is None:
self.max_version_id = 0
self.max_run_id = self.db.query("select max(run_id) from runs", ())[0][0]
if self.max_run_id is None:
self.max_run_id = 0
self.max_message_id = self.db.query("select max(message_id) from messages", ())[0][0]
if self.max_message_id is None:
self.max_message_id = 0
def clean_db(self):
self.db.execute("delete from messages where message_id > ?", (self.max_message_id,))
self.db.execute("delete from versions where version_id > ?", (self.max_version_id,))
self.db.execute("delete from fs where fs_id > ?", (self.max_fs_id,))
self.db.execute("delete from runs where run_id > ?", (self.max_run_id,))
示例5: ServerTestCase
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
#.........这里部分代码省略.........
for t, exists, contents in [(t0, False, None), (t1, True, "1"), (t2, True, "2"), (None, True, "2")]:
# Attempt to restore most recent of ALL files
# This tests the default restore.
r = Restore(self.restore_folder, [self.files_folder], t, self.options)
r.run()
if exists:
with open(restore_file, "r") as f:
self.assertEqual(f.read(), contents)
else:
self.assertFalse(os.path.exists(restore_file))
# clean
shutil.rmtree(self.restore_folder)
utils.makedirs(self.restore_folder)
def test7bitFilenames(self):
# Make some 7 bit filenames
strange_folder = os.path.join(self.files_folder, "strange")
utils.makedirs(strange_folder)
for i in xrange(1, 117, 10):
name = "".join([chr(j) for j in xrange(i, i + 10) if chr(j) != "/"])
path = os.path.join(strange_folder, name)
with open(path, "w") as f:
f.write(os.urandom(100))
self.backup_restore_compare()
def testUnicodeFilenames(self):
# Make some unicode bit filenames
# Clean out the ordinary files
shutil.rmtree(self.files_folder)
utils.makedirs(self.files_folder)
unicode_folder = os.path.join(unicode(self.files_folder), u"unicode")
utils.makedirs(unicode_folder)
for i in xrange(1000, 1200, 10):
name = u"".join([unichr(j) for j in xrange(i, i + 10) if unichr(j) != u"/"])
path = os.path.join(unicode_folder, name)
with open(path, "w") as f:
f.write(os.urandom(10))
self.backup_restore_compare()
def backup_restore_compare(self):
# Run a full backup
b = Run("testbackup", const.FullBackup, self.options)
b.run()
# Make sure we have ticked to another second since the start of the last backup.
while datetime.now() - b.start_time < timedelta(seconds=1):
time.sleep(0.01)
# Attempt to restore every file
r = Restore(self.restore_folder, [self.files_folder],
datetime.now(), self.options)
r.run()
# Check that the restored folder and original folder are identical
left = unicode(self.files_folder)
right = unicode(os.path.join(self.restore_folder, self.files_folder[1:]))
d = utils.dircmp(left, right)
self.assertEqual(d.left_only, set())
self.assertEqual(d.right_only, set())
self.assertEqual(d.diff_files, set())
self.assertTrue(len(d.same_files) > 0)
# Check that all files are in the DB
for folder, _, local_files in os.walk(self.files_folder):
for file in local_files:
path = os.path.join(file, folder)
# This will raise an exception if it does not exist
self.db.select_path(path, build=False)
############################################################################
#
# Utility Routines
#
############################################################################
def mark_db_ids(self):
self.max_fs_id = self.db.query("select max(fs_id) from fs", ())[0][0]
if self.max_fs_id is None:
self.max_fs_id = 0
self.max_version_id = self.db.query("select max(version_id) from versions", ())[0][0]
if self.max_version_id is None:
self.max_version_id = 0
self.max_run_id = self.db.query("select max(run_id) from runs", ())[0][0]
if self.max_run_id is None:
self.max_run_id = 0
self.max_message_id = self.db.query("select max(message_id) from messages", ())[0][0]
if self.max_message_id is None:
self.max_message_id = 0
def clean_db(self):
self.db.execute("delete from messages where message_id > ?", (self.max_message_id,))
self.db.execute("delete from versions where version_id > ?", (self.max_version_id,))
self.db.execute("delete from fs where fs_id > ?", (self.max_fs_id,))
self.db.execute("delete from runs where run_id > ?", (self.max_run_id,))
示例6: open
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
exp.send("tooltest\n")
if (exp.expect(["Smartphone Pentest Framework Agent"], timeout)):
agent = "yes"
exp.send("exit")
exp.close()
fullpath2 = webserver + path + "/text2.txt"
GETFILE = open(fullpath2, 'w')
GETFILE.write("Apline Agent " + agent)
GETFILE.close()
table = "remote"
db = DB(config=config)
alpine = "alpine"
db.query("INSERT INTO "+table+" (id,ip,exploit,vuln,agent) VALUES (DEFAULT,%s,%s,%s,%s)", (ipaddress,alpine,vulnerable,agent))
elif arsplit[1] == "evil" :
print "Something something\n"
webserver = config.get('WEBSERVER')
sqlserver = config.get('MYSQLSERVER')
ipaddress = config.get('IPADDRESS')
localpath = arsplit[2]
filename = arsplit[3]
link = "http://" + ipaddress + localpath + filename
fullpath = webserver + localpath
command1 = "mkdir " + fullpath
system(command1)
sploitfile = webserver + localpath + filename
command8 = "touch " + sploitfile
system(command8)
示例7: system
# 需要导入模块: from lib.db import DB [as 别名]
# 或者: from lib.db.DB import query [as 别名]
system(command8)
command9 = "chmod 777 " + sploitfile
system(command9)
results = webserver + localpath + "/results"
command8 = "touch " + results
system(command8)
command9 = "chmod 777 " + results
system(command9)
sploitfiletext = "<?php\necho \"You Got Phished!\";\n$agent = $_SERVER['HTTP_USER_AGENT'];\n$page = " + x + ";\n$thing = $page . \" \" . $agent;\n$file = results;\n$current = file_get_contents($file);\n$current .= $thing . \"\\n\";\nfile_put_contents($file, $current);\n?>"
SPLOITFILE = open(sploitfile, 'w')
SPLOITFILE.write(sploitfiletext)
SPLOITFILE.close()
modem = 1
db = DB(config=config)
db.query("SELECT path from modems where id=%s", (modem,))
path2 = db.fetchone()[0].replace('"', '')
print path2
db.query("SELECT controlkey from modems where id=%s", (modem,))
key2 = db.fetchone()[0]
print key2
db.query("SELECT type from modems where id=%s", (modem,))
modemtype2 = db.fetchone()[0]
control = webserver + path2 + "/getfunc"
sleep(5)
with open(control, 'w') as f:
msg = "This is a cool page: "
command2 = key2 + " " + "SEND" + " " + x + " " + msg + link
f.write(command2)