Skip to content

Commit

Permalink
added unzip
Browse files Browse the repository at this point in the history
  • Loading branch information
oakrizan committed Oct 4, 2024
1 parent 592fc3c commit 7cc2091
Showing 1 changed file with 79 additions and 19 deletions.
98 changes: 79 additions & 19 deletions .buildkite/scripts/agentbeat/prepare_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
import platform
import subprocess
import sys
import tarfile

PATH = 'x-pack/agentbeat/build/distributions'


def log(msg):
sys.stdout.write(f'{msg}\n')
sys.stdout.flush()


def get_os() -> str:
Expand All @@ -12,56 +20,108 @@ def get_os() -> str:
def get_arch() -> str:
arch = platform.machine().lower()

if arch == "amd64":
return "x86_64"
if arch == 'amd64':
return 'x86_64'
else:
return arch


def get_artifact_extension(agent_os) -> str:
if agent_os == "windows":
return "zip"
if agent_os == 'windows':
return 'zip'
else:
return "tar.gz"
return 'tar.gz'


def download_agentbeat_artifact(agent_os, agent_arch):
print(" ")
def get_artifact_pattern() -> str:
agent_os = get_os()
agent_arch = get_arch()
extension = get_artifact_extension(agent_os)
pattern = f"x-pack/agentbeat/build/distributions/agentbeat-*-{agent_os}-{agent_arch}.{extension}"
return f'{PATH}/agentbeat-*-{agent_os}-{agent_arch}.{extension}'


def download_agentbeat(pattern, path) -> str:
log('--- Downloading agentbeat')
try:
subprocess.run(
["buildkite-agent", "artifact", "download", pattern, ".",
"--build", "01924d2b-b061-45ae-a106-e885584ff26f",
"--step", "agentbeat-package-linux"],
['buildkite-agent', 'artifact', 'download', pattern, '.',
'--build', '01924d2b-b061-45ae-a106-e885584ff26f',
'--step', 'agentbeat-package-linux'],
check=True, stdout=sys.stdout, stderr=sys.stderr, text=True)
except subprocess.CalledProcessError:
exit(1)

return get_filename(path)

def unzip_agentbeat():
print("todo unzip")

def get_filename(path) -> str:
try:
out = subprocess.run(
['ls', '-p', path],
check=True, capture_output=True, text=True)
return out.stdout.strip()
except subprocess.CalledProcessError:
exit(1)


def extract_agentbeat(filepath):
log('--- Extracting agentbeat')

if filepath.endswith('.zip'):
unzip_agentbeat(filepath)
else:
untar_agentbeat(filepath)
log('Successfully extracted agentbeat')


def unzip_agentbeat(filepath):
try:
subprocess.run(
["unzip"],
['unzip', filepath],
check=True, stdout=sys.stdout, stderr=sys.stderr, text=True)
except subprocess.CalledProcessError as e:
sys.stderr.write(str(e))
exit(1)


def untar_agentbeat(filepath):
try:
with tarfile.open(filepath, 'r:gz') as tar:
tar.list()
tar.extractall()
except Exception as e:
sys.stderr.write(str(e))
exit(1)


def add_to_path(filepath):
try:
out = subprocess.run(
['ls', '-p', 'x-pack/agentbeat/build/distributions'],
check=True, capture_output=True, text=True)

except subprocess.CalledProcessError:
exit(1)

print(filepath)


def install_synthetics():
print("--- Installing @elastic/synthetics")
log('--- Installing @elastic/synthetics')

try:
subprocess.run(
["npm install -g @elastic/synthetics"],
['npm install -g @elastic/synthetics'],
check=True
)
except subprocess.CalledProcessError:
print("Failed to install @elastic/synthetics")
log('Failed to install @elastic/synthetics')
exit(1)

print("--- OS Data: " + get_os() + " " + get_arch())
download_agentbeat_artifact(get_os(), get_arch())
print('OS Data: ' + get_os() + ' ' + get_arch())

artifact_pattern = get_artifact_pattern()
archive = download_agentbeat(artifact_pattern, PATH)
extract_agentbeat(archive)
add_to_path(archive)
# install_synthetics()

0 comments on commit 7cc2091

Please sign in to comment.