示例#1
0
文件: vault.py 项目: yydfjt/MaidSafe
def SaveKeys(peer, keys_path, client_index, num_of_keys):
    result = -1
    prog = utils.GetProg('vault_key_helper')
    proc = subprocess.Popen([
        prog, '-ls', '-k',
        str(client_index), '--keys_path', keys_path, '--peer=' + peer + ':5483'
    ],
                            shell=False,
                            stdout=PIPE,
                            stderr=None)
    if utils.TimeOut(utils.LookingFor, (
            proc,
            'PublicPmidKey stored and verified',
            50,
            num_of_keys,
    ),
                     timeout_duration=5 * num_of_keys,
                     default=False):
        print("keys successfully stored to network")
        result = 0
    else:
        print("failure in storing keys to network")
    proc.kill
    vault_killer.KillVaultKeyHelper()
    return result
示例#2
0
文件: vault.py 项目: yydfjt/MaidSafe
def SetUpKeys(num):
    print("Setting up keys ... ")
    prog = utils.GetProg('vault_key_helper')
    CreateChunkStores(num)
    return subprocess.call([prog, '-c', '-n', str(num)],
                           shell=False,
                           stdout=None,
                           stderr=None)
示例#3
0
文件: vault.py 项目: yydfjt/MaidSafe
def DeleteChunk(key_index, chunk_index):
    prog = utils.GetProg('vault_key_helper')
    subprocess.call([
        prog, '-l3', '-k',
        str(key_index), '--chunk_index=' + str(chunk_index)
    ],
                    shell=False,
                    stdout=None,
                    stderr=None)
示例#4
0
def SaveKeys(peer):
    prog = utils.GetProg('vault_key_helper')
    return subprocess.call([
        prog, '--log_routing Info', '--log_nfs Info', '--log_vault Info',
        '-ls', '--peer=' + peer + ':5483'
    ],
                           shell=False,
                           stdout=None,
                           stderr=None)
示例#5
0
def FetchChunk(key_index, chunk_index):
    prog = utils.GetProg('vault_key_helper')
    subprocess.call([
        prog, '-l2', '-k',
        str(key_index), '--peer=' + utils.GetIp() + ':5483',
        '--chunk_index=' + str(chunk_index)
    ],
                    shell=False,
                    stdout=None,
                    stderr=None)
示例#6
0
文件: demo_1.py 项目: yydfjt/MaidSafe
def work(number):
    prog = utils.GetProg('vault')
    log_file = open('vault_' + str(number) + '.txt', 'w')
    return subprocess.Popen([
        prog, '--log_vault', 'I', '--log_*', 'E', '--disable_ctrl_c=true',
        '--identity_index=' + str(number), '--chunk_path=.cs' + str(number)
    ],
                            shell=False,
                            stdout=log_file,
                            stderr=log_file)
示例#7
0
def StartVaultsWithGivenBootstrap():
    number = GetPositiveNumber("Please input number of vaults to run: ")
    ip = raw_input("Please input ip address of bootstrap machine: ")
    prog = utils.GetProg('vault_key_helper')
    print prog
    CreateChunkStores(number)
    subprocess.call([prog, '-c', '-n', str(int(number) + 3)])
    if SaveKeys(ip) == 0:
        RunNetwork(int(number) + 3, ip, None)
    else:
        raw_input("Could not store keys, giving up! (press any key)")
示例#8
0
def SetUpNextNode(endpoint, index):
    prog = utils.GetProg('vault')
    log_file = open('vault_' + str(index) + '.txt', 'w')
    return subprocess.Popen([
        prog, '--log_no_async', 'true', '--log_vault', 'V', '--log_nfs', 'V',
        '--log_*', 'E', '--peer=' + endpoint.lstrip(), '--disable_ctrl_c=true',
        '--identity_index=' + str(index), '--chunk_path=.cs' + str(index)
    ],
                            shell=False,
                            stdout=log_file,
                            stderr=log_file)
示例#9
0
def TestStoreWithDelete(num, index):
    prog = utils.GetProg('vault_key_helper')
    subprocess.call([
        prog, '-lw', '-k',
        str(index), '--peer=' + utils.GetIp() + ':5483',
        '--chunk_set_count=' + str(num)
    ],
                    shell=False,
                    stdout=None,
                    stderr=None)
    raw_input("Press any key to continue")
示例#10
0
文件: vault.py 项目: yydfjt/MaidSafe
def StartVaultsWithGivenBootstrap():
    number = GetPositiveNumber("Please input number of vaults to run: ")
    ip = input("Please input ip address of bootstrap machine: ")
    prog = utils.GetProg('vault_key_helper')
    print(prog)
    CreateChunkStores(number)
    subprocess.call([prog, '-c', '-n', str(int(number) + 3)])
    keys_path = input(
        "Please input the absolute/relative path to the keys_file: ")
    index = GetPositiveNumber(
        "Please input the key_index to be used as client: ")
    num_keys = GetPositiveNumber(
        "Please input how many keys in the keys_file: ")
    if SaveKeys(utils.GetIp(), keys_path, index, num_keys) == 0:
        RunNetwork(int(number) + 3, ip, None)
    else:
        input("Could not store keys, giving up! (press any key)")
示例#11
0
文件: vault.py 项目: yydfjt/MaidSafe
def SetupBootstraps(num, user_id):
    print("Setting up keys ... ")
    prog = utils.GetProg('vault_key_helper')
    proc = subprocess.Popen(
        [prog, '-c', '-b', '-n', str(num + 6)],
        shell=False,
        stdout=PIPE,
        stderr=None)
    print("Started bootstrap with PID " + str(proc.pid))
    i = 0
    line_limit = 50
    t_start = datetime.datetime.now()
    time_delta = datetime.datetime.now() - t_start
    timeout = 300000
    while i < line_limit and time_delta < datetime.timedelta(seconds=timeout):
        line = str(proc.stdout.readline(), encoding='utf8')
        print(line)
        if line.find("Endpoints") != -1:
            data = re.split(r':', line)
            ep = data[2].split()
            processes[2] = SetUpNextNode(data[1] + ':' + ep[0], 2)
            time.sleep(1)
            processes[3] = work(3)
            if processes[2] and processes[3]:
                print("Wait 5 secs for bootstrap")
                time.sleep(5)
                break
            else:
                proc.kill()
                return False
        i = i + 1
        time_delta = datetime.datetime.now() - t_start
    if i == line_limit or time_delta >= datetime.timedelta(seconds=timeout):
        proc.kill()
        return False
    proc.kill()
    print("Wait 10 secs for bootstrap nodes disappear from routingtable")
    time.sleep(10)
    RunNetwork(num)
    print("Wait 5 secs for network")
    time.sleep(5)
    return True
示例#12
0
文件: vault.py 项目: yydfjt/MaidSafe
def TestStoreWithDelete(num, index):
    prog = utils.GetProg('vault_key_helper')
    proc = subprocess.Popen(
        [prog, '-lw', '-k',
         str(index), '--chunk_set_count=' + str(num)],
        shell=False,
        stdout=PIPE,
        stderr=None)
    if utils.TimeOut(utils.LookingFor, (
            proc,
            'Delete chunk',
            100,
            num,
    ),
                     timeout_duration=60 * num,
                     default=False):
        print("test with delete succeeded")
    else:
        print("test with delete failed")
    proc.kill
    vault_killer.KillVaultKeyHelper()
示例#13
0
def SaveKeys():
    num_of_keys = 44
    prog = utils.GetProg('vault_key_helper')
    proc = subprocess.Popen([prog, '-ls', '-k', 10],
                            shell=False,
                            stdout=PIPE,
                            stderr=None)
    if utils.TimeOut(utils.LookingFor, (
            proc,
            'PublicPmidKey stored and verified',
            50,
            num_of_keys,
    ),
                     timeout_duration=5 * num_of_keys,
                     default=False):
        print("keys successfully stored to network")
        result = 0
    else:
        print("failure in storing keys to network")
    proc.kill
    lifestuff_killer.KillVaultKeyHelper()
示例#14
0
def SetupBootstraps(num, user_id):
    print("Setting up keys ... ")
    prog = utils.GetProg('vault_key_helper')
    print prog
    proc = subprocess.Popen(
        [prog, '-c', '-b', '-n', str(num + 6)],
        shell=False,
        stdout=PIPE,
        stderr=None)
    print("Started bootstrap with PID " + str(proc.pid))
    i = 0
    line_limit = 50
    t_start = datetime.datetime.now()
    time_delta = datetime.datetime.now() - t_start
    timeout = 300000
    while i < line_limit and time_delta < datetime.timedelta(seconds=timeout):
        line = proc.stdout.readline()
        print line
        if line.find('Endpoints') != -1:
            data = re.split(r':', line)
            ep = data[2].split()
            processes[2] = SetUpNextNode(data[1] + ':' + ep[0], 2, user_id)
            processes[3] = SetUpNextNode(data[1] + ':' + ep[0], 3, user_id)
            if processes[2] and processes[3]:
                time.sleep(2)  # allow node to bootstrap
                break
            else:
                proc.kill()
                return False
        i = i + 1
        time_delta = datetime.datetime.now() - t_start
    if i == line_limit or time_delta >= datetime.timedelta(seconds=timeout):
        print "Failed to get endpoint (timeout ??)"
        proc.kill()
        return False
    proc.kill()
    RunNetwork(num, data[1], user_id)
    print("Wait 2 secs for network")
    time.sleep(2)
    return True
示例#15
0
def work(number, ip_address, user_id):
    prog = utils.GetProg('lifestuff_vault')
    if user_id == None:
        return subprocess.Popen([
            prog, '--peer=' + ip_address.lstrip() + ':5483',
            '--disable_ctrl_c=true', '--identity_index=' + str(number),
            '--chunk_path=.cs' + str(number), '--start'
        ],
                                preexec_fn=preexec_function,
                                shell=False,
                                stdout=None,
                                stderr=None)
    else:
        return subprocess.Popen([
            prog, '--peer=' + ip_address.lstrip() + ':5483',
            '--disable_ctrl_c=true', '--identity_index=' + str(number),
            '--chunk_path=.cs' + str(number), '--usr_id=' + user_id, '--start'
        ],
                                preexec_fn=preexec_function,
                                shell=False,
                                stdout=None,
                                stderr=None)
示例#16
0
def SetUpNextNode(endpoint, index, user_id):
    prog = utils.GetProg('lifestuff_vault')
    if user_id == None:
        return subprocess.Popen([
            prog, '--peer=' + endpoint.lstrip(), '--disable_ctrl_c=true',
            '--identity_index=' + str(index), '--chunk_path=.cs' + str(index),
            '--start'
        ],
                                preexec_fn=preexec_function,
                                shell=False,
                                stdout=None,
                                stderr=None)
    else:
        return subprocess.Popen([
            prog, '--peer=' + endpoint.lstrip(), '--disable_ctrl_c=true',
            '--identity_index=' + str(index), '--chunk_path=.cs' + str(index),
            '--usr_id=' + user_id, '--start'
        ],
                                preexec_fn=preexec_function,
                                shell=False,
                                stdout=None,
                                stderr=None)
示例#17
0
def mount_drive(executable_name):
    print "Mounting drive..."
    sys.stdout.flush()
    process = subprocess.Popen([utils.GetProg(executable_name)]).pid
    time.sleep(3)
示例#18
0
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import os
import platform
import subprocess
import socket
import sys
import tempfile
from optparse import OptionParser

# MaidSafe imports
import utils
import vault

ls_mgr_exe = utils.GetProg("lifestuff_mgr")
ls_vault_exe = utils.GetProg("lifestuff_vault")


def CheckPassedInIp(ip_address):
    try:
        socket.inet_aton(ip_address)
    except socket.error:
        print "Not a legal IP address"
        return -1

    if len(ip_address.split('.')) != 4:
        print "Not a fully formed IP address"
        return -1

    return 0