Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate S3Interface with replicator #72

Merged
merged 36 commits into from
Jan 20, 2022
Merged

Integrate S3Interface with replicator #72

merged 36 commits into from
Jan 20, 2022

Conversation

sarahwooders
Copy link
Contributor

  • Add src_object_store and dst_object_store as additional options for chunk location.
  • Download/upload to S3 using S3Interface for object store hops
  • Pass in AWS credentials as env variables when starting the docker container to read from S3Interface (using the original AwsCredentialsProvider.new_default_chain with credentials copied to the gateway didn't work for unknown reasons)

Potential Issues

  • Chunks are downloaded/uploaded without going through a queue like GatewaySender and GatewayReceiver
  • Doesn't work for large n_chunks (only tested with --n-chunks 100) because of awscrt error

@sarahwooders sarahwooders changed the title [Draft] Integrate S3Interface with replicator Integrate S3Interface with replicator Jan 17, 2022
Copy link
Contributor

@parasj parasj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just need some minor changes, but merge it after that! I fixed one or two minor typos which makes it work on my local machine.

@@ -223,9 +226,22 @@ def start_gateway(
docker_out, docker_err = self.run_command(f"sudo docker pull {gateway_docker_image}")
assert "Status: Downloaded newer image" in docker_out or "Status: Image is up to date" in docker_out, (docker_out, docker_err)

# read AWS config file to get credentials
# TODO: Integrate this with updated skylark config file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One way to easily integrate configs would be to pass all of the config variables here from config.json. Feel free to open an issue linking this area of the code so we don't block this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made an issue #85

skylark/gateway/gateway_daemon.py Outdated Show resolved Hide resolved
skylark/gateway/gateway_daemon.py Outdated Show resolved Hide resolved
credential_provider = AwsCredentialsProvider.new_default_chain(bootstrap)

# get aws auth info for docker envs
aws_access_key_id = os.getenv("AWS_ACCESS_KEY_ID", None)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use something like this to add a way to load credentials from the config.json as well:

from skylark.cli.cli_helper import load_config
config = load_config()
return config.get("aws_access_key_id"), config.get("aws_secret_access_key")

skylark/replicate/replicator_client.py Show resolved Hide resolved
@parasj
Copy link
Contributor

parasj commented Jan 17, 2022

It seems to be working now (see my last commit for some minor changes):

(base) ubuntu@ip-172-31-16-78:~/skylark$ source scripts/pack_docker.sh && python skylark/test/test_replicator_client.py --bucket-prefix paras --chunk-size-mb 8 --n-chunks 512 --gateway-docker-image $SKYLARK_DOCKER_IMAGE
Building docker image
[+] Building 2.8s (15/15) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                                                                                                   0.0s
 => => transferring dockerfile: 414B                                                                                                                                                                                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                                                                                                                      0.0s
 => => transferring context: 434B                                                                                                                                                                                                                                                                                                                                      0.0s
 => resolve image config for docker.io/docker/dockerfile:1                                                                                                                                                                                                                                                                                                             0.1s
 => CACHED docker-image://docker.io/docker/dockerfile:1@sha256:42399d4635eddd7a9b8a24be879d2f9a930d0ed040a61324cfdf59ef1357b3b2                                                                                                                                                                                                                                        0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                                                                                                                      0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/python:3.8-slim                                                                                                                                                                                                                                                                                                     0.0s
 => [stage-0 1/6] FROM docker.io/library/python:3.8-slim                                                                                                                                                                                                                                                                                                               0.0s
 => [internal] load build context                                                                                                                                                                                                                                                                                                                                      0.1s
 => => transferring context: 6.58MB                                                                                                                                                                                                                                                                                                                                    0.1s
 => CACHED [stage-0 2/6] COPY scripts/requirements-gateway.txt /tmp/requirements-gateway.txt                                                                                                                                                                                                                                                                           0.0s
 => CACHED [stage-0 3/6] RUN --mount=type=cache,target=/root/.cache/pip pip install --no-cache-dir --compile -r /tmp/requirements-gateway.txt && rm -r /tmp/requirements-gateway.txt                                                                                                                                                                                   0.0s
 => CACHED [stage-0 4/6] WORKDIR /pkg                                                                                                                                                                                                                                                                                                                                  0.0s
 => [stage-0 5/6] COPY . .                                                                                                                                                                                                                                                                                                                                             0.1s
 => [stage-0 6/6] RUN pip install -e .                                                                                                                                                                                                                                                                                                                                 2.0s
 => exporting to image                                                                                                                                                                                                                                                                                                                                                 0.2s
 => => exporting layers                                                                                                                                                                                                                                                                                                                                                0.1s
 => => writing image sha256:c1c569373a239cff816a3e7a00821090b24d9544aa42007439e7e9aadc8db0b9                                                                                                                                                                                                                                                                           0.0s
 => => naming to docker.io/library/skylark                                                                                                                                                                                                                                                                                                                             0.0s
Uploading docker image to ghcr.io/parasj/skylark:local-43830619380f44cf82253d34bd1315ad
The push refers to repository [ghcr.io/parasj/skylark]
73bfe73bc954: Pushed
adca4585f8ee: Pushed
825c8b866cb6: Layer already exists
7cf8466c7ed2: Layer already exists
c0c2886e8ab6: Layer already exists
e6203d5e9930: Layer already exists
036c62fedfcf: Layer already exists
01d721979fd7: Layer already exists
d0fa20bfdce7: Layer already exists
2edcec3590a4: Layer already exists
local-43830619380f44cf82253d34bd1315ad: digest: sha256:9900d451a5f6a41b32fa17f45bd518102c8dad2d27cb36b914874077d0e56509 size: 2417
Deleted build cache objects:
y0qytdcyrjqqx6i5qcn81km1q
b7yg8dfzedbpy496t34oe008y
ojd87d7hdgg633udrtvy6kbt1

Total reclaimed space: 6.471MB
SKYLARK_DOCKER_IMAGE=ghcr.io/parasj/skylark:local-43830619380f44cf82253d34bd1315ad

=================================================
  ______  _             _                 _
 / _____)| |           | |               | |
( (____  | |  _  _   _ | |  _____   ____ | |  _
 \____ \ | |_/ )| | | || | (____ | / ___)| |_/ )
 _____) )|  _ ( | |_| || | / ___ || |    |  _ (
(______/ |_| \_) \__  | \_)\_____||_|    |_| \_)
                (____/
=================================================

Not skipping upload... paras-skylark-us-east-1 paras-skylark-us-west-1
2022-01-17 21:59:13.227 | WARNING  | __main__:main:74 - Deleting objects from source bucket: ['test/direct_replication/0', 'test/direct_replication/1', 'test/direct_replication/10', 'test/direct_replication/100', 'test/direct_replication/101', 'test/direct_replication/102', 'test/direct_replication/103', 'test/direct_replication/104', 'test/direct_replication/105', 'test/direct_replication/106', 'test/direct_replication/107', 'test/direct_replication/108', 'test/direct_replication/109', 'test/direct_replication/11', 'test/direct_replication/110', 'test/direct_replication/111', 'test/direct_replication/112', 'test/direct_replication/113', 'test/direct_replication/114', 'test/direct_replication/115', 'test/direct_replication/116', 'test/direct_replication/117', 'test/direct_replication/118', 'test/direct_replication/119', 'test/direct_replication/12', 'test/direct_replication/120', 'test/direct_replication/121', 'test/direct_replication/122', 'test/direct_replication/123', 'test/direct_replication/124', 'test/direct_replication/125', 'test/direct_replication/126', 'test/direct_replication/127', 'test/direct_replication/128', 'test/direct_replication/129', 'test/direct_replication/13', 'test/direct_replication/130', 'test/direct_replication/131', 'test/direct_replication/132', 'test/direct_replication/133', 'test/direct_replication/134', 'test/direct_replication/135', 'test/direct_replication/136', 'test/direct_replication/137', 'test/direct_replication/138', 'test/direct_replication/139', 'test/direct_replication/14', 'test/direct_replication/140', 'test/direct_replication/141', 'test/direct_replication/142', 'test/direct_replication/143', 'test/direct_replication/144', 'test/direct_replication/145', 'test/direct_replication/146', 'test/direct_replication/147', 'test/direct_replication/148', 'test/direct_replication/149', 'test/direct_replication/15', 'test/direct_replication/150', 'test/direct_replication/151', 'test/direct_replication/152', 'test/direct_replication/153', 'test/direct_replication/154', 'test/direct_replication/155', 'test/direct_replication/156', 'test/direct_replication/157', 'test/direct_replication/158', 'test/direct_replication/159', 'test/direct_replication/16', 'test/direct_replication/160', 'test/direct_replication/161', 'test/direct_replication/162', 'test/direct_replication/163', 'test/direct_replication/164', 'test/direct_replication/165', 'test/direct_replication/166', 'test/direct_replication/167', 'test/direct_replication/168', 'test/direct_replication/169', 'test/direct_replication/17', 'test/direct_replication/170', 'test/direct_replication/171', 'test/direct_replication/172', 'test/direct_replication/173', 'test/direct_replication/174', 'test/direct_replication/175', 'test/direct_replication/176', 'test/direct_replication/177', 'test/direct_replication/178', 'test/direct_replication/179', 'test/direct_replication/18', 'test/direct_replication/180', 'test/direct_replication/181', 'test/direct_replication/182', 'test/direct_replication/183', 'test/direct_replication/184', 'test/direct_replication/185', 'test/direct_replication/186', 'test/direct_replication/187', 'test/direct_replication/188', 'test/direct_replication/189', 'test/direct_replication/19', 'test/direct_replication/190', 'test/direct_replication/191', 'test/direct_replication/192', 'test/direct_replication/193', 'test/direct_replication/194', 'test/direct_replication/195', 'test/direct_replication/196', 'test/direct_replication/197', 'test/direct_replication/198', 'test/direct_replication/199', 'test/direct_replication/2', 'test/direct_replication/20', 'test/direct_replication/200', 'test/direct_replication/201', 'test/direct_replication/202', 'test/direct_replication/203', 'test/direct_replication/204', 'test/direct_replication/205', 'test/direct_replication/206', 'test/direct_replication/207', 'test/direct_replication/208', 'test/direct_replication/209', 'test/direct_replication/21', 'test/direct_replication/210', 'test/direct_replication/211', 'test/direct_replication/212', 'test/direct_replication/213', 'test/direct_replication/214', 'test/direct_replication/215', 'test/direct_replication/216', 'test/direct_replication/217', 'test/direct_replication/218', 'test/direct_replication/219', 'test/direct_replication/22', 'test/direct_replication/220', 'test/direct_replication/221', 'test/direct_replication/222', 'test/direct_replication/223', 'test/direct_replication/224', 'test/direct_replication/225', 'test/direct_replication/226', 'test/direct_replication/227', 'test/direct_replication/228', 'test/direct_replication/229', 'test/direct_replication/23', 'test/direct_replication/230', 'test/direct_replication/231', 'test/direct_replication/232', 'test/direct_replication/233', 'test/direct_replication/234', 'test/direct_replication/235', 'test/direct_replication/236', 'test/direct_replication/237', 'test/direct_replication/238', 'test/direct_replication/239', 'test/direct_replication/24', 'test/direct_replication/240', 'test/direct_replication/241', 'test/direct_replication/242', 'test/direct_replication/243', 'test/direct_replication/244', 'test/direct_replication/245', 'test/direct_replication/246', 'test/direct_replication/247', 'test/direct_replication/248', 'test/direct_replication/249', 'test/direct_replication/25', 'test/direct_replication/250', 'test/direct_replication/251', 'test/direct_replication/252', 'test/direct_replication/253', 'test/direct_replication/254', 'test/direct_replication/255', 'test/direct_replication/256', 'test/direct_replication/257', 'test/direct_replication/258', 'test/direct_replication/259', 'test/direct_replication/26', 'test/direct_replication/260', 'test/direct_replication/261', 'test/direct_replication/262', 'test/direct_replication/263', 'test/direct_replication/264', 'test/direct_replication/265', 'test/direct_replication/266', 'test/direct_replication/267', 'test/direct_replication/268', 'test/direct_replication/269', 'test/direct_replication/27', 'test/direct_replication/270', 'test/direct_replication/271', 'test/direct_replication/272', 'test/direct_replication/273', 'test/direct_replication/274', 'test/direct_replication/275', 'test/direct_replication/276', 'test/direct_replication/277', 'test/direct_replication/278', 'test/direct_replication/279', 'test/direct_replication/28', 'test/direct_replication/280', 'test/direct_replication/281', 'test/direct_replication/282', 'test/direct_replication/283', 'test/direct_replication/284', 'test/direct_replication/285', 'test/direct_replication/286', 'test/direct_replication/287', 'test/direct_replication/288', 'test/direct_replication/289', 'test/direct_replication/29', 'test/direct_replication/290', 'test/direct_replication/291', 'test/direct_replication/292', 'test/direct_replication/293', 'test/direct_replication/294', 'test/direct_replication/295', 'test/direct_replication/296', 'test/direct_replication/297', 'test/direct_replication/298', 'test/direct_replication/299', 'test/direct_replication/3', 'test/direct_replication/30', 'test/direct_replication/300', 'test/direct_replication/301', 'test/direct_replication/302', 'test/direct_replication/303', 'test/direct_replication/304', 'test/direct_replication/305', 'test/direct_replication/306', 'test/direct_replication/307', 'test/direct_replication/308', 'test/direct_replication/309', 'test/direct_replication/31', 'test/direct_replication/310', 'test/direct_replication/311', 'test/direct_replication/312', 'test/direct_replication/313', 'test/direct_replication/314', 'test/direct_replication/315', 'test/direct_replication/316', 'test/direct_replication/317', 'test/direct_replication/318', 'test/direct_replication/319', 'test/direct_replication/32', 'test/direct_replication/320', 'test/direct_replication/321', 'test/direct_replication/322', 'test/direct_replication/323', 'test/direct_replication/324', 'test/direct_replication/325', 'test/direct_replication/326', 'test/direct_replication/327', 'test/direct_replication/328', 'test/direct_replication/329', 'test/direct_replication/33', 'test/direct_replication/330', 'test/direct_replication/331', 'test/direct_replication/332', 'test/direct_replication/333', 'test/direct_replication/334', 'test/direct_replication/335', 'test/direct_replication/336', 'test/direct_replication/337', 'test/direct_replication/338', 'test/direct_replication/339', 'test/direct_replication/34', 'test/direct_replication/340', 'test/direct_replication/341', 'test/direct_replication/342', 'test/direct_replication/343', 'test/direct_replication/344', 'test/direct_replication/345', 'test/direct_replication/346', 'test/direct_replication/347', 'test/direct_replication/348', 'test/direct_replication/349', 'test/direct_replication/35', 'test/direct_replication/350', 'test/direct_replication/351', 'test/direct_replication/352', 'test/direct_replication/353', 'test/direct_replication/354', 'test/direct_replication/355', 'test/direct_replication/356', 'test/direct_replication/357', 'test/direct_replication/358', 'test/direct_replication/359', 'test/direct_replication/36', 'test/direct_replication/360', 'test/direct_replication/361', 'test/direct_replication/362', 'test/direct_replication/363', 'test/direct_replication/364', 'test/direct_replication/365', 'test/direct_replication/366', 'test/direct_replication/367', 'test/direct_replication/368', 'test/direct_replication/369', 'test/direct_replication/37', 'test/direct_replication/370', 'test/direct_replication/371', 'test/direct_replication/372', 'test/direct_replication/373', 'test/direct_replication/374', 'test/direct_replication/375', 'test/direct_replication/376', 'test/direct_replication/377', 'test/direct_replication/378', 'test/direct_replication/379', 'test/direct_replication/38', 'test/direct_replication/380', 'test/direct_replication/381', 'test/direct_replication/382', 'test/direct_replication/383', 'test/direct_replication/384', 'test/direct_replication/385', 'test/direct_replication/386', 'test/direct_replication/387', 'test/direct_replication/388', 'test/direct_replication/389', 'test/direct_replication/39', 'test/direct_replication/390', 'test/direct_replication/391', 'test/direct_replication/392', 'test/direct_replication/393', 'test/direct_replication/394', 'test/direct_replication/395', 'test/direct_replication/396', 'test/direct_replication/397', 'test/direct_replication/398', 'test/direct_replication/399', 'test/direct_replication/4', 'test/direct_replication/40', 'test/direct_replication/400', 'test/direct_replication/401', 'test/direct_replication/402', 'test/direct_replication/403', 'test/direct_replication/404', 'test/direct_replication/405', 'test/direct_replication/406', 'test/direct_replication/407', 'test/direct_replication/408', 'test/direct_replication/409', 'test/direct_replication/41', 'test/direct_replication/410', 'test/direct_replication/411', 'test/direct_replication/412', 'test/direct_replication/413', 'test/direct_replication/414', 'test/direct_replication/415', 'test/direct_replication/416', 'test/direct_replication/417', 'test/direct_replication/418', 'test/direct_replication/419', 'test/direct_replication/42', 'test/direct_replication/420', 'test/direct_replication/421', 'test/direct_replication/422', 'test/direct_replication/423', 'test/direct_replication/424', 'test/direct_replication/425', 'test/direct_replication/426', 'test/direct_replication/427', 'test/direct_replication/428', 'test/direct_replication/429', 'test/direct_replication/43', 'test/direct_replication/430', 'test/direct_replication/431', 'test/direct_replication/432', 'test/direct_replication/433', 'test/direct_replication/434', 'test/direct_replication/435', 'test/direct_replication/436', 'test/direct_replication/437', 'test/direct_replication/438', 'test/direct_replication/439', 'test/direct_replication/44', 'test/direct_replication/440', 'test/direct_replication/441', 'test/direct_replication/442', 'test/direct_replication/443', 'test/direct_replication/444', 'test/direct_replication/445', 'test/direct_replication/446', 'test/direct_replication/447', 'test/direct_replication/448', 'test/direct_replication/449', 'test/direct_replication/45', 'test/direct_replication/450', 'test/direct_replication/451', 'test/direct_replication/452', 'test/direct_replication/453', 'test/direct_replication/454', 'test/direct_replication/455', 'test/direct_replication/456', 'test/direct_replication/457', 'test/direct_replication/458', 'test/direct_replication/459', 'test/direct_replication/46', 'test/direct_replication/460', 'test/direct_replication/461', 'test/direct_replication/462', 'test/direct_replication/463', 'test/direct_replication/464', 'test/direct_replication/465', 'test/direct_replication/466', 'test/direct_replication/467', 'test/direct_replication/468', 'test/direct_replication/469', 'test/direct_replication/47', 'test/direct_replication/470', 'test/direct_replication/471', 'test/direct_replication/472', 'test/direct_replication/473', 'test/direct_replication/474', 'test/direct_replication/475', 'test/direct_replication/476', 'test/direct_replication/477', 'test/direct_replication/478', 'test/direct_replication/479', 'test/direct_replication/48', 'test/direct_replication/480', 'test/direct_replication/481', 'test/direct_replication/482', 'test/direct_replication/483', 'test/direct_replication/484', 'test/direct_replication/485', 'test/direct_replication/486', 'test/direct_replication/487', 'test/direct_replication/488', 'test/direct_replication/489', 'test/direct_replication/49', 'test/direct_replication/490', 'test/direct_replication/491', 'test/direct_replication/492', 'test/direct_replication/493', 'test/direct_replication/494', 'test/direct_replication/495', 'test/direct_replication/496', 'test/direct_replication/497', 'test/direct_replication/498', 'test/direct_replication/499', 'test/direct_replication/5', 'test/direct_replication/50', 'test/direct_replication/500', 'test/direct_replication/501', 'test/direct_replication/502', 'test/direct_replication/503', 'test/direct_replication/504', 'test/direct_replication/505', 'test/direct_replication/506', 'test/direct_replication/507', 'test/direct_replication/508', 'test/direct_replication/509', 'test/direct_replication/51', 'test/direct_replication/510', 'test/direct_replication/511', 'test/direct_replication/52', 'test/direct_replication/53', 'test/direct_replication/54', 'test/direct_replication/55', 'test/direct_replication/56', 'test/direct_replication/57', 'test/direct_replication/58', 'test/direct_replication/59', 'test/direct_replication/6', 'test/direct_replication/60', 'test/direct_replication/61', 'test/direct_replication/62', 'test/direct_replication/63', 'test/direct_replication/64', 'test/direct_replication/65', 'test/direct_replication/66', 'test/direct_replication/67', 'test/direct_replication/68', 'test/direct_replication/69', 'test/direct_replication/7', 'test/direct_replication/70', 'test/direct_replication/71', 'test/direct_replication/72', 'test/direct_replication/73', 'test/direct_replication/74', 'test/direct_replication/75', 'test/direct_replication/76', 'test/direct_replication/77', 'test/direct_replication/78', 'test/direct_replication/79', 'test/direct_replication/8', 'test/direct_replication/80', 'test/direct_replication/81', 'test/direct_replication/82', 'test/direct_replication/83', 'test/direct_replication/84', 'test/direct_replication/85', 'test/direct_replication/86', 'test/direct_replication/87', 'test/direct_replication/88', 'test/direct_replication/89', 'test/direct_replication/9', 'test/direct_replication/90', 'test/direct_replication/91', 'test/direct_replication/92', 'test/direct_replication/93', 'test/direct_replication/94', 'test/direct_replication/95', 'test/direct_replication/96', 'test/direct_replication/97', 'test/direct_replication/98', 'test/direct_replication/99']
2022-01-17 21:59:14.424 | INFO     | __main__:main:81 - Creating test objects
2022-01-17 21:59:23.698 | INFO     | __main__:main:102 - Creating replication client
2022-01-17 21:59:31.151 | DEBUG    | skylark.utils.utils:__exit__:24 - Cloud SSH key initialization: 7.45s
2022-01-17 21:59:31.151 | INFO     | __main__:main:115 - Provisioning gateway instances
2022-01-17 21:59:33.355 | DEBUG    | skylark.utils.utils:__exit__:24 - Provisioning instances and waiting to boot: 0.00s
2022-01-17 21:59:33.356 | DEBUG    | skylark.compute.server:start_gateway:196 - Starting gateway aws:us-east-1:i-001c1713013eff472: Installing docker
2022-01-17 21:59:33.361 | DEBUG    | skylark.compute.server:start_gateway:196 - Starting gateway aws:us-west-1:i-083f5007c8e124023: Installing docker
2022-01-17 21:59:34.879 | DEBUG    | skylark.compute.server:start_gateway:221 - Starting gateway aws:us-east-1:i-001c1713013eff472: Starting monitoring
2022-01-17 21:59:35.704 | DEBUG    | skylark.compute.server:start_gateway:221 - Starting gateway aws:us-west-1:i-083f5007c8e124023: Starting monitoring
2022-01-17 21:59:35.732 | DEBUG    | skylark.compute.server:start_gateway:226 - Starting gateway aws:us-east-1:i-001c1713013eff472: Pulling docker image
2022-01-17 21:59:36.605 | DEBUG    | skylark.compute.server:start_gateway:244 - Starting gateway aws:us-east-1:i-001c1713013eff472: Starting gateway container ghcr.io/parasj/skylark:local-43830619380f44cf82253d34bd1315ad
2022-01-17 21:59:36.884 | DEBUG    | skylark.compute.server:start_gateway:226 - Starting gateway aws:us-west-1:i-083f5007c8e124023: Pulling docker image
2022-01-17 21:59:38.611 | DEBUG    | skylark.compute.server:start_gateway:244 - Starting gateway aws:us-west-1:i-083f5007c8e124023: Starting gateway container ghcr.io/parasj/skylark:local-43830619380f44cf82253d34bd1315ad
2022-01-17 21:59:39.950 | DEBUG    | skylark.utils.utils:__exit__:24 - Install gateway package on instances: 6.59s
2022-01-17 21:59:39.950 | INFO     | __main__:main:123 - Provisioned path aws:us-east-1 -> aws:us-west-1
2022-01-17 21:59:39.950 | INFO     | __main__:main:125 - 	[aws:us-east-1] http://3.84.68.152:8888/container/f6d5cc8c7499
2022-01-17 21:59:39.950 | INFO     | __main__:main:125 - 	[aws:us-west-1] http://13.57.238.34:8888/container/51e6f3bb06eb
2022-01-17 22:00:29.224 | DEBUG    | skylark.utils.utils:__exit__:24 - Get object sizes: 49.27s
2022-01-17 22:00:29.226 | DEBUG    | skylark.utils.utils:__exit__:24 - Generating chunks: 49.28s
2022-01-17 22:00:29.226 | DEBUG    | skylark.utils.utils:__exit__:24 - Partition chunks: 0.00s
2022-01-17 22:00:29.229 | DEBUG    | skylark.utils.utils:__exit__:24 - Building chunk requests: 0.00s
2022-01-17 22:00:29.229 | DEBUG    | skylark.utils.utils:__exit__:24 - Make ChunkRequests: 0.00s
2022-01-17 22:00:29.229 | DEBUG    | skylark.replicate.replicator_client:send_chunk_requests:309 - Sending 512 chunk requests to 3.84.68.152
2022-01-17 22:00:31.839 | DEBUG    | skylark.utils.utils:__exit__:24 - Dispatch chunk requests: 2.61s
2022-01-17 22:00:31.839 | INFO     | __main__:main:139 - 4.00GByte replication job launched
2022-01-17 22:00:31.866 | INFO     | skylark.replicate.replicator_client:monitor_transfer:353 - Web dashboard running at http://54.92.213.136:8080
Replication: average 2.10Gbit/s: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 32.0G/32.0G [00:14<00:00, 2.45Gbit/s]
2022-01-17 22:00:45.884 | INFO     | __main__:main:141 - Replication completed in 15.27s (2.10Gbit/s)

Copy link
Contributor

@parasj parasj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just need some minor changes, but merge it after that! I fixed one or two minor typos which makes it work on my local machine.

@sarahwooders
Copy link
Contributor Author

I've started getting an authentication error with the VPCs, which I'm guessing might be happening from too many boto3 requests (since the commands work fine in the CLI). I stopped the errors by commenting out all but the US regions, but that's probably not the fix we want...

us-west-1 [ec2.Vpc(id='vpc-0188d97b876066dee')]
us-east-2 [ec2.Vpc(id='vpc-01555ba769f7a0282')]
us-west-2 [ec2.Vpc(id='vpc-0319c3419e14e0781')]
ca-central-1 [ec2.Vpc(id='vpc-03bc90407b74ca73d')]
ap-northeast-3 [ec2.Vpc(id='vpc-07fafa7db7fdd3d39')]
us-east-1 [ec2.Vpc(id='vpc-060f2b6a5fb40d0d8')]
ap-northeast-1 [ec2.Vpc(id='vpc-00f5d648d32f42c62')]
eu-west-1 [ec2.Vpc(id='vpc-04dd23a163bfd37c8')]
eu-west-2 [ec2.Vpc(id='vpc-03f557cec97d8a3f9')]
ap-northeast-2 [ec2.Vpc(id='vpc-0b86795dc29a98782')]
ap-southeast-2 [ec2.Vpc(id='vpc-04284045163739b64')]
eu-west-3 [ec2.Vpc(id='vpc-043524beff522e4b3')]
eu-central-1 [ec2.Vpc(id='vpc-0c1484e56e6ca8a2d')]
ap-southeast-1 [ec2.Vpc(id='vpc-09407097a4032501d')]
eu-north-1 [ec2.Vpc(id='vpc-0ffbbcd6d7d4649b4')]
ap-south-1 [ec2.Vpc(id='vpc-09e0227559c7753e0')]
sa-east-1 [ec2.Vpc(id='vpc-0a1da833612cedcb8')]
2022-01-19 07:21:38.646 | DEBUG    | skylark.utils.utils:__exit__:24 - Cloud SSH key initialization: 7.14s
Traceback (most recent call last):
  File "skylark/test/test_replicator_client.py", line 146, in <module>
    main(parse_args())
  File "skylark/test/test_replicator_client.py", line 103, in main
    rc = ReplicatorClient(
  File "/home/ubuntu/skylark/skylark/replicate/replicator_client.py", line 63, in __init__
    do_parallel(lambda fn: fn(), jobs)
  File "/home/ubuntu/skylark/skylark/utils/utils.py", line 67, in do_parallel
    args, result = future.result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/ubuntu/skylark/skylark/utils/utils.py", line 60, in wrapped_fn
    return args, func(args)
  File "/home/ubuntu/skylark/skylark/replicate/replicator_client.py", line 63, in <lambda>
    do_parallel(lambda fn: fn(), jobs)
  File "/home/ubuntu/skylark/skylark/compute/aws/aws_cloud_provider.py", line 207, in add_ip_to_security_group
    return fn()
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/oslo_concurrency/lockutils.py", line 391, in inner
    return f(*args, **kwargs)
  File "/home/ubuntu/skylark/skylark/compute/aws/aws_cloud_provider.py", line 197, in fn
    self.make_vpc(aws_region)
  File "/home/ubuntu/skylark/skylark/compute/aws/aws_cloud_provider.py", line 99, in make_vpc
    vpcs = list(ec2.vpcs.filter(Filters=[{"Name": "tag:Name", "Values": [vpc_name]}]).all())
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/boto3/resources/collection.py", line 83, in __iter__
    for page in self.pages():
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/boto3/resources/collection.py", line 166, in pages
    for page in pages:
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/botocore/paginate.py", line 255, in __iter__
    response = self._make_request(current_kwargs)
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/botocore/paginate.py", line 334, in _make_request
    return self._method(**current_kwargs)
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/botocore/client.py", line 391, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/ubuntu/skylark/env/lib/python3.8/site-packages/botocore/client.py", line 719, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AuthFailure) when calling the DescribeVpcs operation: AWS was not able to validate the provided access credentials

parasj and others added 3 commits January 19, 2022 15:15
* Reuse S3Interface, batch S3 delete calls to fix AWS bug

* When getting object sizes, throttle requests to avoid retry errors

* Types in Chunk should be Optional

Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
@parasj
Copy link
Contributor

parasj commented Jan 20, 2022

Are we good to merge this PR? I think we can just make the config stuff another GitHub issue and table it for now.

@sarahwooders sarahwooders merged commit f3cf3df into main Jan 20, 2022
@sarahwooders sarahwooders deleted the s3-integration branch January 20, 2022 22:45
sarahwooders added a commit that referenced this pull request Jan 20, 2022
@sarahwooders sarahwooders restored the s3-integration branch January 22, 2022 20:29
@sarahwooders sarahwooders deleted the s3-integration branch January 22, 2022 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants