#846 [getfedora.org] rework the atomic downloads page
Merged 5 years ago by sinnykumari. Opened 5 years ago by ryanlerch.
Unknown source atomic-downloads-page  into  master

@@ -18,6 +18,7 @@

  import os

  import sys

  import socket

+ import pprint

  

  from datetime import datetime, timedelta

  
@@ -163,32 +164,34 @@

              'atomic_vagrant_virtualbox': 'atomic_VBvag_cloud',

              'atomic_dvd_ostree': 'atomic_dvd_iso',

          }

-         for key, entry in message['msg']['x86_64'].items():

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

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

-                 continue

  

-             # Do an HTTP HEAD to find the size of the file in megabytes

-             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] = {}

-             results['release']['redir_map'][key]['redirect'] = download_url

-             results['release']['redir_map'][key]['filename'] = img_filename

- 

-             # 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)

+         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)

  

      return results

  

@@ -62,265 +62,325 @@

                <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>

-         <!-- Mobile -->

-         <div class="row visible-xs">

+         <div class="row">

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

-             <h5 class="bold">${_('GP2 Format')}</h5>

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

-             <!-- Modal for EC2 Cloud GP2 Base HVM Instances -->

-             <button type="button" class="btn btn-success btn-fix download-cloud-splash" data-toggle="modal" data-target=".GP2-atomic-mobile-EC2">${_('GP2 HVM AMIs')}</button>

-             <div class="modal fade GP2-atomic-mobile-EC2" tabindex="-1" role="dialog" aria-hidden="true">

-               <div class="modal-dialog modal-cloud">

-                 <div class="modal-content">

-                   <div class="modal-header">

-                     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">${_('Close')}</span></button>

-                     <h4 class="modal-title">${Markup(_('Fedora %(rel)s GP2 Atomic Host HVM AMIs')) % {'rel':global_variables.release['curr_atomic_id']}}</h4>

+             <div class="list-group">

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

+                 <div class="row">

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

+                     <h5 class="bold">

+                       ${_('GP2 Format HVM AMIs')}

+                    </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>

-                   <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>

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

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

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

-             <!-- Modal for EC2 Cloud standard Base HVM Instances -->

-             <button type="button" class="btn btn-success btn-fix download-cloud-splash" data-toggle="modal" data-target=".atomic-mobile-EC2">${_('Standard HVM AMIs')}</button>

-             <div class="modal fade atomic-mobile-EC2" tabindex="-1" role="dialog" aria-hidden="true">

-               <div class="modal-dialog modal-cloud">

-                 <div class="modal-content">

-                   <div class="modal-header">

-                     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">${_('Close')}</span></button>

-                     <h4 class="modal-title">${Markup(_('Fedora %(rel)s Standard Atomic Host HVM AMIs')) % {'rel':global_variables.release['curr_atomic_id']}}</h4>

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

+                 <div class="row">

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

+                     <h5 class="bold">${_('Standard Format HVM AMIs')}</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>

-                   <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>

-           </div>

+         </div>

  

-           <!-- Desktop -->

-         <div class="row hidden-xs">

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

-             <h5 class="bold">${_('GP2 Format')}</h5>

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

+       <!-- 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 class="col-sm-6">

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

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

+       </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" 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" 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 class="row hidden-xs">

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

-             <!-- Modal for EC2 GP2 Cloud Base HVM Instances -->

-             <button type="button" class="btn btn-success btn-fix download-cloud-splash" data-toggle="modal" data-target=".GP2-atomic-EC2">${_('GP2 HVM AMIs')}</button>

-             <div class="modal fade GP2-atomic-EC2" tabindex="-1" role="dialog" aria-hidden="true">

-               <div class="modal-dialog modal-cloud">

-                 <div class="modal-content">

-                   <div class="modal-header">

-                     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">${_('Close')}</span></button>

-                     <h4 class="modal-title">${Markup(_('Fedora %(rel)s GP2 Atomic Host HVM AMIs')) % {'rel':global_variables.release['curr_atomic_id']}}</h4>

-                   </div>

-                   <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>

+       <!-- 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" 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" 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" 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>

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

-             <!-- Modal for EC2 Standard Cloud Base HVM Instances -->

-             <button type="button" class="btn btn-success btn-fix download-cloud-splash" data-toggle="modal" data-target=".atomic-EC2">${_('Standard HVM AMIs')}</button>

-             <div class="modal fade atomic-EC2" tabindex="-1" role="dialog" aria-hidden="true">

-               <div class="modal-dialog modal-cloud">

-                 <div class="modal-content">

-                   <div class="modal-header">

-                     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">${_('Close')}</span></button>

-                     <h4 class="modal-title">${Markup(_('Fedora %(rel)s Standard Atomic Host HVM AMIs')) % {'rel':global_variables.release['curr_atomic_id']}}</h4>

-                   </div>

-                   <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 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" 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" 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" 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>

-       <!-- End Amazon -->

+       </div>

+       <!-- end Base images -->

  

-       <!-- Start Vagrant -->

-         <div class="row">

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

-               <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'))}</p>

-           	  <a href="#" id="openstack-base-click" class="btn btn-success download-cloud" role="button">${_('View Vagrant Downloads')}</a>

- 	          <div id="openstack-base-link" class="reveal" style="display: none;">

- 	            <div class="row">

- 	              <h4 class="bold">${_('Vagrant Image Downloads')}</h4>

- 	              <p>${Markup(_('These images are Vagrant Boxes images for deployment using &lt;a href="%s"&gt;Vagrant&lt;/a&gt;.') % ('https://www.vagrantup.com/'))}</p>

- 	            </div>

- 	            <!-- Mobile -->

- 	            <div class="row visible-xs">

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

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

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

- 	                <a class="btn btn-success btn-fix download-cloud download-cloud-splash" href="${global_variables.release['atomic_VBvag_cloud_url']}" role="button">${_('Download')}</a>

- 	                  <p class="caption">${_('64-bit %sMB VirtualBox Base Vagrant Image') % global_variables.iso_size['atomic_VBvag_cloud']}</p>

- 	              </div>

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

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

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

- 	                <a class="btn btn-success btn-fix download-cloud download-cloud-splash" href="${global_variables.release['atomic_libvag_cloud_url']}" role="button">${_('Download')}</a>

- 	                  <p class="caption">${_('64-bit %sMB libvirt/KVM Base Vagrant Image') % global_variables.iso_size['atomic_libvag_cloud']}</p>

- 	              </div>

- 	            </div>

  

- 	              <!-- Desktop -->

- 	            <div class="row hidden-xs">

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

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

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

- 	              </div>

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

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

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

- 	              </div>

- 	            </div>

- 	            <div class="row hidden-xs">

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

- 	                <a class="btn btn-success btn-fix download-cloud download-cloud-splash" href="${global_variables.release['atomic_VBvag_cloud_url']}" role="button">${_('Download')}</a>

- 	                  <p class="caption">${_('64-bit %sMB VirtualBox Base Vagrant Image') % global_variables.iso_size['atomic_VBvag_cloud']}</p>

- 	              </div>

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

- 	                <a class="btn btn-success btn-fix download-cloud download-cloud-splash" href="${global_variables.release['atomic_libvag_cloud_url']}" role="button">${_('Download')}</a>

- 	                  <p class="caption">${_('64-bit %sMB libvirt/KVM Base Vagrant Image') % global_variables.iso_size['atomic_libvag_cloud']}</p>

- 	              </div>

- 	            </div>

- 	          </div>

- 	        </div>

- 	    </div>

- 	    <div class="row">

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

- 	          <a href="#" id="openstack-cont-click" class="btn btn-success download-cloud" role="button">${_('View Downloads using Vagrant tools')}</a>

- 	          <div id="openstack-cont-link" class="reveal" style="display: none;">

- 	            <div class="row">

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

- 	              	<h4 class="bold">${_('Vagrant Downloads using Vagrant tools')}</h4>

- 	              	<p>${Markup(_('You can 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 class="row">

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

-               <p>${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>

+       <!-- 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" 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" 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" 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>

-         <!-- End Vagrant -->

- 

-         <!-- Start Base images -->

- 		      <div class="row">

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

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

- 		          </div>

- 		      </div>

- 		      <!-- Mobile -->

- 		      <div class="row visible-xs">

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

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

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

- 		            <a class="btn btn-success download-cloud-splash" href="${global_variables.release['atomic_qcow2_cloud_url']}" role="button">${_('Download')}</a>

- 		              <p class="caption">${_('64-bit %sMB Qcow2 Image') % global_variables.iso_size['atomic_qcow2_cloud']}</p>

- 		          </div>

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

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

- 		            <p>${Markup(_('This is Fedora %(rel)s Cloud Atomic Host in a compressed raw image format. If you\'re not sure what to use, try this.')) % {'rel':global_variables.release['curr_atomic_id']}}</p>

- 		            <a class="btn btn-success download-cloud-splash" href="${global_variables.release['atomic_raw_cloud_url']}" role="button">${_('Download')}</a>

- 		              <p class="caption">${_('64-bit %sMB xz-Compressed Raw Image') % global_variables.iso_size['atomic_raw_cloud']}</p>

- 		          </div>

- 		      </div>

- 		      <!-- Desktop -->

- 		      <div class="row hidden-xs">

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

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

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

- 		          </div>

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

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

- 		            <p>${Markup(_('This is Fedora %(rel)s Cloud Atomic Host in a compressed raw image format. If you\'re not sure what to use, try this.')) % {'rel':global_variables.release['curr_atomic_id']}}</p>

- 		          </div>

- 		      </div>

- 		      <div class="row hidden-xs">

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

- 		            <a class="btn btn-success download-cloud-splash" href="${global_variables.release['atomic_qcow2_cloud_url']}" role="button">${_('Download')}</a>

- 		              <p class="caption">${_('64-bit %sMB Qcow2 Image') % global_variables.iso_size['atomic_qcow2_cloud']}</p>

- 		          </div>

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

- 		            <a class="btn btn-success download-cloud-splash" href="${global_variables.release['atomic_raw_cloud_url']}" role="button">${_('Download')}</a>

- 		              <p class="caption">${_('64-bit %sMB xz-Compressed Raw Image') % global_variables.iso_size['atomic_raw_cloud']}</p>

- 		          </div>

- 		      </div>

+       </div>

        <!-- end Base images -->

  

      <hr />
@@ -330,7 +390,6 @@

      <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_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/x86_64/iso/Fedora-AtomicHost-ostree-x86_64-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}.iso">${_('Atomic Host ISO image (%sMB)') % global_variables.iso_size['atomic_iso']}</a></p></li>

              <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>

@@ -68,13 +68,25 @@

              </div>

              <h4 class="uppercase">${_('Atomic')}</h4>

              <div class="h-body text-center">

-               <a class="btn btn-default btn-topmargin btn-verify btn-checksum" href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/x86_64/iso/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-x86_64-CHECKSUM">${_('For Atomic Host Iso')}</a>

+               <div class="btn btn-default btn-topmargin btn-verify btn-checksum">

+                 ${_('For Atomic Host ISOs')}

+                 <div>

+                 <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/x86_64/iso/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-x86_64-CHECKSUM" style="display:inline;">${_('x86_64')}</a> | 

+                 <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/aarch64/iso/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-aarch64-CHECKSUM" style="display:inline;">${_('aarch64')}</a> | 

+                 <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/ppc64le/iso/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-ppc64le-CHECKSUM" style="display:inline;">${_('ppc64le')}</a> 

+                 </div>

+               </div>

              </div>

              <div class="h-body text-center">

-               <a class="btn btn-default btn-topmargin btn-verify btn-checksum" href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/x86_64/images/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-x86_64-CHECKSUM">${_('For Atomic Host images')}</a>

-             </div>

-             <div class="h-body text-center">

-               <a class="btn btn-default btn-topmargin btn-verify btn-checksum" href="./static/checksums/Fedora-Container-${global_variables.release['curr_id']}-${global_variables.release['RC_gold']}-x86_64-CHECKSUM">${_('For Container')}</a>

+               <div class="btn btn-default btn-topmargin btn-verify btn-checksum" >

+                 ${_('For Atomic Host images')}

+                 

+                 <div>

+                   <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/x86_64/images/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-x86_64-CHECKSUM" style="display:inline;">${_('x86_64')}</a> | 

+                   <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/aarch64/images/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-aarch64-CHECKSUM" style="display:inline;">${_('aarch64')}</a> | 

+                    <a href="${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/ppc64le/images/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-ppc64le-CHECKSUM" style="display:inline;">${_('ppc64le')}</a> 

+                 </div>

+               </div>

              </div>

          </div>

      </div>

@@ -157,7 +157,7 @@

  .btn-cloud:active { background: #7C6ADD; }

  

  .btn-checksum {

-   width: 200px;

+   width: 250px;

    margin-left: auto;

    margin-right: auto;

  }
@@ -1039,7 +1039,6 @@

  }

  

  #cloud .download-container .btn {

-   margin-top: 1em;

  }

  

  #cloud .download-container h2.cloudy {
@@ -1312,3 +1311,19 @@

  

  /* Utility classes */

  .hidden { display: none; }

+ 

+ .mb-0{

+   margin-bottom:0;

+ }

+ 

+ .mt-1{

+   margin-top:1em;

+ }

+ 

+ .bg-light{

+   background: #f6f6f6;

+ }

+ 

+ .download-cloud-sm.download-cloud{

+   padding:0.5em 1em;

+ } 

\ No newline at end of file

@@ -10,4 +10,10 @@

    this.toggle = !this.toggle;event.preventDefault();

    $("#openstack-cont-link").toggle('slow');

    $("#raw-cont-link").stop().fadeTo(600, this.toggle ? 0.3 : 1);

+ });

+ 

+ $(".reveal-link").click(function(event) {

+   target = $(this).attr("data-target");

+   $("#"+target).toggle();

+   $(".fa", this).toggleClass("fa-caret-down fa-caret-up");

  }); 

\ No newline at end of file

Here is a solution for cleaning up the Downloads page of the Atomic section, as requested in:

It works now at mobile sizes too without having to have separate sections in there. Will need the Atomic folks to review this too.

@dustymabe @sinnykumari

atomic-downloads.gif

Okies, forgot to work in the multi-arch stuff here...

Will update in a second

rebased onto 6c472c27302f4c005617b219a685ce378da40a90

5 years ago

Thanks a lot @ryanlerch
New design looks awesome to me including multi-arch content. In current atomic download page, when we click on a media to download e.g. qcow2, it takes us to a new page where have button to verify qcow2 media checksum.
Can we have something for media checksum in new design as well?

hey ryan. this looks awesome. Only issue I see is that the "ISO download" is under the "Cloud Images" section. Maybe we need another section for that for "Bare metal".

hey ryan. this looks awesome. Only issue I see is that the "ISO download" is under the "Cloud Images" section. Maybe we need another section for that for "Bare metal".

@dustymabe Would it work to change the title of "Atomic Host Images for Cloud Environments" to something else, maybe just "Atomic Host Images"?

@dustymabe Would it work to change the title of "Atomic Host Images for Cloud Environments" to something else, maybe just "Atomic Host Images"?

Maybe.. the only thing I don't like about that is all of the other sections have a "For XYZ" as part of their description. I think optimally there would be a "Atomic Host Images for Cloud Environments" and a "Atomic Host Images for Bare Metal" section. If it's a lot of work then don't worry about it and we can just go with "Atomic Host Image Downloads" or something.

@ryanlerch What are your thoughts on where to fit in image checksums?

We now have multi-arch content in atomic twoweek fedmsg - https://apps.fedoraproject.org/datagrepper/id?id=2018-d8b306e6-f070-4431-9389-7ad11f59a493&is_raw=true&size=extra-large
It will be nice to have atomic download page updated as well with multi-arch content.

@ryanlerch Can we please have the rest of stuff done which is required to get this PR merged?

rebased onto e2dd97331ebd73b0f97448effa78761115748ae9

5 years ago

rebased onto 26262426131dbc14db8cd76b910f81d4c12e75e0

5 years ago

@sinnykumari OKies! got the multi-arch links all working!

@dustymabe added the new bare metal section too.

Tested it locally and multi-arch download links work perfectly fine for both cloud images and isos. Thanks @ryanlerch !

@ryanlerch Can we do something for validating (Checksum ) media as well in new UI?

rebased onto b45c6ad21f94e64968f835221872abe7902ebc7f

5 years ago

This comment should not be needed now because we get size of file from twoweek fedmsg data (line 53) instead of using HTTP HEAD.

If we want to print results value, it will be good to add as log.info()

Checksum url path contains lowercase as ppc64le instead of PPC64le. Something like- ${global_variables.path['download_atomic']}/stable/Fedora-Atomic-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}/AtomicHost/ppc64le/images/Fedora-AtomicHost-${global_variables.release['curr_atomic_id']}-${global_variables.release['atomic_composedate']}-ppc64le-CHECKSUM

For consistency, let's keep PPC64le also as lowercase in style.

Thank you so much @ryanlerch . Added few minor comments, other than that it looks good to me.

rebased onto 7cb6206

5 years ago

Updated, removed the HTTP Head comment.

The print statement is removed also. This was just debugging that i left in there mistakenly.

changes the two strings to ppc64le lowercase.

@sinnykumari are we right to go live on this one once you approve the final tweaks above?

@ryanlerch +1 from me to merge this PR.
@dustymabe @robyduck Would you like to do a final review of this PR before we merge it?

Pull-Request has been merged by sinnykumari

5 years ago