294 Commits

Author SHA1 Message Date
Scott Little
2dd5d9f07c Build contexts should not include .repo/repo
Build avoidance does not work reliably because directory
.repo/repo is being included in the build context.
This directory is the repo tool itself, not any of the
gits managed by the repo manifest.  The sha reported for
.repo/repo might not be available in users environmnet,
causing build avoidance to reject an otherwise valid
reference context.

Fix is in two parts.
1) Do not include .repo/repo in future build contexts.
2) Filter .repo/repo out of downloaded contexts before
use in build avoidance calculations.  This addresses
contexts that are already published.

Closes-Bug: 1893243
Change-Id: I7bd20597cb7bc5ee93ae49728176791c51e89c53
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-08-27 15:54:44 -04:00
Zuul
b5bc6fe8dc Merge "build-img: support graphical boot & virtio disks" 2020-08-21 18:48:00 +00:00
Zuul
360ea5fc5d Merge "Fix patch-iso pxe-network-installer handling" 2020-08-21 18:47:59 +00:00
Scott Little
58e55e9400 Fix url's in base-image-build-centos-*.cfg
build.starlingx.cengn.ca is not a public web server.  It's use
results in 'HTTP Error 502 - Bad Gateway' outside of CENGN.

The correct url should refer to mirror.starlingx.cengn.ca.

Closes-Bug: 1892538
Change-Id: I6021ee3d97815e70ee461c2c1a8297dfdefc7769
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-08-21 14:25:18 -04:00
Don Penney
466ce2c528 Fix patch-iso pxe-network-installer handling
Changes made previously to upversion grub2 in starlingx resulted in
some restructuring of the pxe-network-installer package, and
corresponding changes in build-iso. These changes were not reflected
in patch-iso, however. This update fixes the handling of
pxe-network-installer extraction, and includes additional grub2
packages in the patch support.

Change-Id: Ib72a44d2d5a39fe41023be8feb83b88e5f39435b
Closes-Bug: 1892424
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-08-20 17:52:54 -04:00
Davlet Panech
24274fcba2 build-img: support graphical boot & virtio disks
- Added new option --graphical to generate images that boot into a
  graphics card, rather than the serial port
- Added "_graphical" suffix to the generated image file name when
  --graphical is in effect
- Comment out global_filter parameter in lvm.conf, otherwise LVM fails
  to start when image is booted in different emulation environment

Story: 2007858
Task: 40440

Change-Id: I33e4899873c4f915417e0ab24f60a540d5a68642
Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
2020-08-19 14:36:38 -04:00
Zuul
a3e83a6c02 Merge "Add proxy setting for container image build scripts" 2020-08-19 14:49:48 +00:00
Liu, ZhipengS
bb472a9f37 Add proxy setting for container image build scripts
Users in some places like China need to use proxy during building image.
So, it is better to let user be able to use proxy by adding these proxy
arguments.

Closes-bug: 1890383

Change-Id: If9ef7d09a5f53148252b4ab62c40ab0f143e1c3f
Signed-off-by: Liu, ZhipengS <zhipengs.liu@intel.com>
2020-08-18 19:55:46 +08:00
Zuul
6e7074bb6c Merge "Fix use of 'let -i' in scripts" 2020-08-13 06:24:53 +00:00
Don Penney
f36db7e207 Fix use of 'let -i' in scripts
Unlike "declare -i" and "local -i", the bash "let" does not support a
"-i" option. Rather, it takes it as a variable reference. If no "i"
variable is defined in scope, it does not cause an issue. If "i" has
been defined somewhere, however, it may cause a syntax issue, as the i
is evaluated.

A recent update to build-stx-images.sh added a loop that defines an
"i" variable without limiting its scope. In a current image build,
this loop ends with having "i" defined as a URL. As a result, a
"syntax error in expression" occurs, causing the "with_retries"
function to fail to increment the counter. Should a build error occur,
the "with_retries" will never hit the retry limit, looping until it
has a successful result.

This update removes the -i from all "let -i" occurrences in the build
scripts.

Change-Id: I34ad49f8872a81659ff4caf8087b256ea9fb3d32
Closes-Bug: 1891189
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-08-11 10:36:43 -04:00
Teresa Ho
a41c56cf12 Update stx-platformclients tag to stx.5.0-v1.4.0
Story: 2007875
Task: 40633

Change-Id: I690890692e1716ecc8a600cac3a0cd2c1ffc6810
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2020-08-07 17:22:42 -04:00
Davlet Panech
b21cacbffc build-img: support centos8 & non-tty environments
- when looking for an error message in qemu log, accept more patterns,
  because QEMU executable may be named slightly differently than
  literally "qemu"
- disable QEMU's terminal features when STDOUT is not a terminal
- allow mounting the ISO via sudo, because the default method (udisks)
  needs additional PolicyKit configuration

Story: 2007858
Task: 40441

Change-Id: I19ec7e55aaa80b6ed98162b65e41ce1a63f6da40
2020-08-04 19:48:09 -04:00
Zuul
7576ea5213 Merge "Add --config-file argument for docker image build script" 2020-07-29 06:56:59 +00:00
zhipengl
4d6af626b1 Add --config-file argument for docker image build script
build-stx-base.sh and build-stx-images.sh need to accept a
new argument (--config-file <path>) specifying a path to a
config file.
These commands automatically look for the config files at
the predetermined location, and apply them if found. If not
found, continue without error. If optional argument
--config-file is added, These commands will use specified
configfile instead of predetermined one.

Test pass on local build enviroment.

Closes-Bug: 1886062

Change-Id: I476e38064d1515d3d0a0d49c789f1d472d8ca1cc
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2020-07-28 13:49:47 +00:00
Joseph Richard
6a2d0b73c2 portieris image tagging
Tag docker.io/starlingx/portieris image.
master-centos-stable-20200726T013628Z.0 is retagged as stx.5.0-v0.7.0

Story: 2007348
Task: 40415
Change-Id: I93472bcd030fec782717f9db5cc3b2223e9c654a
Signed-off-by: Joseph Richard <joseph.richard@windriver.com>
2020-07-26 12:33:40 -04:00
Zuul
1c0e07e50f Merge "Reorganize tag management files" 2020-07-23 15:32:11 +00:00
Zuul
ff56862147 Merge "Update .gitignore with /vault-armada-app" 2020-07-22 23:52:46 +00:00
Cole Walker
2ab15e0728 Update .gitignore with /vault-armada-app
Required to keep repo status and git status commands clean

Story: 2007718
Task: 40272

Change-Id: Ief5121bef31b140a82cb24744b6598b0c37c4cd2
Signed-off-by: Cole Walker <cole.walker@windriver.com>
2020-07-22 16:49:27 -04:00
Don Penney
962c4ac21c Reorganize tag management files
Rather than maintain tag management files for each release, use a
single file that is updated as needed. This update drops the r3
image-tags file and renames the r4 file to drop the release number.

Change-Id: I37d6d4b805d488db6702c48170805df54fca7300
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-07-22 16:42:55 -04:00
Zuul
3f32ab7e05 Merge "Add vault-manager image to tag management" 2020-07-22 19:41:41 +00:00
Cole Walker
2d316fc64a Add vault-manager image to tag management
Story: 2007718
Task: 40418

Change-Id: I578ab06c2561b3b819eae683e4930b16036ade69
Signed-off-by: Cole Walker <cole.walker@windriver.com>
2020-07-22 14:31:14 -04:00
Davlet Panech
0c7d394f60 build-img: generate a QCOW2 image
Rewrote script (build-img) that generates a QCOW2 (virtual machine)
image with StarlingX pre-installed. This will allow users to create
virtual machines more easily using a disk where verything is already
installed.

This script updates a standard iso file with a default menu choice
(e.g., AIO/serial console) and adds a kickstart script that configures
the network; then boots the ISO in QEMU and lets it install to a disk
image.

The generated image only works in QEMU because it has a few things that
are specific to that emulation:
* /etc/lvm/lvm.conf restricts LVM to only the bus/port/device type that
  QEMU emulates SATA as
* It includes configuration for the network device named "ens3", which
  is QEMU's default

Story: 2007858
Task: 40163

Change-Id: I9fa6960eadbeca9481dc91c0878153d3fe95f0c1
Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
2020-07-20 13:20:58 -04:00
Matt Peters
26658d920b Add configurable docker build context and file
Add support for building docker images with an explicit
configuration for specifying the docker context and Dockerfile.
This is required for projects that build from 3rd party source
that maintains a Dockerfile outside of the project repo and
builds from source that is cloned by the repo tool into the
project path.

New Configuration Parameters:

DOCKER_CONTEXT=<relative-path-to-source>
DOCKER_FILE=<relative-path-to-docker-file>

NOTE: Paths are relative to the image build file.

Story: 2006537
Task: 40286
Change-Id: I6520fd31218aaf849f4d1e803bb1e0bfb614b29f
Signed-off-by: Matt Peters <matt.peters@windriver.com>
v4.0.0.rc0
2020-07-06 16:29:37 -04:00
zhipengl
43323eb3fa Add docker image build config file
Add python2 based services to docker_image_build_cfg_file.
The config file could then be modified to individually shift
images from python2 to python3 build method without having
to sync with cengn build scripts when there is a change.
Add --python2-wheels opt for build-stx-images.sh to specify link
to python2 based wheels tarball.

Story: 2007474
Task: 40139

Depends-on: https://review.opendev.org/#/c/712880/
Change-Id: Ic4313a2ac6f7ec2c8b87bef960f4a796f6a10738
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
2020-06-26 04:43:30 +08:00
yuchengde
ee5eb24836 Modify build-tools and stable-wheels for Ussuri upgrading
story: 2007474
task: 39178

Depends-on: https://review.opendev.org/#/c/712862/
Change-Id: Ib383cd77da5ef7393ed2281861cccffd03986850
Signed-off-by: Yu Chengde <yu.chengde@99cloud.com>
2020-06-23 18:29:31 +08:00
Zuul
aa31732371 Merge "use single '=' for string equality in repo forall" 2020-06-18 14:15:43 +00:00
Zuul
6522abb866 Merge "remove leading path from branch name" 2020-06-18 14:09:10 +00:00
Saul Wold
5e85a4bb54 remove leading path from branch name
Remove the f/ or r/ from a branch name so we can create valid
prefix for the new manifest that gets created with the --manifest
flag.

Change-Id: I4eb8f3c70f85566463fb114944309597241a7a89
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2020-06-17 11:02:38 -07:00
Teresa Ho
7d2a8a4497 Update stx-platformclients tag to stx.4.0-v1.3.0
Story: 2006740
Task: 39498

Change-Id: I9d597d0d408aef57044fb50e1d7a7ba75401069d
Signed-off-by: Teresa Ho <teresa.ho@windriver.com>
2020-06-17 11:06:37 -04:00
Saul Wold
4cb7539a9f use single '=' for string equality in repo forall
The sub-script fails when a double '==' is used inside of a repo
forall -c option. The single '=' is preferred when used in 'test'
or '['.

The error is similar to this:
if [ $REPO_PATH == cgcs-root ]; then echo $REPO_PROJECT; fi: 1: [: cgcs-root: unexpected operator

Closes-Bug: 1883772
Change-Id: If17de30a03939240f0cc329179d452820a691e32
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2020-06-16 11:44:44 -07:00
Scott Little
5003bb100d Extend GITREVCOUNT to inputs other than SRC_DIR and PKG_BASE
Changes in brief:

1) TIS_PATCH_VER will now accept new automatic variables
'OTHER_GITREVCOUNT' and 'SRC_GITREVCOUNT'.

2) New BASE_SRCREV variables are supported, 'SRC_BASE_SRCREV' and
'BASE_SRCREV_FOR_PATH'

3) OPT_DEP_LIST_FOR_BUILD_TYPE[<build-type>] joins OPT_DEP_LIST as
a way to list files that affect the build, but are not included
in the assembled src.rpm.

4) Some code relating to interpreting build_srpm.data files,
and producing a list of files that affect the build, are relocated
to 'srpm-util' and restructured for greater utility.

The details:

TIS_PATCH_VER=<expression>
                     # An integer, or one of the supported
                     # variables listed below, or the sum of
                     # variables and integers.
                     #  e.g.
                     #  TIS_PATCH_VER=PKG_GITREVCOUNT+SRC_GITREVCOUNT+5

   PKG_GITREVCOUNT   # Count git revisions relative to PKG_BASE.
                     # Optionally only count from PKG_BASE_SRCREV

   SRC_GITREVCOUNT   # Count git revisions relative to SRC_DIR.
                     # Optionally only count from SRC_BASE_SRCREV

   GITREVCOUNT       # Deprecated, please use SRC_GITREVCOUNT instead.
                     # Count git revisions relative to SRC_DIR.
                     # Optionally only count from TIS_BASE_SRCREV

   OTHER_GITREVCOUNT # count git revisions from all sources excluding
                     # PKG_BASE and SRC_DIR
                     # Optionally only count from
                     # BASE_SRCREV_FOR_PATH[<path>]

PKG_BASE_SRCREV=<sha>   # Limit PKG_GITREVCOUNT revision count to
                        # commits since <sha>

SRC_BASE_SRCREV=<sha>   # Limit SRC_GITREVCOUNT revision count to
                        # commits since <sha>

TIS_BASE_SRCREV=<sha>   # Deprecated, please use SRC_BASE_SRCREV
                        # instead
                        # Limit GITREVCOUNT revision count to commits
                        # since <sha>

BASE_SRCREV_FOR_PATH[<path>]=[<sha>|OTHER_PKG_BASE_SRCREV]
                        # Limit OTHER_GITREVCOUNT revision count for
                        # commits under <path> to commits since <sha>.
                        # If <path> is the PKG_BASE of another package
                        # (not the current package) then the keyword
                        # 'OTHER_PKG_BASE_SRCREV' can be used to extract
                        # the 'PKG_BASE_SRCREV' value of the other
                        # package.
                        #
                        # The <path> can reference variables like
                        # $STX_BASE and $GIT_BASE.

OPT_DEP_LIST=<path-list>  # Add a space separated list of paths that
                          # don't contribute to the content of a src.rpm
                          # but do contribute to triggering a rebuild,
                          # and possibly modifying the TIS_PATCH_VER via
                          # use of OTHER_GITREVCOUNT.

OPT_DEP_LIST_FOR_BUILD_TYPE[<build-type>]=<path-list>
                          # For a specific build type only, add a space
                          # separated list of paths that don't
                          # contribute to the content of src.rpm,
                          # but do contribute to triggering a
                          # rebuild, and possibly modifying the
                          # TIS_PATCH_VER via use of OTHER_GITREVCOUNT.

Story: 2006166
Task: 39765
Change-Id: I9e7d409d4eefdb41a7083db1b801d531c443b678
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-06-10 17:48:26 -04:00
Bin Yang
e01eb44f2c enable pbr version
Currently all flock packages have a common base version of 1.0 or 1.0.0
defined in specfiles. The build system creates tarballs and whl files
with the base version (without TIS_PATCH_VER) and the version is also
attached the generated RPM file (with TIS_PATCH_VER).

This patch addes PBR (OpenStack's Python Build Reasonableness) support,
which can generate the version by parsing semantically-versioned Git
tags and walking the Git history back to the last release tag.

A new variable named PBR_VERSION is supported in build_srpm.data. If its
is not set, the build system still uses TIS_PATCH_VER like before.
If PBR_VERSION=auto, the build system will generate the version by
PBR and create tarballs, whl files and RPM files with this version.
If PBR_VERSION is set manually, the build system will use it directly.

Story: 2006703
Task: 37014

Change-Id: Ic377e3ae3344b291d2d9c0d0fca8f681d1a007b5
Signed-off-by: Bin Yang <bin.yang@intel.com>
Signed-off-by: Yang, Bin <bin.yang@intel.com>
2020-06-08 16:54:14 +08:00
Scott Little
c70efec479 Add a dependency checker to build-pkgs
Builds a single package in a clean environment to detect missing
build dependencies.

Usage:
build-pkgs --dep-test <pkg>

Note:
Should only be run after a full 'build-pkgs'.
We want the build to fail because a dependency wasn't
been listed, not because a dependency hasn't been built yet.

Closes-Bug: 1880248
Change-Id: Icf64be37a77de0992647c37ce392fd5a2a458fba
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-06-05 18:42:21 -04:00
Zuul
ed99a51d58 Merge "Update stx-platformclients tag to stx.4.0-v1.2.0" 2020-05-21 15:31:40 +00:00
Jerry Sun
8ab50452d7 Update stx-platformclients tag to stx.4.0-v1.2.0
Update stx-platformclients image to include commit for supporting
multiple dex backends. This commit makes changes to the oidc-auth
CLI tool, which is part of the stx-platformclients image.
reference commit:
https://review.opendev.org/#/c/726234/

Change-Id: I7b89ef5adcfc1e996a6a771db358576c14f64e5f
Story: 2006711
Task: 39696
Signed-off-by: Jerry Sun <jerry.sun@windriver.com>
2020-05-21 08:31:13 -04:00
Zuul
a29d13478b Merge "Uprev the SR-IOV device plugin to the latest version" 2020-05-20 15:17:09 +00:00
Don Penney
89543b25b4 Add subdir PKG_GITREVCOUNT support
This update introduces the PKG_GITREVCOUNT variable for package-based
auto-versioning. Similar to GITREVCOUNT, PKG_GITREVCOUNT will
calculate the number of commits in the corresponding package's
directory. This allows each package within a git repo to be
independently auto-versioned.

Use of the PKG_BASE_SRCREV variable is optional. If it is not defined,
the PKG_GITREVCOUNT will count all commits in the package directory.
If it is defined, it will count a range of commits, with
PKG_BASE_SRCREV as the starting point.

To use this, include the following in the package's build_srpm.data
file:
TIS_PATCH_VER=PKG_GITREVCOUNT

This can also be combined with GITREVCOUNT, if a package has local
files in addition to an external repo to be factored in. This would
add the count from PKG_GITREVCOUNT to GITREVCOUNT in calculating the
TIS_PATCH_VER value:
TIS_PATCH_VER=GITREVCOUNT+PKG_GITREVCOUNT

Change-Id: Iab3a8c8a212d292f26d5418a881de69566758134
Story: 2006166
Task: 39765
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-05-19 18:31:32 -04:00
Steven Webster
3dcebf7b59 Uprev the SR-IOV device plugin to the latest version
This is intended primarily to pick up support for SR-IOV
accelerators.

Testing has been performed as follows:

System Types:
    AIO-SX, Standard
Cluster network types:
    IPv4, IPv6
NIC types:
    82599ES 10-Gigabit [10fb],
    MT27710 Family [ConnectX-4 Lx] [1015],
    X710 for 10GbE [1572]
IPAM types:
    host-local,
    calico,
    dhcp,
    static
Connectivity between pods:
    DPDK,
    netdevice

Change-Id: Id0d5fcbfbf93ab581a07f26e375bcc2feee6bf69
Story: 2006740
Task: 39614
Signed-off-by: Steven Webster <steven.webster@windriver.com>
2020-05-19 09:31:21 -04:00
Zuul
6357bc8866 Merge "Remove tpm from update-pxe-network-installer script" 2020-05-16 09:12:46 +00:00
Dongqi Chen
a0e51f0cab Remove tpm from update-pxe-network-installer script
Now use the kernel built-in tpmdd instead of tpmdd
out-of-tree, so the rpm package is no longer provided.

Change-Id: I0f322c81d1a9aa20b2ad43a8f5b7b17abfd5782a
Story: 2007308
Task: 39756
Depends-On: https://review.opendev.org/#/c/726999/
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
2020-05-14 09:22:19 +08:00
Dongqi Chen
89d38925ca [kernel-rt 4.18] Fix build-pkgs --rt --edit kernel error
Extract commands from spec
VERSION = 4.18.0
./generate_all_configs.sh kernel-rt

When executing the script ‘./generate_all_configs.sh kernel-rt’,
the config rename failed because the value of the variable ‘VERSION’
could not be obtained.

Change-Id: I39e203fdb1929667c78f6477e3369d527234343f
Closes-Bug: #1877423
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
2020-05-12 17:13:45 +08:00
Scott Little
eb971b6f7c Fix potential infinite loop in build-iso
Function generate_dep_list is creating a DEPLISTFILE
with a lot of unwanted 'installing package xxx' messages
when it should only contain a list of unresolved
dependencies.

On the next iteration we waste a lot of time trying to install
nonexistant packages 'installing' and 'packages', and re-installing
packages we already have.

Instead of converging on an empty DEPLISTFILE, we converge
on a DEPLISTFILE that just reiterates the same list of
'installing package' if we are lucky, which we usually are,
but not always.

Closes-Bug: 1877483
Change-Id: I971725558eb628c6d6b5d0b42d0bcab6b46e722b
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-05-08 00:24:21 +00:00
Shuicheng Lin
7a5616741a Fix rt kernel always rebuild issue
Several rt kernel rpms are disabled in spec, add them to
unbuilt_rpm_patterns. Otherwise rebuild will be triggered
due to missing of these rpms.

Story: 2007308
Task: 39618

Change-Id: I06a56dd9d18f6873e316fbaaff752c70a33f14fd
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
2020-05-02 22:46:03 +08:00
Shuicheng Lin
f1213b1929 Update update-pxe-network-installer script for 4.18 kernel
There are 5 rpms for kernel and kernel-modules built from 4.18
kernel srpm.

Story: 2007308
Task: 39023
Depends-On: https://review.opendev.org/720325

Change-Id: I329cf421da0d90df60b2aa1aa5684322a80c4caf
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
2020-05-01 13:09:55 +00:00
Joseph Richard
fa6c30b29c Add portieris-armada-app repo to gitignore
Story: 2007348
Task: 39588
Change-Id: Ib4ea3cf42e5d761ede5554edeba1e5aa480436de
Signed-off-by: Joseph Richard <joseph.richard@windriver.com>
2020-04-28 11:02:33 -04:00
Zuul
232202f25f Merge "Update stx-platformclients tag to stx.4.0-v1.1.0" 2020-04-24 19:23:39 +00:00
Don Penney
1db0dd3126 Update stx-platformclients tag to stx.4.0-v1.1.0
Change-Id: I6296971ea7b0539e331125e146ce83ae9a5a44a8
Story: 2007518
Task: 39513
Signed-off-by: Don Penney <don.penney@windriver.com>
2020-04-21 11:54:42 -04:00
Scott Little
1a0484eecc find_chartfile returns multiple erroneous files
find_chartfile can return multiple rpms, only one of
which is correct.  e.g. When searching for package xxx,
it will also return package xxx-yyy.

Files match the GLOB need to validated vs that actual package
name, and only the first match returned.

Closes-Bug: 1873884
Change-Id: Iedf514b37b73ec3c0d3518e0eb8e57750281aaec
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-04-20 12:14:16 -04:00
Zuul
f247445d61 Merge "Enable build of docker images, charts and wheels from a layered build" 2020-04-16 14:36:01 +00:00
albailey
47bd110e24 Cleanup .gitignore based on latest manifest entries
There have been new repos added in stx/manifest that
were not added to the .gitignore in this repo.
This means that there would have been untracked changes
when running:

repo status
 --     stx/cert-manager-armada-app/
 --     stx/kernel/
 --     stx/nginx-ingress-controller-armada-app/

Pertains to:
https://review.opendev.org/#/c/718787/
https://review.opendev.org/#/c/716117/

Story: 2007360
Task: 39426
Change-Id: Ib55639735b181625fb4156f55d4b7814912f9132
Signed-off-by: albailey <Al.Bailey@windriver.com>
2020-04-15 07:34:21 -05:00