#1094 Remove getfedora.org, moved to https://pagure.io/fedora-web/websites/
Closed 18 days ago by darknao. Opened 5 months ago by misc.
misc/fedora-websites remove_getfedora  into  master

@@ -1,62 +0,0 @@ 

- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

- <etag-cache>

-     <entry lang="sq" localFileMD5="2e6adda96b9b0de9ff7c172553d12b7b" localFileName="po/getfedora" localFileTime="1424274338000" serverETag="2015-02-18 07:31:55.0"/>

-     <entry lang="ar" localFileMD5="dffcd0b09758db0b80ec479ef2bfbf33" localFileName="po/getfedora" localFileTime="1424274339000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="as" localFileMD5="699c38b294024bb03b767e71cc328079" localFileName="po/getfedora" localFileTime="1424274340000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ast" localFileMD5="db6f7e645d6ab5c53d0c6f7b72636984" localFileName="po/getfedora" localFileTime="1424274340000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="bal" localFileMD5="86cc7b72e51c65213639dfb2971e151a" localFileName="po/getfedora" localFileTime="1424274341000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="eu" localFileMD5="6b3c700a059f5de3137bd78d592fab47" localFileName="po/getfedora" localFileTime="1424274342000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="bn" localFileMD5="569ff31f42183680994874425181d222" localFileName="po/getfedora" localFileTime="1424274343000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="bn-IN" localFileMD5="4fa74ea6736828b73e91ad642b4787a6" localFileName="po/getfedora" localFileTime="1424274344000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="br" localFileMD5="18e8b0178e3f4854a8f6a5225761e6e3" localFileName="po/getfedora" localFileTime="1424274347000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="bg" localFileMD5="de1f637aa56dff124d0c076f80ce0ac6" localFileName="po/getfedora" localFileTime="1424274348000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ca" localFileMD5="d641066e609e130d1bd707d0e7d63694" localFileName="po/getfedora" localFileTime="1424274349000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="zh-CN" localFileMD5="a3f4207aa40e974c8e374ef1a5e55063" localFileName="po/getfedora" localFileTime="1424274350000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="zh-TW" localFileMD5="9b825f1a50b292a98bde602614ac7aae" localFileName="po/getfedora" localFileTime="1424274352000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="cs" localFileMD5="e1317e0e79eea1927132c87d87fd337b" localFileName="po/getfedora" localFileTime="1424274355000" serverETag="2015-02-18 10:17:46.0"/>

-     <entry lang="da" localFileMD5="662943b19fe123e3bd9503b497c710b8" localFileName="po/getfedora" localFileTime="1424274356000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="nl" localFileMD5="e471f4873327b7231702e8817e9a127c" localFileName="po/getfedora" localFileTime="1424274357000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="en-GB" localFileMD5="4ef23b3af95e72065525863611414726" localFileName="po/getfedora" localFileTime="1424274358000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="fi" localFileMD5="43c4d10bc62d82b3f752250311e384c8" localFileName="po/getfedora" localFileTime="1424274360000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="fr" localFileMD5="dfd3c129c90b0afb8b9f95b439cebdae" localFileName="po/getfedora" localFileTime="1424274361000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="gl" localFileMD5="3986d56b61a1f5df1236bd82ef5dc519" localFileName="po/getfedora" localFileTime="1424274362000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ka" localFileMD5="de2f70d74e424ec08d3071bd37ed9cad" localFileName="po/getfedora" localFileTime="1424274363000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="de" localFileMD5="ad79d4c0adfb84df2b883a4e0fbed552" localFileName="po/getfedora" localFileTime="1424274364000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="el" localFileMD5="3aadea5ed7307a1015f6653286433627" localFileName="po/getfedora" localFileTime="1424274365000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="gu" localFileMD5="a112d70019a81622a5088fe73a37313b" localFileName="po/getfedora" localFileTime="1424274365000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="he" localFileMD5="cf8f285bb8437074affd819773d7b4d7" localFileName="po/getfedora" localFileTime="1424274366000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="hi" localFileMD5="2f7ebe932bf73a5fb2766931117a271d" localFileName="po/getfedora" localFileTime="1424274367000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="hu" localFileMD5="3862475713150ca31ad37e03bdd03112" localFileName="po/getfedora" localFileTime="1424274368000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="is" localFileMD5="27a937f0f9d43113ffb2c6efd8fc44fd" localFileName="po/getfedora" localFileTime="1424274369000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="id" localFileMD5="f4c2e00560763d6980ad9b1146083cd0" localFileName="po/getfedora" localFileTime="1424274370000" serverETag="2015-02-18 07:11:47.0"/>

-     <entry lang="ia" localFileMD5="dfc27de17497b648ec2fb0ae81628990" localFileName="po/getfedora" localFileTime="1424274371000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="it" localFileMD5="8f7a05c6edc27cdc07193e35be2e28e6" localFileName="po/getfedora" localFileTime="1424274372000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ja" localFileMD5="9e92b10da6d965a1454e99ed203a4e08" localFileName="po/getfedora" localFileTime="1424274373000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="kn" localFileMD5="4a9c20d5d3e29c2d93885f9c8af50507" localFileName="po/getfedora" localFileTime="1424274374000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ko" localFileMD5="50b3a6f8690ae01ffaedff08496ba805" localFileName="po/getfedora" localFileTime="1424274377000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ml" localFileMD5="4b984ad0d357998820e8ffcf8d617146" localFileName="po/getfedora" localFileTime="1424274382000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="mr" localFileMD5="abaef697d4c4ba6fb533f7e90e55e13b" localFileName="po/getfedora" localFileTime="1424274382000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="nb" localFileMD5="9ce948c63ce1aee768694297febea507" localFileName="po/getfedora" localFileTime="1424274385000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="or" localFileMD5="6370e8082939afc14eac0d75c8fda1e0" localFileName="po/getfedora" localFileTime="1424274387000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="pa" localFileMD5="25279c3a77282e703ec97f932828a633" localFileName="po/getfedora" localFileTime="1424274388000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="fa" localFileMD5="fb31ce892651fa66ec13bcf2b8d9846f" localFileName="po/getfedora" localFileTime="1424274388000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="pl" localFileMD5="42eeb59d987f5776ac407a1ac72e16b0" localFileName="po/getfedora" localFileTime="1424274390000" serverETag="2015-02-18 06:38:14.0"/>

-     <entry lang="pt" localFileMD5="c24d93762d1650c681b0c8c92fe36103" localFileName="po/getfedora" localFileTime="1424274391000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="pt-BR" localFileMD5="105f681473efdf224d22512d2a9391ac" localFileName="po/getfedora" localFileTime="1424274392000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ro" localFileMD5="08c42846db18c3af8ba5862ceb2db2ba" localFileName="po/getfedora" localFileTime="1424274392000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ru" localFileMD5="d208f9ed4f3c3a363ef396d2a6d1697d" localFileName="po/getfedora" localFileTime="1424274393000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="sr" localFileMD5="8d886c43b10a0b61917f7a24522d74b7" localFileName="po/getfedora" localFileTime="1424274394000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="sk" localFileMD5="df89926c2215aae4579d7f5bd4764e20" localFileName="po/getfedora" localFileTime="1424274397000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="es" localFileMD5="16b0aea6a3c07e46db7c465b488e4e99" localFileName="po/getfedora" localFileTime="1424274399000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="sv" localFileMD5="8d9fda75fa866f631aa35df41f1f569a" localFileName="po/getfedora" localFileTime="1424274400000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="tg" localFileMD5="ce29d5a426c8ef0e968cf312b2f7916b" localFileName="po/getfedora" localFileTime="1424274400000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="ta" localFileMD5="f7b01962d3a016578047be16f48a78d2" localFileName="po/getfedora" localFileTime="1424274401000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="te" localFileMD5="d7a1f424ccdb1f731d01314fb70984b4" localFileName="po/getfedora" localFileTime="1424274402000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="tr" localFileMD5="9761c243e1c36a2706e51f2e39b703e8" localFileName="po/getfedora" localFileTime="1424274404000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="uk" localFileMD5="eedb7b5f01ad10f8bfbcba6701d975e2" localFileName="po/getfedora" localFileTime="1424274405000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="lv" localFileMD5="b66dbd483e195d79526586b6e8a06655" localFileName="po/getfedora" localFileTime="1424274408000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="af" localFileMD5="6565b6d3f37b889f9519001696a23425" localFileName="po/getfedora" localFileTime="1424274411000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="de-CH" localFileMD5="d98606a3dc367450a5baba76584a4b87" localFileName="po/getfedora" localFileTime="1424274414000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="th" localFileMD5="3e3a087a57449ba27e8c2dc0795b675a" localFileName="po/getfedora" localFileTime="1424274415000" serverETag="2015-02-18 05:01:03.0"/>

-     <entry lang="vi" localFileMD5="169a3d7e4d6abf392845922524218d19" localFileName="po/getfedora" localFileTime="1424274416000" serverETag="2015-02-18 05:01:03.0"/>

- </etag-cache>

file removed
-15
@@ -1,15 +0,0 @@ 

- include ../Makefile.in

- 

- # moved (see fedora-web/websites)

- pullpos: ;

- 

- $(LANGUAGES): % : | static rss-cache po/%.mo data/templates/translations.html

- 	$(PYTHON) $(BUILDDIR)/build.py -o out -i data/content -l $@ -p po -b $(BASEPATH)

- 

- all::

- # FIXME: This is being provided statically for F25 GA,

- # but must be fixed by F26 Alpha

- # q.v.:

- #   https://pagure.io/fedora-websites/issue/54

- #   https://pagure.io/fedora-qa/fedfind/issue/2

- 	mv out/static/releases.json out/releases.json

@@ -1,234 +0,0 @@ 

- #!/usr/bin/python

- """ Return the results of the atomic release engine from datagrepper.

- 

- For the Two-Week Atomic Change (F23)

- 

- Deps:  $ sudo dnf install python-requests

- 

- Author:     Ralph Bean <rbean@redhat.com>

- License:    LGPLv2+

- """

- 

- from __future__ import print_function

- 

- import collections

- import functools

- import json

- import logging

- import os

- import sys

- import socket

- 

- from datetime import datetime, timedelta

- 

- import dateutil.relativedelta

- import dateutil.tz

- import dogpile.cache

- import requests

- 

- log = logging.getLogger("atomic_vars")

- 

- try:

-     sys.path.append('../build.d')

- 

-     import globalvar

- except ImportError:

-     log.error("Unable to import globalvar")

-     sys.exit(1)

- 

- base_url = 'https://apps.fedoraproject.org/datagrepper/raw'

- topic = "org.fedoraproject.prod.releng.atomic.twoweek.complete"

- 

- UTC = dateutil.tz.tzutc()

- 

- session = requests.session()

- 

- cache = dogpile.cache.make_region().configure(

-     "dogpile.cache.dbm",

-     # 'make clean' does not remove this cache, but we let the values expire

-     # once every this many seconds (once a day)

-     expiration_time=86400,

-     arguments={

-         "filename": os.path.join(os.getcwd(), 'build/atomic.cache')

-     },

- )

- 

- # Are we running in fedora-infra or on someone's laptop?

- hostname = socket.gethostname()

- if '.phx2.fedoraproject.org' in hostname:

-     DL_URL_PREFIX = 'http://dl.phx2.fedoraproject.org'

- else:

-     DL_URL_PREFIX = 'https://dl.fedoraproject.org'

- 

- download_fpo = 'https://download.fedoraproject.org'

- 

- 

- def get_page(page, pages):

-     """ Retrieve the JSON for a particular page of datagrepper results """

-     log.debug("Getting page %i of %s", page, pages)

-     params = dict(

-         delta=2419200, # 4 weeks in seconds

-         topic=topic,

-         page=page,

-         rows_per_page=1,

-     )

-     response = session.get(base_url, params=params)

-     if not bool(response):

-         raise IOError("Failed to talk to %r %r" % (response.url, response))

-     return response.json()

- 

- 

- # A list of fedmsg messages ideas that were produced erroneously.

- # We don't want to use them, so ban them from our results.

- blacklist = [

-     '2016-dd05c4b7-958b-439f-90d6-e5ca0af2197c',

-     '2016-b2a2eb00-acef-4a1f-bc6a-ad5aa9d81eee',

-     '2016-0307f681-1eae-4aeb-9126-8a43b7a378e2',

- ]

- 

- def get_messages(target):

-     """ Generator that yields messages from datagrepper """

- 

-     # Get the first page

-     data = get_page(1, 'unknown')

-     for message in data['raw_messages']:

-         if message['msg_id'] in blacklist:

-             continue

-         if target in json.dumps(message):

-             yield message

- 

-     more = functools.partial(get_page, pages=data['pages'])

- 

-     # Get all subsequent pages (if there are any...)

-     for page in range(1, data['pages']):

-         data = more(page + 1)

- 

-         for message in data['raw_messages']:

-             if message['msg_id'] in blacklist:

-                 continue

-             if target in json.dumps(message):

-                 yield message

- 

- 

- def make_templates(curr_atomic_id, next_atomic_id):

-     return [

-         # As things stand now, we only do two-week-atomic stuff for the current

-         # stable release.

-         (curr_atomic_id, '', ''),

- 

-         # If we ever move to doing pre-release versions as well, just uncomment

-         # the following line and it should all work. We leave it commented out

-         # now because querying datagrepper for pre-release results that are not

-         # there is much more slow than querying for something that exists.

-         #(next_atomic_id, 'pre_atomic_', 'pre_'),

-     ]

- 

- 

- # We cache this guy on disk so we don't hit datagrepper over and over.

- @cache.cache_on_arguments()

- def collect(curr_atomic_id, next_atomic_id):

-     results = collections.defaultdict(dict)

- 

-     # This is the information needed to provide "latest" download targets that

-     # redirect to the actual mirrormanager url via htpasswd file

-     results['release']['redir_map'] = collections.defaultdict(dict)

- 

-     for idx, composedate_prefix, iso_size_prefix in make_templates(curr_atomic_id, next_atomic_id):

- 

-         log.info("Looking for latest atomic release for %s" % idx)

-         # Get the *latest* atomic release information.

-         messages = get_messages('-%s-' % idx)

-         try:

-             message = messages.next()

-         except StopIteration:

-             log.warn("Couldn't find any two-week-atomic content for %r" % idx)

-             continue

- 

-         # Parse the composedate out of the image_name

-         image_name = message['msg']['x86_64']['atomic_qcow2']['image_name']

-         composedate = '.'.join(image_name.split('-')[-1].split('.')[:-2])

-         log.info("    Found composedate: %s" % composedate)

-         results['release'][composedate_prefix + 'atomic_composedate'] = composedate

- 

-         # Save the timestamp so we can compute the age later, off-cache.

-         results['release'][composedate_prefix + 'atomic_ts'] = message['timestamp']

- 

-         # Get the sizes of the isos in megabytes.  To do this, we need...

-         # A mapping between what the release-engine tool calls each artifact,

-         # and what we call them.

-         mapping = {

-             'atomic_qcow2': 'atomic_qcow2_cloud',

-             'atomic_raw': 'atomic_raw_cloud',

-             'atomic_vagrant_libvirt': 'atomic_libvag_cloud',

-             'atomic_vagrant_virtualbox': 'atomic_VBvag_cloud',

-             'atomic_dvd_ostree': 'atomic_dvd_iso',

-         }

- 

-         for arch, items in message['msg'].items():       

-             for key, entry in items.items():

-                 # There are some other keys in there we don't care about.

-                 if not key.startswith('atomic_'):

-                     continue

- 

-                 url = entry['image_url']

-                 download_url = entry['image_url']

-                 if not url.startswith('http'):

-                     url = DL_URL_PREFIX + url

-                     download_url = download_fpo + entry['image_url']

- 

-                 length = int(entry['size']) / (1024 * 1024)

-                 # Provide the download URL

-                 url_key = mapping[key] + "_url"

-                 results['release'][url_key] = download_url

- 

-                 # Provide the redirect rule mapping

-                 img_filename = download_url.split('/')[-1]

-                 results['release']['redir_map'][key+'_'+arch] = {}

-                 results['release']['redir_map'][key+'_'+arch]['redirect'] = download_url

-                 results['release']['redir_map'][key+'_'+arch]['filename'] = img_filename

-                 results['release']['redir_map'][key+'_'+arch]['iso_size'] = str(length)

- 

-                 # Figure out which of our vars we're going to set, and set it

-                 iso_size_key = iso_size_prefix + mapping[key]

-                 results['iso_size'][iso_size_key] = str(length)

-             results['release']['redir_map']['atomic_images_checksum_' + arch] = {}

-             results['release']['redir_map']['atomic_images_checksum_' + arch]['redirect']=\

-                 download_fpo + '/pub/alt/atomic/stable/Fedora-Atomic-' + idx + '-' + composedate +\

-                 '/AtomicHost/' + arch + '/images/Fedora-AtomicHost-' + idx + '-' + composedate + '-' + arch + '-CHECKSUM'

-             results['release']['redir_map']['atomic_images_checksum_' + arch]['filename'] = \

-                 'Fedora-AtomicHost-' + idx + '-' + composedate + '-' + arch + '-CHECKSUM'

- 

-             results['release']['redir_map']['atomic_dvd_ostree_checksum_' + arch] = {}

-             results['release']['redir_map']['atomic_dvd_ostree_checksum_' + arch]['redirect'] = \

-                 download_fpo + '/pub/alt/atomic/stable/Fedora-Atomic-' + idx + '-' + composedate + \

-                 '/AtomicHost/' + arch + '/iso/Fedora-AtomicHost-' + idx + '-' + composedate + '-' + arch + '-CHECKSUM'

-             results['release']['redir_map']['atomic_dvd_ostree_checksum_' + arch]['filename'] = \

-                 'Fedora-AtomicHost-' + idx + '-' + composedate + '-' + arch + '-CHECKSUM'

- 

-     return results

- 

- 

- # Note, this is *not* cached, since we need to update it frequently.

- def update_age(release):

-     """ Is it old and stale?

- 

-     We aim to produce new atomic releases every two weeks at minimum.  If we're

-     older than two weeks, we should put up a warning on the websites.  Here we

-     just compute a flag that gets checked in the template.  If this latest

-     release if younger than two weeks, call it "fresh".  If it is older than

-     two weeks, it is no longer fresh.

-     http://taiga.cloud.fedoraproject.org/project/acarter-fedora-docker-atomic-tooling/us/31

-     """

- 

-     results = collections.defaultdict(dict)

-     templates = make_templates(release['curr_atomic_id'], release['next_atomic_id'])

-     for idx, composedate_prefix, iso_size_prefix in templates:

-         two_weeks_ago = datetime.now(UTC) - timedelta(days=14)

-         timestamp = release[composedate_prefix + 'atomic_ts']

-         latest = datetime.fromtimestamp(timestamp, UTC)

-         freshness = bool(latest >= two_weeks_ago)

-         relative_delta = datetime.now(UTC) - latest

-         casual_delta = relative_delta.days

-         results['release'][composedate_prefix + 'atomic_freshness'] = freshness

-         results['release'][composedate_prefix + 'atomic_age'] = casual_delta

-     return results

@@ -1,177 +0,0 @@ 

- #!/bin/python

- # This file is used to generate the "out/static/js/cloud_ec2.js" file used the get-fedora-options#cloud tab

- # You should only edit

- # - the bellow dictionnary containing the AMI ID (get them on the wiki)

- # - the python list ec2_fXX_regions

- # - the template call at the end of file near "noscript" and "if JS enabled" (data/template/)

- 

- import os

- 

- OUTPUT = 'out/static/js/cloud_ec2.js'

- 

- # Returns a sorted list of unique available regions from the array

- def sorted_region(arr):

- 	list = []

- 	for i in arr:

- 		list.append(i['region'])

- 	return(sorted(set(list), key=lambda  item: (int(item.partition(' ')[0]) if item[0].isdigit() else float('inf'), item)))

- 

- # Generated using the following:

- # :%s#^\(ami-[0-9a-z]*\) : \([a-zA-Z0-9-]*\) image for \([xi].*\)#{'region':'\2', 'arch':'\3', 'store':'\EBS-Backed', 'id': '\1'},#g

- # :%s/us-east-1/US East (Northern Virginia)/g

- # :%s/us-west-1/US West (Northern California)/g

- # :%s/us-west-2/US West (Oregon)/g

- # :%s/eu-west-1/EU (Ireland)/g

- # :%s/ap-southeast-1/Asia Pacific (Singapore)/g

- # :%s/ap-southeast-2/Asia Pacific (Sydney)/g

- # :%s/ap-northeast-1/Asia Pacific (Tokyo)/g

- # :%s/sa-east-1/South America (Sao Paulo)/g

- 

- # Get the list at: https://dl.fedoraproject.org/pub/alt/stage/20-Beta-RC2/Images/x86_64/

- ec2_f21_Alpha_Base = [

-                         {'region':'US East (Northern Virginia)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-20268848'},

- #                        {'region':'US East (Northern Virginia)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-8b4219e2'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-820f2bd0'},

- #                        {'region':'Asia Pacific (Singapore)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-0eb2e75c'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-7b6c0f41'},

- #                        {'region':'Asia Pacific (Sydney)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-db63ffe1'},

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-cf644bce'},

- #                        {'region':'Asia Pacific (Tokyo)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-e15135e0'},

-                         {'region':'US West (Northern California)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-b58b82f0'},

- #                        {'region':'US West (Northern California)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-00d0e645'},

-                         {'region':'US West (Oregon)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-af57179f'},

- #                        {'region':'US West (Oregon)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-48ca5178'},

-                         {'region':'EU (Ireland)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-bac760cd'},

- #                        {'region':'EU (Ireland)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-897b99fe'},

-                         {'region':'South America (Sao Paulo)', 'arch':'x86_64', 'store':'EBS-Backed', 'id':'ami-ab9f35b6'}

- #                        {'region':'South America (Sao Paulo)', 'arch':'i386', 'store':'EBS-Backed', 'id':'ami-4b5cfa56'}

- ]

- 

- ec2_f21_Alpha_Atomic = [

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-ebfe80ea'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-deeebe8c'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-27a1391d'},

-                         {'region':'EU (Ireland)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-29a2595e'},

-                         {'region':'South America (Sao Paulo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-8145e79c'},

-                         {'region':'US East (Northern Virginia)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-f525389c'},

-                         {'region':'US West (Northern California)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-46f3ca03'},

-                         {'region':'US West (Oregon)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-9682e9a6'}

- ]

- 

- ec2_f21_Base = [

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-9583fd94'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-6ceebe3e'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-eba038d1'},

-                         {'region':'EU (Ireland)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-a5ad56d2'},

-                         {'region':'South America (Sao Paulo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-2345e73e'},

-                         {'region':'US East (Northern Virginia)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-21362b48'},

-                         {'region':'US West (Northern California)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-f8f1c8bd'},

-                         {'region':'US West (Oregon)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-cc8de6fc'},

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-db83fdda'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-30eebe62'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-d9a038e3'},

-                         {'region':'EU (Ireland)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-0bac577c'},

-                         {'region':'South America (Sao Paulo)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-4b45e756'},

-                         {'region':'US East (Northern Virginia)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-81302de8'},

-                         {'region':'US West (Northern California)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-a0f1c8e5'},

-                         {'region':'US West (Oregon)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-768ce746'}

- ]

- 

- ec2_f21_Atomic = [

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-5bff815a'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-e2eebeb0'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-7fa13945'},

-                         {'region':'EU (Ireland)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-e7a25990'},

-                         {'region':'South America (Sao Paulo)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-ad45e7b0'},

-                         {'region':'US East (Northern Virginia)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-812439e8'},

-                         {'region':'US West (Northern California)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-1cf3ca59'},

-                         {'region':'US West (Oregon)', 'arch':'i386', 'store':'BS-Backed', 'id':'ami-e882e9d8'},

-                         {'region':'Asia Pacific (Tokyo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-ebfe80ea'},

-                         {'region':'Asia Pacific (Singapore)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-deeebe8c'},

-                         {'region':'Asia Pacific (Sydney)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-27a1391d'},

-                         {'region':'EU (Ireland)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-29a2595e'},

-                         {'region':'South America (Sao Paulo)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-8145e79c'},

-                         {'region':'US East (Northern Virginia)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-f525389c'},

-                         {'region':'US West (Northern California)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-46f3ca03'},

-                         {'region':'US West (Oregon)', 'arch':'x86_64', 'store':'BS-Backed', 'id':'ami-9682e9a6'}

- ]

- 

- # The idea is to get something similar to http://jsfiddle.net/shaiton/wChSv/5/

- # But we have to generate it in order to have to maintain only one list of AMI ID

- # Simply read the output at "out/static/js/cloud_ec2.js"

- def gen_js(*args):

- 	js="// File generated from cloud-tab.html.\n"

- 	js+="addEventListener('DOMContentLoaded', function(){\n"

- 

- 	for release in args:

- 		js+="\tvar element = document.getElementById('cloud_options_" + release[0] + "');\n"

- 		js+="\tif (element != null)\n"

- 		js+="\t\telement.style.visibility='visible';\n"

- 		js+="\telement = document.getElementById('amihref_" + release[0] + "');\n"

- 		js+="\tif (element != null)\n"

- 		js+="\t\telement.style.visibility='hidden';\n"

- 	js+="});\n"

- 

- 	js+="\nfunction getval() {\n"

- 	js+="\t// We get the number of regions, and define a two dimensional array (region,arch) to store the AMI ID\n"

- 	js+="\t// We limit to i > 1 as we don't need the first null entry'\n"

- 	js+="\t// For each release providen. '\n"

- 	js+="\tvar region_name = {\n"

-  	js+="\t  'Asia Pacific (Tokyo)': 'ap-northeast-1',\n"

- 	js+="\t  'Asia Pacific (Singapore)': 'ap-southeast-1',\n"

- 	js+="\t  'Asia Pacific (Sydney)': 'ap-southeast-2',\n"

- 	js+="\t  'EU (Ireland)': 'eu-west-1',\n"

- 	js+="\t  'South America (Sao Paulo)': 'sa-east-1',\n"

- 	js+="\t  'US East (Northern Virginia)': 'us-east-1',\n"

- 	js+="\t  'US West (Northern California)': 'us-west-1',\n"

- 	js+="\t  'US West (Oregon)': 'us-west-2'\n"

- 	js+="\t}\n"

- 	for release in args:

- 		js+="\n\tvar form_" + release[0] + " = document.forms['cloud_options_" + release[0] + "'];\n"

- 		js+="\n\tvar is_form_" + release[0] + " = typeof form_" + release[0] + ";\n"

- 		js+="\tif (is_form_" + release[0] + " != 'undefined' && form_" + release[0] + ".region_" + release[0] + ".value != 'null') {\n"

- 		js+="\t\tfor (var i = form_" + release[0] + ".region_" + release[0] + ".options.length, id_" + release[0] + " = new Array(form_" + release[0] + ".region_" + release[0] + ".options.length); i > 1; i--)\n"

- 		js+="\t\t\tid_" + release[0] + "[form_" + release[0] + ".region_" + release[0] + ".options[i - 1].value] = new Array(2);\n\n"

- 

- 		for img in release[1]:

- 			js+="\t\tid_" + release[0] + "['" + img['region'] + "']['" + img['arch'] + "'] = '" + img['id'] + "';\n"

- 		js+="\t}\n"

- 	for release in args:

- 		js+="\n\tif (is_form_" + release[0] + " != 'undefined') {\n"

- 		js+="\n\t\tif (form_" + release[0] + ".region_" + release[0] + ".value != 'null') {\n"

- 		js+="\t\t\tvar ami_id = id_" + release[0] + "[form_" + release[0] + ".region_" + release[0] + ".value][form_" + release[0] + ".arch_" + release[0] + ".value];\n"

- 		js+="\t\t\tvar url = 'https://console.aws.amazon.com/ec2/v2/home?region=' + region_name[form_" + release[0] + ".region_" + release[0] + ".value] + '#LaunchInstanceWizard:ami=' + ami_id;\n"

- 		js+="\t\t\tdocument.getElementById('amihref_" + release[0] + "').href = url;\n"

- 		js+="\t\t\tdocument.getElementById('amihref_" + release[0] + "').style.visibility='visible';\n"

- 		js+="\t\t\tdocument.getElementById('label_" + release[0] + "').innerHTML = ami_id;\n"

- 		js+="\t\t} else {\n"

- 		js+="\t\t\tdocument.getElementById('amihref_" + release[0] + "').href = '';\n"

- 		js+="\t\t\tdocument.getElementById('amihref_" + release[0] + "').style.visibility='hidden';\n"

- 		js+="\t\t\tdocument.getElementById('label_" + release[0] + "').innerHTML = '';\n"

- 		js+="\t\t}\n"

- 		js+="\t}\n"

- 	js+="}\n"

- 	f = open(OUTPUT, 'w+')

- 	f.write(js)

- 	f.close()

- 

- def get_amis():

-     ec2_f21_Alpha_Base_regions = sorted_region(ec2_f21_Alpha_Base)

-     ec2_f21_Alpha_Atomic_regions = sorted_region(ec2_f21_Alpha_Atomic)

-     ec2_f21_Base_regions = sorted_region(ec2_f21_Base)

-     ec2_f21_Atomic_regions = sorted_region(ec2_f21_Atomic)

- 

-     if not os.path.exists(OUTPUT):

-         gen_js(

-         	['21_Base',ec2_f21_Base],

-             ['21_Atomic',ec2_f21_Atomic],

-             ['21_Alpha_Base',ec2_f21_Alpha_Base],

-             ['21_Alpha_Atomic',ec2_f21_Alpha_Atomic])

- 

-     return {

-         'f21_Base':ec2_f21_Base, 'f21_Base_regions':ec2_f21_Base_regions,

-         'f21_Atomic':ec2_f21_Atomic, 'f21_Atomic_regions':ec2_f21_Atomic_regions,

-         'f21_Alpha_Base':ec2_f21_Alpha_Base, 'f21_Alpha_Base_regions':ec2_f21_Alpha_Base_regions,

-         'f21_Alpha_Atomic':ec2_f21_Alpha_Atomic, 'f21_Alpha_Atomic_regions':ec2_f21_Alpha_Atomic_regions

-            }

- 

@@ -1,111 +0,0 @@ 

- #!/usr/bin/python

- """ Return the AMIs uploaded by fedimg for a given set of release vars.

- 

- Search datagrepper to find the results.

- 

- Deps:  $ sudo dnf install python-requests

- 

- Author:     Ralph Bean <rbean@redhat.com>

- License:    LGPLv2+

- """

- 

- from __future__ import print_function

- 

- import collections

- import functools

- from datetime import datetime, timedelta

- from hashlib import sha1

- import logging

- import shelve

- import os

- 

- from fedimg_vars_lib import get_messages, sanity_check, mocked_fedimg, check_permissions

- 

- logging.basicConfig(level=logging.INFO)

- 

- log = logging.getLogger('fedimg_vars')

- 

- cachefile = '/tmp/fedora_websites_fedimg_getfedora_%s.cache'

- 

- 

- # We cache this guy on disk for 500s

- def collect(release):

-     filename = cachefile % (sha1(str(release)).hexdigest())

-     shelf = shelve.open(filename)

-     check_permissions(filename=filename)

-     if shelf.get('timestamp') and shelf.get('timestamp') > (datetime.utcnow() - timedelta(hours=1)):

-         log.info('Retrieving release data from shelf')

-         toreturn = shelf['collected']

-         shelf.close()

-         return toreturn

- 

-     results = collections.defaultdict(dict)

- 

-     # 1 - transform release vars into an image name we want to query for

-     templates = [

-         # The F22 released AMIs uploads didn't appear to go through fedimg, so

-         # we can't use this scheme for them.  Stuff for F23 should all go that

-         # route though, so we can hopefully switch over soon.

-         #("Fedora-Cloud-Base-{curr_cloud_AMI_id}-{cloud_AMI_composedate}.n.0.x86_64", {

-         #    'HVM_base_AMI':     lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'standard',

-         #    'GP2_HVM_base_AMI': lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'gp2',

-         #    'PV_base_AMI':      lambda e: e.get('virt_type') == 'paravirtual' and e.get('vol_type') == 'standard',

-         #    'GP2_PV_base_AMI':  lambda e: e.get('virt_type') == 'paravirtual' and e.get('vol_type') == 'gp2',

-         #}),

-         ("Fedora-AtomicHost-{curr_atomic_id}-{atomic_composedate}.x86_64", {

-            'HVM_atomic_AMI':     lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'standard',

-            'GP2_HVM_atomic_AMI': lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'gp2',

-         }),

-         ("Fedora-AtomicHost-{curr_atomic_id}-{atomic_composedate}.aarch64", {

-             'AARCH64_GP2_HVM_atomic_AMI': lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'gp2',

-         }),

-         #("Fedora-Cloud-Base-{next_cloud_AMI_id}_{curr_cloud_AMI_state}-{RC_pre_gold}.x86_64", {

-         #    'pre_HVM_base_AMI':     lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'standard',

-         #   'pre_GP2_HVM_base_AMI': lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'gp2',

-         #    'pre_PV_base_AMI':      lambda e: e.get('virt_type') == 'paravirtual' and e.get('vol_type') == 'standard',

-         #    'pre_GP2_PV_base_AMI':  lambda e: e.get('virt_type') == 'paravirtual' and e.get('vol_type') == 'gp2',

-         #}),

-         #("Fedora-Cloud-Atomic-{next_cloud_AMI_id}_{curr_cloud_AMI_state}-{manual_pre_cloud_AMI_atomic_composedate}.x86_64", {

-         #    'pre_HVM_atomic_AMI':     lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'standard',

-         #    'pre_GP2_HVM_atomic_AMI': lambda e: e.get('virt_type') == 'hvm' and e.get('vol_type') == 'gp2',

-         #}),

-     ]

- 

-     if not os.path.exists('/var/fedora_websites_live_fedimg'):

-         return mocked_fedimg(templates)

- 

-     for template, buckets in templates:

-         # 2 - Build an intermediary dict

-         intermediary = collections.OrderedDict()

-         target = template.format(**release)

-         log.info("Looking for AMIs for %s" % target)

-         messages = get_messages(target)

-         for message in messages:

-             key = message['msg']['image_name']

-             if not key in intermediary:

-                 intermediary[key] = []

-             intermediary[key].append(message['msg'])

- 

-         if not intermediary:

-             log.warn("No AMIs found for %s" % target)

-             continue

- 

-         # What would this even mean?

-         assert len(intermediary) < 2, "Impossible.  Got more than one target."

- 

-         uploads = intermediary[target]

- 

-         # 3- transform intermediary representation into results

-         for name, matches in buckets.items():

-             for upload in uploads:

-                 if matches(upload['extra']):

-                     ami = upload['extra']['id']

-                     # The region looks like "EC2 (REGION)", so we strip stuff.

-                     region = upload['destination']

-                     results[name][region] = ami

- 

-     shelf['timestamp'] = datetime.utcnow()

-     shelf['collected'] = results

-     shelf.close()

- 

-     return results

@@ -1,1 +0,0 @@ 

- ../../tools/fedimg_vars_lib.py 

\ No newline at end of file

@@ -1,71 +0,0 @@ 

- #!/usr/bin/python

- # -*- coding: utf-8 -*-

- # This script will parse the f-XX-key-milestones.tjx file and retrieve three relevant

- # dates: Alpha Release Public Availability, Beta Release Public Availability and Final Release Public Availability.

- 

- 

- import urllib2

- from urllib2 import HTTPError

- from urllib2 import URLError

- from StringIO import StringIO

- import gzip

- from lxml import etree

- import cPickle, os

- 

- def parse(cache, r):

-     root = etree.fromstring(cache)

-     date={}

- 

-     beta_release = root.xpath('//task[@id="f' + r + '.TestingPhase.beta.beta_drop"]/taskScenario/start/@humanReadable')

-     final_release = root.xpath('//task[@id="f' + r + '.LaunchPhase.final"]/taskScenario/start/@humanReadable')

- 

- 

-     try:

-         date[r] = {'beta':beta_release[0], 'final':final_release[0]}

-         return date

-     except IndexError:

-         return {}

- 

- 

- def schedule(release):

-     date={}

-     ec = None

-     cachefile = os.path.join(os.getcwd(), 'build/schedule.cache')

- 

- 

-     if os.path.isfile(cachefile):

-         f = open(cachefile)

-         try:

-             ec = cPickle.load(f)

-         except:

-             pass

-         f.close()

- 

-     if ec is not None:

-         date = parse(ec, release)

-         if release in date:

-             return date

- 

-     # We need to generate the cache!

-     # Download the schedule

-     try:

-         u = urllib2.urlopen('http://fedorapeople.org/groups/schedule/f-' + release + '/f-' + release + '-key-milestones.tjx')

-     except HTTPError:

-         date[release] = {'beta':'2014-jan-01', 'final':'2014-jan-01'}

-         return date

- 

-     except URLError:

-         date[release] = {'beta':'2014-jan-01', 'final':'2014-jan-01'}

-         return date

- 

-     # Release is already present in date if we got HTTPError

-     if not release in date:

-         buf = StringIO(u.read())

-         f = gzip.GzipFile(fileobj=buf)

-         data = f.read().strip() # looks like there is a leading space in the file

- 

-         f = open(cachefile, 'w')

-         cPickle.dump(data, f)

-         f.close()

- 

-         return parse(data, release)

@@ -1,40 +0,0 @@ 

- #!/usr/bin/env python

- import fedfind.release

- import fedfind.helpers

- import json

- output = []

- def hashify(version, milestone, arch, link, variant, subvariant):

-     return { 'version': version

-            , 'arch': arch

-            , 'link': link

-            , 'variant': variant

-            , 'subvariant': subvariant

-            }

- releases_to_report = [

-       fedfind.release.get_release(30),

-       fedfind.release.get_release(29),

-       fedfind.release.get_release(28)

-     ]

- for rel in releases_to_report:

-     for img in rel.all_images:

-         location = img['url']

-         h = hashify(

-                 rel.version,

-                 rel.milestone,

-                 img['arch'],

-                 location,

-                 img['variant'],

-                 img['subvariant'])

-         if 'checksums' in img and 'sha256' in img['checksums']:

-             h['sha256'] = str(img['checksums']['sha256'])

- 

-         if rel.version == "26":

-             h['releaseDate'] = '2017-07-11'

-         elif rel.version == "27" and img['variant'] != "Server":

-             h['releaseDate'] = '2017-11-14'

- 

-         if 'size' in img:

-             h['size'] = str(img['size'])

- 

-         output.append(h)

- print json.dumps(output)

@@ -1,53 +0,0 @@ 

- import os

- import cPickle

- import feedparser

- import socket

- import sys

- 

- def feedparse(url):

-     # TODO: Should the directory be hardcoded like this? 

-     # Maybe use ConfigParser to get some stuff?

-     feeds = [{}] 

-     cachefile = os.path.join(os.getcwd(), 'build/rss.cache')

-     if os.path.isfile(cachefile):

-         f = open(cachefile)

-         feeds = cPickle.load(f)

-         f.close()

- 

-     # We parse the list

-     for i in feeds:

-         feed_url = i

-         # and here the dictionary

-         for j in feed_url:

-            try:

-                if j["url"] == url:

-                    return j["feed"]   

-            except KeyError:

-                pass

- 

-     # Ok, the url was not in the cache, process it

-     main_feed = dict()

-     timeout = socket.getdefaulttimeout()

-     socket.setdefaulttimeout(3)

-     main_feed = feedparser.parse(url)

-     socket.setdefaulttimeout(timeout)

-     if len(main_feed['entries']) < 1:

-         print 'ERROR: ' + str(main_feed['bozo_exception'])

-         print 'Could not load ' + url

-         sys.exit(1)

-     entry = [{}]

-     for feed in main_feed["entries"]:

-         '''We only need to save the link, title and date of blog posts'''

-         if "updated" in feed:

-             entry.append({'link':feed["link"], 'title':feed["title"], 'date':feed["date"]})

-         else:

-             entry.append({'link':feed["link"], 'title':feed["title"], 'date':""})

-     url_entries = [{}]

-     url_entries.append({'url':url, 'feed':entry})

-     feeds.append(url_entries)

- 

-     f = open(cachefile, 'w')

-     cPickle.dump(feeds, f)

-     f.close()

-     feed_url = dict()

-     return entry

@@ -1,57 +0,0 @@ 

- <!DOCTYPE html>

- <html lang="${lang}"

-   xmlns="http://www.w3.org/1999/xhtml"

-   xmlns:py="http://genshi.edgewall.org/"

-   xmlns:xi="http://www.w3.org/2001/XInclude">

-   <xi:include href="../../../templates/master.html" />

-   <head>

-     <title>${_('Download Fedora Atomic Host')}</title>

-   </head>

-   <body id="cloud">

- 

-   <xi:include href="../../../templates/cloud/header.html" />

-   <!--! <div class="mymenu navbar-default workstationmenu">

-     <div class="container">

-       <div class="navbar-header">

-       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">

-         <span class="icon-bar"></span>

-         <span class="icon-bar"></span>

-         <span class="icon-bar"></span>

-       </button>

-     </div>

-      <div class="row col-md-8 col-md-offset-2 row col-sm-10 col-sm-offset-1 col-xs-12">

-         <div class="collapse navbar-collapse">

-           <ul class="nav nav-tabs nav-justified">

-                 <li><a href="../">${_('About')}</a></li>

-                 <li><a href="#">${_('Take the Tour')}</a></li>

-                 <li class="active"><a href="#">${_('Download')}</a></li>

-           </ul>

-         </div>

-       </div>

-     </div>

-   </div>-->

-   <header class="splashheader main-head recover-heading">

-     <div class="container">

-       <div class="row">

-         <div class="col-xs-12">

-           <h2>${_('Thanks for Downloading Fedora!')}</h2>

-           <p>${_('Your download should begin in a few seconds. If not, click the link below:')}

-             <p class="download-path"></p>

-           </p>

-         </div>

-       </div>

-     </div>

-   </header>

-   <div class="container">

-     <div class="row bottom-space">

-         <div class="col-xs-12">

-           <h3>${Markup(_('Verify your Download!'))}</h3>

-           <p>${Markup(_('Once you have downloaded an image, verify it for security and integrity. To verify your image, start by downloading the proper CHECKSUM file into the same directory as the image you downloaded and follow &lt;a href="%s/%s/verify"&gt;these instructions&lt;/a&gt;.') % (path, lang))}</p>

-         </div>

-         <div class="col-md-3 col-xs-12">

-           <a class="btn btn-default btn-topmargin checksum" href="${path}/${lang}/verify.html">${_('Verify!')}</a>

- 	</div>

-     </div>

-   </div>

-   </body>

- </html>

@@ -1,467 +0,0 @@ 

- <!DOCTYPE html>

- <html lang="${lang}"

-   xmlns="http://www.w3.org/1999/xhtml"

-   xmlns:py="http://genshi.edgewall.org/"

-   xmlns:xi="http://www.w3.org/2001/XInclude">

-   <xi:include href="../../../templates/master.html" />

-   <head>

-     <script type="text/javascript" src="${path}/static/js/cloud_ec2.js"></script>

- 

-     <title>${_('Download Fedora Atomic')}</title>

-   </head>

-   <body id="cloud">

- 

-   <xi:include href="../../../templates/cloud/header.html" />

-   <xi:include href="../../../templates/regulations.html" />

-   <!--!<div class="mymenu cloudmenu">

-     <div class="container">

-      <div class="row col-md-8 col-md-offset-2 row col-xs-12">

-         <div class="collapse navbar-collapse">

-           <ul class="nav nav-tabs nav-justified" role="tablist">

-                 <li><a href="../">About</a></li>

-                 <li><a href="#">Take the Tour</a></li>

-                 <li class="active"><a href="#">Download</a></li>

-           </ul>

-         </div>

-       </div>

-     </div>

-   </div>-->

- 

-   <header class="downloadheader">

-     <div class="container">

-       <div class="row">

-         <div class="col-md-7 col-md-offset-5 text-left recover-heading">

-           <h2>${Markup(_('Download Fedora %(rel)s Atomic Host')) % {'rel':global_variables.release['curr_atomic_id']}}</h2>

-             <p>${_('Atomic Host is built every 2 weeks or so.')}</p>

-             <p py:if="not global_variables.release['atomic_freshness']">${Markup(_('The latest two week build did not meet our testing criteria. The images available are from over %(atomic_age)s days ago. Check the Project Atomic blog for updates and information about Atomic blocker bugs.') % global_variables.release)}</p>

-             <p py:if="global_variables.release['atomic_freshness']">${Markup(_('These are the latest official Fedora Atomic Host images, produced %(atomic_age)s days ago.') % global_variables.release)}</p>

-         </div>

-       </div>

-     </div>

-   </header>

- 

-   <div class="container download-container recover-heading top-margin">

- 	<div class="row">

-     <div class="col-md-8 col-xs-12">

-       <div class="row top-margin">

-           <div class="col-xs-12">

-               <h2 class="cloudy">${_('Atomic Host Images')}</h2>

-               <p>${_('Fedora Atomic Host is a leading edge base operating system following the Project Atomic model. It is designed around Kubernetes and containers. The images published here showcase that work. Note that the images have passed several levels of automated testing.')}</p>

-               <ul>

-               <li>${Markup(_('&lt;strong&gt;Please test before using new versions in production.&lt;/strong&gt; If you do discover a problem, the Atomic Host tools make it easy to flip back to an earlier release — and if that happens, please also help us by filing bugs or submitting fixes.'))}</li>

-               <li>${Markup(_('&lt;strong&gt;Fedora Atomic Host images are updated roughly every two weeks,&lt;/strong&gt; rather than on the main six-month Fedora cadence. Because development is moving quickly, only the latest major Fedora release is supported.'))}</li>

-               <li>${Markup(_('&lt;strong&gt;Note that different Fedora Atomic Host media are subject to different levels of automatic testing.&lt;/strong&gt; You can learn more about the Atomic project at &lt;a href="%s"&gt;projectatomic.io&lt;/a&gt;. &lt;a href="%s"&gt;Click here&lt;/a&gt; to see the current test status.') % ('https://www.projectatomic.io/', '//apps.fedoraproject.org/autocloud/compose?limit=10'))}</li>

-             </ul>

-           </div>

-       </div>

- 

-       <!-- Start Amazon -->

-         <div class="row">

-             <div class="col-xs-12">

-               <h3>${_('Atomic Host Images for Amazon Public Cloud EC2')}</h3>

-               <p>${_('The links below will provide you listings of available Atomic Host Hardware Virtual Machine (HVM) AMIs by region with buttons to launch them in your Amazon Web Services account. AMI IDs for usage with the AWS Console or command-line tools are also provided.')}</p>

-             </div>

-         </div>

-         <div class="row">

-           <div class="col-xs-12">

-             <div class="list-group">

-               <div class="list-group-item">

-                 <div class="row">

-                   <div class="col-xs-10">

-                     <h5 class="bold">

-                       ${_('GP2 Format HVM AMIs (x86_64)')}

-                    </h5>

-                   </div>

-                   <div class="col-xs-2 text-right">

-                     <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="gp2-reveal-link" role="button" title="${_('GP2 HVM AMIs')}">

-                       <span class="fa fa-fw fa-caret-down" aria-hidden="true"></span>

-                     </a>

-                   </div>

-                   <div id="gp2-reveal-link" class="col-xs-12" style="display: none;">

-                     <p>${_('GP2 format AMIs use faster SSD storage; use these AMIs for speed, although note your storage costs will be more than standard.')}</p>

-                     <table class="table table-hover">

-                       <thead>

-                         <tr>

-                           <th>${_('Region')}</th>

-                           <th class="hidden-xs">${_('AMI ID')}</th>

-                           <th>${_('Launch')}</th>

-                         </tr>

-                       </thead>

-                       <tbody>

-                         <tr py:for="r in global_variables.EC2_regions">

-                           <td py:if="r.code in global_variables.GP2_HVM_atomic_AMI">${_(r.long)}</td>

-                           <td py:if="r.code in global_variables.GP2_HVM_atomic_AMI" class="hidden-xs">${global_variables.GP2_HVM_atomic_AMI[r.code]}</td>

-                           <td py:if="r.code in global_variables.GP2_HVM_atomic_AMI" class="text-center"><a href="${global_variables.path_stats['path']}/${global_variables.path_stats[r.short]}${global_variables.GP2_HVM_atomic_AMI[r.code]}"><span class="fa fa-cloud" aria-hidden="true"></span></a></td>

-                         </tr>

-                       </tbody>

-                     </table>

-                   </div>

-                 </div>

-               </div>

-               <div class="list-group-item">

-                 <div class="row">

-                   <div class="col-xs-10">

-                     <h5 class="bold">${_('Standard Format HVM AMIs (x86_64)')}</h5>

-                   </div>

-                   <div class="col-xs-2 text-right">

-                     <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="standardami-reveal-link" role="button" title="${_('GP2 HVM AMIs')}">

-                       <span class="fa fa-fw fa-caret-down" aria-hidden="true"></span>

-                     </a>

-                   </div>

-                   <div id="standardami-reveal-link" class="col-xs-12" style="display: none;">

-                     <p>${_('Standard format AMIs are more suitable if you have infrequently accessed data and want to keep storage cost low.')}</p>

-                     <table class="table table-hover">

-                       <thead>

-                         <tr>

-                           <th>${_('Region')}</th>

-                           <th class="hidden-xs">${_('AMI ID')}</th>

-                           <th>${_('Launch')}</th>

-                         </tr>

-                       </thead>

-                       <tbody>

-                         <tr py:for="r in global_variables.EC2_regions">

-                           <td py:if="r.code in global_variables.HVM_atomic_AMI">${_(r.long)}</td>

-                           <td py:if="r.code in global_variables.HVM_atomic_AMI" class="hidden-xs">${global_variables.HVM_atomic_AMI[r.code]}</td>

-                           <td py:if="r.code in global_variables.HVM_atomic_AMI" class="text-center"><a href="${global_variables.path_stats['path']}/${global_variables.path_stats[r.short]}${global_variables.HVM_atomic_AMI[r.code]}"><span class="fa fa-cloud" aria-hidden="true"></span></a></td>

-                         </tr>

-                       </tbody>

-                     </table>

-                   </div>

-                 </div>

-               </div>

-               <div class="list-group-item">

-                 <div class="row">

-                   <div class="col-xs-10">

-                     <h5 class="bold">

-                       ${_('GP2 Format HVM AMIs (aarch64)')}

-                    </h5>

-                   </div>

-                   <div class="col-xs-2 text-right">

-                     <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="aarch64-gp2-reveal-link" role="button" title="${_('GP2 HVM AMIs')}">

-                       <span class="fa fa-fw fa-caret-down" aria-hidden="true"></span>

-                     </a>

-                   </div>

-                   <div id="aarch64-gp2-reveal-link" class="col-xs-12" style="display: none;">

-                     <p>${_('GP2 format AMIs use faster SSD storage; use these AMIs for speed, although note your storage costs will be more than standard.')}</p>

-                     <table class="table table-hover">

-                       <thead>

-                         <tr>

-                           <th>${_('Region')}</th>

-                           <th class="hidden-xs">${_('AMI ID')}</th>

-                           <th>${_('Launch')}</th>

-                         </tr>

-                       </thead>

-                       <tbody>

-                         <tr py:for="r in global_variables.aarch64_EC2_regions">

-                           <td py:if="r.code in global_variables.AARCH64_GP2_HVM_atomic_AMI">${_(r.long)}</td>

-                           <td py:if="r.code in global_variables.AARCH64_GP2_HVM_atomic_AMI" class="hidden-xs">${global_variables.AARCH64_GP2_HVM_atomic_AMI[r.code]}</td>

-                           <td py:if="r.code in global_variables.AARCH64_GP2_HVM_atomic_AMI" class="text-center"><a href="${global_variables.path_stats['path']}/${global_variables.path_stats[r.short]}${global_variables.AARCH64_GP2_HVM_atomic_AMI[r.code]}"><span class="fa fa-cloud" aria-hidden="true"></span></a></td>

-                         </tr>

-                       </tbody>

-                     </table>

-                   </div>

-                 </div>

-               </div>

-             </div>

-           </div>

-         </div>

- 

-       <!-- Start Vagrant -->

-       <div class="row">

-           <div class="col-xs-12">

-             <h3>${_('Atomic Host Images for Vagrant')}</h3>

-             <p>

-               ${Markup(_('Vagrant Boxes for Fedora Atomic Host are available for the VirtualBox and Libvirt providers. You can bring up Fedora Atomic Host in a vagrant box by downloading the images from Fedora or using the vagrant tools to pull the images from &lt;a href="%s"&gt;HashiCorp\'s Vagrant Cloud&lt;/a&gt;.') % ('https://app.vagrantup.com/fedora'))}

-               ${Markup(_('For more information about running Vagrant on Fedora Workstation, see &lt;a href="%s"&gt;our wiki page&lt;/a&gt;.') % ('https://fedoraproject.org/wiki/Vagrant'))}

-             </p>

-           </div>

-       </div>

-       <div class="row">

-         <div class="col-xs-12">

-           <div class="list-group">

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold mb-0">${_('VirtualBox Image for Vagrant')}</h5>

-                   <small>${_('If you\'re using Vagrant on Mac OS X or Windows, this is likely the image you\'ll want to use.')}</small>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="${global_variables.release['atomic_VBvag_cloud_url']}" class="btn btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB VirtualBox Base Vagrant Image') % global_variables.iso_size['atomic_VBvag_cloud']}">

-                     <span class="fa fa-fw fa-download" aria-hidden="true"></span>

-                   </a>

-                 </div>

-               </div>

-             </div>

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold mb-0">${_('libvirt/KVM Image for Vagrant')}</h5>

-                   <small>${_('If you\'re using Vagrant on Fedora, this is the image you\'ll want to use.')}</small>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="${global_variables.release['atomic_libvag_cloud_url']}" class="btn btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB libvirt/KVM Base Vagrant Image') % global_variables.iso_size['atomic_libvag_cloud']}">

-                     <span class="fa fa-fw fa-download" aria-hidden="true"></span>

-                   </a>

-                 </div>

-               </div>

-             </div>

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold">${_('How to download using Vagrant tools')}</h5>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="vagranttools-reveal-link" role="button">

-                     <span class="fa fa-fw fa-fw fa-caret-down" aria-hidden="true"></span>

-                   </a>

-                 </div>

-                 <div id="vagranttools-reveal-link" class="col-xs-12" style="display: none;">

-                     <p>${Markup(_('Use the following command to grab the Vagrant Box images from &lt;a href="%s"&gt;HashiCorp\'s Atlas&lt;/a&gt;.') % ('https://atlas.hashicorp.com/fedora'))}</p>

-                   <pre>vagrant box add fedora/${global_variables.release['curr_atomic_id']}-atomic-host</pre>

-                   <p>${Markup(_('If you\'ve previously run Fedora %(rel)s Atomic Host in Vagrant on your machine then you can get the latest version by running:')) % {'rel':global_variables.release['curr_atomic_id']}}</p>

-                   <pre>vagrant box update --box=fedora/${global_variables.release['curr_atomic_id']}-atomic-host</pre>

-                 </div>

-               </div>

-             </div>

-           </div>

-         </div>

-       </div>

-       <!-- End Vagrant -->

- 

-       <!-- Start Base images -->

-       <div class="row">

-         <div class="col-xs-12">

-           <h3>${_('Atomic Host Images for Cloud Environments')}</h3>

-         </div>

-       </div>

-       <div class="row">

-         <div class="col-xs-12">

-           <div class="list-group">

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold mb-0">${_('qcow2 Image')}</h5>

-                   <small>${Markup(_('Fedora %(rel)s Cloud Atomic Host in a Qcow2-formatted image for use with OpenStack')) % {'rel':global_variables.release['curr_atomic_id']}}</small>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="qcow-reveal-link" role="button">

-                     <span class="fa fa-fw fa-fw fa-caret-down" aria-hidden="true"></span>

-                   </a>

-                 </div>

-                 <div id="qcow-reveal-link" class="col-xs-12" style="display: none;">

-                   <div class="list-group mt-1">

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> qcow2 image for x86_64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_qcow2_x86_64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB Qcow2 Image') % global_variables.release['redir_map']['atomic_qcow2_x86_64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> x86_64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> qcow2 image for aarch64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_qcow2_aarch64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB Qcow2 Image') % global_variables.release['redir_map']['atomic_qcow2_aarch64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> aarch64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> qcow2 image for ppc64le</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_qcow2_ppc64le']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB Qcow2 Image') % global_variables.release['redir_map']['atomic_qcow2_ppc64le']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> ppc64le

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                   </div>

-                 </div>

-               </div>

-             </div>

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold mb-0">${_('Raw Image')}</h5>

-                   <small>${Markup(_('Fedora %(rel)s Cloud Atomic Host in a compressed raw image format')) % {'rel':global_variables.release['curr_atomic_id']}}</small>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="raw-reveal-link" role="button">

-                     <span class="fa fa-fw fa-fw fa-caret-down" aria-hidden="true"></span>

-                   </a>

-                 </div>

-                 <div id="raw-reveal-link" class="col-xs-12" style="display: none;">

-                   <div class="list-group mt-1">

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> raw image for x86_64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_raw_x86_64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB xz-Compressed Raw Image') % global_variables.release['redir_map']['atomic_raw_x86_64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> x86_64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> raw image for aarch64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_raw_aarch64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB xz-Compressed Raw Image') % global_variables.release['redir_map']['atomic_raw_aarch64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> aarch64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> raw image for ppc64le</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_raw_ppc64le']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('64-bit %sMB xz-Compressed Raw Image') % global_variables.release['redir_map']['atomic_raw_ppc64le']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> ppc64le

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                   </div>

-                 </div>

-               </div>

-             </div>

-           </div>

-         </div>

-       </div>

-       <!-- end Base images -->

- 

- 

-       <!-- Start Base images -->

-       <div class="row">

-         <div class="col-xs-12">

-           <h3>${_('Atomic Host Images for Bare Metal')}</h3>

-         </div>

-       </div>

-       <div class="row">

-         <div class="col-xs-12">

-           <div class="list-group">

-             <div class="list-group-item">

-               <div class="row">

-                 <div class="col-xs-10">

-                   <h5 class="bold mb-0">${_('ISO Image')}</h5>

-                   <small>${Markup(_('Fedora %(rel)s Cloud Atomic Host in an ISO image format')) % {'rel':global_variables.release['curr_atomic_id']}}</small>

-                 </div>

-                 <div class="col-xs-2 text-right">

-                   <a href="javascript:void(0)" class="btn btn-success reveal-link download-cloud download-cloud-sm" data-target="iso-reveal-link" role="button">

-                     <span class="fa fa-fw fa-fw fa-caret-down" aria-hidden="true"></span>

-                   </a>

-                 </div>

-                 <div id="iso-reveal-link" class="col-xs-12" style="display: none;">

-                   <div class="list-group mt-1">

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> ISO image for x86_64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_dvd_ostree_x86_64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('Atomic Host ISO image (%sMB)') % global_variables.release['redir_map']['atomic_dvd_ostree_x86_64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> x86_64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> ISO image for aarch64</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_dvd_ostree_aarch64']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('Atomic Host ISO image (%sMB)') % global_variables.release['redir_map']['atomic_dvd_ostree_aarch64']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> aarch64

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                     <div class="list-group-item bg-light">

-                       <div class="row">

-                         <div class="col-xs-9">

-                           <h5 class="bold"> ISO image for ppc64le</h5>

-                         </div>

-                         <div class="col-xs-3 text-right">

-                           <a href="${global_variables.release['redir_map']['atomic_dvd_ostree_ppc64le']['redirect']}" class="btn btn-sm btn-success download-cloud download-cloud-sm download-cloud-splash" role="button" title="${_('Atomic Host ISO image (%sMB)') % global_variables.release['redir_map']['atomic_dvd_ostree_ppc64le']['iso_size']}">

-                             <span class="fa fa-fw fa-download" aria-hidden="true"></span> ppc64le

-                           </a>

-                         </div>

-                       </div>

-                     </div>

-                   </div>

-                 </div>

-               </div>

-             </div>

-           </div>

-         </div>

-       </div>

-       <!-- end Base images -->

- 

-     <hr />

-     <xi:include href="../../../templates/export-regulations.html" />

-   </div>

- 

-     <div class="col-md-3 col-xs-12 col-md-offset-1 top-margin">

-         <h3>${_('Other Downloads')}</h3>

-           <ul>

-             <li><p><a class="download-cloud-splash" href="${global_variables.path['download']}/${global_variables.release['curr_id']}/Container/x86_64/images/Fedora-Container-Base-${global_variables.release['curr_id']}-${global_variables.release['RC_gold']}.x86_64.tar.xz">${_('Container Image (%sMB)') % global_variables.iso_size['x86_64_Container']}</a></p></li>

-             <li><p><a href="https://cloud.fedoraproject.org/">Fedora Cloud Base images</a></p></li>

-           </ul>

- 

-         <div class="top-space bottom-margin">

-           <py:choose>

-           <py:when test="global_variables.release['curr_atomic_state'] == 'Pre-Release'">

-             <div class="prerelease-box">

-               <h5>${Markup(_('F%(rel)s %(state)s')) % {'rel':global_variables.release['next_atomic_id'], 'state':global_variables.release['curr_atomic_state']}}</h5>

-               <h4>${_('Try a pre-release')}</h4>

-               <p>${_('We\'re working on our next release.')}<br />

-                   ${Markup(_('Help us get F%(rel)s ready!')) % {'rel':global_variables.release['next_atomic_id']}}</p>

-               <p><i class="fa fa-fw fa-sm header-icon fa-download"></i><a href="../prerelease">${Markup(_('Download F%(rel)s %(state)s images')) % {'rel':global_variables.release['next_atomic_id'], 'state':global_variables.release['curr_atomic_state']}}</a></p>

-               <p><i class="fa fa-fw fa-sm header-icon fa-book"></i><a href="//fedoraproject.org/wiki/QA/Join#release-validation">${_('How to test pre-releases')}</a></p>

-             </div>

-           </py:when>

-         </py:choose>

-         </div>

- 

-         <div class="top-space bottom-margin"><h4>${_('Resources')}</h4></div>

-           <p><i class="fa fa-fw fa-sm header-icon fa-globe"></i>${Markup(_('&lt;a href="https://www.projectatomic.io/docs/quickstart/"&gt;&lt;strong&gt;Project Atomic: Getting Started&lt;/strong&gt;&lt;/a&gt;'))}</p>

-           <div class="pull-right bottom-step"><p>${_('Documentation on getting started using Project Atomic / Atomic Host.')}</p></div>

-           <p><i class="fa fa-fw fa-sm header-icon fa-envelope-o"></i>${Markup(_('&lt;a href="https://lists.projectatomic.io/mailman/listinfo/atomic"&gt;&lt;strong&gt;Project Atomic: Mailing List&lt;/strong&gt;&lt;/a&gt;'))}</p>

-           <div class="pull-right bottom-step"><p>${Markup(_('Join the upstream mailing list at &lt;a href="%s"&gt;atomic@projectatomic.io&lt;/a&gt;.') % ('mailto:atomic@projectatomic.io'))}</p></div>

-           <p><i class="fa fa-fw fa-sm header-icon fa-comments-o"></i>${Markup(_('&lt;a href="%s"&gt;&lt;strong&gt;Project Atomic: IRC Chat&lt;/strong&gt;&lt;/a&gt;') % ('https://kiwiirc.com/client/irc.freenode.net'))}</p>

-           <div class="pull-right bottom-margin"><p>${Markup(_('Join the Project Atomic channel &lt;strong&gt;#atomic&lt;/strong&gt;&lt;/a&gt; on &lt;strong&gt;irc.freenode.org&lt;/strong&gt;&lt;/a&gt;.'))}</p></div>

-           <noscript>

-           <div class="bottom-margin">

-             <h3>${_('Verify')}</h3>

-               <ul>

-               <li>

-                   <p><a href="/verify">${_('Verify your Image')}</a></p>

-               </li>

-               </ul>

-           </div>

-           </noscript>

-     </div>

-   </div>

- </div>

- 

-   </body>

- </html>

@@ -1,151 +0,0 @@ 

- <!DOCTYPE html>

- <html lang="${lang}"

-   xmlns="http://www.w3.org/1999/xhtml"

-   xmlns:py="http://genshi.edgewall.org/"

-   xmlns:xi="http://www.w3.org/2001/XInclude">

-   <xi:include href="../../templates/master.html" />

-   <head>

-     <title>${_('Get Fedora Atomic: the best platform for your containerized applications stack')}</title>

-   </head>

-   <body id="cloud">

- 

-   <xi:include href="../../templates/cloud/header.html" />

- 

-   <header id="head">

-     <div class="container cloud">

-       <div class="row">

-         <div class="col-sm-8 col-md-offset-1 text-left">

-           <h1>${_('Deploy and scale your containerized applications with immutable infrastructure.')}</h1>

-           <h4>${_('Fedora Atomic provides the best platform for your Linux-Docker-Kubernetes (LDK) application stack.')}</h4>

-         </div>

-       </div>

-       <div class="row">

-         <div class="col-md-2 col-md-offset-1 text-center">

-             <p><a class="btn btn-success" href="./download/" role="button">${_('Download or Launch in Public Cloud')}</a></p>

-         </div>

-       </div>

- 

-     </div>

-   </header>

- 

-   <div class="jumbotron product-testimonial majorhayden">

-     <div class="container text-center">

- 	  <div class="row">

- 		 <div class="col-sm-4">

-           <img src="/static/images/atomic/cameron-headershot.jpg" class="img-circle" />

-         </div>

-         <div class="col-sm-8">

-           <blockquote>

-             <p>${Markup(_('&ldquo;We chose to use Fedora Atomic as the base for our Navops Launch &mdash; Kubernetes cluster provisioning solution because our customers trust and already run Red Hat operating systems. We love the immutable aspect of Fedora Atomic which is perfect for containerized environments.&rdquo;'))}</p>

-             <footer><cite>Cameron Brunner, ${_('Chief Architect, Navops by Univa')}</cite></footer>

-           </blockquote>

-         </div>

-       </div>

-     </div>

-   </div>

- 

-    <!-- Feature: Atomic Host -->

-   <div class="jumbotron atomic-host">

-     <div class="container">

-       <div class="row bottom-margin">

-       <div class="col-sm-6 caption">

-         <h2>${_('Atomic Host')}</h2>

-         <p>${_('Atomic Host from Project Atomic is a lightweight, immutable platform, designed with the sole purpose of running containerized applications.')}</p>

-         <p>${_('Fedora\'s version of Atomic Host uses the same package repositories as Fedora Server, and provides the latest versions of the Atomic.')}</p>

-         </div>

-       </div>

-     </div>

-   </div>

- 

- <!-- Ostree and CLI -->

-   <div class="jumbotron jumbotron-full">

-     <div class="container-full">

-         <div class="col-md-6 col-xs-12 atomic-ostree">

-           <div class="col-md-5 col-md-offset-5 col-xs-12 top-margin bottom-margin">

-             <h2>${_('OStree Updates')}</h2>

-             <p>${_('Atomically update your system from the latest upstream OStree. Make your servers identical, and easily roll back if there\'s an upgrade problem.')}</p>

-           </div>

-         </div>

-         <div class="col-md-6 col-xs-12 atomic-cli">

-           <div class="col-md-5 col-md-offset-2 col-xs-12 top-margin bottom-margin">

-             <h2>${_('Atomic CLI')}</h2>

-             <p>${_('Manage Docker containers, system containers, Atomic Apps, and more using one convenient command-line tool.')}</p>

-           </div>

-         </div>

-     </div>

-   </div>

- 

-   <!-- Feature: Kubernetes and Openshift -->

-   <div class="jumbotron product-feature stdtools" style="background-color: #ffffff;">

-     <div class="container">

-       <div class="row">

-         <div class="col-xs-12 col-sm-6 caption top-margin">

-           <h2>${_('Optimized for Kubernetes and OpenShift')}</h2>

-           <p>${_('Building a Kubernetes or Origin cluster to run your containerized applications? Run it on Fedora Atomic, which provides you the platform you need on a smaller, leaner OS.')}</p>

-         </div>

-       </div>

- 

-   <!-- Desktop images -->

-       <div class="row top-space bottom-space hidden-xs">

-         <div class="col-sm-4 col-sm-offset-2 screenshot">

- 	        <img src="/static/images/atomic/kubernetes.png" />

-         </div>

-         <div class="col-sm-4 col-sm-offset-1 screenshot top-margin">

-           <img src="/static/images/atomic/openshift.png" />

-         </div>

-       </div>

-   <!-- Mobile images -->

-       <div class="row top-space bottom-space text-center  visible-xs">

-         <div class="col-xs-12 screenshot">

-           <img src="/static/images/atomic/kubernetes.png" />

-         </div>

-         <div class="col-xs-12 screenshot top-space">

-           <img src="/static/images/atomic/openshift.png" />

-         </div>

-       </div>

-     </div>

-   </div>

- 

-   <!--

-   <div class="jumbotron bluebox">

-     <div class="container text-center ">

-       <div class="row">

-         <div class="col-md-6 col-md-offset-3">

-             <h3>Fedora Cloud images provide leading edge software for development and deployment in public cloud environments.</h3>

-         </div>

-       </div>

-     </div>

-   </div>

-   -->

- 

- 

- 

-   <!-- Download jumbo -->

-   <div class="jumbotron download-lower hidden-xs">

- 	<h3>${_('Ready to give Fedora Atomic a try?')} <a class="btn" href="./download/" role="button">${_('Download now')}</a></h3>

-   </div>

- 

-   <!-- Download jumbo for mobile -->

-   <div class="jumbotron download-lower visible-xs">

-     <h3>${_('Ready to give Fedora Atomic a try?')}</h3>

-     <p><a class="btn btn-visible-xs" href="./download/" role="button">${_('Download now')}</a></p>

-   </div>

-