[PA-672] Automate LDOM resets on Solaris platforms Created: 2016/11/04  Updated: 2017/01/20  Resolved: 2016/11/17

Status: Closed
Project: Puppet Agent
Component/s: None
Affects Version/s: None
Fix Version/s: puppet-agent 1.8.1

Type: Task Priority: Normal
Reporter: Kurt Wall Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: maintenance, solaris
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Blocks
blocks PA-598 Automate the puppet-agent Solaris pip... Closed
Template:
Acceptance Criteria:
  • Solaris test jobs can be triggered manually from Jenkins and the appropriate LDOM(s) will be reset before tests execute
  • Solaris test jobs execute automatically as part of normal CI runs
Epic Link: Automate testing for all supported puppet-agent platforms
Team: Agent
Story Points: 1
Sprint: AP 2016-11-16
Release Notes: Not Needed
QA Contact: Kurt Wall

 Description   

Automate resetting the Solaris LDOMs before each test run.

The key manual step in running the puppet-agent pipeline for Solaris is the necessity for resetting the LDOM(s) to a known good state prior to each run. If this can be automated, there are no further immediate obstacles to running puppet-agent for Solaris as part of the standard CI pipelines for puppet-agent.



 Comments   
Comment by Kurt Wall [ 2016/11/04 ]

rollback.sh

#!/bin/bash
set -e
set -x
 
echo "Stopping Solaris ${1} LDOM..."
ldm stop --force sol"${1}"
echo "Unbinding Solaris ${1} LDOM..."
ldm unbind sol"${1}"
echo "Rolling back Solaris ${1} LDOM..."
zfs rollback tank01/sol"${1}".bootdisk@20151207
echo "Binding Solaris ${1} LDOM..."
ldm bind sol"${1}"
echo "Starting Solaris ${1} LDOM..."
ldm start sol"${1}"

Comment by Kurt Wall [ 2016/11/10 ]

After a bit of experimentation, it appears the most straightforward Beaker-friendly method to this is to have the acceptance SSH key installed on opdx-a3-sun-01 so that Beaker can access it remotely to invoke the rollback.sh script. The LDOMs themselves are not self-aware, so we can reset an LDOM from the LDOM directly.

Comment by Kurt Wall [ 2016/11/14 ]

Created a Jenkins job http://jenkins-compose.delivery.puppetlabs.net/job/solaris_sparc_ldom_reset/ to run in the SPARC pipelines. No idea yet if it is configured correctly yet. The job is really a straw proposal.

Comment by Kurt Wall [ 2016/11/15 ]

puppetlabs-modules PR 6600 enables Jenkins to invoke the LDOM reset script on opdx-a3-sun-01. Thanks Matt Kirby for the help!

Comment by Kurt Wall [ 2016/11/17 ]

An ugly but working parameterized job lives at http://jenkins-compose.delivery.puppetlabs.net/job/solaris_sparc_ldom_reset/. Stan Duffy didn't hate it, so we'll iterate on that. Closing this ticket.

Comment by Kenn Hussey [ 2017/01/13 ]

Kurt Wall please provide release notes for this issue.

Generated at Sat Dec 07 17:36:08 PST 2019 using JIRA 7.7.1#77002-sha1:e75ca93d5574d9409c0630b81c894d9065296414.