(self, socket_file, working_dir, local_dir, s3_bucket, s3_key,
player_key, player_mem_limit, player_cpu)
| 49 | |
| 50 | class AbstractPlayer: |
| 51 | def __init__(self, socket_file, working_dir, local_dir, s3_bucket, s3_key, |
| 52 | player_key, player_mem_limit, player_cpu): |
| 53 | self.player_mem_limit = str(player_mem_limit) + 'mb' |
| 54 | self.player_cpu_fraction = player_cpu/100.0 |
| 55 | self.player_key = player_key |
| 56 | self.socket_file = socket_file |
| 57 | |
| 58 | # Note that working dir is an absolute path |
| 59 | self.working_dir = os.path.abspath(os.path.join(working_dir, random_key(20))) |
| 60 | |
| 61 | if not os.path.exists(working_dir): |
| 62 | os.makedirs(working_dir) |
| 63 | |
| 64 | if s3_bucket: |
| 65 | if not extract_s3_bucket(s3_bucket, s3_key, self.working_dir): |
| 66 | raise ValueError("Incorrect s3 key provided.") |
| 67 | elif local_dir: |
| 68 | # print("Copying files from {} to {}".format(os.path.abspath(local_dir), self.working_dir)) |
| 69 | try: |
| 70 | copytree(os.path.abspath(local_dir), self.working_dir) |
| 71 | except Exception as e: |
| 72 | print("Failed to copy files from {} to {}\nMake sure you don't have any broken symlinks in your player directory for example" + |
| 73 | " and that your dog didn't eat your hard drive.".format(os.path.abspath(local_dir), self.working_dir)) |
| 74 | raise |
| 75 | else: |
| 76 | raise ValueError("Must provide either S3 key and bucket or local directory for code.") |
| 77 | |
| 78 | dos2unix(self.working_dir) |
| 79 | |
| 80 | def _detect_platform(self): |
| 81 | if sys.platform.startswith("linux"): |
nothing calls this directly
no test coverage detected