Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
dustymabe committed Apr 19, 2024
1 parent 6644cdd commit 5eca0e4
Showing 1 changed file with 50 additions and 30 deletions.
80 changes: 50 additions & 30 deletions src/osbuild-manifests/aws_tag.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,48 +8,68 @@
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--stream', dest='stream', type=str, help='Fedora stream', required=True)
parser.add_argument('--arch', dest='arch', type=str, help='Architecture', default='x86_64')
args = parser.parse_args()

builds = getBuildsForStream(args.stream, args.arch)
builds = getBuildsForStream(args.stream)
for build in builds:
print("The build is "+build)
buildFetch(args.stream, build, args.arch)
meta = open('builds/'+build+'/'+args.arch+'/meta.json')
data = json.load(meta)

# Delete this when actually running. Just here while I make this script
# data ={"amis":[{
# "name": "us-east-1",
# "hvm": "ami-0016d5df3041499f9",
# "snapshot": "snap-0c1ca4850fcd5e573"
# }]}
amis = data['amis']
for ami in amis:
UpdateTagCmd = 'aws ec2 create-tags --resource ' + ami['hvm'] + ' --tags '+ 'Key="FedoraUser",Value="coreos"' + ' --region=' + ami['name']
try:
subprocess.call(['/bin/bash', '-i', '-c', UpdateTagCmd])
except subprocess.CalledProcessError as e:
return(e.output)
return

def getBuildsForStream(stream, arch):
buildFetch = 'cosa buildfetch --stream='+ stream + ' --arch='+ arch
build_id=build['id']
arches=build['arches']
for arch in arches:
print(f"The build is {build_id}")
buildFetch(args.stream, build_id, arch)
meta = open('builds/'+build_id+'/'+arch+'/meta.json')
data = json.load(meta)

# Delete this when actually running. Just here while I make this script
data ={"amis":[{
"name": "us-east-1",
"hvm": "ami-0016d5df3041499f9",
"snapshot": "snap-0c1ca4850fcd5e573"
}]}
amis = data['amis']
for ami in amis:
checkAndAddTag(ami["hvm"], ami["name"])
checkAndAddTag(ami["snapshot"], ami["name"])
return

def checkAndAddTag(resourceId, region):
tagExists = checkTag(resourceId)
if tagExists:
print(f"{resourceId} already tagged with FedoraUser=coreos tag")
else:
addTag(resourceId, region)
print(f"FedoraUser=coreos tag successfully added to {resourceId}")

def checkTag(resourceId):
checkTagCmd = f'aws ec2 describe-tags --filters Name=resource-id,Values={resourceId} Name=value,Values=coreos'
try:
tagCheck=subprocess.run([checkTagCmd], shell=True, capture_output=True, text=True)
if "FedoraUser" and "coreos" in tagCheck.stdout:
return True
return False
except subprocess.CalledProcessError as e:
return(e.output)

def addTag(resourceId, region):
UpdateTagCmd = f'aws ec2 create-tags --resource {resourceId} --tags Key="FedoraUser",Value="coreos" --region {region}'
try:
subprocess.run([UpdateTagCmd], shell=True)
except subprocess.CalledProcessError as e:
return(e.output)

def getBuildsForStream(stream):
buildFetch = 'cosa buildfetch --stream='+ stream + ' --arch=all'
try:
subprocess.call(['/bin/bash', '-i', '-c', buildFetch])
except subprocess.CalledProcessError as e:
return(e.output)

f = open('builds/builds.json')
data = json.load(f)
builds = []

for i in data['builds']:
builds.append(i['id'])
return builds
return data['builds']

def buildFetch(stream, build, arch):
buildFetchCmd = 'cosa buildfetch --stream='+ stream + '--build=' + build + '--arch=' + arch
buildFetchCmd = 'cosa buildfetch --stream='+ stream + ' --build=' + build + ' --arch=' + arch
try:
subprocess.call(['/bin/bash', '-i', '-c', buildFetchCmd])
except subprocess.CalledProcessError as e:
Expand Down

0 comments on commit 5eca0e4

Please sign in to comment.