mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-11-04 10:54:07 +00:00 
			
		
		
		
	snap_preseed: support channel specification with snap name
snap_name[/classic]=track/risk/branch is now the supported snap name specification, which allows to specify the full default track and optional classic confinemnt. Supporting such specification in the seedtext allows one to specify a better default channel. For example, this will allow lxd to switch from latest/stable/ubuntu-20.04 to 4.0/stable/ubuntu-20.04 as 4.0 is the LTS track matching 20.04 support timeframe. LP: #1882374 (cherry picked from commit 7bae9201d20822d6875bcf5949e1fff839b8774c) (cherry picked from commit 2976a99f292c500f39aace25ad08de21b37d7b31) (cherry picked from commit d542e8e4a08467ef9b6237b9fcbd9166c8c99e8b)
This commit is contained in:
		
							parent
							
								
									e39a40e2a5
								
							
						
					
					
						commit
						896b5962db
					
				@ -626,11 +626,31 @@ snap_prepare() {
 | 
				
			|||||||
snap_preseed() {
 | 
					snap_preseed() {
 | 
				
			||||||
    # Preseed a snap in the image (snap_prepare must be called once prior)
 | 
					    # Preseed a snap in the image (snap_prepare must be called once prior)
 | 
				
			||||||
    local CHROOT_ROOT=$1
 | 
					    local CHROOT_ROOT=$1
 | 
				
			||||||
 | 
					    # $2 can be in the form of snap_name/classic=track/risk/branch
 | 
				
			||||||
    local SNAP=$2
 | 
					    local SNAP=$2
 | 
				
			||||||
 | 
					    # strip CHANNEL specification
 | 
				
			||||||
 | 
					    SNAP=${SNAP%=*}
 | 
				
			||||||
 | 
					    # strip /classic confinement
 | 
				
			||||||
    local SNAP_NAME=${SNAP%/*}
 | 
					    local SNAP_NAME=${SNAP%/*}
 | 
				
			||||||
    # Per Ubuntu policy, all seeded snaps (with the exception of the core
 | 
					    # Seed from the specified channel (e.g. core18 latest/stable)
 | 
				
			||||||
    # snap) must pull from stable/ubuntu-$(release_ver) as their channel.
 | 
					    # Or Channel endcoded in the snap name (e.g. lxd=4.0/stable/ubuntu-20.04)
 | 
				
			||||||
    local CHANNEL=${3:-"stable/ubuntu-$(release_ver)"}
 | 
					    # Or Ubuntu policy default channel latest/stable/ubuntu-$(release_ver)
 | 
				
			||||||
 | 
					    local CHANNEL=${3:-}
 | 
				
			||||||
 | 
					    if [ -z "$CHANNEL" ]; then
 | 
				
			||||||
 | 
					        case $2 in
 | 
				
			||||||
 | 
					            *=*)
 | 
				
			||||||
 | 
					                CHANNEL=${2#*=}
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            *)
 | 
				
			||||||
 | 
					                CHANNEL="stable/ubuntu-$(release_ver)"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # At this point:
 | 
				
			||||||
 | 
					    # SNAP_NAME is just the snap name
 | 
				
			||||||
 | 
					    # SNAP is either $SNAP_NAME or $SNAP_NAME/classic for classic confined
 | 
				
			||||||
 | 
					    # CHANNEL is the channel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ ! -e "$CHROOT_ROOT/var/lib/snapd/seed/assertions/model" ]; then
 | 
					    if [ ! -e "$CHROOT_ROOT/var/lib/snapd/seed/assertions/model" ]; then
 | 
				
			||||||
        echo "ERROR: Snap model assertion not present, snap_prepare must be called"
 | 
					        echo "ERROR: Snap model assertion not present, snap_prepare must be called"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user