Overriding Old/Deprecated Shell Attributes
By default, CloudShell does not allow updating a shell if the newer version is missing attributes that exist on the old version. However, you can remove this limitation to allow the update of an old shell containing attributes that have been deprecated or are no longer in use.
Allowing overriding attributes on the shell's root
-
Open the
shell-definition.yaml
in your preferred IDE: -
Add the
capability_types
code block to the root level of the file:capability_types:
cloudshell.capabilities.DeprecateProperties:
derived_from: tosca.capabilities.Root
properties:
allow_deprecate_properties:
type: boolean
default: trueFor example:
-
Add the following under the
node_types
>vendor
>capabilities
section:deprecate_properties:
type: cloudshell.capabilities.DeprecateProperties
properties:
allow_deprecate_properties:
type: boolean
default: trueFor example:
-
Import the shell:
shellfoundry install
Allow overriding attributes on a sub-resource
-
Open the
shell-definition.yaml
in your preferred IDE. -
Make sure you have performed the steps in Allowing overriding attributes on the shell's root.
-
Under the node_types section, create a vendor section for the sub-resource with the following code:
derived_from: cloudshell.networking.nodes.GenericPort
capabilities:
deprecate_properties:
type: cloudshell.capabilities.DeprecateProperties
properties:
allow_deprecate_properties:
type: boolean
default: trueFor example:
Make sure to change "GenericPort" if needed.
-
Import the shell:
shellfoundry install
Points to consider
-
Abstract templates are not updated when a published attribute is removed and must be removed in CloudShell Portal's Inventory > Abstract Templates page.
Abstract templates containing deleted published attributes are indicated with a yellow triangle:
When editing the abstract template, the bad attributes have a fine red frame:
-
When several attributes are removed and the properties are used in abstract resources in blueprints, each time the shell is imported into CloudShell, only one attribute will be listed with a list of the blueprints that need to be edited.