<commit_before># vim: tabstop=4 shiftwidth=4 softtabstop=4

# Copyright 2014 IBM Corporation
# Copyright 2015-2019 Lenovo
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


#This defines the attributes of various classes of things

# 'nic', meant to be a nested structure under node
# changing mind on design, flattening to a single attribute, a *touch* less
# flexible at the top end, but much easier on the low end
# now net.<name>.attribute scheme
# similarly, leaning toward comma delimited ip addresses, since 99.99% of the
# time each nic will have one ip address
# vlan specification will need to be thought about a tad, each ip could be on
# a distinct vlan, but could have a vlan without an ip for sake of putting
# to a bridge.  Current thought is
# vlans attribute would be comma delimited referring to the same index
# as addresses, with either 'native' or a number for vlan id
# the 'joinbridge' attribute would have some syntax like @<vlanid> to indicate
# joining only a vlan of the nic to the bridge
# 'joinbond' attribute would not support vlans.

#nic = {
#    'name': {
#        'description': 'Name in ip/ifconfig as desired by administrator',
#    },
#    'biosdevname': {
#        'description': '"biosdevname" scheme to identify the adapter. If not'
#                       'mac address match is preferred, then biosdevname, then'
#                       'name.',
#    },
#    'port': {
#        'description': 'Port that this nic connects to',
#    },
#    'switch': {
#        'description': 'Switch that this nic connects to',
#    },
#    'customhardwareaddress': {
#        'description': 'Mac address to push to nic',
#    },
#    'dnssuffix': {
#        'description': ('String to place after nodename, but before'
#                        'Network.Domain to derive FQDN for this NIC'),
#    },
#    'hardwareaddress': {
#        'description': 'Active mac address on this nic (factory or custom)'
#    },
#    'ipaddresses': {
#        'description': 'Set of IPv4 and IPv6 addresses in CIDR format'
#    },
#    'pvid': {
#        'description': 'PVID of port on switch this nic connects to',
#    },
#    'mtu': {
#        'description': 'Requested MTU to configure on this interface',
#    },
#    'vlans': {
#        'description': 'Tagged VLANs to apply to nic/switch',
#    },
#    'dhcpv4enabled': {
#        'description':  ('Whether DHCP should be attempted to acquire IPv4'
#                         'address on this interface'),
#    },
#    'dhcpv6enabled': {
#        'description':  ('Whether DHCP should be attempted to acquire IPv6'
#                         'address on this interface'),
#    },
#}

user = {
    'password': {
        'description':  'The passphrase used to authenticate this user'
    },
}

# 'node', which can be considered a 'system' or a 'vm'
node = {
    'groups': {
        'type': list,
        'description': ('List of static groups for which this node is '
                        'considered a member'),
    },
    'type': {
        'description': ('Classification of node as server or switch'),
        'validvalues': ('switch', 'server'),
    },
    'crypted.rootpassword': {
        'description': 'The password of the local root password. '
                       'This is stored as a non-recoverable hash. If '
                       'unspecified and confluent is used to deploy, then '
                       'login at console using password will be impossible '
                       'and only key based login can work for root.',
    },
    'crypted.grubpassword': {
        'description': 'Password required to modify grub behavior at boot',
    },
    'crypted.selfapikey': {
        'description': ('Crypt of api key for self api requests by node'),
    },
    'deployment.encryptboot': {
        'description': ('Specify a strategy for encrypting the volume. Support '
                        'for this setting is currently only enabled for '
                        'RedHat 8 and CentOS 8 profiles. If blank or unset, '
                        'no encryption is done. If set to "tpm2" then the OS '
                        'will freely decrypt so long as the same '
                        'Trusted Platform Module is available to decrypt the '
                        'volume. Note that versions earlier than 8.2 may malfunction '
                        'at boot time if this feature is attempted, depending on configuration.'),
        'validvalues': ('tpm2', 'none', ''),
    },
    'deployment.apiarmed': {
        'description': ('Indicates whether the node authentication token interface '
                        'is armed.  If set to once, it will grant only the next '
                        'request. If set to continuous, will allow many requests.'
                        'Should not be set unless an OS deployment is pending. '
                        'Generally this is not directly modified, but is modified '
                        'by the "nodedeploy" command'),
    },
    'deployment.sealedapikey': {
        'description': 'This attribute is used by some images to save a sealed '
                       'version of a node apikey, so that a subsequent run with '
                       'same TPM2 will use the TPM2 to protect the API key rather '
                       'than local network verification. If this is set, then '
                       'an api key request will receive this if the api key grant '
                       'is not armed',
    },
    #'id': {
    #    'description': ('Numeric identifier for node')
    #},
    # autonode is the feature of generating nodes based on connectivity to
    # current node.  In recursive autonode, for now we just allow endpoint to
    # either be a server directly *or* a server enclosure.  This precludes
    # for the moment a concept of nested arbitrarily deep, but for now do this.
    # hypothetically, one could imagine supporting an array and 'popping'
    # names until reaching end.  Not worth implementing at this point.  If
    # a traditional switch is added, it needs some care and feeding anyway.
    # If a more exciting scheme presents itself, well we won't have to
#   # own discovering switches anyway.
#   'autonode.servername': {
#       'description': ('Template for creating nodenames for automatic '
#                       'creation of nodes detected as children of '
#                       'this node.  For example, a node in a server '
#                       'enclosure bay or a server connected to a switch or '
#                       'an enclosure manager connected to a switch.  Certain '
#                       'special template parameters are available and can '
#                       'be used alongside usual config template directives. '
#                       '"discovered.nodenumber" will be replaced with the '
#                       'bay or port number where the child node is connected.'
#                       ),
#   },
#   'autonode.servergroups': {
#       'type': list,
#       'description': ('A list of groups to which discovered nodes will '
#                       'belong to.  As in autonode.servername, "discovered." '
#                       'variable names will be substituted in special context')
#   },
#   'autonode.enclosurename': {
#       'description': ('Template for creating nodenames when the discovered '
#                       'node is an enclosure that will in turn generate nodes.'
#                       )
#   },
#   'autonode.enclosuregroups': {
#       'type': list,
#       'description': ('A list of groups to which a discovered node will be'
#                       'placed, presuming that node is an enclosure.')
#   },
#For now, we consider this eventuality if needed.  For now emphasize paradigm
# of group membership and see how far that goes.
#    'autonode.copyattribs': {
#        'type': list,
#        'description': ('A list of attributes to copy from the node generator '
#                        'to the generated node.  Expressions will be copied '
#                        'over without evaluation, so will be evaluated '
#                        'in the context of the generated node, rather than the'
#                        'parent node.  By default, an enclosure will copy over'
#                        'autonode.servername, so that would not need to be '
#                        'copied ')
#    },
#    'collective.allowedmanagers': {
#        'description': ('Restricted set of deployment and managers in automatic selectien
#    },
#    ssh.equivnodes - control the list of nodes that go into equiv...
    'collective.manager': {
        'description': ('When in collective mode, the member of the '
                        'collective currently considered to be responsible '
                        'for this node.  At a future date, this may be '
                        'modified automatically if another attribute '
                        'indicates candidate managers, either for '
                        'high availability or load balancing purposes.')
    },
    'collective.managercandidates': {
        'description': ('A noderange of nodes permitted to be a manager for '
                        'the node. This controls failover and deployment.  If '
                        'not defined, all managers may deploy and no '
                        'automatic failover will be performed.
                        'Using this requires that collective members be '
                        'defined as nodes for noderange expansion')
    },
    'deployment.pendingprofile': {
        'description': ('An OS profile that is pending deployment.  This indicates to '
                        'the network boot subsystem what should be offered when a potential '
                        'network boot request comes in')
    },
    'deployment.stagedprofile': {
        'description': ('A profile that has been staged, but is awaiting final '
                        'boot to be activated. This allows an OS profile to '
                        'remove itself from netboot without indicating '
                        'completion to any watcher.')
    },
    'deployment.profile': {
        'description': ('The profile that has most recently reported '
                        'completion of deployment. Note that an image may opt '
                        'to leave itself both current and pending, for example '
                        'a stateless profile would be both after first boot.')<commit_msg>Correct typo in new attribute text<commit_after># vim: tabstop=4 shiftwidth=4 softtabstop=4

# Copyright 2014 IBM Corporation
# Copyright 2015-2019 Lenovo
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


#This defines the attributes of various classes of things

# 'nic', meant to be a nested structure under node
# changing mind on design, flattening to a single attribute, a *touch* less
# flexible at the top end, but much easier on the low end
# now net.<name>.attribute scheme
# similarly, leaning toward comma delimited ip addresses, since 99.99% of the
# time each nic will have one ip address
# vlan specification will need to be thought about a tad, each ip could be on
# a distinct vlan, but could have a vlan without an ip for sake of putting
# to a bridge.  Current thought is
# vlans attribute would be comma delimited referring to the same index
# as addresses, with either 'native' or a number for vlan id
# the 'joinbridge' attribute would have some syntax like @<vlanid> to indicate
# joining only a vlan of the nic to the bridge
# 'joinbond' attribute would not support vlans.

#nic = {
#    'name': {
#        'description': 'Name in ip/ifconfig as desired by administrator',
#    },
#    'biosdevname': {
#        'description': '"biosdevname" scheme to identify the adapter. If not'
#                       'mac address match is preferred, then biosdevname, then'
#                       'name.',
#    },
#    'port': {
#        'description': 'Port that this nic connects to',
#    },
#    'switch': {
#        'description': 'Switch that this nic connects to',
#    },
#    'customhardwareaddress': {
#        'description': 'Mac address to push to nic',
#    },
#    'dnssuffix': {
#        'description': ('String to place after nodename, but before'
#                        'Network.Domain to derive FQDN for this NIC'),
#    },
#    'hardwareaddress': {
#        'description': 'Active mac address on this nic (factory or custom)'
#    },
#    'ipaddresses': {
#        'description': 'Set of IPv4 and IPv6 addresses in CIDR format'
#    },
#    'pvid': {
#        'description': 'PVID of port on switch this nic connects to',
#    },
#    'mtu': {
#        'description': 'Requested MTU to configure on this interface',
#    },
#    'vlans': {
#        'description': 'Tagged VLANs to apply to nic/switch',
#    },
#    'dhcpv4enabled': {
#        'description':  ('Whether DHCP should be attempted to acquire IPv4'
#                         'address on this interface'),
#    },
#    'dhcpv6enabled': {
#        'description':  ('Whether DHCP should be attempted to acquire IPv6'
#                         'address on this interface'),
#    },
#}

user = {
    'password': {
        'description':  'The passphrase used to authenticate this user'
    },
}

# 'node', which can be considered a 'system' or a 'vm'
node = {
    'groups': {
        'type': list,
        'description': ('List of static groups for which this node is '
                        'considered a member'),
    },
    'type': {
        'description': ('Classification of node as server or switch'),
        'validvalues': ('switch', 'server'),
    },
    'crypted.rootpassword': {
        'description': 'The password of the local root password. '
                       'This is stored as a non-recoverable hash. If '
                       'unspecified and confluent is used to deploy, then '
                       'login at console using password will be impossible '
                       'and only key based login can work for root.',
    },
    'crypted.grubpassword': {
        'description': 'Password required to modify grub behavior at boot',
    },
    'crypted.selfapikey': {
        'description': ('Crypt of api key for self api requests by node'),
    },
    'deployment.encryptboot': {
        'description': ('Specify a strategy for encrypting the volume. Support '
                        'for this setting is currently only enabled for '
                        'RedHat 8 and CentOS 8 profiles. If blank or unset, '
                        'no encryption is done. If set to "tpm2" then the OS '
                        'will freely decrypt so long as the same '
                        'Trusted Platform Module is available to decrypt the '
                        'volume. Note that versions earlier than 8.2 may malfunction '
                        'at boot time if this feature is attempted, depending on configuration.'),
        'validvalues': ('tpm2', 'none', ''),
    },
    'deployment.apiarmed': {
        'description': ('Indicates whether the node authentication token interface '
                        'is armed.  If set to once, it will grant only the next '
                        'request. If set to continuous, will allow many requests.'
                        'Should not be set unless an OS deployment is pending. '
                        'Generally this is not directly modified, but is modified '
                        'by the "nodedeploy" command'),
    },
    'deployment.sealedapikey': {
        'description': 'This attribute is used by some images to save a sealed '
                       'version of a node apikey, so that a subsequent run with '
                       'same TPM2 will use the TPM2 to protect the API key rather '
                       'than local network verification. If this is set, then '
                       'an api key request will receive this if the api key grant '
                       'is not armed',
    },
    #'id': {
    #    'description': ('Numeric identifier for node')
    #},
    # autonode is the feature of generating nodes based on connectivity to
    # current node.  In recursive autonode, for now we just allow endpoint to
    # either be a server directly *or* a server enclosure.  This precludes
    # for the moment a concept of nested arbitrarily deep, but for now do this.
    # hypothetically, one could imagine supporting an array and 'popping'
    # names until reaching end.  Not worth implementing at this point.  If
    # a traditional switch is added, it needs some care and feeding anyway.
    # If a more exciting scheme presents itself, well we won't have to
#   # own discovering switches anyway.
#   'autonode.servername': {
#       'description': ('Template for creating nodenames for automatic '
#                       'creation of nodes detected as children of '
#                       'this node.  For example, a node in a server '
#                       'enclosure bay or a server connected to a switch or '
#                       'an enclosure manager connected to a switch.  Certain '
#                       'special template parameters are available and can '
#                       'be used alongside usual config template directives. '
#                       '"discovered.nodenumber" will be replaced with the '
#                       'bay or port number where the child node is connected.'
#                       ),
#   },
#   'autonode.servergroups': {
#       'type': list,
#       'description': ('A list of groups to which discovered nodes will '
#                       'belong to.  As in autonode.servername, "discovered." '
#                       'variable names will be substituted in special context')
#   },
#   'autonode.enclosurename': {
#       'description': ('Template for creating nodenames when the discovered '
#                       'node is an enclosure that will in turn generate nodes.'
#                       )
#   },
#   'autonode.enclosuregroups': {
#       'type': list,
#       'description': ('A list of groups to which a discovered node will be'
#                       'placed, presuming that node is an enclosure.')
#   },
#For now, we consider this eventuality if needed.  For now emphasize paradigm
# of group membership and see how far that goes.
#    'autonode.copyattribs': {
#        'type': list,
#        'description': ('A list of attributes to copy from the node generator '
#                        'to the generated node.  Expressions will be copied '
#                        'over without evaluation, so will be evaluated '
#                        'in the context of the generated node, rather than the'
#                        'parent node.  By default, an enclosure will copy over'
#                        'autonode.servername, so that would not need to be '
#                        'copied ')
#    },
#    'collective.allowedmanagers': {
#        'description': ('Restricted set of deployment and managers in automatic selectien
#    },
#    ssh.equivnodes - control the list of nodes that go into equiv...
    'collective.manager': {
        'description': ('When in collective mode, the member of the '
                        'collective currently considered to be responsible '
                        'for this node.  At a future date, this may be '
                        'modified automatically if another attribute '
                        'indicates candidate managers, either for '
                        'high availability or load balancing purposes.')
    },
    'collective.managercandidates': {
        'description': ('A noderange of nodes permitted to be a manager for '
                        'the node. This controls failover and deployment.  If '
                        'not defined, all managers may deploy and no '
                        'automatic failover will be performed. '
                        'Using this requires that collective members be '
                        'defined as nodes for noderange expansion')
    },
    'deployment.pendingprofile': {
        'description': ('An OS profile that is pending deployment.  This indicates to '
                        'the network boot subsystem what should be offered when a potential '
                        'network boot request comes in')
    },
    'deployment.stagedprofile': {
        'description': ('A profile that has been staged, but is awaiting final '
                        'boot to be activated. This allows an OS profile to '
                        'remove itself from netboot without indicating '
                        'completion to any watcher.')
    },
    'deployment.profile': {
        'description': ('The profile that has most recently reported '
                        'completion of deployment. Note that an image may opt '
                        'to leave itself both current and pending, for example '
                        'a stateless profile would be both after first boot.')
{'fraction_non_alphanumeric': 0.08451281117735403, 'fraction_numerical': 0.003367769535338825, 'mean_word_length': 2.001502526977189, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4618885', 'n_tokens_mistral': 5527, 'n_tokens_neox': 5314, 'n_words': 2434}