diff options
Diffstat (limited to 'makepkg.py')
-rwxr-xr-x | makepkg.py | 69 |
1 files changed, 55 insertions, 14 deletions
@@ -7,10 +7,10 @@ import shutil import subprocess import sys -from azurelinuxagent.common.version import AGENT_NAME, AGENT_VERSION, AGENT_LONG_VERSION +from azurelinuxagent.common.version import AGENT_NAME, AGENT_VERSION, \ + AGENT_LONG_VERSION from azurelinuxagent.ga.update import AGENT_MANIFEST_FILE - MANIFEST = '''[{{ "name": "{0}", "version": 1.0, @@ -25,23 +25,57 @@ MANIFEST = '''[{{ }} }}]''' +PUBLISH_MANIFEST = '''<?xml version="1.0" encoding="utf-8" ?> +<ExtensionImage xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> + <!-- WARNING: Ordering of fields matter in this file. --> + <ProviderNameSpace>Microsoft.OSTCLinuxAgent</ProviderNameSpace> + <Type>{1}</Type> + <Version>{0}</Version> + <Label>Microsoft Azure Guest Agent for Linux IaaS</Label> + <HostingResources>VmRole</HostingResources> + <MediaLink></MediaLink> + <Description>Microsoft Azure Guest Agent for Linux IaaS</Description> + <IsInternalExtension>true</IsInternalExtension> + <Eula>https://github.com/Azure/WALinuxAgent/blob/2.1/LICENSE.txt</Eula> + <PrivacyUri>https://github.com/Azure/WALinuxAgent/blob/2.1/LICENSE.txt</PrivacyUri> + <HomepageUri>https://github.com/Azure/WALinuxAgent</HomepageUri> + <IsJsonExtension>true</IsJsonExtension> + <CompanyName>Microsoft</CompanyName> + <SupportedOS>Linux</SupportedOS> + <Regions>{2}</Regions> +</ExtensionImage> +''' + +PUBLISH_MANIFEST_FILE = 'manifest.xml' output_path = os.path.join(os.getcwd(), "eggs") target_path = os.path.join(output_path, AGENT_LONG_VERSION) bin_path = os.path.join(target_path, "bin") egg_path = os.path.join(bin_path, AGENT_LONG_VERSION + ".egg") manifest_path = os.path.join(target_path, AGENT_MANIFEST_FILE) +publish_manifest_path = os.path.join(target_path, PUBLISH_MANIFEST_FILE) pkg_name = os.path.join(output_path, AGENT_LONG_VERSION + ".zip") +family = 'Test' +if len(sys.argv) > 1: + family = sys.argv[1] + +region = 'South Central US' +if len(sys.argv) > 2: + cloud = sys.argv[2] + if cloud == 'BlackForest': + region = 'Germany Central' + def do(*args): try: subprocess.check_output(args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: - print "ERROR: {0}".format(str(e)) - print "\t{0}".format(" ".join(args)) - print e.output + print("ERROR: {0}".format(str(e))) + print("\t{0}".format(" ".join(args))) + print(e.output) sys.exit(1) + if os.path.isdir(target_path): shutil.rmtree(target_path) elif os.path.isfile(target_path): @@ -49,27 +83,34 @@ elif os.path.isfile(target_path): if os.path.isfile(pkg_name): os.remove(pkg_name) os.makedirs(bin_path) -print "Created {0} directory".format(target_path) +print("Created {0} directory".format(target_path)) -args = ["python", "setup.py"] -args.append("bdist_egg") -args.append("--dist-dir={0}".format(bin_path)) +args = ["python", "setup.py", "bdist_egg", "--dist-dir={0}".format(bin_path)] -print "Creating egg {0}".format(egg_path) +print("Creating egg {0}".format(egg_path)) do(*args) -egg_name = os.path.join("bin", os.path.basename(glob.glob(os.path.join(bin_path, "*"))[0])) +egg_name = os.path.join("bin", os.path.basename( + glob.glob(os.path.join(bin_path, "*"))[0])) -print "Writing {0}".format(manifest_path) +print("Writing {0}".format(manifest_path)) with open(manifest_path, mode='w') as manifest: manifest.write(MANIFEST.format(AGENT_NAME, egg_name)) +print("Writing {0}".format(publish_manifest_path)) +with open(publish_manifest_path, mode='w') as publish_manifest: + publish_manifest.write(PUBLISH_MANIFEST.format(AGENT_VERSION, + family, + region)) + + cwd = os.getcwd() os.chdir(target_path) -print "Creating package {0}".format(pkg_name) +print("Creating package {0}".format(pkg_name)) do("zip", "-r", pkg_name, egg_name) do("zip", "-j", pkg_name, AGENT_MANIFEST_FILE) +do("zip", "-j", pkg_name, PUBLISH_MANIFEST_FILE) os.chdir(cwd) -print "Package {0} successfully created".format(pkg_name) +print("Package {0} successfully created".format(pkg_name)) sys.exit(0) |