diff options
author | Scott Moser <smoser@ubuntu.com> | 2012-08-22 15:27:43 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2012-08-22 15:27:43 -0400 |
commit | 43c55aca8c7ee17471b709a6a348c318db165a92 (patch) | |
tree | 6c08c53f0e099f86a0a0dc442582e82a644eb2e1 /cloudinit/distros/debian.py | |
parent | 451e48732ff7885502db2f8296777fa58b670f3b (diff) | |
parent | 0781b86b414b73c8b5dd9123bda95b7dd74b0243 (diff) | |
download | vyos-cloud-init-43c55aca8c7ee17471b709a6a348c318db165a92.tar.gz vyos-cloud-init-43c55aca8c7ee17471b709a6a348c318db165a92.zip |
rework package mirror selection
There are several changes here.
* Datasource now has a 'availability_zone' getter.
* get_package_mirror_info
* Datasource convenience 'get_package_mirror_info' that calls
the configured distro, and passes it the availability-zone
* distro has a get_package_mirror_info method
* get_package_mirror_info returns a dict that of name:mirror
this is to facilitate use of 'security' and 'primary' archive.
* this supports searching based on templates. Any template
that references undefined values is skipped. These templates
can contain 'availability_zone' (LP: #1037727)
* distro's mirrors can be arch specific (LP: #1028501)
* 'ec2_region' substitution variable is present only if this
appears (by availability-zone naming convention) to be in EC2.
* rename_apt_lists supports the "mirror_info" rather than single mirror
* generate_sources_list supports mirror_info, and as a result, the
ubuntu mirrors reference '$security' rather than security (LP: #1006963)
* remove the DataSourceEc2 specific mirror selection, but instead
rely on the above filtering, and the fact that 'ec2_region' is only
defined if the availability_zone looks like a ec2 az.
* package_mirrors is now required in the system_info config, a dict like:
package_mirrors:
- arches: [i386, amd64]
failsafe:
primary: http://archive.ubuntu.com/ubuntu
security: http://security.ubuntu.com/ubuntu
search:
primary:
- http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/
- http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/
security: []
- arches: [armhf, armel, default]
failsafe:
primary: http://ports.ubuntu.com/ubuntu
security: http://ports.ubuntu.com/ubuntu
LP: #1006963, #1028501, #1037727
Diffstat (limited to 'cloudinit/distros/debian.py')
-rw-r--r-- | cloudinit/distros/debian.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py index 3247d7ce..da8c1a5b 100644 --- a/cloudinit/distros/debian.py +++ b/cloudinit/distros/debian.py @@ -147,3 +147,7 @@ class Distro(distros.Distro): def update_package_sources(self): self._runner.run("update-sources", self.package_command, ["update"], freq=PER_INSTANCE) + + def get_primary_arch(self): + (arch, _err) = util.subp(['dpkg', '--print-architecture']) + return str(arch).strip() |