本文整理汇总了Python中lib.cuckoo.core.database.Database.unlock_machine方法的典型用法代码示例。如果您正苦于以下问题:Python Database.unlock_machine方法的具体用法?Python Database.unlock_machine怎么用?Python Database.unlock_machine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lib.cuckoo.core.database.Database
的用法示例。
在下文中一共展示了Database.unlock_machine方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from lib.cuckoo.core.database import Database [as 别名]
# 或者: from lib.cuckoo.core.database.Database import unlock_machine [as 别名]
def main():
parser = argparse.ArgumentParser()
parser.add_argument("vmname", type=str, help="Name of the Virtual Machine.")
parser.add_argument("--debug", action="store_true", help="Debug log in case of errors.")
parser.add_argument("--add", action="store_true", help="Add a Virtual Machine.")
parser.add_argument("--ip", type=str, help="Static IP Address.")
parser.add_argument("--platform", type=str, default="windows", help="Guest Operating System.")
parser.add_argument("--tags", type=str, help="Tags for this Virtual Machine.")
parser.add_argument("--interface", type=str, help="Sniffer interface for this machine.")
parser.add_argument("--snapshot", type=str, help="Specific Virtual Machine Snapshot to use.")
parser.add_argument("--resultserver", type=str, help="IP:Port of the Result Server.")
args = parser.parse_args()
logging.basicConfig()
log = logging.getLogger()
if args.debug:
log.setLevel(logging.DEBUG)
db = Database()
if args.resultserver:
resultserver_ip, resultserver_port = args.resultserver.split(":")
else:
conf = Config()
resultserver_ip = conf.resultserver.ip
resultserver_port = conf.resultserver.port
if args.add:
db.add_machine(args.vmname, args.vmname, args.ip, args.platform,
args.tags, args.interface, args.snapshot,
resultserver_ip, int(resultserver_port))
db.unlock_machine(args.vmname)
update_conf(conf.cuckoo.machinery, args)
示例2: main
# 需要导入模块: from lib.cuckoo.core.database import Database [as 别名]
# 或者: from lib.cuckoo.core.database.Database import unlock_machine [as 别名]
def main():
parser = argparse.ArgumentParser()
parser.add_argument("vmname", type=str, help="Name of the Virtual Machine.")
parser.add_argument("--debug", action="store_true", help="Debug log in case of errors.")
parser.add_argument("--add", action="store_true", help="Add a Virtual Machine.")
parser.add_argument("--delete", action="store_true", help="Delete a Virtual Machine.")
parser.add_argument("--ip", type=str, help="Static IP Address.")
parser.add_argument("--rdp_port", type=str, help="RDP Port.")
parser.add_argument("--platform", type=str, default="windows", help="Guest Operating System.")
parser.add_argument("--tags", type=str, help="Tags for this Virtual Machine.")
parser.add_argument("--interface", type=str, help="Sniffer interface for this machine.")
parser.add_argument("--snapshot", type=str, help="Specific Virtual Machine Snapshot to use.")
parser.add_argument("--resultserver", type=str, help="IP:Port of the Result Server.")
args = parser.parse_args()
logging.basicConfig()
log = logging.getLogger()
if args.debug:
log.setLevel(logging.DEBUG)
init_config(override=False)
db = Database()
conf = Config()
if args.resultserver:
resultserver_ip, resultserver_port = args.resultserver.split(":")
else:
resultserver_ip = conf.resultserver.ip
resultserver_port = conf.resultserver.port
if args.add:
if db.view_machine(args.vmname):
sys.exit("A Virtual Machine with this name already exists!")
db.add_machine(args.vmname, args.vmname, args.ip, args.platform,
args.tags, args.interface, args.snapshot,
resultserver_ip, int(resultserver_port), args.rdp_port,
None)
db.unlock_machine(args.vmname)
update_conf(conf.cuckoo.machinery, args, action="add")
if args.delete:
# TODO Add a db.del_machine() function for runtime modification.
update_conf(conf.cuckoo.machinery, args, action="delete")
示例3: Machinery
# 需要导入模块: from lib.cuckoo.core.database import Database [as 别名]
# 或者: from lib.cuckoo.core.database.Database import unlock_machine [as 别名]
#.........这里部分代码省略.........
"setting not found, please add it to "
"the config file.")
def machines(self):
"""List virtual machines.
@return: virtual machines list
"""
return self.db.list_machines()
def availables(self):
"""How many machines are free.
@return: free machines count.
"""
return self.db.count_machines_available()
def acquire(self, machine_id=None, platform=None, tags=None):
"""Acquire a machine to start analysis.
@param machine_id: machine ID.
@param platform: machine platform.
@param tags: machine tags
@return: machine or None.
"""
if machine_id:
return self.db.lock_machine(label=machine_id)
elif platform:
return self.db.lock_machine(platform=platform, tags=tags)
else:
return self.db.lock_machine(tags=tags)
def release(self, label=None):
"""Release a machine.
@param label: machine name.
"""
self.db.unlock_machine(label)
def running(self):
"""Returns running virtual machines.
@return: running virtual machines list.
"""
return self.db.list_machines(locked=True)
def shutdown(self):
"""Shutdown the machine manager. Kills all alive machines.
@raise CuckooMachineError: if unable to stop machine.
"""
if len(self.running()) > 0:
log.info("Still %s guests alive. Shutting down...",
len(self.running()))
for machine in self.running():
try:
self.stop(machine.label)
except CuckooMachineError as e:
log.warning("Unable to shutdown machine %s, please check "
"manually. Error: %s", machine.label, e)
def set_status(self, label, status):
"""Set status for a virtual machine.
@param label: virtual machine label
@param status: new virtual machine status
"""
self.db.set_machine_status(label, status)
def start(self, label, task):
"""Start a machine.
@param label: machine name.
@param task: task object.
示例4: MachineManager
# 需要导入模块: from lib.cuckoo.core.database import Database [as 别名]
# 或者: from lib.cuckoo.core.database.Database import unlock_machine [as 别名]
#.........这里部分代码省略.........
if not self.options_globals.timeouts.vm_state:
raise CuckooCriticalError("Virtual machine state change timeout setting not found, please add it to the config file")
def machines(self):
"""List virtual machines.
@return: virtual machines list
"""
return self.db.list_machines()
def availables(self):
"""How many machines are free.
@return: free machines count.
"""
return self.db.count_machines_available()
def acquire(self, machine_id=None, platform=None):
"""Acquire a machine to start analysis.
@param machine_id: machine ID.
@param platform: machine platform.
@return: machine or None.
"""
if machine_id:
return self.db.lock_machine(name=machine_id)
elif platform:
return self.db.lock_machine(platform=platform)
else:
return self.db.lock_machine()
def release(self, label=None):
"""Release a machine.
@param label: machine name.
"""
self.db.unlock_machine(label)
def running(self):
"""Returns running virtual machines.
@return: running virtual machines list.
"""
return self.db.list_machines(locked=True)
def shutdown(self):
"""Shutdown the machine manager. Kills all alive machines.
@raise CuckooMachineError: if unable to stop machine.
"""
if self.running().count() > 0:
log.info("Still %s guests alive. Shutting down" % self.running().count())
for machine in self.running():
try:
self.stop(machine.label)
except CuckooMachineError as e:
log.error("Unable to shutdown machine %s, please check "
"manually. Error: %s" % (machine.label, e))
def set_status(self, label, status):
"""Set status for a virtual machine.
@param label: virtual machine label
@param status: new virtual machine status
"""
self.db.set_machine_status(label, status)
def start(self, label=None):
"""Start a machine.
@param label: machine name.
@raise NotImplementedError: this method is abstract.
"""