Studio Elements and Functions

To make the most of Studios, you will need to know a little more about the tools you have control over. This section explains the full use of the different components that make up the Studios interface, which all either form a part of or enhance the workflows.

Reviewing a Workspace

The Workspace build screen appears after you have clicked Review Workspace. It provides you with important information on the Workspace’s configuration before submitting to Change Control for approval.

There are several elements in the screen.

Figure 1. Reviewing a Workspace

Build Progress

The most important element for indicating if there are any problems with the Workspace configuration is the Build Progress section. It shows you if the Workspace configuration contains any conflicts and if device configlets have been compiled correctly. It is composed of three components:
  • Input Validation: Checks whether the values of the inputs follow the schema rules.
  • Configlet Compilation: Identifies any coding errors.
  • Config Validation: Determines whether the affected devices can support the proposed configuration.
Figure 2. Build Progress

By clicking View Build Details, you can see each of these components for the individual devices that the configuration affects.

This shows you the build progress for each device, and it helps you identify the devices the build progress has failed on.

Workspace Summary

The Workspace Summary table provides a brief overview of the type of modifications that a Workspace will make.

Figure 3. Workspace Summary

On the left-hand side, you can see each of the Studios that the configuration affects. On the right is displayed the type of change that has been made with the Workspace. By clicking on the type of configuration change, you will be brought to the screen in which that change was implemented.

Click View All Modification Details, to view all the configuration changes displayed together in the manner of Schema inputs.

Proposed Configuration Changes

Review the Proposed Configuration Changes to compare the Workspace configuration changes with what currently exists in the network.

Figure 4. Proposed Configuration Changes

This is shown for each individual device, and clicking on the device name will show you its proposed configuration.

Figure 5. Proposed Configuration - Compare
On the left are your proposed changes and on the right is the existing configuration. It is color-coded for easy reference:
  • Green = additions
  • Blue = modifications
  • Red = deletion

Tags

A tag is a value-label pair that you apply to a device or an interface. User Tags allows you to group devices or interfaces that share a common characteristic under a tag. By way of example, you could have:

Role: Spine or DC: New York

With Studios, you can then use these User Tags to create a separate configuration for different groups of devices. For instance, if you wish to separately configure the spines and leafs of a data center fabric, you can do so by tagging the relevant devices as spines or leafs.

Note: User Tags are not just for Studios, they have already been implemented for use with Event Customization, Event Notification, and Dashboard Configuration.

User Tags and System Tags

Only User Tags are supported in Studios, which are tags created and defined by a user of CloudVision through the following process.

System Tags are created by CloudVision and based upon characteristics or attributes of devices.These tags cannot be created or edited by you or any other CloudVision user. System tags are not static and could affect the stability of any Workspace configurations you create. For this reason, only User Tags are available in Studios.

Any changes made to User Tags can impact the configuration of devices. For this reason, User Tags can only be deployed inside a Workspace. When you build the Workspace and review its changes, you will then see any impact the tags have on the Workspace proposed configuration and can rectify it accordingly.

Creating Tags

To tag devices with User Tags, you will need to leave the Studios environment:

  1. Click on the Provisioning tab, if necessary.
    Figure 6. Provisioning Tab
  2. Click on Tags.
    Figure 7. Tags
  3. Click Create Workspace or select an open Workspace from the dropdown menu.
    Figure 8. Create Workspace
  4. Select one or more devices or interfaces, and then enter a value under Add or Create Tags.
    Figure 9. Add or Create Tags
  5. Click Create and Assign to give the tag to the selected device or devices.

Applying Tags in Studios

You will use User Tags in two places in Studios: as the field data for a resolver input, and when assigning a Studio to devices.

Resolver Input

Resolver Input is a Container Type that allows you to apply the input variables associated with it to a selection of devices. The following is an example of a resolver input, which, in this case, allows you to select tagged devices that you will assign to an NTP server.

Figure 10. Resolver Input

Studio Tag Assignment

Within each Studio, with the exception of Inventory and Topology, there is a Tag Assignment option.

Figure 11. Tag Assignment

You will use Tag Assignment to specify the devices that any given Studio configuration affects. All of the tagged devices you select must already have been commissioned for use in Studios with the Inventory and Topology Studio. In order to assign devices, click Assign Tags and then enter a device tag query.

Figure 12. Tag Assignment

You can edit these tagged devices at any point with a Workspace by clicking the pencil icon to the right of the last tag.

You can use tags to apply an entire Studio to a selected group of devices. For example, you may want the configuration of a Studio to relate only to devices in a particular data center. All devices in that data center can be tagged under a label, and you can assign that Studio to that tag label.

Schema

Schema are the input variables of a Studio and are used to collect data from a CloudVision User. They are defined when either Creating a New Studio or editing an existing Studio. You do this by selecting an input type in the Studio Edit screen and then completing a form.

Figure 13. Schema
For more information, refer to:

Editing a Studio Schema

Only custom Studios can be edited.

Note: Built-in Studio schemas cannot be edited.

To edit a custom Studio Schema, create a new Workspace or select an open Workspace and then click the Edit button within a Studio.

Figure 14. Editing a Studio Schema

At the Studio Edit screen, you can select Schema and the process will be the same as creating a new Studio.

Note: While you cannot edit built-in Studios, you can export and then import the Studio as a clone that you can edit.

Input Types

Schema inputs can be broadly classified into two categories:Base Types and Container Types.

Base Types are inputs that hold a real value and have a defined format. In general, these inputs can be validated to ensure that their value matches the defined format. You can also add constraints that restrict the values that can be entered in their fields.

Container Types are inputs that group one or more Base Types into a unit. They can be used to assign a set of inputs to a specific group of devices, allow a Studio to provide multiple values for a given input, or to group multiple Base Types and make them into an input unit.

Each input type is further divided into different data types:

Base Types consist of:
  • String
  • Integer
  • Float
  • Boolean
Container Types consist of:
  • Resolver
  • Collection
  • Group

You can find a full description of each data type in Appendix 2: Schema Input Types.

Template

Once you have defined an the variables for an input under Schema, you can use Template to convert the input into a CLI configuration. You can click on the input you want to configure, and then click Template.

Figure 15. Template

For more information, refer to Mark-Up Language.

Mark-Up Language

You have a choice of two languages when writing a Template, Mako or Jinja2. The default setting is Mako, but you can select Jinja2 or change back to Mako by using the below toggle:

Both Mako and Jinja2 have a lightweight syntax that allows you to leverage the underlying Python of Studios to create an effective Template.

You can find a primer on Mako syntax here and for Jinja2 here. There is also a short guide for using Mako for Template in Appendix 1: Mako Syntax.

Importing and Exporting Studios

Studios are saved and distributed as .yaml files. The file contains the entire schema definition, template, and input values. You can easily import and export Studios using CloudVision.

Importing

  1. Click Create Workspace or select an open Workspace from the dropdown menu.
  2. Click Import.
    Figure 16. Import
  3. On the Import Studio modal, select the Studio file and then click Import.

The imported Studio will now be part of your Studio Suite.

Exporting

  1. From your Studio Suite, select the Studio you wish to export.
  2. Within the Studio screen, click Export.
    Figure 17. Export
  3. A pop-up box will appear, which will ask you the details for downloading the file. Enter the details and click Download or Save.