Project

General

Profile

Merge Hosts

Summary/Goals

Merge Hosts and Content Hosts into a single unified presentation. The unification includes all aspects of displayed information and user initiated actions. The primary objective is designing hosts presentation and workflows that will accommodate user needs in a more efficiently and reflect user needs.

Targeted Persona

System Engineer
Responsible for configuring all of the infrastructure to provision hosts - which includes reprovisioning based on new builds System Administrator
Responsible for deploying hosts to their portion of the companies managed infrastructure. Hosts are built based on the engineers configurations.

Systems User
(Both System Engineer & System Administrator roles)

Status

Use Cases

Owner - David Caplan, Kyle Baker
Status - Done
Expected Delivery - 5/16/2015
Blockers - None

Requirements

Owner - David Caplan & Kyle Baker
Status - Done
Expected Delivery - 5/16/2015
Blockers - None

Design

Owner - Kyle Baker
Status - Done
Blockers - None
Design Assets Below

Development Stories

Owner - Justin Sherrill & Team
Status - In Progress
http://projects.theforeman.org/issues/8161

Documentation

Assumptions

  • Host entitlement status is a priority
  • Context is not important for hosts

Unknowns

  • Need a single place where users can view host status and take action on hosts.
  • The current process of provisioning a new host does not support the administrator role. Ideally the UI would hide all of the deeper configuration options and surface the options which have been pre configured by the engineer. Users have complained that the process is too complex when in reality the complexity simply exposed to the incorrect user.
  • Pre-provisioning setup should include an option to build a boot ISO.

Related Features

  • Enabling Boot ISO - Feature coming soon
  • Host Collections - Feature coming soon

Use Cases

Story 1 Host Monitoring
A Systems User (System Engineer & System Administrator roles) would like to have a single place browse and understand the entirety of Linux hosts. (1) They are interested in finding out the status of a host or group of hosts in the infrastructure. (2) If there is an issue or scheduled update the Systems User needs the host's location and (3) to know the hosts software/business purpose.

  • What is the status of this host or grouping of hosts?
    • 1. Configuration Status
    • 2. Last Report or Check In
    • 3. Available Errata
    • 4. Periodically, Subscription Status
  • Where is this host running?
    • Capsule Information
    • Organization
    • Location
    • Environment
    • Host Group - For networking information
    • Host Collection
  • What is this host running? Is it performing a critical function?
    • Software Installed - OS, Errata
    • Puppet Facts
    • Content View Version
Story 2 Host Detail
A Systems User (System Engineer & System Administrator roles), During the identification/troubleshooting/updating process they need to examine the exact specs of a host to determine the best course of action.
  • Surface level Information
    • OS, mac(s), ip(s), serial number, environment, capsule, host-group (puppet module), organization and location, host collections
  • Drill down
    • hardware, software, networking, config, events, template(s), meta information, hypervisor
Story 3 Host Actions
A Systems User (System Engineer & System Administrator roles), During the troubleshooting/updating process I have identified which host or group of hosts I would like to take actions against.
Add or remove errata or packages
  • Change the location, organization, environment association
  • Change the host-group association
  • Change the host-collections association
  • Change the subscription status
  • Change puppet environment association
  • Change compute resource - If deployed on compute resource yet
Story 4 Create New Host
System Engineer
When new software is released we define builds in the form of requirements/standards. We then present them to stakeholders. We then use the Katello/Foreman workflow process to build a deployable kickstart file. This file is used by the system administrator to stand up a machine.
  • This infrastructure is preconfigured by the System Engineer before the host creation process
    • Organization, Location, Environment, etc.
    • Manage subscriptions and entitled content
    • Create, publish, promote Content View
    • Create Host Groups
      • Set up matcher parametized values when setting up puppet classes
    • Create Activation keys
    • Add networking services
System Administrator
As a System Administrator I want to easily provision a new host leveraging authorized configuration pre-created by the System Engineer.
  • Place in Infrastructure (Location, Environment, Capsule)
  • Choose Host-group
    • Assign networking services if not pre-configured
    • Modify parametized values for puppet classes
  • Choose Activation Key - If applicable
  • Choose Compute Resource
  • Future - Clone an existing host. While creating a new host there should be a button to select a host I want to clone and as a second where I can adapt the pre-filled configurations (e.g. CV, HG, etc.)

Future

  • These features should be added as their own feature with their own specific user stories.
  • Comparing hosts
  • Dynamic host collections
  • Bookmark evolution
    • Use search and bookmark functionality hosts to create a grouping
    • Notes: Do the search and save as host collection
    • See the detail of the search (new collection)
    • Have search dynamically generate new list every time it runs
    • View logs to view what changed
    • Term 'Bookmark' is not appropriate there
    • Bulk operations against hosts without managing another objects
  • Interlinking host objects (clicking a CV shows all the host with that CV) then bookmarking
  • Clone existing host
    • Clone an existing system. While creating a new host there should be a button to select a system I want to clone and as a second where I can adapt the pre-filled configurations (e.g. CV, HG, etc.)
  • History
    • As a sysadmin I want to access from a single page the history of events that occurred for a specific system which may include:
    • Puppet reports (+ be able to filter for drifts to easily identify changes on the system)
    • Remote tasks execution results
    • OpenSCAP compliance tests results
    • Software management tasks (software installation, errata apply, etc...)
    • DH: for each action inside the history I want to see a rollback of this particular action similar to Sat5.

Development Stories

http://projects.theforeman.org/issues/8161

Design

Wireframes

Read though the notes and rational in the wireframes below.

Latest Version: 2015-07-09

Prototype

I have created a clickable prototype for validation testing. Please note that the prototype is just simulation of how the UI should work and not all areas are actionable. See the notes guide below on how to navigate the prototype. Use Firefox for the best results.

  • Clickable workflow for the prototype:
    • Click Create Host button to launch the new host workflow.
    • Fill out any of the fields. Selecting a Host Group will populate the networking fields.
    • Advanced Host Settings will expose more content
    • Click Create Host when you are finished
    • Click the first row in the table - testhost.idm.lab.bos.redhat… to view this hosts details
    • You can click Status, Details, Content, Configuration tabs to view additional content.

Testing Validation

As part of the Customer Support and Engagement booth the UX team performed usability tests on this interaction. You can read though the whole test plan and script below [1].

  • With the testing we were testing to answer these questions:
    • Will this interface enable System Developers to effectively perform the following tasks?
  • Updating a Host
    • Troubleshooting a Host during [update?]
  • Defining a build
    • Will this interface enable Sysadmin users to effectively perform the following tasks?
  • Provisioning a Host
  • Updating a Host
    • Troubleshooting a Host during [update?]
    • Will [Sysadmin] users get the impression that the host management process is less complex?
    • Will existing users have trouble adjusting to the new UI design?
    • Can new users perform the tasks successfully with this UI?

Test Plan
We can only expect to have about 10 minutes with each user. This is what will need to happen in that timeframe:

Path A For existing users:
1 min - Identify what persona group they belong to
9 min - Usability test for primary use cases
5 min - Additional talking points

Path B For non-users:
1 min - Identify what persona group they would potentially belong to (if any)
9 min - Usability test for primary use cases? (7 min)
Introduction

Participants

The test was run on 16+ users (3-5 additional users went undocumented, but reported no issues)
  • Of the 16+ users they had experience with one or more:
    • Satellite 5.+
    • Satellite 6.0
    • Spacewalk
    • Foreman
    • Puppet 3&4
  • Participants roles include:
    • Satellite 5 Customers
    • Satellite 6 Beta Customers
    • Foreman Community Members
    • RHEL Only Customers
    • Red Hat Technical Account Managers
    • Red Hat Solution Architects
    • Red Hat Engineers

Testing Results Overview
All participants were able to successfully complete all tasks. On 2 occasions the user required guidance on finding the location in the Host detail. All participant feedback has been incorporated in the wireframe and prototypes above.

  • Host Creation Rating:
    • New Host creation score average rating: 4 Easy
    • Old Host creation score average rating: 2 Difficult
  • Host Management Rating:
    • New Host management score average rating: 5 Easy
    • Old Host management score average rating: 3 Difficult