# Translations template for ironic-inspector. # Copyright (C) 2020 ORGANIZATION # This file is distributed under the same license as the ironic-inspector # project. # FIRST AUTHOR , 2020. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: ironic-inspector VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2020-04-16 01:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.6.0\n" #: ironic_inspector/api_tools.py:37 #, python-format msgid "Bad request: %s" msgstr "" #: ironic_inspector/api_tools.py:68 msgid "Marker not UUID-like" msgstr "" #: ironic_inspector/api_tools.py:81 msgid "Limit cannot be negative" msgstr "" #: ironic_inspector/api_tools.py:82 #, python-format msgid "Limit over %s" msgstr "" #: ironic_inspector/introspect.py:52 #, python-format msgid "Failed validation of power interface, reason: %s" msgstr "" #: ironic_inspector/introspect.py:97 msgid "" "No lookup attributes were found, inspector won't be able to find it after" " introspection, consider creating ironic ports or providing an IPMI " "address" msgstr "" #: ironic_inspector/introspect.py:110 #, python-format msgid "Failed to set boot device to PXE: %s" msgstr "" #: ironic_inspector/introspect.py:116 #, python-format msgid "Failed to power on the node, check it's power management configuration: %s" msgstr "" #: ironic_inspector/introspect.py:142 msgid "Node is locked, please, retry later" msgstr "" #: ironic_inspector/introspect.py:162 msgid "Canceled by operator" msgstr "" #: ironic_inspector/main.py:56 msgid "Malformed API version: expected string in form of X.Y or latest" msgstr "" #: ironic_inspector/main.py:86 msgid "Internal server error" msgstr "" #: ironic_inspector/main.py:99 #, python-format msgid "" "Unsupported API version %(requested)s, supported range is %(min)s to " "%(max)s" msgstr "" #: ironic_inspector/main.py:217 msgid "Version not found." msgstr "" #: ironic_inspector/main.py:227 #, python-format msgid "Invalid data: expected a JSON object, got %s" msgstr "" #: ironic_inspector/main.py:251 #, python-format msgid "Invalid boolean value for manage_boot: %s" msgstr "" #: ironic_inspector/main.py:255 msgid "" "Managed boot is requested, but this installation cannot manage boot " "((can_manage_boot set to False)" msgstr "" #: ironic_inspector/conductor/manager.py:134 ironic_inspector/main.py:301 msgid "" "Inspector is not configured to store data. Set the [processing]store_data" " configuration option to change this." msgstr "" #: ironic_inspector/main.py:311 msgid "User data processing is not supported yet" msgstr "" #: ironic_inspector/main.py:344 msgid "Invalid UUID value" msgstr "" #: ironic_inspector/node_cache.py:107 msgid "state" msgstr "" #: ironic_inspector/node_cache.py:148 msgid "Node not found in the cache" msgstr "" #: ironic_inspector/node_cache.py:231 #, python-format msgid "Invalid event: %s" msgstr "" #: ironic_inspector/node_cache.py:810 #, python-format msgid "Could not find node %s in cache" msgstr "" #: ironic_inspector/node_cache.py:850 #, python-format msgid "Could not find a node for attributes %s" msgstr "" #: ironic_inspector/node_cache.py:864 #, python-format msgid "Multiple nodes match the same number of attributes %(attr)s: %(found)s" msgstr "" #: ironic_inspector/node_cache.py:878 #, python-format msgid "" "Could not find node %s in introspection cache, probably it's not on " "introspection now" msgstr "" #: ironic_inspector/node_cache.py:883 #, python-format msgid "Introspection for node %(node)s already finished on %(finish)s" msgstr "" #: ironic_inspector/node_cache.py:971 #, python-format msgid "Node not found for marker: %s" msgstr "" #: ironic_inspector/node_cache.py:1017 #, python-format msgid "Introspection data not found for node %(node)s, processed=%(processed)s" msgstr "" #: ironic_inspector/process.py:88 ironic_inspector/process.py:107 #, python-format msgid "Look up error: %s" msgstr "" #: ironic_inspector/process.py:103 msgid "Node not found hook returned nothing" msgstr "" #: ironic_inspector/process.py:105 #, python-format msgid "Node not found hook failed: %s" msgstr "" #: ironic_inspector/process.py:131 #, python-format msgid "" "Unexpected exception %(exc_class)s during preprocessing in hook %(hook)s:" " %(error)s" msgstr "" #: ironic_inspector/process.py:181 #, python-format msgid "" "The following failures happened during running pre-processing hooks:\n" "%s" msgstr "" #: ironic_inspector/process.py:193 #, python-format msgid "Node processing already finished with error: %s" msgstr "" #: ironic_inspector/process.py:218 #, python-format msgid "Unexpected exception %(exc_class)s during processing: %(error)s" msgstr "" #: ironic_inspector/process.py:274 #, python-format msgid "" "Failed to power off node %(node)s, check its power management " "configuration: %(exc)s" msgstr "" #: ironic_inspector/process.py:307 msgid "Node locked, please, try again later" msgstr "" #: ironic_inspector/process.py:321 #, python-format msgid "Encountered an exception while getting the Ironic client: %s" msgstr "" #: ironic_inspector/process.py:330 #, python-format msgid "Failed reapply for node %(node)s, Error: %(exc)s" msgstr "" #: ironic_inspector/process.py:348 #, python-format msgid "" "Pre-processing failures detected reapplying introspection on stored data:" "\n" "%s" msgstr "" #: ironic_inspector/rules.py:235 #, python-format msgid "Invalid formatting variable key provided in value %(val)s: %(e)s" msgstr "" #: ironic_inspector/rules.py:277 #, python-format msgid "Validation failed for conditions: %s" msgstr "" #: ironic_inspector/rules.py:288 #, python-format msgid "Unsupported scheme for field: %s, valid values are node:// or data://" msgstr "" #: ironic_inspector/rules.py:294 #, python-format msgid "Unable to parse field JSON path %(field)s: %(error)s" msgstr "" #: ironic_inspector/rules.py:303 #, python-format msgid "Invalid parameters for operator %(op)s: %(error)s" msgstr "" #: ironic_inspector/rules.py:323 #, python-format msgid "Validation failed for actions: %s" msgstr "" #: ironic_inspector/rules.py:333 #, python-format msgid "Invalid parameters for action %(act)s: %(error)s" msgstr "" #: ironic_inspector/rules.py:386 #, python-format msgid "Rule with UUID %s already exists" msgstr "" #: ironic_inspector/rules.py:402 ironic_inspector/rules.py:428 #, python-format msgid "Rule %s was not found" msgstr "" #: ironic_inspector/utils.py:86 #, python-format msgid "[node: %s]" msgstr "" #: ironic_inspector/utils.py:88 msgid "[unidentified node]" msgstr "" #: ironic_inspector/utils.py:133 msgid "" "Node state mismatch detected between the DB and the cached node_info " "object" msgstr "" #: ironic_inspector/utils.py:192 msgid "Authentication required" msgstr "" #: ironic_inspector/utils.py:195 msgid "Access denied by policy" msgstr "" #: ironic_inspector/utils.py:210 msgid "Hardware inventory is empty or missing" msgstr "" #: ironic_inspector/utils.py:214 msgid "No network interfaces provided in the inventory" msgstr "" #: ironic_inspector/cmd/migration.py:33 msgid "The database storage backend" msgstr "" #: ironic_inspector/cmd/migration.py:34 msgid "The Swift storage backend" msgstr "" #: ironic_inspector/cmd/migration.py:40 msgid "The source storage where the introspected data will be read from." msgstr "" #: ironic_inspector/cmd/migration.py:46 msgid "The target storage where the introspected data will be saved to." msgstr "" #: ironic_inspector/cmd/migration.py:90 msgid "Source and destination can not be the same." msgstr "" #: ironic_inspector/cmd/migration.py:120 msgid "... terminating migration tool" msgstr "" #: ironic_inspector/common/ironic.py:48 #, python-format msgid "Node %s was not found in Ironic" msgstr "" #: ironic_inspector/common/ironic.py:100 #, python-format msgid "Failed to resolve the hostname (%(value)s) for node %(uuid)s" msgstr "" #: ironic_inspector/common/ironic.py:150 msgid "" "Cannot find the bare metal endpoint either in Keystone or in the " "configuration" msgstr "" #: ironic_inspector/common/ironic.py:158 #, python-format msgid "" "Invalid provision state for introspection: \"%(state)s\", valid states " "are \"%(valid)s\"" msgstr "" #: ironic_inspector/common/ironic.py:193 #, python-format msgid "Cannot get node %(node)s: %(exc)s" msgstr "" #: ironic_inspector/common/lldp_parsers.py:356 msgid "Invalid index for mau type" msgstr "" #: ironic_inspector/common/swift.py:64 #, python-format msgid "Could not create an adapter to connect to the object storage service: %s" msgstr "" #: ironic_inspector/common/swift.py:76 #, python-format msgid "Could not connect to the object storage service: %s" msgstr "" #: ironic_inspector/common/swift.py:93 #, python-format msgid "Swift failed to create container %(container)s. Error was: %(error)s" msgstr "" #: ironic_inspector/common/swift.py:108 #, python-format msgid "" "Swift failed to create object %(object)s in container %(container)s. " "Error was: %(error)s" msgstr "" #: ironic_inspector/common/swift.py:126 #, python-format msgid "" "Swift failed to get object %(object)s in container %(container)s. Error " "was: %(error)s" msgstr "" #: ironic_inspector/conf/capabilities.py:32 msgid "Whether to store the boot mode (BIOS or UEFI)." msgstr "" #: ironic_inspector/conf/capabilities.py:35 msgid "" "Mapping between a CPU flag and a capability to set if this flag is " "present." msgstr "" #: ironic_inspector/conf/default.py:24 msgid "IP to listen on." msgstr "" #: ironic_inspector/conf/default.py:27 msgid "Port to listen on." msgstr "" #: ironic_inspector/conf/default.py:31 msgid "" "Name of this node. This can be an opaque identifier. It is not " "necessarily a hostname, FQDN, or IP address. However, the node name must " "be valid within an AMQP key, and if using ZeroMQ, a valid hostname, FQDN," " or IP address." msgstr "" #: ironic_inspector/conf/default.py:39 msgid "" "Authentication method used on the ironic-inspector API. Either \"noauth\"" " or \"keystone\" are currently valid options. \"noauth\" will disable all" " authentication." msgstr "" #: ironic_inspector/conf/default.py:47 msgid "" "Timeout after which introspection is considered failed, set to 0 to " "disable." msgstr "" #: ironic_inspector/conf/default.py:51 msgid "" "Amount of time in seconds, after which repeat clean up of timed out nodes" " and old nodes status information." msgstr "" #: ironic_inspector/conf/default.py:55 msgid "SSL Enabled/Disabled" msgstr "" #: ironic_inspector/conf/default.py:59 msgid "This option will be superseded by [ssl]cert_file." msgstr "" #: ironic_inspector/conf/default.py:61 msgid "Path to SSL certificate" msgstr "" #: ironic_inspector/conf/default.py:65 msgid "This option will be superseded by [ssl]key_file." msgstr "" #: ironic_inspector/conf/default.py:67 msgid "Path to SSL key" msgstr "" #: ironic_inspector/conf/default.py:70 msgid "The green thread pool size." msgstr "" #: ironic_inspector/conf/default.py:73 msgid "Delay (in seconds) between two introspections." msgstr "" #: ironic_inspector/conf/default.py:77 msgid "Ironic driver_info fields that are equivalent to ipmi_address." msgstr "" #: ironic_inspector/conf/default.py:81 msgid "" "Path to the rootwrap configuration file to use for running commands as " "root" msgstr "" #: ironic_inspector/conf/default.py:84 msgid "Limit the number of elements an API list-call returns" msgstr "" #: ironic_inspector/conf/default.py:87 msgid "" "Whether the current installation of ironic-inspector can manage PXE " "booting of nodes. If set to False, the API will reject introspection " "requests with manage_boot missing or set to True." msgstr "" #: ironic_inspector/conf/discovery.py:22 msgid "" "The name of the Ironic driver used by the enroll hook when creating a new" " node in Ironic." msgstr "" #: ironic_inspector/conf/dnsmasq_pxe_filter.py:22 msgid "" "The MAC address cache directory, exposed to dnsmasq.This directory is " "expected to be in exclusive control of the driver." msgstr "" #: ironic_inspector/conf/dnsmasq_pxe_filter.py:26 msgid "" "Purge the hostsdir upon driver initialization. Setting to false should " "only be performed when the deployment of inspector is such that there are" " multiple processes executing inside of the same host and namespace. In " "this case, the Operator is responsible for setting up a custom cleaning " "facility." msgstr "" #: ironic_inspector/conf/dnsmasq_pxe_filter.py:34 msgid "" "A (shell) command line to start the dnsmasq service upon filter " "initialization. Default: don't start." msgstr "" #: ironic_inspector/conf/dnsmasq_pxe_filter.py:37 msgid "" "A (shell) command line to stop the dnsmasq service upon inspector (error)" " exit. Default: don't stop." msgstr "" #: ironic_inspector/conf/iptables.py:22 msgid "Interface on which dnsmasq listens, the default is for VM's." msgstr "" #: ironic_inspector/conf/iptables.py:26 msgid "iptables chain name to use." msgstr "" #: ironic_inspector/conf/iptables.py:29 msgid "" "List of Etherent Over InfiniBand interfaces on the Inspector host which " "are used for physical access to the DHCP network. Multiple interfaces " "would be attached to a bond or bridge specified in dnsmasq_interface. The" " MACs of the InfiniBand nodes which are not in desired state are going to" " be blacklisted based on the list of neighbor MACs on these interfaces." msgstr "" #: ironic_inspector/conf/iptables.py:39 msgid "IPv4" msgstr "" #: ironic_inspector/conf/iptables.py:40 msgid "IPv6" msgstr "" #: ironic_inspector/conf/iptables.py:41 msgid "The IP version that will be used for iptables filter. Defaults to 4." msgstr "" #: ironic_inspector/conf/ironic.py:26 msgid "Keystone region used to get Ironic endpoints." msgstr "" #: ironic_inspector/conf/ironic.py:28 msgid "Use [ironic]/region_name option instead to configure region." msgstr "" #: ironic_inspector/conf/ironic.py:33 msgid "Method to use for authentication: noauth or keystone." msgstr "" #: ironic_inspector/conf/ironic.py:36 msgid "" "Use [ironic]/auth_type, for noauth case set [ironic]/auth_type to `none` " "and specify ironic API URL via [ironic]/endpoint_override option." msgstr "" #: ironic_inspector/conf/ironic.py:42 msgid "" "Ironic API URL, used to set Ironic API URL when auth_strategy option is " "noauth or auth_type is \"none\" to work with standalone Ironic without " "keystone." msgstr "" #: ironic_inspector/conf/ironic.py:46 msgid "Use [ironic]/endpoint_override option to set a specific ironic API url." msgstr "" #: ironic_inspector/conf/ironic.py:50 msgid "Ironic service type." msgstr "" #: ironic_inspector/conf/ironic.py:52 msgid "Use [ironic]/service_type option to set a specific type." msgstr "" #: ironic_inspector/conf/ironic.py:56 msgid "Ironic endpoint type." msgstr "" #: ironic_inspector/conf/ironic.py:58 msgid "Use [ironic]/valid_interfaces option to specify endpoint interfaces." msgstr "" #: ironic_inspector/conf/ironic.py:62 msgid "Interval between retries in case of conflict error (HTTP 409)." msgstr "" #: ironic_inspector/conf/ironic.py:66 msgid "Maximum number of retries in case of conflict error (HTTP 409)." msgstr "" #: ironic_inspector/conf/pci_devices.py:22 #: ironic_inspector/plugins/pci_devices.py:28 msgid "" "An alias for PCI device identified by 'vendor_id' and 'product_id' " "fields. Format: {\"vendor_id\": \"1234\", \"product_id\": \"5678\", " "\"name\": \"pci_dev1\"}" msgstr "" #: ironic_inspector/conf/processing.py:26 msgid "" "Which MAC addresses to add as ports during introspection. Possible " "values: all (all MAC addresses), active (MAC addresses of NIC with IP " "addresses), pxe (only MAC address of NIC node PXE booted from, falls back" " to \"active\" if PXE MAC is not supplied by the ramdisk)." msgstr "" #: ironic_inspector/conf/processing.py:35 msgid "" "Which ports (already present on a node) to keep after introspection. " "Possible values: all (do not delete anything), present (keep ports which " "MACs were present in introspection data), added (keep only MACs that we " "added during introspection)." msgstr "" #: ironic_inspector/conf/processing.py:43 msgid "" "Whether to overwrite existing values in node database. Disable this " "option to make introspection a non-destructive operation." msgstr "" #: ironic_inspector/conf/processing.py:49 msgid "" "Comma-separated list of default hooks for processing pipeline. Hook " "'scheduler' updates the node with the minimum properties required by the " "Nova scheduler. Hook 'validate_interfaces' ensures that valid NIC data " "was provided by the ramdisk. Do not exclude these two unless you really " "know what you're doing." msgstr "" #: ironic_inspector/conf/processing.py:58 msgid "" "Comma-separated list of enabled hooks for processing pipeline. The " "default for this is $default_processing_hooks, hooks can be added before " "or after the defaults like this: " "\"prehook,$default_processing_hooks,posthook\"." msgstr "" #: ironic_inspector/conf/processing.py:64 msgid "If set, logs from ramdisk will be stored in this directory." msgstr "" #: ironic_inspector/conf/processing.py:68 msgid "" "Whether to store ramdisk logs even if it did not return an error message " "(dependent upon \"ramdisk_logs_dir\" option being set)." msgstr "" #: ironic_inspector/conf/processing.py:72 msgid "" "The name of the hook to run when inspector receives inspection " "information from a node it isn't already aware of. This hook is ignored " "by default." msgstr "" #: ironic_inspector/conf/processing.py:77 msgid "" "The storage backend for storing introspection data. Possible values are: " "'none', 'database' and 'swift'. If set to 'none', introspection data will" " not be stored." msgstr "" #: ironic_inspector/conf/processing.py:82 msgid "" "Name of the key to store the location of stored data in the extra column " "of the Ironic database." msgstr "" #: ironic_inspector/conf/processing.py:85 msgid "" "The introspection data could be retrieved from inspector API, there is no" " need to keep an extra link in ironic." msgstr "" #: ironic_inspector/conf/processing.py:90 msgid "" "Whether to leave 1 GiB of disk size untouched for partitioning. Only has " "effect when used with the IPA as a ramdisk, for older ramdisk local_gb is" " calculated on the ramdisk side." msgstr "" #: ironic_inspector/conf/processing.py:96 msgid "" "File name template for storing ramdisk logs. The following replacements " "can be used: {uuid} - node UUID or \"unknown\", {bmc} - node BMC address " "or \"unknown\", {dt} - current UTC date and time, {mac} - PXE booting MAC" " or \"unknown\"." msgstr "" #: ironic_inspector/conf/processing.py:104 msgid "Whether to power off a node after introspection." msgstr "" #: ironic_inspector/conf/pxe_filter.py:21 msgid "" "PXE boot filter driver to use, possible filters are: \"iptables\", " "\"dnsmasq\" and \"noop\". Set \"noop \" to disable the firewall " "filtering." msgstr "" #: ironic_inspector/conf/pxe_filter.py:25 msgid "" "Amount of time in seconds, after which repeat periodic update of the " "filter." msgstr "" #: ironic_inspector/conf/swift.py:27 msgid "Maximum number of times to retry a Swift request, before failing." msgstr "" #: ironic_inspector/conf/swift.py:31 msgid "" "Number of seconds that the Swift object will last before being deleted. " "(set to 0 to never delete the object)." msgstr "" #: ironic_inspector/conf/swift.py:36 msgid "Default Swift container to use when creating objects." msgstr "" #: ironic_inspector/conf/swift.py:40 msgid "Swift service type." msgstr "" #: ironic_inspector/conf/swift.py:42 msgid "Use [swift]/service_type option to set specific service type" msgstr "" #: ironic_inspector/conf/swift.py:46 msgid "Swift endpoint type." msgstr "" #: ironic_inspector/conf/swift.py:48 msgid "Use [swift]/valid_interfaces option to specify endpoint interfaces." msgstr "" #: ironic_inspector/conf/swift.py:51 msgid "Keystone region to get endpoint for." msgstr "" #: ironic_inspector/conf/swift.py:53 msgid "Use [swift]/region_name option to configure region." msgstr "" #: ironic_inspector/plugins/base.py:90 #, python-format msgid "missing required parameter(s): %s" msgstr "" #: ironic_inspector/plugins/base.py:93 #, python-format msgid "unexpected parameter(s): %s" msgstr "" #: ironic_inspector/plugins/base.py:165 #, python-format msgid "The following hook(s) are missing or failed to load: %s" msgstr "" #: ironic_inspector/plugins/discovery.py:49 #, python-format msgid "Port %(mac)s already exists, uuid: %(uuid)s" msgstr "" #: ironic_inspector/plugins/discovery.py:66 #, python-format msgid "Node %(uuid)s already has BMC address %(ipmi_address)s, not enrolling" msgstr "" #: ironic_inspector/plugins/rules.py:98 #, python-format msgid "invalid regular expression: %s" msgstr "" #: ironic_inspector/plugins/rules.py:146 msgid "" "Cannot pass reset_interfaces to set-attribute, requires API 1.46 and " "ironicclient >= 2.5.0" msgstr "" #: ironic_inspector/plugins/rules.py:159 msgid "missing required parameter(s): value" msgstr "" #: ironic_inspector/plugins/standard.py:53 #, python-format msgid "" "No disks could be found using the root device hints %(hints)s because " "they failed to validate. Error: %(error)s" msgstr "" #: ironic_inspector/plugins/standard.py:59 msgid "No disks satisfied root device hints" msgstr "" #: ironic_inspector/plugins/standard.py:139 msgid "" "Configuration error: add_ports set to disabled and keep_ports set to " "added. Please change keep_ports to all." msgstr "" #: ironic_inspector/plugins/standard.py:200 msgid "No interfaces supplied by the ramdisk" msgstr "" #: ironic_inspector/plugins/standard.py:232 #, python-format msgid "No suitable interfaces found in %s" msgstr "" #: ironic_inspector/plugins/standard.py:313 #, python-format msgid "Ramdisk reported error: %s" msgstr "" #: ironic_inspector/pxe_filter/base.py:139 #, python-format msgid "" "The PXE filter driver %(driver)s: my fsm encountered an exception: " "%(error)s" msgstr ""