Exemple #1
0
 def __init__(self, name, formation_type):
     self.name = name
     self.common_image_dir = constant.BATTLE_COMMON_IMAGE_DIR
     self.war_dir = os.path.join(constant.WARS_DIR, self.name)
     self.war_image_dir = os.path.join(self.war_dir, 'image')
     self.inventory = Inventory()
     self.restore = Restore()
     self.formation = Formation(formation_type)
Exemple #2
0
def map(rbd, snap):
    restore = Restore(rbd, snap)
    status = restore.mount()
    if status is None:
        return send_json({'success': False, 'path': None}, code=500)
    else:
        status = status.replace('/tmp/', '')
        return send_json({'success': True, 'path': status})
Exemple #3
0
def ls_snaps(rbd):
    restore = Restore(rbd)
    data = restore.ls()

    result = list()
    for i in data:
        result.append({
            'creation_date': str(i['creation']),
            'uuid': i['uuid'],
        })

    return send_json(result)
Exemple #4
0
class Battle:
    """ handle how to execute battle flow"""
    def __init__(self, name, formation_type):
        self.name = name
        self.common_image_dir = constant.BATTLE_COMMON_IMAGE_DIR
        self.war_dir = os.path.join(constant.WARS_DIR, self.name)
        self.war_image_dir = os.path.join(self.war_dir, 'image')
        self.inventory = Inventory()
        self.restore = Restore()
        self.formation = Formation(formation_type)

    def run(self, device):
        rounds = 0
        presetting = ImageForPresetting(
            os.path.join(constant.BATTLE_COMMON_IMAGE_DIR, 'combat'))
        while True:
            presetting.click_somewhere_to_wait(device)
            try:
                self.restore.check(device)
                if self.formation.formation_type:
                    self.run_formation(device)
                self.enter_combat(device)
                while self.inventory.hit_limit(device):
                    self.enter_combat(device)
                self.apply_flow(device)
                self.battle_flow(device)
                if self.formation.formation_type:
                    self.formation.already_change = False
            except Exception as error:
                print(error)
                continue
            rounds += 1
            print("The round :" + str(rounds))

    def run_formation(self, device):
        if self.formation and not self.formation.already_change:
            self.formation.run(device)
            self.formation.already_change = True

    def enter_combat(self, device):
        enter_combat = CommonFlow(self.war_dir, self.war_image_dir,
                                  'enter.xlsx')
        enter_combat.run(device)

    def apply_flow(self, device):
        apply_team = CommonFlow(self.war_dir, self.war_image_dir, 'apply.xlsx')
        apply_team.run(device)

    def battle_flow(self, device):
        battle = CommonFlow(self.war_dir, self.common_image_dir,
                            self.name + '.xlsx')
        battle.run(device)
Exemple #5
0
def ls():
    restore = Restore()
    data = restore.ls()

    result = list()
    for i in data:
        result.append({
            'ident': i['ident'],
            'disk': i['disk'],
            'uuid': i['uuid'],
        })

    return send_json(result)
    def schedule_backup_restore(self, backup_id, destination_uri,tags=None,
                                no_index_restore=None, no_users_restore=None, no_roles_restore=None,
                                source_database_name=None):
        backup = get_mbs().backup_collection.get_by_id(backup_id)
        destination = build_backup_source(destination_uri)
        logger.info("Scheduling a restore for backup '%s'" % backup.id)
        restore = Restore()

        restore.state = State.SCHEDULED
        restore.source_backup = backup
        restore.source_database_name = source_database_name
        restore.strategy = backup.strategy
        restore.strategy.no_index_restore = no_index_restore
        restore.strategy.no_users_restore = no_users_restore
        restore.strategy.no_roles_restore = no_roles_restore
        restore.destination = destination
        # resolve tags
        tags = tags or restore.source_backup.tags
        restore.tags = tags

        rc = get_mbs().restore_collection
        try:
            self._resolve_task_tags(restore)
        except Exception, ex:
            self._task_failed_to_schedule(restore, rc, ex)
Exemple #7
0
    def post(self):
        self.response.headers['Content-Type'] = 'text/html'
        if self.request.get('button') == 'Bin':
            email_id = self.request.get('email_id')
            all_files = Restore.query(Restore.user == email_id).fetch()
            user = users.get_current_user()
            logout = users.create_logout_url('/')
            template_values = {
                'all_files': all_files,
                'email_id': email_id,
                'user': user,
                'logout': logout
            }
            template = JINJA_ENVIRONMENT.get_template('restorefile.html')
            self.response.write(template.render(template_values))
        if self.request.get('button') == 'Restore':
            email_id = self.request.get('email_id')
            file_id = self.request.get('file_id')
            file_key = ndb.Key(Restore, file_id)
            file = file_key.get()

            directory_id = email_id + '/'
            directory_key = ndb.Key(Directory, directory_id)
            directory = directory_key.get()

            directory.list_of_files.append(file.file_name)
            directory.blobs.append(file.blob_key)
            directory.put()

            file_key.delete()
            self.redirect('/main')
 def restore_processor(self):
     if not self._restore_processor:
         self._restore_processor = TaskQueueProcessor(
             "Restores",
             Restore().type_name,
             "restores",
             self,
             self._max_workers,
             sleep_time=self.sleep_time)
     return self._restore_processor
Exemple #9
0
        hooks.restore.pre()

        if not backup_extract_path:
            backup_extract_path = get_backup_extract()

        extras_paths = backup.ExtrasPaths(backup_extract_path)

        if not isdir(extras_paths.path):
            fatal("missing %s directory - this doesn't look like a system backup" % extras_paths.path)

        os.environ['TKLBAM_BACKUP_EXTRACT_PATH'] = backup_extract_path

        if not silent:
            print fmt_title("Restoring system from backup extract at " + backup_extract_path)

        restore = Restore(backup_extract_path, limits=opt_limits, rollback=not no_rollback, simulate=opt_simulate)

        if restore.conf:
            os.environ['TKLBAM_RESTORE_PROFILE_ID'] = restore.conf.profile_id
        hooks.restore.inspect(restore.extras.path)

        if opt_debug:
            print """\
  The --debug option has (again) dropped you into an interactive shell so that
  you can explore the state of the system just before restore. The current
  working directory contains the backup extract.

  To exit from the shell and continue the restore run "exit 0".
  To exit from the shell and abort the restore run "exit 1".
"""
            os.chdir(backup_extract_path)
Exemple #10
0
def mapped():
    restore = Restore()
    data = restore.list_mapped()
    return send_json(data)
Exemple #11
0
def unmap(rbd, snap):
    restore = Restore(rbd, snap)
    restore.umount()
    return send_json({'success': True})
    def schedule_backup_restore(self,
                                backup_id,
                                destination_uri,
                                tags=None,
                                source_database_name=None):
        backup = get_mbs().backup_collection.get_by_id(backup_id)
        destination = build_backup_source(destination_uri)
        logger.info("Scheduling a restore for backup '%s'" % backup.id)
        restore = Restore()

        restore.source_backup = backup
        restore.source_database_name = source_database_name
        restore.strategy = backup.strategy
        restore.destination = destination
        restore.tags = tags or restore.source_backup.tags
        restore.state = STATE_SCHEDULED
        restore.created_date = date_now()

        logger.info("Saving restore task: %s" % restore)
        restore_doc = restore.to_document()
        get_mbs().restore_collection.save_document(restore_doc)
        restore.id = restore_doc["_id"]
        return restore
	def post(self):
            self.response.headers['Content-Type'] = 'text/html'
            if self.request.get('button') == 'Delete' :
                delete_file_name = self.request.get('delete_file_name')
                directory_id = self.request.get('directory_id')
                directory_key = ndb.Key(Directory,directory_id)
                directory = directory_key.get()
                index = int(self.request.get('index'))
                blob_key = directory.blobs[index]
                del directory.list_of_files[index]
                del directory.blobs[index]
                directory.put()
                random_id = str(random.randint(000000,999999))
                random_key = ndb.Key(Directory, random_id)
                random_value = random_key.get()

                if random_value != None:
                    while (random_value != None):
                        random_id = str(random.randint(000000, 999999))

                        random_key = ndb.Key(Directory, random_id)
                        random_value = random_key.get()


                if random_value == None:
                    new_file = Restore(id=random_id)
                    new_file.put()
                    new_file_key = ndb.Key(Restore,random_id)
                    file = new_file_key.get()
                    file.file_name = delete_file_name
                    file.blob_key = blob_key
                    user = users.get_current_user()
                    email = user.email()
                    file.user = email
                    file.put()

                self.redirect('/main')

            if self.request.get('button') == 'Delete Permanently':
                file_id = self.request.get('file_id')
                file_key = ndb.Key(Restore,file_id)
                file = file_key.get()
                print(file)
                blob_key = file.blob_key
                file_key.delete()
                blobstore.delete(blob_key)
                self.redirect('/main')

            if self.request.get('button') == 'Delete Shared File' :
                directory_id = self.request.get('directory_id')
                directory_key = ndb.Key(Directory,directory_id)
                directory = directory_key.get()

                delete_file_name = self.request.get('delete_file_name')
                index = int(self.request.get('index'))

                del directory.shared_files[index]
                del directory.shared_files_blobs[index]
                del directory.shared_file_owner[index]
                directory.put()
                self.redirect('/main')
Exemple #14
0
        extras_paths = backup.ExtrasPaths(backup_extract_path)

        if not isdir(extras_paths.path):
            fatal(
                "missing %s directory - this doesn't look like a system backup"
                % extras_paths.path)

        os.environ['TKLBAM_BACKUP_EXTRACT_PATH'] = backup_extract_path

        if not silent:
            print fmt_title("Restoring system from backup extract at " +
                            backup_extract_path)

        restore = Restore(backup_extract_path,
                          limits=opt_limits,
                          rollback=not no_rollback,
                          simulate=opt_simulate)

        if restore.conf:
            os.environ['TKLBAM_RESTORE_PROFILE_ID'] = restore.conf.profile_id
        hooks.restore.inspect(restore.extras.path)

        if opt_debug:
            print """\
  The --debug option has (again) dropped you into an interactive shell so that
  you can explore the state of the system just before restore. The current
  working directory contains the backup extract.

  To exit from the shell and continue the restore run "exit 0".
  To exit from the shell and abort the restore run "exit 1".
"""
Exemple #15
0
def restore_images(trained_model, corrupter, net_name):
    paths = read_paths.list_paths(TEST_PATH.replace(TO_REPLACE, net_name))
    restore = Restore()
    for i, path in enumerate(paths):
        restore_image(trained_model, restore, corrupter, read_image(path), i, net_name)
Exemple #16
0
# testdataAll  = np.loadtxt("E:/WiFi/实验室6楼/wifiData/实验/1.2m_human.csv", dtype=float, delimiter=',')[:,3:]
font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 20,}
modelPath = 'model/GP/'
inputNum = 2
interval = 19
scaler = StandardScaler().fit(dataAll[:,:inputNum])
ax = []
err = np.zeros([len(testdataAll),len(testdataAll[0])-2])
for Ap in range(0,interval):
    testAP = inputNum + Ap
    testAPBand = testAP + interval
    testdata = testdataAll[testdataAll[:,testAP]!=-100,:]
    dataRaw = dataAll[dataAll[:, testAP] != -100]
    y,dy,reData = Restore(dataAll=dataAll,gap=interval,inputN=inputNum,num=Ap)
    y[y[:]==-100]=default

    X = dataAll[:,:inputNum]

    kernel = 1.0* RBF(length_scale=1.0, length_scale_bounds=(1e-2, 1e3)) \
             +WhiteKernel(noise_level=1)
    gpr = GaussianProcessRegressor(kernel=kernel, normalize_y=True)
    stime = time.time()
    gpr.fit(scaler.transform(X), y)
    print("Time for GPR fitting: %.3f" % (time.time() - stime))

    X_predict =grid[:,:2]
    # Predict using gaussian process regressor

    stime = time.time()
class Ui_RestoreFilesDialog(object):
    def __init__(self):
        self.restore_obj = Restore()
        self.files_to_restore = self.restore_obj.getFiles()


    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 200)
        self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.tableWidget = QtWidgets.QTableWidget(Dialog)
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(4)
        self.tableWidget.setRowCount(len(self.files_to_restore))
        self.tableWidget.setSelectionBehavior(QtWidgets.QTableView.SelectRows)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(3, item)
        self.verticalLayout.addWidget(self.tableWidget)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout.addWidget(self.pushButton_2)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        row_count    = 0

        for file_to_restore in self.files_to_restore :
            self.tableWidget.setItem(row_count,0, QtWidgets.QTableWidgetItem(file_to_restore[0]))
            self.tableWidget.setItem(row_count,1, QtWidgets.QTableWidgetItem(file_to_restore[1]))
            self.tableWidget.setItem(row_count,2, QtWidgets.QTableWidgetItem(file_to_restore[2]))
            self.tableWidget.setItem(row_count,3, QtWidgets.QTableWidgetItem("NO"))
            row_count += 1
        self.tableWidget.move(0, 0)
        self.pushButton_2.clicked.connect(Dialog.reject)
        self.pushButton.clicked.connect(self.restoreClick)



    def restoreClick(self):
        index                = self.tableWidget.selectedIndexes()[1]
        selected_backup_file = self.tableWidget.model().data(index).rstrip()
        self.restore_obj.restoreFiles(selected_backup_file)


    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Restoration files"))
        item = self.tableWidget.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "Date"))
        item = self.tableWidget.horizontalHeaderItem(1)
        item.setText(_translate("Dialog", "File"))
        item = self.tableWidget.horizontalHeaderItem(2)
        item.setText(_translate("Dialog", "Size"))
        item = self.tableWidget.horizontalHeaderItem(3)
        item.setText(_translate("Dialog", "Infected"))
        self.pushButton_2.setText(_translate("Dialog", "Cancel"))
        self.pushButton.setText(_translate("Dialog", "Restore"))
 def __init__(self):
     self.restore_obj = Restore()
     self.files_to_restore = self.restore_obj.getFiles()