示例#1
0
    def bucket_creation(bucket_id):
        pref_list, node_list = preference_list(bucket_id)
        file_name = ""
        operation_number = 1
        resp, vector_clock_list = bucket_creation_1(bucket_id,
                                                    operation_number, '',
                                                    file_name, pref_list, 0,
                                                    [], False)
        replicas = []
        for i in range(len(pref_list)):
            if resp[i]:
                replicas.append(pref_list[i])

        is_bucket_created = False
        if len(replicas) >= 2:
            is_bucket_created = True

        resp_data['pref_list'] = pref_list
        resp_data['replicas_written'] = replicas
        resp_data['is_bucket_created'] = is_bucket_created
        return jsonify(resp_data), 200
示例#2
0
    def file_delete(bucket_id, file_id):
        resp_data = {}
        pref_list = preference_list(bucket_id)
        operation_number = 4
        resp_data['pref_list'] = pref_list
        is_file_deleted = False
        resp, vector_clock_list = bucket_creation_1(bucket_id,
                                                    operation_number, file_id,
                                                    pref_list)

        replicas = []
        for i in range(len(pref_list)):
            if resp[i]:
                replicas.append(pref_list[i])

        if len(replicas) >= 2:
            is_file_deleted = True

        resp_data['pref_list'] = pref_list
        resp_data['replicas_written'] = replicas
        resp_data['is_file_deleted'] = is_file_deleted

        return jsonify(resp_data), 200
    def file_create_replace(bucket_id):
        vector_clock_list = []
        resp_data = {}
        file_content = request.files['file_content']
        file_name = secure_filename(file_content.filename)
        app.config['UPLOAD_BUCKET_FOLDER'] = UPLOAD_BUCKET_FOLDER + bucket_id
        create_new_folder(app.config['UPLOAD_BUCKET_FOLDER'])
        saved_path = os.path.join(app.config['UPLOAD_BUCKET_FOLDER'],
                                  file_name)
        file_content.save(saved_path)
        pref_list, node_list = preference_list(bucket_id)
        #file_path = UPLOAD_BUCKET_FOLDER + bucket_id + file_name
        #print(file_path)
        operation_number = 3
        resp_data['pref_list'] = pref_list
        is_file_created = False
        resp = [] * 0
        resp, vector_clock_list = bucket_creation_1(bucket_id,
                                                    operation_number, '',
                                                    file_name, pref_list, 0,
                                                    [], False)
        share_v_clock(bucket_id, operation_number, '', file_name, pref_list, 0,
                      [], False)
        replicas = []
        print(vector_clock_list)
        counter = 0
        data = {}
        with open('vec_clock.json', 'r') as f:
            data = json.load(f)
        print(data)
        resp_dict_vector = {}
        for i in range(len(pref_list)):
            if resp[i]:
                try:
                    print("hiiiiiiiiiiiiii")
                    counter = data[pref_list[i] + "_" + bucket_id + "_" +
                                   file_name]
                    #print(pref_list[i]+"_"+bucket_id + "_"+file_name, counter)
                except Exception as e:
                    print(e)
                    counter = 0
                counter = counter + 1
                #print(pref_list[i],counter)
                resp_dict_vector[pref_list[i] + "_" + bucket_id + "_" +
                                 file_name] = counter
                vec.update(pref_list[i] + "_" + bucket_id + "_" + file_name,
                           counter)
                replicas.append(pref_list[i])
                with open('vec_clock.json', 'w') as f:
                    json.dump(vec.clock, f)
        hinted_system = []
        down_system = list(set(pref_list) - set(replicas))

        if len(replicas) == 1:
            temp_folder = "hinted"
            operation_number_hinted = 3
            operation_x = 6
            hinted_system = list(set(node_list) - set(pref_list))
            #hinted_system = "172.18.16.47"
            print(file_name)
            resp = bucket_creation_1(bucket_id, operation_x, temp_folder,
                                     file_name, hinted_system,
                                     operation_number_hinted, down_system,
                                     False)
            if (resp):
                resp_data['hinted_system_data'] = hinted_system[0]

        if (len(replicas) == 2):
            node_ip = random.choice(replicas)
            node_down_system = down_system[0]
            resp = create_down_system(node_ip, node_down_system, bucket_id, 8,
                                      file_name)
            if (resp):
                resp_data['down_system_data'] = down_system
        print("downSystem is ", down_system)

        resp_data['pref_list'] = pref_list
        resp_data['replicas_written'] = replicas
        #resp_data['is_file_created'] = is_file_created
        resp_data['vector_clock_list'] = list(vector_clock_list)
        return jsonify(resp_data), 200