Exemple #1
0
def test_tmux():
    machine = gcloud.create(name="test-rc-node", machine_type="n1-standard-1", disk_size="20G", image_project='ubuntu-os-cloud', image_family='ubuntu-1804-lts',
                            zone='us-west2-a', preemptible=False, firewall_allows=['tcp:8080'])
    machine = gcloud.get('test-rc-node')
    machine.run('sudo apt install tmux')
    machine.run_detach_tmux('while true; do echo aaaaaa; sleep 10; done')
    machine.kill_detach_tmux()
    assert machine.run('cat /tmp/python-rc.log').stdout == 'aaaaaa\n'
    machine.delete()
Exemple #2
0
def create_machine(i):
    m = gcloud.create(name=machine_name_prefix + str(i),
                      machine_type='n1-standard-2',
                      disk_size='200G',
                      image_project='near-core',
                      image=image_name,
                      zone=zones[i % len(zones)],
                      min_cpu_platform='Intel Skylake',
                      reserve_ip=reserve_ip)
    pbar.update(1)
    return m
Exemple #3
0
def create_machine(i):
    m = gcloud.create(name=machine_name_prefix + str(i),
                      machine_type='n1-standard-2',
                      disk_size='200G',
                      image_project='near-core',
                      image=image_name,
                      zone=zones[i % len(zones)],
                      firewall_allows=['tcp:3030', 'tcp:24567'],
                      min_cpu_platform='Intel Skylake')
    pbar.update(1)
    return m
Exemple #4
0
 def __init__(self, instance_name, zone, node_dir, binary):
     self.instance_name = instance_name
     self.port = 24567
     self.rpc_port = 3030
     self.machine = gcloud.create(name=instance_name,
                                  machine_type='n1-standard-2',
                                  disk_size='50G',
                                  image_project='ubuntu-os-cloud',
                                  image_family='ubuntu-1804-lts',
                                  zone=zone,
                                  firewall_allows=['tcp:3030', 'tcp:24567'],
                                  preemptible=True)
     self.ip = self.machine.ip
     self._upload_config_files(node_dir)
     self._download_binary(binary)
     with remote_nodes_lock:
         global cleanup_remote_nodes_atexit_registered
         if not cleanup_remote_nodes_atexit_registered:
             atexit.register(atexit_cleanup_remote)
             cleanup_remote_nodes_atexit_registered = True
Exemple #5
0
 def __init__(self, *args, username=None, project=None, ssh_key_path=None):
     if len(args) == 1:
         name = args[0]
         # Get existing instance assume it's ready to run.
         self.instance_name = name
         self.port = 24567
         self.rpc_port = 3030
         self.machine = gcloud.get(name,
                                   username=username,
                                   project=project,
                                   ssh_key_path=ssh_key_path)
         self.ip = self.machine.ip
     elif len(args) == 4:
         # Create new instance from scratch
         instance_name, zone, node_dir, binary = args
         self.instance_name = instance_name
         self.port = 24567
         self.rpc_port = 3030
         self.node_dir = node_dir
         self.machine = gcloud.create(
             name=instance_name,
             machine_type='n1-standard-2',
             disk_size='50G',
             image_project='gce-uefi-images',
             image_family='ubuntu-1804-lts',
             zone=zone,
             firewall_allows=['tcp:3030', 'tcp:24567'],
             min_cpu_platform='Intel Skylake',
             preemptible=False,
         )
         # self.ip = self.machine.ip
         self._upload_config_files(node_dir)
         self._download_binary(binary)
         with remote_nodes_lock:
             global cleanup_remote_nodes_atexit_registered
             if not cleanup_remote_nodes_atexit_registered:
                 atexit.register(atexit_cleanup_remote)
                 cleanup_remote_nodes_atexit_registered = True
     else:
         raise Exception()
    image_name = sys.argv[1]
    branch = sys.argv[2]
except:
    branch = run(
        'git rev-parse --symbolic-full-name --abbrev-ref HEAD').stdout.strip()
    username = user_name()
    image_name = f'near-{branch}-{datetime.datetime.strftime(datetime.datetime.now(),"%Y%m%d")}-{username}'

machine_name = f'{image_name}-image-builder'

print("Creating machine:", machine_name)

m = gcloud.create(name=machine_name,
                  machine_type='n1-standard-64',
                  disk_size='50G',
                  image_project='ubuntu-os-cloud',
                  image_family='ubuntu-1804-lts',
                  zone='us-west2-c',
                  firewall_allows=['tcp:3030', 'tcp:24567'],
                  min_cpu_platform='Intel Skylake')

print('machine created:', image_name)

p = m.run('bash',
          input=f'''
for i in `seq 1 3`; do
    sudo apt update
done

sudo apt install -y python pkg-config libssl-dev build-essential cmake clang llvm

curl -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly-2019-10-04
Exemple #7
0
def create_test_machine():
    return gcloud.create(name="test-rc-node", machine_type="n1-standard-1", disk_size="20G", image_project='ubuntu-os-cloud', image_family='ubuntu-1804-lts',
                         zone='us-west2-a', preemptible=False, firewall_allows=['tcp:8080'])
Exemple #8
0
def create_or_get(*, name, **kwargs):
    return gcloud.get(name) or gcloud.create(name=name, **kwargs)