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()
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
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
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
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
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'])
def create_or_get(*, name, **kwargs): return gcloud.get(name) or gcloud.create(name=name, **kwargs)