lp://staging/~gnuoy/simplestreams/ksv3

Created by Liam Young and last modified
Get this branch:
bzr branch lp://staging/~gnuoy/simplestreams/ksv3
Only Liam Young can upload to this branch. If you are Liam Young please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Liam Young
Project:
simplestreams
Status:
Development

Recent revisions

445. By Liam Young

Add support for the Keystone v3 API

simplestreams.openstack is hardcoded for Keystone API v2 client. This change adds
support for Keystone API v3. The version of the API requested is derived from
auth_url and if that fails it falls back to v2.

Closes-Bug: Bug #1624306

444. By Scott Moser

tools/run-flake8: run on all python programs in tools and fix errors

now tools/run-flake8 will run on all python programs in tools
by checking the first line for 'python'. Then, fix all the reported
errors.

443. By Scott Moser

tools/run-flake8: fix trusty tox environment

syntax was just bad.

442. By Scott Moser

Makefile: use 'any' flake8

this adds 'any' to tools/run-flake8.
It then supports './tools/run-flake8 any' working
 * trusty: run 'flake8'
     - python3-flake8 Build-Depends gets flake8 command installed
       (python3-flake8 Depends on python-flake8 which gives /usr/bin/flake8)
     - python3 -m flake8 does not work.
     - there is no 'flake8' package
 * xenial, yakkety:
     - python3-flake8 does not get 'flake8' package
     - python3 -m flake8 works.
 * tox: we want to use the environment 'python'

It was needed in order to run with the command ('flake8') on
trusty

441. By Scott Moser

Makefile: use 'any' flake8

this adds 'any' to tools/run-flake8.
It then supports './tools/run-flake8 any' working
 * trusty: run 'flake8'
     - python3-flake8 Build-Depends gets flake8 command installed
       (python3-flake8 Depends on python-flake8 which gives /usr/bin/flake8)
     - python3 -m flake8 does not work.
     - there is no 'flake8' package
 * xenial, yakkety:
     - python3-flake8 does not get 'flake8' package
     - python3 -m flake8 works.
 * tox: we want to use the environment 'python'

It was needed in order to run with the command ('flake8') on
trusty

440. By Scott Moser

add running of tox.

This primarily moves a lot of things around to enable tox.
Some things here:
 * add ./tools/install-deps
   this allows easily installing dependencies to build or run tox
   (the openstack libraries require some c python extentions so
   you end up needing python-dev and such in order to run tox).

 * add tools/create-gpgdir and tools/sign-examples
   this just moves that logic out of Makefile to these places.

 * make tools/js2signed only re-create .sjson and .json.gpg
   files if the .json is newer. It supports '--force' to disable
   this logic.

 * move to using flake8 instead of pyflakes and pep8
   (flake8 uses pyflakes and pep8)

 * debian/control drop python-glanceclient and python3-keystoneclient
   these aren't available in trusty and thus can't build if they
   are there. Also adjusted tests to skip these if not present.

 * split signjson_file out of toolutil as toolutil required
   distroinfo which is only needed by make testdata.

 * add a trusty-flake8 tox environment for testing versions
   of flake8, pep8, and pyflakes that are on trusty. This allows
   us to catch what would be trusty specific build failures in tox.

439. By Robert C Jennings

Update default LTS alias to point to Xenial (lp:1606606 )

Following release of 16.04.1 update simplestream's default LTS alias to
point to Xenial instead of Trusty. LXD exposes the values for image
aliases.

438. By Scott Moser

json2streams: Accept items with no size.

dict_to_item automatically converts size from a string to an int. This
has the side effect of making size mandatory. Size should not be mandatory
for image-ids.

437. By Robert C Jennings

Create chksum for LXD metadata+root for squashfs (LP: #1577922)

This adds a 'combined_sqashfs_sha256' element to items that have
both a LXD metadata tar and a squashfs root. Additionally, we
have 'combined_rootxz_sha256' which wil have the same value as
'combined_sha256' and allow for sunsetting that ambiguous name.

436. By Scott Moser

GlanceMirror: fix a couple of race-related problems

First, what can happen is that .sync() is interrupted for external reasons
(service restarts, network issues,...) after first image has been uploaded
to Glance when syncing multiple images. On re-run, the uploaded image is
considered "synced" already, but since simplestreams index is written out
only at the end of the sync, all the metadata is lost. We solve this by
adding "simplestreams_metadata" as one of the properties of image in
Glance where we put a JSON representation of all the metadata fields from
the original simplestreams index entry. We then load them in
load_products() if they are defined. This results in a slightly different
auto.sync.json entry: "endpoint" and "region" are on the product entry,
instead of on the disk1.img entry.

Secondly, if sync is indeed interrupted after one or several images are
completely uploaded (but not all of them), there's no index file at all,
so any attempt to make use of them with juju would fail, even though it
should be fully functional. We solve this by calling "insert_products()"
at the end of the insert_item(). This means that the index is regenerated
after every single image is uploaded.

Along the way, I slightly improve insert_item() tests from the pre-req
branch to add a test for minimal data required, rename the existing one
using real world data to test_insert_item_full, and re-use that data for a
test for a newly added call to insert_products().

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp://staging/simplestreams
This branch contains Public information 
Everyone can see this information.

Subscribers