etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
| 6
etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
| 4
modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/upgrade/ResourceUpgradeRequest.java
| 30
modules/core/dbutils/pom.xml
| 16
modules/core/domain/pom.xml
| 4
modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
| 27
modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
| 8
modules/core/plugin-container/pom.xml
| 55
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
| 189
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceFactoryManager.java
| 84
modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
| 140
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
| 145
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResType.java
| 70
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
| 558 +-
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
| 148
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
| 436 -
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
| 388 -
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v1/rhq-plugin.xml
| 31
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v2/rhq-plugin.xml
| 30
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/multi/base/BaseUpgradingDiscoveryComponent.java
| 14
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
| 32
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
| 30
modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerSetup.java
| 118
modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerTest.java
| 397 +
modules/enterprise/binding/pom.xml
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
| 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
| 35
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
| 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
| 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
| 24
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
| 27
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/MessageConstants_zh.properties
| 53
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
| 8
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
| 2532 +++-------
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
| 2315 +++++++++
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
| 2172 ++++++++
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
| 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
| 192
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
| 196
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
| 97
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
| 39
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
| 39
modules/enterprise/remoting/cli/pom.xml
| 4
modules/enterprise/server/jar/pom.xml
| 183
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
| 103
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
| 132
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
| 34
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
| 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
| 28
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
| 10
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
| 16
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
| 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
| 13
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
| 80
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/authz/test/RoleManagerBeanTest.java
| 72
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
| 26
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanUnitTest.java
| 3
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
| 39
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
| 6
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceGroupManagerBeanTest.java
| 2
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
| 14
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
| 7
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
| 6
modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
| 4
modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
| 4
modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
| 134
modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
| 45
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
| 3
modules/plugins/pom.xml
| 15
modules/test-utils/pom.xml
| 8
modules/test-utils/src/main/java/org/rhq/test/JMockTest.java
| 134
74 files changed, 8335 insertions(+), 3535 deletions(-)
New commits:
commit 490d4f8556704540a5740e6244c581aa077fb616
Merge: 1831a12 054ba69
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu May 26 21:01:05 2011 +0200
Merge branch 'master' into as7plugin
commit 054ba69425f4e7da75e6ba34f32b0fccffaec861
Author: Jijun Liu <lxjijun(a)gmail.com>
Date: Thu May 26 20:59:48 2011 +0200
Update chinese translations by Jijun Liu and ZhongqiangLee
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
index cdefe55..bc84b4c 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
@@ -57,13 +57,13 @@ common_label_items = \u9879
common_label_milliseconds = \u6beb\u79d2
common_label_minutes = \u5206\u949f
common_label_month = \u6708
-common_label_none = none
+common_label_none = \u65e0
common_label_role = \u89d2\u8272
common_label_roles = \u89d2\u8272
common_label_scheduled_operations = \u8ba1\u5212\u64cd\u4f5c
common_label_seconds = \u79d2
-common_label_selected_resources = selected resources
-common_label_unlimited = unlimited
+common_label_selected_resources = \u5df2\u9009\u8d44\u6e90
+common_label_unlimited = \u65e0\u9650\u5236
common_label_user = \u7528\u6237
common_label_users = \u7528\u6237
common_label_week = \u5468
@@ -94,7 +94,7 @@ common_severity_fatal = Fatal
#--------------
common_title_address = \u5730\u5740
common_title_add_column = \u6dfb\u52a0\u5217
-common_title_add_graph_to_view = Add Graph to Monitor View
+common_title_add_graph_to_view = \u6dfb\u52a0\u56fe\u5230\u76d1\u89c6\u89c6\u56fe
common_title_add_portlet = \u6dfb\u52a0Portlet
common_title_alert_range = \u544a\u8b66\u8303\u56f4
common_title_ancestry = \u7956\u5148
@@ -102,8 +102,8 @@ common_title_availability = \u53ef\u7528\u6027
common_title_average_metrics = \u5e73\u5747\u6bcf\u5206\u949f\u6307\u6807
common_title_available_resources = \u53ef\u7528\u7684\u8d44\u6e90
common_title_background = \u80cc\u666f\u8272
-common_title_bundle = \u63d2\u4ef6
-common_title_bundles = \u63d2\u4ef6\u96c6
+common_title_bundle = Bundle
+common_title_bundles = Bundles
common_title_category = \u7c7b\u522b
common_title_change_refresh_time=\u5237\u65b0\u95f4\u9694
common_title_columns = \u5217
@@ -145,7 +145,7 @@ common_title_lastUpdated = \u6700\u8fd1\u66f4\u65b0
common_title_lastUpdatedBy = \u6700\u8fd1\u66f4\u65b0\u8005
common_title_ldapGroups = LDAP\u7ec4
common_title_mashup = Mashup
-common_title_members_reporting = Members Reporting
+common_title_members_reporting = \u7ec4\u62a5\u8868
common_title_message = \u6d88\u606f
common_title_metric = Metric
common_title_metric_chart = Metric\u56fe\u8868
@@ -168,8 +168,8 @@ common_title_plugin = \u63d2\u4ef6
common_title_port = \u7aef\u53e3
common_title_providers = \u63d0\u4f9b\u8005
common_title_recent_alerts = \u6700\u8fd1\u544a\u8b66
-common_title_recent_bundle_deployments = Recent Bundle Deployments
-common_title_recent_configuration_updates = Recent Configuration Updates
+common_title_recent_bundle_deployments = \u6700\u8fd1\u53d1\u5e03Bundles
+common_title_recent_configuration_updates = \u6700\u8fd1\u914d\u7f6e\u66f4\u65b0
common_title_recent_event_counts = \u6700\u8fd1\u4e8b\u4ef6\u6570
common_title_recent_measurements = Recent Measurements
common_title_recent_oob_metrics = Recent Out of Bound metrics
@@ -336,7 +336,7 @@ widget_resourceFactoryWizard_infoStepName = \u8d44\u6e90\u6d88\u606f
widget_resourceFactoryWizard_infoStep_loadFail = \u65e0\u6cd5\u53d6\u5f97\u67b6\u6784
widget_resourceFactoryWizard_namePrompt = \u65b0\u8d44\u6e90\u540d
widget_resourceFactoryWizard_templatePrompt = \u8fde\u63a5\u8bbe\u7f6e\u6a21\u677f
-widget_resourceFactoryWizard_contentTemplatePrompt =
\u90e8\u7f72\u65f6\u95f4\u914d\u7f6e\u6a21\u677f
+widget_resourceFactoryWizard_contentTemplatePrompt =
\u53d1\u5e03\u65f6\u95f4\u914d\u7f6e\u6a21\u677f
widget_resourceFactoryWizard_configTemplatePrompt = \u8d44\u6e90\u914d\u7f6e\u6a21\u677f
widget_resourceFactoryWizard_archPrompt = \u5305\u67b6\u6784
widget_resourceFactoryWizard_versionPrompt = \u5305\u7248\u672c
@@ -373,8 +373,8 @@ widget_jobTriggerEditor_value_nowAndRepeat = Now & Repeat
widget_jobTriggerEditor_value_later = Later
widget_jobTriggerEditor_value_laterAndRepeat = Later & Repeat
widget_jobTriggerEditor_field_cronExpression = Cron\u8868\u8fbe\u5f0f
-widget_jobTriggerEditor_tab_format = Format
-widget_jobTriggerEditor_tab_examples = Examples
+widget_jobTriggerEditor_tab_format = \u683c\u5f0f
+widget_jobTriggerEditor_tab_examples = \u4f8b\u5b50
widget_jobTriggerEditor_field_repeatInterval_now = Run now and every
widget_jobTriggerEditor_field_repeatInterval_later = \u91cd\u590d\u6bcf
widget_jobTriggerEditor_fieldHelp_repeatInterval = \u591a\u4e45\u6267\u884c\u64cd\u4f5c
@@ -386,9 +386,9 @@ widget_jobTriggerEditor_field_startType = Run
widget_jobTriggerEditor_value_on = on
widget_jobTriggerEditor_value_in = in
widget_jobTriggerEditor_fieldHelp_startDelay = \u6267\u884c\u64cd\u4f5c\u5ef6\u65f6
-widget_jobTriggerEditor_message_startTimeMustBeInFuture = Start time must be in the
future.
-widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime = End time must be after
start time.
-widget_jobTriggerEditor_message_endTimeMustBeInFuture = End time must be in the future.
+widget_jobTriggerEditor_message_startTimeMustBeInFuture =
\u5f00\u59cb\u65f6\u95f4\u5fc5\u987b\u662f\u672a\u6765\u65f6\u95f4.
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime =
\u7ed3\u675f\u65f6\u95f4\u5fc5\u987b\u665a\u4e8e\u5f00\u59cb\u65f6\u95f4.
+widget_jobTriggerEditor_message_endTimeMustBeInFuture =
\u7ed3\u675f\u65f6\u95f4\u5fc5\u987b\u662f\u672a\u6765\u65f6\u95f4.
# Duration Item
#---------------
@@ -422,7 +422,7 @@ util_userPerm_loadFailResource =
\u65e0\u6cd5\u8bbf\u95ee\u8d44\u6e90[{0}] - \u6
# User Session Manager
#--------------------------
-util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject
+util_userSession_loadFailSubject = UserSessionManager:
\u52a0\u8f7d\u7528\u6237\u4e3b\u9898\u5931\u8d25
util_userSession_logoutFail = \u6ce8\u9500\u5931\u8d25.
# Error Handler
@@ -438,7 +438,7 @@ util_widgetsField_unlimited = \u65e0\u9650\u5236
# RPC (abstract)
#-----------------------
-dataSource_bundle_loadFailed = \u52a0\u8f7d\u63d2\u4ef6\u6570\u636e\u5931\u8d25
+dataSource_bundle_loadFailed = \u52a0\u8f7dbundle\u6570\u636e\u5931\u8d25
# RPC (abstract)
@@ -504,14 +504,14 @@ dataSource_measurementOob_field_parentName = \u7236
dataSource_measurementOob_field_formattedBaseband = Band
dataSource_measurementOob_field_formattedOutlier = Outlier
dataSource_measurementOob_field_factor = Out of Range Factor (%)
-dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB
information
+dataSource_measurementOob_error_fetchFailure = \u52a0\u8f7dmeasurement OOB
information\u5931\u8d25
# Measurements
#----------------------
dataSource_definitions_loadFailed = \u65e0\u6cd5\u52a0\u8f7d\u6307\u6807\u5b9a\u4e49
-dataSource_schedules_loadFailed = Failed to load metric schedules
-dataSource_schedules_loadFailedCriteria = Failed to load metric schedules for criteria
[{0}]
-dataSource_schedules_loadFailedContext = Failed to load metric schedules for context
[{0}]
+dataSource_schedules_loadFailed =
\u52a0\u8f7d\u6307\u6807\u8ba1\u5212\u4efb\u52a1\u5931\u8d25
+dataSource_schedules_loadFailedCriteria = Failed to load metric schedules for criteria
[{0}]
+dataSource_schedules_loadFailedContext = Failed to load metric schedules for context
[{0}]
dataSource_schedules_field_resourceGroupId = \u7ec4ID
dataSource_schedules_enableFailure_resource = Failed to enable the collection of [{0}]
metrics for resource with ID [{1}]. The metrics were: [{2}]
@@ -612,7 +612,7 @@ dataSource_resourceErrors_deleteFailure =
\u5220\u9664\u8d44\u6e90\u9519\u8bef\u
# Template Schedules
#-------------------------
-datasource_templateSchedules_disabled = Disabled collection of selected metric [{0}].
+datasource_templateSchedules_disabled =
\u7981\u7528\u9009\u62e9\u7684\u6307\u6807[{0}]\u91c7\u96c6.
datasource_templateSchedules_disabled_detailed = Disabled collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
datasource_templateSchedules_disabled_failed = Failed to disable collection of metric
[{0}] [{1}] by default for ResourceType with id [{2}].
datasource_templateSchedules_enabled = Enabled collection of selected metric [{0}].
@@ -711,8 +711,8 @@ view_adminRoles_permissions_perm_manageInventory =
\u7ba1\u7406\u6e05\u5355
view_adminRoles_permissions_permDesc_manageInventory =
\u62e5\u6709\u6240\u6709\u8d44\u6e90\u6743\u9650, \u5982\u4e0b\u6240\u8ff0,
\u5bf9\u6240\u6709\u8d44\u6e90; \u5177\u6709\u521b\u5efa, \u66f4\u65b0,
\u5220\u9664\u7ec4;
\u80fd\u5bfc\u5165\u81ea\u52a8\u53d1\u73b0\u6216\u624b\u52a8\u53d1\u73b0\u7684\u8d44\u6e90
view_adminRoles_permissions_perm_manageSettings = \u7ba1\u7406\u914d\u7f6e
view_adminRoles_permissions_permDesc_manageSettings =
\u80fd\u4fee\u6539RHQ\u670d\u52a1\u5668\u914d\u7f6e\u800c\u4e14\u80fd\u64cd\u4f5c\u4efb\u4f55\u76f8\u5173\u7684\u670d\u52a1\u5668\u529f\u80fd
-view_adminRoles_permissions_perm_manageBundles = \u7ba1\u7406\u63d2\u4ef6
-view_adminRoles_permissions_permDesc_manageBundles =
\u80fd\u521b\u5efa,\u66f4\u65b0\u6216\u8005\u5220\u9664\u63d0\u4f9b\u7684\u63d2\u4ef6(\u4efb\u4f55\u4eba\u90fd\u80fd\u67e5\u770b)
+view_adminRoles_permissions_perm_manageBundles = \u7ba1\u7406Bundles
+view_adminRoles_permissions_permDesc_manageBundles =
\u80fd\u521b\u5efa,\u66f4\u65b0\u6216\u8005\u5220\u9664\u63d0\u4f9b\u7684bundles(\u4efb\u4f55\u4eba\u90fd\u80fd\u67e5\u770b)
view_adminRoles_permissions_perm_manageRepositories = \u7ba1\u7406\u5e93
view_adminRoles_permissions_permDesc_manageRepositories = can create, update, or delete
repositories of any user (everyone can create their own repositories), can associate
content sources to repositories.
view_adminRoles_permissions_perm_inventory = \u6e05\u5355
@@ -722,25 +722,25 @@ view_adminRoles_permissions_perm_manageMeasurements =
\u7ba1\u7406\u6307\u6807
view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIED) view metric data
and collection schedules
view_adminRoles_permissions_permWriteDesc_manageMeasurements = update metric collection
schedules
view_adminRoles_permissions_perm_manageAlerts = \u7ba1\u7406\u544a\u8b66
-view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIED) view alert definitions
and alert history
+view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIED)
\u67e5\u770b\u544a\u8b66\u5b9a\u4e49\u548c\u544a\u8b66\u5386\u53f2
view_adminRoles_permissions_permWriteDesc_manageAlerts = create, update, and delete alert
definitions; acknowledge and delete alert history items
-view_adminRoles_permissions_perm_configure = Configure
-view_adminRoles_permissions_permReadDesc_configure = view Resource configuration and
Resource configuration revision history
-view_adminRoles_permissions_permWriteDesc_configure = update Resource configuration;
delete Resource configuration revision history items
-view_adminRoles_permissions_perm_control = Control
-view_adminRoles_permissions_permReadDesc_control = (IMPLIED) view available operations
and operation execution history
-view_adminRoles_permissions_permWriteDesc_control = execute operations; delete operation
execution history items
+view_adminRoles_permissions_perm_configure = \u914d\u7f6e
+view_adminRoles_permissions_permReadDesc_configure =
\u67e5\u770b\u8d44\u6e90\u914d\u7f6e\u548c\u8d44\u6e90\u914d\u7f6e\u4fee\u8ba2\u5386\u53f2
+view_adminRoles_permissions_permWriteDesc_configure =
\u66f4\u65b0\u8d44\u6e90\u914d\u7f6e; delete Resource configuration revision history
items
+view_adminRoles_permissions_perm_control = \u63a7\u5236
+view_adminRoles_permissions_permReadDesc_control = (IMPLIED)
\u67e5\u770b\u53ef\u7528\u64cd\u4f5c\u548c\u64cd\u4f5c\u6267\u884c\u5386\u53f2
+view_adminRoles_permissions_permWriteDesc_control = \u6267\u884c\u64cd\u4f5c;
\u5220\u9664\u64cd\u4f5c\u6267\u884c\u5386\u53f2
view_adminRoles_permissions_perm_manageEvents = \u7ba1\u7406\u4e8b\u4ef6
view_adminRoles_permissions_permReadDesc_manageEvents =
(IMPLIED)\u67e5\u770b\u4e8b\u4ef6
view_adminRoles_permissions_permWriteDesc_manageEvents = \u5220\u9664\u4e8b\u4ef6
view_adminRoles_permissions_perm_manageContent = \u7ba1\u7406Content
-view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIED) view installed and
available packages; view package installation history
+view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIED)
\u67e5\u770b\u5b89\u88c5\u7684\u548c\u53ef\u7528\u7684\u5305;
\u67e5\u770b\u5305\u5b89\u88c5\u5386\u53f2
view_adminRoles_permissions_permWriteDesc_manageContent = subscribe to content sources;
install and uninstall packages
view_adminRoles_permissions_perm_createChildResources = \u521b\u5efa\u5b50\u8d44\u6e90
-view_adminRoles_permissions_permReadDesc_createChildResources = (IMPLIED) view child
Resource creation history
-view_adminRoles_permissions_permWriteDesc_createChildResources = create new child
Resources (for child Resources of types that are creatable)
+view_adminRoles_permissions_permReadDesc_createChildResources = (IMPLIED)
\u67e5\u770b\u5b50\u8d44\u6e90\u521b\u5efa\u5386\u53f2
+view_adminRoles_permissions_permWriteDesc_createChildResources =
\u521b\u5efa\u65b0\u7684\u5b50\u8d44\u6e90 (for child Resources of types that are
creatable)
view_adminRoles_permissions_perm_deleteChildResources = \u5220\u9664\u5b50\u8d44\u6e90
-view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIED) view child
Resource deletion history
+view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIED)
\u67e5\u770b\u5b50\u8d44\u6e90\u5220\u9664\u5386\u53f2
view_adminRoles_permissions_permWriteDesc_deleteChildResources = uninventory resources;
delete Resources (for Resources of types that are deletable)
view_adminRoles_permissions_autoselecting_manageSecurity_implied = Autoselected
unselected permissions, since MANAGE_SECURITY implies all other permissions...
view_adminRoles_permissions_autoselecting_manageInventory_implied = Autoselected
unselected Resource permissions, since MANAGE_INVENTORY implies all Resource
permissions...
@@ -756,9 +756,9 @@ view_remoteAgentInstall_agentStatus = \u4ee3\u7406\u72b6\u6001
view_remoteAgentInstall_agentStatusDefault =
-\u5355\u51fb\u66f4\u65b0\u72b6\u6001\u6309\u94ae-
view_remoteAgentInstall_connInfo = \u8fde\u63a5\u4fe1\u606f
view_remoteAgentInstall_buttonFindAgent = \u67e5\u627e\u4ee3\u7406
-view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path
-view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in
common locations
-view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+view_remoteAgentInstall_error_1 =
\u67e5\u627e\u4ee3\u7406\u5b89\u88c5\u8def\u5f84\u65f6\u53d1\u751f\u9519\u8bef
+view_remoteAgentInstall_error_2 =
\u65e0\u6cd5\u5728\u901a\u5e38\u4f4d\u7f6e\u53d1\u73b0\u5b89\u88c5\u7684\u4ee3\u7406
+view_remoteAgentInstall_error_3 =
\u65e0\u6cd5\u770b\u5230\u5728[{0}]\u4e2d\u5b89\u88c5\u4e86\u4ee3\u7406
view_remoteAgentInstall_error_4 = \u5b89\u88c5\u4ee3\u7406\u5931\u8d25
view_remoteAgentInstall_error_5 = \u542f\u52a8\u4ee3\u7406\u5931\u8d25
view_remoteAgentInstall_error_6 = \u505c\u6b62\u4ee3\u7406\u5931\u8d25
@@ -772,7 +772,7 @@ view_remoteAgentInstall_promptHost = The host where the agent is or
will be inst
view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the
user on the host via SSH
view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not
specified, the default is 22
view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to
the host via SSH
-view_remoteAgentInstall_result = Result
+view_remoteAgentInstall_result = \u7ed3\u679c
view_remoteAgentInstall_resultCode = ResultCode
view_remoteAgentInstall_startAgent = \u542f\u52a8\u4ee3\u7406
view_remoteAgentInstall_startAgentResults = \u4ee3\u7406\u542f\u52a8\u7ed3\u679c: [{0}]
@@ -790,9 +790,9 @@ view_admin_systemSettings_saveFailure =
\u4fdd\u5b58\u7cfb\u7edf\u5c5e\u6027\u59
view_admin_systemSettings_fixBeforeSaving =
\u4fdd\u5b58\u524d\u8bf7\u4fee\u590d\u9519\u8bef
view_admin_systemSettings_group_general = \u57fa\u672c\u914d\u7f6e\u5c5e\u6027
view_admin_systemSettings_group_dataMgr =
\u6570\u636e\u7ba1\u7406\u5668\u57fa\u672c\u5c5e\u6027
-view_admin_systemSettings_group_baseline = Automatic Baseline Configuration Properties
+view_admin_systemSettings_group_baseline = \u81ea\u52a8Baseline\u914d\u7f6e\u5c5e\u6027
view_admin_systemSettings_group_ldap = LDAP\u914d\u7f6e\u5c5e\u6027
-view_admin_systemSettings_cannotLoadServerDetails = Cannot load server details
+view_admin_systemSettings_cannotLoadServerDetails =
\u65e0\u6cd5\u52a0\u8f7d\u670d\u52a1\u5668\u8be6\u60c5
view_admin_systemSettings_serverDetails = \u670d\u52a1\u5668\u8be6\u60c5
view_admin_systemSettings_serverDetails_buildNumber = Build Number
view_admin_systemSettings_serverDetails_tz = \u670d\u52a1\u5668\u65f6\u533a
@@ -815,7 +815,7 @@ view_admin_systemSettings_EnableDebugMode_name =
\u542f\u7528Debug\u6a21\u5f0f
view_admin_systemSettings_EnableDebugMode_desc =
\u5982\u679c\u542f\u7528,\u670d\u52a1\u5668\u5c06\u8fdb\u5165debug\u6a21\u5f0f.
view_admin_systemSettings_EnableExperimentalFeatures_name = Enable Experimental Features
view_admin_systemSettings_EnableExperimentalFeatures_desc = If enabled, any experimental
features that exist in the current product will be available.
-view_admin_systemSettings_DataMaintenance_name = Database Maintenance Period
+view_admin_systemSettings_DataMaintenance_name =
\u6570\u636e\u5e93\u7ef4\u62a4\u671f\u95f4
view_admin_systemSettings_DataMaintenance_desc = How often database maintenance is
performed (for example, vacuuming if using Postgres). This is specified in hours.
view_admin_systemSettings_AvailabilityPurge_name = Delete Availability Data Older Than
view_admin_systemSettings_AvailabilityPurge_desc = How old availability data must be
before being purged from the database. This is specified in days.
@@ -858,8 +858,8 @@ view_admin_systemSettings_LDAPBindPW_desc = The credentials of the
user used to
#------------------------------
view_admin_downloads_agentDownload = \u4ee3\u7406\u4e0b\u8f7d
view_admin_downloads_cliDownload = \u547d\u4ee4\u884c\u5ba2\u6237\u7aef\u4e0b\u8f7d
-view_admin_downloads_bundleDownload = Bundle Deployer Download
-view_admin_downloads_connectorsDownload = Connectors Download
+view_admin_downloads_bundleDownload = Bundle\u90e8\u7f72\u5668\u4e0b\u8f7d
+view_admin_downloads_connectorsDownload = \u8fde\u63a5\u5668\u4e0b\u8f7d
view_admin_downloads_agent_loadError =
\u65e0\u6cd5\u83b7\u5f97\u4ee3\u7406\u7248\u672c\u4fe1\u606f
view_admin_downloads_agent_version = \u4ee3\u7406\u7248\u672c
@@ -915,7 +915,7 @@ view_admin_downloads_connectors_help = Connectors are software that is
needed in
# Measurement Templates view
view_admin_measTemplates_title = Template Metric Collection Schedules
-view_admin_measTemplates_updateExisting_title = Update Existing Schedules
+view_admin_measTemplates_updateExisting_title =
\u66f4\u65b0\u5b58\u5728\u7684\u8ba1\u5212\u4efb\u52a1
view_admin_measTemplates_updateExisting_tooltip = Check this box to update the collection
schedules for the selected metrics on all existing resources of this type. If this is not
checked, the template schedules will only be applied to new resources of this type that
are added to inventory in the future.
#==================== Alerts ======================
@@ -952,14 +952,14 @@ view_alerts_ack_confirm_all = Acknowledge all alerts from this
source?
view_alerts_ack_success = Successfully acknowledged {0} alerts
view_alerts_ack_failure = Failed to acknowledge alerts with id''s: {0}
view_alerts_ack_failure_all = Failed to acknowledge all alerts from this source
-view_alert_details_loadFailed = Failed to fetch alert details
+view_alert_details_loadFailed = \u53d6\u5f97\u544a\u8b66\u8be6\u60c5\u5931\u8d25
view_alert_details_field_ack_by = \u786e\u8ba4\u8005
view_alert_details_field_ack_at = \u786e\u8ba4\u4e8e
-view_alert_details_field_recovery_info = Recovery Info
+view_alert_details_field_recovery_info = \u8fd8\u539f\u4fe1\u606f
view_alert_definition_for_type = \u67e5\u770b\u6a21\u677f
-view_alert_definition_for_group = View Group Definition
-view_alert_definitions_table_title_group = Group Alert Definitions
-view_alert_definitions_table_title_resource = Resource Alert Definitions
+view_alert_definition_for_group = \u67e5\u770b\u7ec4\u5b9a\u4e49
+view_alert_definitions_table_title_group = \u7ec4\u544a\u8b66\u5b9a\u4e49
+view_alert_definitions_table_title_resource = \u7ec4\u544a\u8b66\u5b9a\u4e49
view_alert_definitions_loadFailed = Failed to fetch alert definition data
view_alert_definitions_loadFailed_single = Failed to fetch data for alert definition with
id {0}
view_alert_definitions_enable_confirm = Enable the selected alert definition(s)?
@@ -973,8 +973,8 @@ view_alert_definitions_delete_success = Successfully deleted {0} alert
definitio
view_alert_definitions_delete_failure = Failed to deleted the selected alert definitions
view_alert_definitions_create_success = Alert definition successfully created
view_alert_definitions_create_failure = Alert definition creation failed
-view_alert_definitions_update_success = Alert definition successfully updated
-view_alert_definitions_update_failure = Alert definition update failed
+view_alert_definitions_update_success = \u544a\u8b66\u5b9a\u4e49\u66f4\u65b0\u6210\u529f
+view_alert_definitions_update_failure = \u544a\u8b66\u5b9a\u4e49\u66f4\u65b0\u5931\u8d25
view_alert_definition_condition_editor_option_label = Condition Type
view_alert_definition_condition_editor_option_availability = Availability Change
view_alert_definition_condition_editor_option_metric_threshold = Measurement Absolute
Value Threshold
@@ -984,7 +984,7 @@
view_alert_definition_condition_editor_option_metric_calltime_threshold = Call T
view_alert_definition_condition_editor_option_metric_calltime_change = Call Time Value
Change
view_alert_definition_condition_editor_option_metric_trait_change = Trait Value Change
view_alert_definition_condition_editor_option_operation = Operation Execution
-view_alert_definition_condition_editor_option_resource_configuration = Resource
Configuration Change
+view_alert_definition_condition_editor_option_resource_configuration =
\u8d44\u6e90\u914d\u7f6e\u6539\u53d8
view_alert_definition_condition_editor_option_event = \u4e8b\u4ef6\u68c0\u6d4b
view_alert_definition_condition_editor_avilability_tooltip = Specify the availability
state change that will trigger the condition.
view_alert_definition_condition_editor_avilability_value = \u53ef\u7528\u6027
@@ -1024,9 +1024,9 @@
view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip
view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait
whose value must change to trigger the condition.
view_alert_definition_condition_editor_metric_trait_change_value = Trait
view_alert_definition_condition_editor_operation_tooltip = Specify the result that must
occur when the selected operation is executed in order to trigger the condition.
-view_alert_definition_condition_editor_operation_value = Operation
+view_alert_definition_condition_editor_operation_value = \u64cd\u4f5c
view_alert_definition_condition_editor_operation_status = \u64cd\u4f5c\u72b6\u6001
-view_alert_definition_condition_editor_operation_status_inprogress = In Progress
+view_alert_definition_condition_editor_operation_status_inprogress = \u8fdb\u884c\u4e2d
view_alert_definition_condition_editor_operation_status_success = Success
view_alert_definition_condition_editor_operation_status_failure = Failure
view_alert_definition_condition_editor_operation_status_canceled = Canceled
@@ -1038,7 +1038,7 @@ view_alert_definition_condition_editor_event_severity_info = Info
view_alert_definition_condition_editor_event_severity_warn = Warn
view_alert_definition_condition_editor_event_severity_error = Error
view_alert_definition_condition_editor_event_severity_fatal = Fatal
-view_alert_definition_condition_editor_event_regex = Regular Expression
+view_alert_definition_condition_editor_event_regex = \u6b63\u5219\u8868\u8fbe\u5f0f
view_alert_definition_condition_editor_event_regex_tooltip = If specified, this is a
regular expression that must match a collected event message in order to trigger the
condition.
view_alert_definition_condition_editor_common_min = Minimum
view_alert_definition_condition_editor_common_avg = Average
@@ -1052,17 +1052,17 @@ view_alert_definition_notification_editor_loadFailed = Cannot get
alert senders
view_alert_definition_notification_editor_loadFailed_single = Cannot get alert sender
configuration definition
view_alert_definition_notification_editor_saveFailed = Cannot save the notification
configuration
view_alert_definition_notification_editor_field_sender = Sender
-view_alert_definition_notification_editor_field_configuration = Configuration
+view_alert_definition_notification_editor_field_configuration = \u914d\u7f6e
view_alert_definition_notification_editor_field_configuration_not_loaded = Unknown
view_alert_definition_notification_editor_field_configuration_loadFailed = Failed to get
notification configuration preview
view_alert_definition_notification_editor_delete_confirm =
\u4f60\u786e\u5b9a\u8981\u5220\u9664\u9009\u5b9a\u7684\u544a\u8b66\u901a\u77e5?
-view_alert_definition_notification_operation_editor_mode_title = Resource Selection Mode
-view_alert_definition_notification_operation_editor_mode_this = This Resource
+view_alert_definition_notification_operation_editor_mode_title =
\u8d44\u6e90\u9009\u62e9\u6a21\u5f0f
+view_alert_definition_notification_operation_editor_mode_this = \u8fd9\u4e2a\u8d44\u6e90
view_alert_definition_notification_operation_editor_mode_specific =
\u6307\u5b9a\u8d44\u6e90
-view_alert_definition_notification_operation_editor_mode_relative = Relative Resource
+view_alert_definition_notification_operation_editor_mode_relative =
\u76f8\u5173\u8d44\u6e90
view_alert_definition_notification_operation_editor_mode_unknown = UNKNOWN OPTION - THIS
IS A BUG
-view_alert_definition_notification_operation_editor_common_operation = Operation
-view_alert_definition_notification_operation_editor_specific_resource = Resource
+view_alert_definition_notification_operation_editor_common_operation = \u64cd\u4f5c
+view_alert_definition_notification_operation_editor_specific_resource = \u8d44\u6e90
view_alert_definition_notification_operation_editor_specific_pick_button = Pick
view_alert_definition_notification_operation_editor_specific_pick_text = Pick a
resource...
view_alert_definition_notification_operation_editor_specific_pick_error_invalid = Please
pick a resource
@@ -1103,12 +1103,12 @@ view_alert_definition_recovery_editor_loadFailed = Cannot build
recovery menu
view_alert_definition_recovery_editor_none_available = None
view_alert_common_tab_general = \u57fa\u672c\u5c5e\u6027
view_alert_common_tab_conditions = Conditions
-view_alert_common_tab_conditions_modal_title = Add Condition
-view_alert_common_tab_conditions_expression = Fire alert when
+view_alert_common_tab_conditions_modal_title = \u6dfb\u52a0\u6761\u4ef6
+view_alert_common_tab_conditions_expression = \u89e6\u53d1\u4e8b\u4ef6\u5f53
view_alert_common_tab_conditions_expression_tooltip = Determines if ANY or ALL of the
conditions must evaluate to true in order for the entire condition set to be considered
true.
-view_alert_common_tab_conditions_text = Condition
+view_alert_common_tab_conditions_text = \u6761\u4ef6
view_alert_common_tab_conditions_value = Value
-view_alert_common_tab_conditions_type_availability = Availability Change
+view_alert_common_tab_conditions_type_availability = \u53ef\u7528\u6027\u6539\u53d8
view_alert_common_tab_conditions_type_availability_down = Went down
view_alert_common_tab_conditions_type_availability_up = Came up
view_alert_common_tab_conditions_type_metric_threshold = Metric Value Threshold
@@ -1123,9 +1123,9 @@ view_alert_common_tab_conditions_type_metric_baseline =
\u6307\u6807\u57fa\u51c6
view_alert_common_tab_conditions_type_metric_baseline_verb = of
view_alert_common_tab_conditions_type_metric_change = Metric Value Change
view_alert_common_tab_conditions_type_metric_trait_change = Trait Change
-view_alert_common_tab_conditions_type_operation = Operation Execution
+view_alert_common_tab_conditions_type_operation = \u64cd\u4f5c\u6267\u884c
view_alert_common_tab_conditions_type_operation_status = with result status
-view_alert_common_tab_conditions_type_resource_configuration = Resource Configuration
Change
+view_alert_common_tab_conditions_type_resource_configuration = \u8d44\u6e90\u914d\u7f6e
Change
view_alert_common_tab_conditions_type_event = \u4e8b\u4ef6\u68c0\u6d4b
view_alert_common_tab_conditions_type_event_matching = with event source matching
view_alert_common_tab_conditions_recovery_enabled = Triggered ''{0}'' to
be re-enabled
@@ -1173,7 +1173,7 @@ view_autoDiscoveryQ_newAndIgnored = New and Ignored
view_autoDiscoveryQ_importFailure = \u5bfc\u5165\u8d44\u6e90\u5931\u8d25
view_autoDiscoveryQ_importSuccessful = \u6210\u529f\u5bfc\u5165\u88ab\u9009\u8d44\u6e90.
view_autoDiscoveryQ_ignoreFailure = Failed to ignore resources
-view_autoDiscoveryQ_ignoreSuccessful = You have successfully ignored the selected
resources.
+view_autoDiscoveryQ_ignoreSuccessful = \u6210\u529f\u5ffd\u7565\u9009\u5b9a\u8d44\u6e90.
view_autoDiscoveryQ_unignoreFailure = Failed to unignore resources
view_autoDiscoveryQ_unignoreSuccessful =
\u6210\u529f\u4f7f\u9009\u4e2d\u7684\u8d44\u6e90\u751f\u6548.
view_autoDiscoveryQ_noperm =
(\u60a8\u6ca1\u6709\u6743\u9650\u67e5\u770b\u81ea\u52a8\u53d1\u73b0\u961f\u5217)
@@ -1190,19 +1190,19 @@ view_autoDiscoveryQ_confirmSelect =
\u662f\u5426\u9009\u4e2d\u5b50\u8282\u70b9\u
#==================== Bundles ======================
# some common bundle terms
-view_bundle_bundle = \u63d2\u4ef6
-view_bundle_bundles = \u63d2\u4ef6\u96c6
-view_bundle_bundleDestinations = \u63d2\u4ef6\u76ee\u7684\u5730
-view_bundle_bundleDeployment = \u63d2\u4ef6\u90e8\u7f72
-view_bundle_bundleDeployments = \u63d2\u4ef6\u90e8\u7f72
-view_bundle_bundleFiles = \u63d2\u4ef6\u6587\u4ef6
-view_bundle_bundleType = \u63d2\u4ef6\u7c7b\u578b
-view_bundle_bundleVersion = \u63d2\u4ef6\u7248\u672c
-view_bundle_bundleVersions = \u63d2\u4ef6\u7248\u672c
-view_bundle_deploy = \u90e8\u7f72
-view_bundle_deployed = \u5df2\u90e8\u7f72
-view_bundle_deployDir = \u90e8\u7f72\u76ee\u5f55
-view_bundle_deployments = \u90e8\u7f72
+view_bundle_bundle = Bundle
+view_bundle_bundles = Bundles
+view_bundle_bundleDestinations = Bundle\u76ee\u7684\u5730
+view_bundle_bundleDeployment = Bundle\u53d1\u5e03
+view_bundle_bundleDeployments = Bundle\u53d1\u5e03
+view_bundle_bundleFiles =Bundle\u6587\u4ef6
+view_bundle_bundleType = Bundle\u7c7b\u578b
+view_bundle_bundleVersion = Bundle\u7248\u672c
+view_bundle_bundleVersions = Bundle\u7248\u672c
+view_bundle_deploy = \u53d1\u5e03
+view_bundle_deployed = \u5df2\u53d1\u5e03
+view_bundle_deployDir = \u53d1\u5e03\u76ee\u5f55
+view_bundle_deployments = \u53d1\u5e03
view_bundle_destinations = \u76ee\u7684\u5730
view_bundle_files = \u6587\u4ef6
view_bundle_latestVersion = \u6700\u65b0\u7248\u672c
@@ -1210,30 +1210,30 @@ view_bundle_recipe = Recipe
view_bundle_revert = \u8fd8\u539f
view_bundle_purge = \u6e05\u9664
view_bundle_versions = \u7248\u672c
-view_bundle_deleteConfirm = Are you sure you want to delete this bundle? All versions,
destinations and deployments for this bundle will also be deleted.
+view_bundle_deleteConfirm = \u4f60\u786e\u5b9a\u8981\u5220\u9664\u8fd9\u4e2abundle?
\u8fd9\u4e2abundle\u6240\u6709\u7684\u7248\u672c,
\u76ee\u7684\u5730\u548c\u90e8\u7f72\u5c06\u88ab\u5220\u9664.
# individual bundle views/wizards
view_bundle_fileListView_fileSize = \u6587\u4ef6\u5927\u5c0f
view_bundle_fileListView_md5 = MD5
view_bundle_fileListView_sha256 = SHA256
-view_bundle_fileListView_loadFailure = \u52a0\u8f7d\u63d2\u4ef6\u6587\u4ef6\u5931\u8d25
-view_bundle_version_backToBundle = \u8fd4\u56de\u63d2\u4ef6
-view_bundle_version_bundleVersionTagUpdateFailure =
\u66f4\u65b0\u63d2\u4ef6\u7248\u672c\u6807\u8bb0\u5931\u8d25
-view_bundle_version_bundleVersionTagUpdateSuccessful =
\u66f4\u65b0\u63d2\u4ef6\u7248\u672c\u6807\u8bb0\u6210\u529f
-view_bundle_version_deleteConfirm =
\u4f60\u786e\u5b9a\u8981\u5220\u9664\u63d2\u4ef6\u7248\u672c?
-view_bundle_version_deleteFailure = Failed to delete the bundle version [{0}]
-view_bundle_version_deleteSuccessful = You successfully deleted the bundle version [{0}]
-view_bundle_version_loadFailure = Failed to load bundle version
-view_bundle_tree_loadFailure = Failed to load bundle data
-view_bundle_revertWizard_title = \u63d2\u4ef6\u8fd8\u539f
-view_bundle_revertWizard_windowTitle = \u63d2\u4ef6\u8fd8\u539f\u5411\u5bfc
+view_bundle_fileListView_loadFailure = \u52a0\u8f7dbundle\u6587\u4ef6\u5931\u8d25
+view_bundle_version_backToBundle = \u8fd4\u56deBundle
+view_bundle_version_bundleVersionTagUpdateFailure =
\u66f4\u65b0bundle\u7248\u672c\u6807\u8bb0\u5931\u8d25
+view_bundle_version_bundleVersionTagUpdateSuccessful =
\u66f4\u65b0bundle\u7248\u672c\u6807\u8bb0\u6210\u529f
+view_bundle_version_deleteConfirm =
\u4f60\u786e\u5b9a\u8981\u5220\u9664bundle\u7248\u672c?
+view_bundle_version_deleteFailure = \u5220\u9664bundle\u7248\u672c[{0}]\u5931\u8d25
+view_bundle_version_deleteSuccessful = \u5220\u9664bundle\u7248\u672c[{0}]\u6210\u529f
+view_bundle_version_loadFailure = \u52a0\u8f7dbundle\u7248\u672c\u5931\u8d25
+view_bundle_tree_loadFailure = \u52a0\u8f7dbundle\u6570\u636e\u5931\u8d25
+view_bundle_revertWizard_title = Bundle\u8fd8\u539f
+view_bundle_revertWizard_windowTitle = Bundle\u8fd8\u539f\u5411\u5bfc
view_bundle_revertWizard_getInfoStep_name = \u63d0\u4f9b\u8fd8\u539f\u4fe1\u606f
-view_bundle_revertWizard_getInfoStep_revertDeployName = Revert Deploy Name
-view_bundle_revertWizard_getInfoStep_revertDeployDesc = Revert Deploy Description
+view_bundle_revertWizard_getInfoStep_revertDeployName =
\u90e8\u7f72\u8fd8\u539f\u540d\u79f0
+view_bundle_revertWizard_getInfoStep_revertDeployDesc =
\u90e8\u7f72\u8fd8\u539f\u63cf\u8ff0
view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}
view_bundle_revertWizard_getInfoStep_cleanDeploy = Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)
view_bundle_revertWizard_getInfoStep_getNameFailure = Failed to get revert deployment
name
-view_bundle_revertWizard_confirmStep_name = \u90e8\u7f72\u8fd8\u539f\u786e\u8ba4
+view_bundle_revertWizard_confirmStep_name = \u53d1\u5e03\u8fd8\u539f\u786e\u8ba4
view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = No live deployment was
found for the destination
view_bundle_revertWizard_confirmStep_noLiveDeployment = No live deployment was found for
the destination [{0}]
view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = The live deployment
cannot be reverted because there is no prior deployment
@@ -1253,8 +1253,8 @@ view_bundle_list_versionsCount = \u7248\u672c\u6570\u91cf
view_bundle_list_destinationsCount = Destinations Count
view_bundle_list_loadWithLatestFailure = Failed to load bundle with the latest version
data
view_bundleVersion_loadFailure = Failed to load bundle version data
-view_bundle_list_backToAll = Back to All Bundles
-view_bundle_list_tagUpdateFailure = Failed to update bundle tags
+view_bundle_list_backToAll = \u8fd4\u56de\u6240\u6709Bundles
+view_bundle_list_tagUpdateFailure = \u66f4\u65b0bundle\u6807\u8bb0\u5931\u8d25
view_bundle_list_tagUpdateSuccessful = You have successfully updated the bundle tags
view_bundle_list_deleteConfirm = Are you sure you want to delete the selected bundles?
view_bundle_list_deletesFailure = Failed to delete the bundles
@@ -1263,16 +1263,16 @@ view_bundle_list_deleteFailure = Failed to delete the bundle
[{0}]
view_bundle_list_deleteSuccessful = You successfully deleted the bundle [{0}]
view_bundle_list_error1 = Failed to load bundle to deploy [{0}]
view_bundle_list_error2 = Failed to get a single bundle to deploy [{0}]
-view_bundle_list_error3 = Failed to load bundle
+view_bundle_list_error3 = \u52a0\u8f7dbundle\u5931\u8d25
view_bundle_dest_group = \u7ec4
view_bundle_dest_created = \u5df2\u521b\u5efa
view_bundle_dest_deployDir = \u53d1\u5e03\u76ee\u5f55
view_bundle_dest_lastDeployedVersion = \u4e0a\u6b21\u53d1\u5e03\u7248\u672c
view_bundle_dest_lastDeploymentDate = \u4e0a\u6b21\u53d1\u5e03\u65e5\u671f
view_bundle_dest_lastDeploymentStatus = \u4e0a\u6b21\u53d1\u5e03\u72b6\u6001
-view_bundle_dest_loadFailure = Failed to load bundle destinations
+view_bundle_dest_loadFailure = \u52a0\u8f7dbundle\u76ee\u7684\u5730\u5931\u8d25
view_bundle_dest_loadFailureVersionInfo = Failed to load bundle destination deployed
version information
-view_bundle_dest_backToBundle = Back to Bundle
+view_bundle_dest_backToBundle = \u8fd4\u56deBundle
view_bundle_dest_tagUpdateFailure = Failed to update bundle destination tags
view_bundle_dest_tagUpdateSuccessful = You have successfully updated the bundle
destination tags
view_bundle_dest_purgeConfirm = This will purge the bundle content from all remote
machines. Are you sure you want to do this?
@@ -1283,10 +1283,10 @@ view_bundle_dest_deleteConfirm = Are you sure you want to delete
this bundle des
view_bundle_dest_deleteFailure = Failed to delete the bundle destination [{0}]
view_bundle_dest_deleteSuccessful = You successfully deleted the bundle destination
[{0}]
view_bundle_resDeployDS_loadFailure = Failed to load bundle resource deployments
-view_bundle_deploy_name = \u90e8\u7f72\u540d
-view_bundle_deploy_time = \u90e8\u7f72\u65f6\u95f4
+view_bundle_deploy_name = \u53d1\u5e03\u540d
+view_bundle_deploy_time = \u53d1\u5e03\u65f6\u95f4
view_bundle_deploy_loadDeployFailure = Failed to load bundle deployments
-view_bundle_deploy_action = Action
+view_bundle_deploy_action = \u64cd\u4f5c
view_bundle_deploy_installDetails = \u5b89\u88c5\u7ec6\u8282
view_bundle_deploy_backButton = \u8fd4\u56de
view_bundle_deploy_tagUpdateFailure = Failed to update bundle deployment tags
@@ -1295,14 +1295,14 @@ view_bundle_deploy_deploymentPlatforms = \u53d1\u5e03\u5e73\u53f0
view_bundle_deploy_selectARow = \u9009\u4e2d\u884c\u663e\u793a\u5b89\u88c5\u7ec6\u8282
view_bundle_deploy_operatingSystem = \u64cd\u4f5c\u7cfb\u7edf
view_bundle_deploy_loadFailure = Failed to load bundle deployment
-view_bundle_deploy_loadBundleFailure = Failed to find bundle
-view_bundle_deploy_deployedBy = \u90e8\u7f72\u8005
+view_bundle_deploy_loadBundleFailure = \u67e5\u627ebundle\u5931\u8d25
+view_bundle_deploy_deployedBy = \u53d1\u5e03\u8005
view_bundle_deploy_clickForError = Click the icon for the error message
view_bundle_deploy_deleteConfirm = Are you sure you want to delete this bundle
deployment?
view_bundle_deploy_deleteFailure = Failed to delete the bundle deployment [{0}]
view_bundle_deploy_deleteSuccessful = You successfully deleted the bundle deployment
[{0}]
-view_bundle_createWizard_title = Create Bundle
-view_bundle_createWizard_windowTitle = Bundle Creation Wizard
+view_bundle_createWizard_title = \u521b\u5efaBundle
+view_bundle_createWizard_windowTitle = Bundle\u521b\u5efa\u5411\u5bfc
view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}],
version = [{1}]
view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle
[{0}], version = [{1}] - the bundle may still exist in the database
view_bundle_createWizard_noBundleTypesSupported = No bundle types are supported - you
must deploy a valid plugin that supports bundle deployments
@@ -1322,12 +1322,12 @@ view_bundle_createWizard_uploadOption = \u4e0a\u4f20
view_bundle_createWizard_recipeOption = Recipe
view_bundle_createWizard_provideBundleDistro = Provide a Bundle Distribution
view_bundle_createWizard_clickToUploadRecipe = Click to load a recipe file
-view_bundle_createWizard_createFailure = Failed to create the bundle
+view_bundle_createWizard_createFailure = \u521b\u5efabundle\u5931\u8d25
view_bundle_createWizard_createSuccessful = You have successfully created a bundle named
[{0}] with a version of [{1}]
-view_bundle_deployWizard_deploying = \u90e8\u7f72\u4e2d...
-view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms
-view_bundle_deployWizard_deploymentCreated = Created Deployment...
+view_bundle_deployWizard_deploying = \u53d1\u5e03\u4e2d...
+view_bundle_deployWizard_deployStep = \u53d1\u5e03Bundle\u5230\u76ee\u7684\u5e73\u53f0
+view_bundle_deployWizard_deploymentCreated = \u521b\u5efa\u90e8\u7f72...
view_bundle_deployWizard_deploymentCreatedDetail = You have created the deployment [{0}]
with the description [{1}]
view_bundle_deployWizard_deploymentCreatedDetail_concise = You have created the
deployment [{0}]
view_bundle_deployWizard_destinationCreatedDetail = You have created the destination
[{0}] with the description [{1}]
@@ -1339,8 +1339,8 @@ view_bundle_deployWizard_error_1 = Failed to delete new deployment
on Cancel
view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel
view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!
view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}
-view_bundle_deployWizard_error_5 = Failed to Create Deployment!
-view_bundle_deployWizard_error_6 = Failed to create deployment: {0}
+view_bundle_deployWizard_error_5 = \u521b\u5efa\u53d1\u5e03\u5931\u8d25!
+view_bundle_deployWizard_error_6 = \u521b\u5efa\u53d1\u5e03\u5931\u8d25: {0}
view_bundle_deployWizard_error_7 = Failed to get deployment name.
view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop
down
view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage
@@ -1349,25 +1349,25 @@ view_bundle_deployWizard_error_11 = Failed to find defined
deployments.
view_bundle_deployWizard_error_12 = Failed to find defined bundles.
view_bundle_deployWizard_getConfigStep = Set Deployment Configuration
view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle
version.
-view_bundle_deployWizard_getDestStep = New Destination
-view_bundle_deployWizard_getDest_name = Destination Name
-view_bundle_deployWizard_getDest_desc = Destination Description
+view_bundle_deployWizard_getDestStep = \u65b0\u5efa\u76ee\u7684\u5730
+view_bundle_deployWizard_getDest_name = \u76ee\u7684\u5730\u540d
+view_bundle_deployWizard_getDest_desc = \u76ee\u7684\u5730\u63cf\u8ff0
view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination
platforms)
-view_bundle_deployWizard_getInfoStep = Provide Deployment Information
+view_bundle_deployWizard_getInfoStep = \u63d0\u4f9b\u53d1\u5e03\u4fe1\u606f
view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on
destination platform)
-view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description
-view_bundle_deployWizard_getInfo_deploymentName = Deployment Name
-view_bundle_deployWizard_getOptionsStep = Deploy Options
-view_bundle_deployWizard_getOptions_deployLater = Deploy Later
-view_bundle_deployWizard_getOptions_deployNow = Deploy Now
-view_bundle_deployWizard_getOptions_deployTime = Deployment Time
+view_bundle_deployWizard_getInfo_deploymentDesc = \u53d1\u5e03\u63cf\u8ff0
+view_bundle_deployWizard_getInfo_deploymentName = \u53d1\u5e03\u540d\u79f0
+view_bundle_deployWizard_getOptionsStep = \u53d1\u5e03\u9009\u9879
+view_bundle_deployWizard_getOptions_deployLater = \u7a0d\u5019\u53d1\u5e03
+view_bundle_deployWizard_getOptions_deployNow = \u9a6c\u4e0a\u53d1\u5e03
+view_bundle_deployWizard_getOptions_deployTime = \u53d1\u5e03\u65f6\u95f4
view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle
view_bundle_deployWizard_selectBundle_single = Select only a single bundle for
deployment.
view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version
-view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]
+view_bundle_deployWizard_selectVersion_latest = \u6700\u65b0\u7248\u672c [{0}]
view_bundle_deployWizard_selectVersion_live = Live Version [{0}]
view_bundle_deployWizard_selectVersion_select = Select Version from List:
-view_bundle_deployWizard_title = Bundle Deployment Wizard
+view_bundle_deployWizard_title = Bundle\u53d1\u5e03\u5411\u5bfc
# =================== Measurement Views =====================
@@ -1495,7 +1495,7 @@ view_dashboards_portlets_refresh_multiple_min = {0} \u5206\u949f
view_dashboards_portlets_refresh_success1=\u6210\u529f\u4fee\u6539portlets\u81ea\u52a8\u5237\u65b0\u7684\u95f4\u9694\u65f6\u95f4
view_dashboards_portlets_refresh_success2=\u6210\u529f\u505c\u7528portlets\u81ea\u52a8\u5237\u65b0\u7684\u91cd\u8f7d
view_dashboardsManager_error1 = \u6dfb\u52a0\u65b0\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
-view_dashboardsManager_message_title_details =
<h1>\u6b22\u8fce\u4f7f\u7528RHQ</h1>\n<p>RHQ\u9879\u76ee\u662f\u4e00\u4e2a\u62bd\u8c61\u7684\u3001\u57fa\u4e8e\u63d2\u4ef6\u7684\u7cfb\u7edf\u7ba1\u7406\u5957\u4ef6\u3002\u901a\u8fc7\u4e00\u7cfb\u5217\u6838\u5fc3\u529f\u80fd\u63d0\u4f9b\u591a\u4ea7\u54c1\u548c\u5e73\u53f0\u7684\u53ef\u6269\u5c55\u7684\u96c6\u6210\u7ba1\u7406.
\u672c\u9879\u76ee\u5206\u5c42\u6a21\u5757\u5177\u6709\u7075\u6d3b\u90e8\u7f72\u67b6\u6784.
\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6838\u5fc3\u7528\u6237\u754c\u9762\u4f9b\u8de8\u6574\u4e2a\u4f01\u4e1a\u7684\u5ba1\u8ba1\u548c\u5386\u53f2\u7ba1\u7406.
\u670d\u52a1\u5668/\u4ee3\u7406\u67b6\u6784\u63d0\u4f9b\u8fdc\u7a0b\u7ba1\u7406,\u63d2\u4ef6\u63d0\u4f9b\u7279\u5b9a\u4ea7\u54c1\u7684\u7ba1\u7406\u652f\u6301.</p>\n
<p>\u901a\u8fc7\u5355\u51fb(\u7f16\u8f91\u6a21\u5f0f)\u6309\u94ae\u53ef\u4ee5\u7f16\u8f91\u9ed8\u8ba4\u7edf\u8ba1\u8868\u76d8.</p>
+view_dashboardsManager_message_title_details =
<h1>\u6b22\u8fce\u4f7f\u7528RHQ</h1>\n<p>RHQ\u9879\u76ee\u662f\u4e00\u4e2a\u62bd\u8c61\u7684\u3001\u57fa\u4e8e\u63d2\u4ef6\u7684\u7cfb\u7edf\u7ba1\u7406\u5957\u4ef6\u3002\u901a\u8fc7\u4e00\u7cfb\u5217\u6838\u5fc3\u529f\u80fd\u63d0\u4f9b\u591a\u4ea7\u54c1\u548c\u5e73\u53f0\u7684\u53ef\u6269\u5c55\u7684\u96c6\u6210\u7ba1\u7406.
\u672c\u9879\u76ee\u5206\u5c42\u6a21\u5757\u5177\u6709\u7075\u6d3b\u53d1\u5e03\u67b6\u6784.
\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6838\u5fc3\u7528\u6237\u754c\u9762\u4f9b\u8de8\u6574\u4e2a\u4f01\u4e1a\u7684\u5ba1\u8ba1\u548c\u5386\u53f2\u7ba1\u7406.
\u670d\u52a1\u5668/\u4ee3\u7406\u67b6\u6784\u63d0\u4f9b\u8fdc\u7a0b\u7ba1\u7406,\u63d2\u4ef6\u63d0\u4f9b\u7279\u5b9a\u4ea7\u54c1\u7684\u7ba1\u7406\u652f\u6301.</p>\n
<p>\u901a\u8fc7\u5355\u51fb(\u7f16\u8f91\u6a21\u5f0f)\u6309\u94ae\u53ef\u4ee5\u7f16\u8f91\u9ed8\u8ba4\u7edf\u8ba1\u8868\u76d8.</p>
view_portlet_factory_invalidPortlet =
\u8fd9\u662f\u4e00\u4e2a\u9648\u65e7\u5e76\u4e14\u5df2\u7ecf\u5931\u6548\u7684portlet.
\u8bf7\u5220\u9664.
@@ -1550,7 +1550,7 @@ view_portlet_help_problemResources = This portlet displays the
current user''s a
view_portlet_help_recentAlerts = This portlet displays alerts recently fired on the
current user''s viewable inventory.
view_portlet_help_recentlyAdded = This portlet displays resources that have recently been
imported into inventory.
view_portlet_help_tagCloud = This portlet displays the relative tag counts for the
current user''s inventory.
-view_portlet_help_none = There is no help available for this portlet.
+view_portlet_help_none = \u8fd9\u4e2aportlet\u6ca1\u6709\u5e2e\u52a9.
view_portlet_configure_needed = \u70b9\u51fb\u8bbe\u7f6e\u6309\u94ae\u914d\u7f6eportlet.
view_portlet_configure_notNeeded = \u6b64 portlet\u65e0\u9700\u914d\u7f6e.
@@ -1577,7 +1577,7 @@ view_portlet_operations_config_show_last = show last
view_portlet_operations_config_show_next = show next
view_portlet_operations_disabled =
(\u76ee\u524d\u7ed3\u679c\u96c6\u7981\u7528.\u4fee\u6539\u8bbe\u7f6e\u4f7f\u5176\u751f\u6548.
-view_portlet_platform_platform_error_1 = Failed to load platform metrics
+view_portlet_platform_platform_error_1 =
\u52a0\u8f7d\u5e73\u53f0\u6307\u6807\u5931\u8d25
view_portlet_platform_type_error_1 = \u65e0\u6cd5\u52a0\u8f7d\u7c7b\u578b\u6570\u636e
view_portlet_problemResources_config_display_maximum =
\u80fd\u5c55\u793a\u7684\u95ee\u9898\u8d44\u6e90\u7684\u6700\u5927\u6570.
@@ -1618,26 +1618,26 @@ view_inventory_summary_agent_title =
\u5ba2\u6237\u7aef\u7ba1\u7406\u6b64\u8d44\
view_inventory_dynagroupDefs = \u52a8\u6001\u7ec4\u5b9a\u4e49
view_metric_traits = Traits
view_metric_viewTraitHistory = Value History for Trait [{0}]
-view_inventory_eventHistory_groupEventHistory = Group Event History
-view_inventory_eventHistory_resourceEventHistory = Resource Event History
-view_inventory_eventHistory_sourceFilter = Source Filter
-view_inventory_eventHistory_detailsFilter = Details Filter
-view_inventory_eventHistory_severityFilter = Severity Filter
-view_inventory_eventHistory_timestamp = Timestamp
-view_inventory_eventHistory_severity = Severity
-view_inventory_eventHistory_details = Details
-view_inventory_eventHistory_sourceLocation = Source Location
+view_inventory_eventHistory_groupEventHistory = \u7ec4\u5386\u53f2\u4e8b\u4ef6
+view_inventory_eventHistory_resourceEventHistory = \u8d44\u6e90\u5386\u53f2\u4e8b\u4ef6
+view_inventory_eventHistory_sourceFilter = Source\u8fc7\u6ee4
+view_inventory_eventHistory_detailsFilter = \u8be6\u60c5\u8fc7\u6ee4
+view_inventory_eventHistory_severityFilter = \u4e25\u91cd\u7ea7\u8fc7\u6ee4
+view_inventory_eventHistory_timestamp = \u65f6\u95f4\u6233
+view_inventory_eventHistory_severity = \u4e25\u91cd\u7ea7\u522b
+view_inventory_eventHistory_details = \u8be6\u60c5
+view_inventory_eventHistory_sourceLocation = Source\u4f4d\u7f6e
view_inventory_eventHistory_deleteSuccessful = You have successfully deleted [{0}] events
for [{1}]
view_inventory_eventHistory_deleteFailed = Failed to deleted selected events for [{0}]
-view_inventory_eventHistory_purgeSuccessful = You have successfully purged [{0}] events
for [{1}]
-view_inventory_eventHistory_purgeFailed = Failed to purge events for [{0}]
-view_inventory_eventDetails_loadFailed = An error occurred loading the event details
-view_inventory_groups_resourceGroups = Resource Groups
+view_inventory_eventHistory_purgeSuccessful =
\u6210\u529f\u5220\u9664[{0}]\u4e2a\u4e8b\u4ef6\u4e3a[{1}]
+view_inventory_eventHistory_purgeFailed =
\u4e3a[{0}]\u79fb\u9664\u4e8b\u4ef6\u5931\u8d25
+view_inventory_eventDetails_loadFailed =
\u52a0\u8f7d\u4e8b\u4ef6\u8be6\u60c5\u5931\u8d25
+view_inventory_groups_resourceGroups = \u8d44\u6e90\u7ec4
view_inventory_groups_children = \u5b50\u7ec4
view_inventory_groups_descendants = \u540e\u4ee3\u7ec4
view_inventory_groups_deleteSuccessful =
\u6210\u529f\u7684\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4
view_inventory_groups_deleteFailed =
\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4\u5931\u8d25
-view_inventory_groups_loadFailed = Failed to load group composite data
+view_inventory_groups_loadFailed =
\u52a0\u8f7d\u7ec4\u7ec4\u5408\u6570\u636e\u5931\u8d25
view_inventory_resource_loadFailed = id\u4e3a
[{0}]\u7684\u8d44\u6e90\u4e0d\u5b58\u5728\u6216\u8005\u4e0d\u53ef\u8fbe
view_inventory_resources_deleteConfirm =
\u786e\u5b9a\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90\uff1f
view_inventory_resources_deleteSuccessful =
\u6210\u529f\u7684\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90
@@ -1645,7 +1645,7 @@ view_inventory_resources_deleteFailed =
\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e
view_inventory_resources_uninventoryConfirm =
\u786e\u5b9a\u628a\u9009\u4e2d\u7684\u8d44\u6e90\u4ece\u6e05\u5355\u4e2d\u5220\u9664?
\u6ce8\u610f\uff1a\u5982\u679c\u67d0\u4e2a\u9009\u4e2d\u7684\u8d44\u6e90\u4f9d\u7136\u5b58\u5728,
\u5219\u7cfb\u7edf\u4f1a\u5728\u6b64\u8d44\u6e90\u7684\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e0b\u6b21\u63a2\u7d22\u626b\u63cf\u65f6\u91cd\u65b0\u52a0\u8f7d\u6b64\u8d44\u6e90.
view_inventory_resources_uninventorySuccessful
=\u6210\u529f\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90
view_inventory_resources_uninventoryFailed =
\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90\u5931\u8d25
-view_inventory_resources_loadFailed = Failed to load resource composite data
+view_inventory_resources_loadFailed =
\u52a0\u8f7d\u8d44\u6e90\u7ec4\u5408\u6570\u636e\u5931\u8d25
view_inventory_resources_title = Resources
view_inventory_resources_title_children = \u5b50\u8d44\u6e90
view_inventory_resources_title_members = \u6210\u5458\u8d44\u6e90
@@ -1657,16 +1657,16 @@ view_resource_inventory_activity_no_recent_config_history=No
configuration chang
view_resource_inventory_activity_no_recent_events =No events in the last 24 hours
view_resource_inventory_activity_no_recent_metrics=This resource has no recent metrics
view_resource_inventory_activity_no_recent_oob=No OOB conditions found
-view_resource_inventory_activity_no_recent_operations=No recent operation history
-view_resource_inventory_activity_no_recent_pkg_history=No recent package history
+view_resource_inventory_activity_no_recent_operations=\u6ca1\u6709\u6700\u65b0\u64cd\u4f5c\u5386\u53f2
+view_resource_inventory_activity_no_recent_pkg_history=\u6ca1\u6709\u6700\u65b0\u5305\u5386\u53f2
view_resource_inventory_childhistory_createdChild = Created Child
view_resource_inventory_childhistory_deletedChild = Deleted Child
view_resource_inventory_childhistory_status_invalidArtifact = Invalid Artifact
view_resource_inventory_childhistory_status_invalidConfig = \u65e0\u6548\u914d\u7f6e
view_resource_inventory_childhistory_filterTitle = Past N Days
-view_resource_monitor_availability_loadFailed = Failed to load availability history
+view_resource_monitor_availability_loadFailed =
\u52a0\u8f7d\u53ef\u7528\u6027\u5386\u53f2\u8bb0\u5f55\u5931\u8d25
view_resource_monitor_graphs_noneAvailable = No graphs available
-view_resource_monitor_graphs_loadFailed = Failed to load graph data
+view_resource_monitor_graphs_loadFailed =
\u52a0\u8f7d\u7ed8\u56fe\u6570\u636e\u5931\u8d25
view_resource_monitor_graphs_lookupFailed = Failed to find resource for graph
view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart
view_resource_monitor_graph_live_tooltip = Click for a live graph of current values
@@ -1689,37 +1689,37 @@ view_resource_monitor_calltime_editFailed = Call time data can not
be edited
view_resource_monitor_schedules_title = Resource Metric Collection Schedules
view_resource_title_tagUpdateFailed = Failed to update resource tags
view_resource_title_component_errors_tooltip = Shows managed component errors. Click for
details
-view_tree_common_loadFailed_generic = Failed to load data for tree
-view_tree_common_loadFailed_root = Failed to load root for tree
+view_tree_common_loadFailed_generic = \u52a0\u8f7d\u6811\u5931\u8d25
+view_tree_common_loadFailed_root = \u52a0\u8f7d\u6811\u6839\u8282\u70b9\u5931\u8d25
view_tree_common_loadFailed_descendants = Failed to load descendants for tree
-view_tree_common_loadFailed_children = Failed to load children for node
+view_tree_common_loadFailed_children = \u52a0\u8f7d\u5b50\u8282\u70b9\u5931\u8d25
view_tree_common_createFailed_autoCluster = Failed to create or update autocluster
backing group
-view_tree_common_loadFailed_group = Failed to load group with id [{0}]
-view_tree_common_loadFailed_groupTree = Failed to load group tree
+view_tree_common_loadFailed_group = \u52a0\u8f7did\u4e3a[{0}]\u7684\u7ec4\u5931\u8d25
+view_tree_common_loadFailed_groupTree = \u52a0\u8f7d\u7ec4\u6811\u5931\u8d25
view_tree_common_loadFailed_selection = Failed to select this node
-view_tree_common_loadFailed_node = Failed to load data for this node
+view_tree_common_loadFailed_node =
\u52a0\u8f7d\u8fd9\u4e2a\u8282\u70b9\u6570\u636e\u5931\u8d25
view_tree_common_loadFailed_create = Failed to create view for this node
view_tree_common_loadFailed_update = Failed to update view for this node
view_tree_common_contextMenu_loadFail_children = Failed to load platform manual add
children
-view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboards
-view_tree_common_contextMenu_loadFail_group = Failed to load group for context menu
+view_tree_common_contextMenu_loadFail_dashboards =
\u52a0\u8f7d\u7528\u6237\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
+view_tree_common_contextMenu_loadFail_group = \u52a0\u8f7dgroup for context
menu\u5931\u8d25
view_tree_common_contextMenu_type_name_label = Type: {0}
-view_tree_common_contextMenu_resourceConfiguration = Resource Configuration
-view_tree_common_contextMenu_editPluginConfiguration = Edit [{0}] Plugin Configuration
-view_tree_common_contextMenu_editResourceConfiguration = Edit [{0}] Resource
Configuration
-view_tree_common_contextMenu_operations = Operations
+view_tree_common_contextMenu_resourceConfiguration = \u8d44\u6e90\u914d\u7f6e
+view_tree_common_contextMenu_editPluginConfiguration =
\u7f16\u8f91[{0}]\u63d2\u4ef6\u914d\u7f6e
+view_tree_common_contextMenu_editResourceConfiguration =
\u7f16\u8f91[{0}]\u8d44\u6e90\u914d\u7f6e
+view_tree_common_contextMenu_operations = \u64cd\u4f5c
view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running
operations
view_tree_common_contextMenu_measurements = Measurements
-view_tree_common_contextMenu_addChartToDashboard = Add chart to dashboard [{0}]
+view_tree_common_contextMenu_addChartToDashboard =
\u6dfb\u52a0\u56fe\u5230\u7edf\u8ba1\u8868\u76d8[{0}]
view_tree_common_contextMenu_resourceGraph = Resource Metric Graph
view_tree_common_contextMenu_groupGraph = Group Metric Graph
view_tree_common_contextMenu_saveChartToDashboardSuccessful =
\u6210\u529f\u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8 [{0}]
view_tree_common_contextMenu_saveChartToDashboardFailure =
\u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
view_tree_common_contextMenu_loadFailed_dashboard =
\u52a0\u8f7d\u7528\u6237\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
-view_tree_common_contextMenu_loadFailed_manualAddChildren = Failed to load platform
manual add children
+view_tree_common_contextMenu_loadFailed_manualAddChildren = \u52a0\u8f7dplatform manual
add children\u5931\u8d25
view_tree_group_error_updateAutoCluster = Failed to create or update autocluster backing
group. key: [{0}]
-view_tabs_common_activity = Activity
-view_tabs_common_agent = Agent
+view_tabs_common_activity = \u6d3b\u52a8
+view_tabs_common_agent = \u4ee3\u7406
view_tabs_common_summary = \u6982\u8981
view_tabs_common_overview = \u6982\u89c8
view_tabs_common_dashboard = \u7edf\u8ba1\u8868\u76d8
@@ -1753,19 +1753,19 @@ view_tabs_common_deployed = \u5df2\u53d1\u5e03
view_tabs_common_new = new
view_tabs_common_subscriptions = \u8fd0\u884c\u673a\u5236
view_titleBar_common_updateTagsSuccessful =
[{0}]\u7684\u6807\u7b7e\u5df2\u7ecf\u66f4\u65b0
-view_titleBar_common_updateTagsFailure = Failed to update the tags for [{0}]
-view_titleBar_common_loadTagsFailure = Failed to load the tags for [{0}]
-view_titleBar_common_clickToRemoveFav = Click to remove this as a favorite
-view_titleBar_common_clickToAddFav = Click to add this as a favorite
+view_titleBar_common_updateTagsFailure = \u4e3a[{0}]\u66f4\u65b0\u6807\u7b7e\u5931\u8d25
+view_titleBar_common_loadTagsFailure = \u4e3a[{0}]\u52a0\u8f7d\u6807\u7b7e\u5931\u8d25
+view_titleBar_common_clickToRemoveFav = \u5355\u51fb\u79fb\u51fa\u6536\u85cf\u5939
+view_titleBar_common_clickToAddFav = \u6dfb\u52a0\u5230\u6536\u85cf\u5939
view_titleBar_common_removedFav = \u79fb\u52a8[{0}]\u5230\u5e38\u7528\u83dc\u5355
view_titleBar_common_addedFav = \u6dfb\u52a0 [{0}]\u5230\u5e38\u7528\u83dc\u5355
view_titleBar_common_removedFavFailure =
\u79fb\u52a8[{0}]\u5230\u5e38\u7528\u83dc\u5355\u5931\u8d25
-view_titleBar_common_addedFavFailure = Failed to add [{0}] as a favorite
+view_titleBar_common_addedFavFailure =
\u6dfb\u52a0[{0}]\u5230\u6536\u85cf\u5939\u5931\u8d25
view_titleBar_group_failInfo = Failed to get general info on group [{0}] with ID [{1}]
view_titleBar_group_summary_collapsedTooltip =
\u70b9\u51fb\u67e5\u770b\u6b64\u7ec4\u7684\u66f4\u591a\u4fe1\u606f
view_titleBar_group_summary_expandedTooltip =
\u70b9\u51fb\u9690\u85cf\u6b64\u7ec4\u7684\u66f4\u591a\u4fe1\u606f
view_dynagroup_expressionSet = \u8868\u8fbe\u5f0f\u7ec4
-view_dynagroup_recalculationInterval = Recalculation Interval (ms)
+view_dynagroup_recalculationInterval = \u91cd\u7b97\u95f4\u9694 (ms)
view_dynagroup_lastCalculationTime = \u4e0a\u6b21\u8ba1\u7b97\u6301\u7eed\u65f6\u95f4
view_dynagroup_nextCalculationTime = \u4e0b\u6b21\u8ba1\u7b97\u6301\u7eed\u65f6\u95f4
view_dynagroup_definitionCreated =
\u60a8\u6210\u529f\u7684\u521b\u5efa\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49
@@ -1774,10 +1774,10 @@ view_dynagroup_definitionAlreadyExists =
\u5df2\u7ecf\u5b58\u5728\u4ee5\u8be5\u5
view_dynagroup_saveSuccessful =
\u60a8\u6210\u529f\u7684\u4fdd\u5b58\u4e86\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49
view_dynagroup_saveFailure =
\u4fdd\u5b58\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49\u5931\u8d25
view_dynagroup_singleSaveFailure = \u62a5\u9519\u4e86 -
\u6b63\u5e38\u5e94\u8be5\u53ea\u521b\u5efa\u5355\u4e2a\u7ec4\u5b9a\u4e49,
\u4f46\u662f\u5374\u521b\u5efa\u4e86[{0}]\u4e2a.
-view_dynagroup_saveAndRecalculate = Save & Recalculate
-view_dynagroup_recalculate = Recalculate
-view_dynagroup_recalcSuccessful = You have successfully recalculated this group
definition
-view_dynagroup_recalcFailure = Failed to recalculated this group definition
+view_dynagroup_saveAndRecalculate = \u4fdd\u5b58&\u91cd\u7b97
+view_dynagroup_recalculate = \u91cd\u7b97
+view_dynagroup_recalcSuccessful = \u7ec4\u5b9a\u4e49\u5df2\u7ecf\u91cd\u65b0\u8ba1\u7b97
+view_dynagroup_recalcFailure = \u91cd\u7b97\u7ec4\u5b9a\u4e49\u5931\u8d25
view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group
definitions
view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group
definitions
view_dynagroup_deleteSuccessfulSelection = \u6210\u529f\u7684\u5220\u9664
[{0}]\u7ec4\u5b9a\u4e49
@@ -1809,8 +1809,8 @@ view_dynagroup_exprBuilder_expression = \u8868\u8fbe\u5f0f
view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is
represented by the selections in the form below. This text will be added to your group
definition expression text when you click the "Add Expression" button.
view_dynagroup_exprBuilder_addExpression = \u6dfb\u52a0\u8868\u8fbe\u5f0f
view_dynagroup_exprBuilder_value_tooltip =
\u67e5\u8be2\u8868\u8fbe\u5f0f\u5b57\u7b26\u4e32\u7684\u503c
-view_dynagroup_exprBuilder_comparisonType = Comparison Type
-view_dynagroup_exprBuilder_comparisonType_tooltip = Comparison Type
+view_dynagroup_exprBuilder_comparisonType = \u5bf9\u6bd4\u7c7b\u578b
+view_dynagroup_exprBuilder_comparisonType_tooltip = \u5bf9\u6bd4\u7c7b\u578b
view_dynagroup_exprBuilder_unset = \u6062\u590d\u8bbe\u7f6e
view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a
null value in the database. This is not possible using the "=" operator because
of how databases store and query data.
view_dynagroup_exprBuilder_propertyName = \u5c5e\u6027\u540d\u79f0
@@ -2151,7 +2151,7 @@ view_menuBar_logout = \u6ce8\u9500
view_searchBar_resources = \u8d44\u6e90
view_searchBar_resourceGroups = \u8d44\u6e90\u7ec4
# TODO: i18n pluralization
-view_searchBar_welcomeMessage = \u641c\u7d22\u4e86 {0}\u79d2
+view_searchBar_welcomeMessage = \u641c\u7d22\u4e86{0}\u79d2
view_searchBar_defaultPattern = \u5b9a\u4e49\u81ea\u5df1\u7684\u6837\u5f0f
view_searchBar_error_selectSavedSearch =
''\u9009\u62e9\u4fdd\u5b58\u7684\u641c\u7d22\u65f6\u51fa\u9519''
view_searchBar_query = \u67e5\u8be2
commit 7cbd8d79e13608b826e696375811d9e75a7d7c01
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu May 26 11:45:29 2011 -0400
Fixing more FK constraint violoations happening during test runs
diff --git
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
index fe4dfd4..3f1d88e 100644
---
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
+++
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
@@ -79,6 +79,7 @@
<rhq_availability/>
<rhq_measurement_sched/>
<rhq_content_source/>
+ <rhq_repo_content_src_map/>
<rhq_package/>
<rhq_bundle/>
@@ -92,4 +93,4 @@
md5="1234567"
ctime="12345"
mtime="123456"/>
-</dataset>
\ No newline at end of file
+</dataset>
diff --git
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
index 2ac6566..55aa1f2 100644
---
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
+++
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
@@ -103,7 +103,8 @@
<rhq_availability/>
<rhq_measurement_sched/>
<rhq_content_source/>
+ <rhq_repo_content_src_map/>
<rhq_package/>
<rhq_bundle/>
<rhq_plugin/>
-</dataset>
\ No newline at end of file
+</dataset>
commit fd23bd7219bc073748be07238b618b30a0cf5d62
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu May 26 11:00:57 2011 -0400
Attempting to fix test failures
diff --git
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
index f2f0fb4..fe4dfd4 100644
---
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
+++
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml
@@ -78,6 +78,7 @@
<rhq_alert_notif_log/>
<rhq_availability/>
<rhq_measurement_sched/>
+ <rhq_content_source/>
<rhq_package/>
<rhq_bundle/>
diff --git
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
index 5d38d1f..2ac6566 100644
---
a/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
+++
b/modules/enterprise/server/jar/src/test/resources/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.xml
@@ -102,6 +102,7 @@
<rhq_alert_notif_log/>
<rhq_availability/>
<rhq_measurement_sched/>
+ <rhq_content_source/>
<rhq_package/>
<rhq_bundle/>
<rhq_plugin/>
commit 712d0e14d2cd4edb2be070d8028f83c4552b50bb
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu May 26 00:10:11 2011 +0200
Refactoring the way plugin container can be started up in the tests
and converted the resource upgrade tests to use this new approach.
When the test inherits from PluginContainerTest or uses it as an TestNG
listener, the plugin container can be configured declaratively using
an @PluginContainerSetup annotation. There is a couple of static methods
on the PluginContainerTest class to work with such preconfigured PC
(like starting it).
The JMockTest generic base class was augmented so that it can be used as both
a base class to tests and a TestNG listener.
diff --git a/modules/core/plugin-container/pom.xml
b/modules/core/plugin-container/pom.xml
index fd14685..8cb24a4 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -102,6 +102,8 @@
<type>zip</type>
</dependency>
+ <!-- Test dependencies -->
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>test-utils</artifactId>
@@ -360,7 +362,18 @@
-->
</configuration>
</plugin>
-
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>jar</goal>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResType.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResType.java
new file mode 100644
index 0000000..e2c7f5c
--- /dev/null
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResType.java
@@ -0,0 +1,70 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.core.pc.upgrade;
+
+/**
+ * A helper class representing a resource type in a simplistic manner.
+ *
+ *
+ * @author Lukas Krejci
+ */
+class ResType {
+ private String resourceTypeName;
+ private String resourceTypePluginName;
+
+ public ResType(String resourceTypeName, String resourceTypePluginName) {
+ super();
+ this.resourceTypeName = resourceTypeName;
+ this.resourceTypePluginName = resourceTypePluginName;
+ }
+
+ public String getResourceTypeName() {
+ return resourceTypeName;
+ }
+
+ public String getResourceTypePluginName() {
+ return resourceTypePluginName;
+ }
+
+ @Override
+ public int hashCode() {
+ return resourceTypeName.hashCode() * resourceTypePluginName.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this) {
+ return true;
+ }
+
+ if (!(other instanceof ResType)) {
+ return false;
+ }
+
+ ResType o = (ResType)other;
+
+ return resourceTypeName.equals(o.getResourceTypeName()) &&
resourceTypePluginName.equals(o.getResourceTypePluginName());
+ }
+
+ @Override
+ public String toString() {
+ return "ResType[name='" + resourceTypeName + "',
plugin='" + resourceTypePluginName + "']";
+ }
+}
\ No newline at end of file
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
index 5f493c9..6821b44 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
@@ -27,7 +27,6 @@ import static org.testng.Assert.fail;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -36,25 +35,25 @@ import java.util.Map;
import java.util.Set;
import org.jmock.Expectations;
-import org.jmock.Mockery;
import org.testng.annotations.Test;
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.agent.discovery.InvalidPluginConfigurationClientException;
import org.rhq.core.clientapi.server.discovery.InvalidInventoryReportException;
import org.rhq.core.clientapi.server.discovery.InventoryReport;
-import org.rhq.core.clientapi.server.discovery.StaleTypeException;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pc.PluginContainer;
+import org.rhq.core.pc.ServerServices;
import org.rhq.core.pc.inventory.InventoryManager;
import org.rhq.core.pc.inventory.ResourceContainer;
import org.rhq.core.pc.inventory.ResourceContainer.ResourceComponentState;
import org.rhq.core.pc.upgrade.plugins.multi.base.BaseResourceComponentInterface;
import org.rhq.core.pluginapi.upgrade.ResourceUpgradeFacet;
+import org.rhq.test.pc.PluginContainerSetup;
/**
* The plugins and their resource types form the following dependency structure:
@@ -74,42 +73,29 @@ import org.rhq.core.pluginapi.upgrade.ResourceUpgradeFacet;
*
* @author Lukas Krejci
*/
-@Test(sequential = true, invocationCount = 1)
+@Test(singleThreaded = true, invocationCount = 1)
public class ResourceUpgradeFailureHandlingTest extends ResourceUpgradeTestBase {
+ //test names
+ private static final String SUCCESS_TEST = "SUCCESS_TEST";
+ private static final String FAILURE_ON_LEAF_TEST = "FAILURE_ON_LEAF_TEST";
+ private static final String FAILURE_ON_DEPENDENCIES_TEST =
"FAILURE_ON_DEPENDENCIES_TEST";
+ private static final String
RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST =
"RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST";
+
//plugin names
- private static final String BASE_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-base-1.0.0.jar";
- private static final String PARENT_DEP_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-1.0.0.jar";
- private static final String PARENT_DEP_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-2.0.0.jar";
- private static final String PARENT_SIBLING_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentsibling-1.0.0.jar";
- private static final String PARENT_SIBLING_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentsibling-2.0.0.jar";
- private static final String ROOT_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-root-1.0.0.jar";
- private static final String SIBLING_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-sibling-1.0.0.jar";
- private static final String SIBLING_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-sibling-2.0.0.jar";
- private static final String TEST_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-test-1.0.0.jar";
- private static final String TEST_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-test-2.0.0.jar";
+ private static final String BASE_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-base-1.0.0.jar";
+ private static final String PARENT_DEP_V1_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentdep-1.0.0.jar";
+ private static final String PARENT_DEP_V2_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentdep-2.0.0.jar";
+ private static final String PARENT_SIBLING_V1_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentsibling-1.0.0.jar";
+ private static final String PARENT_SIBLING_V2_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentsibling-2.0.0.jar";
+ private static final String ROOT_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-root-1.0.0.jar";
+ private static final String SIBLING_V1_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-sibling-1.0.0.jar";
+ private static final String SIBLING_V2_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-sibling-2.0.0.jar";
+ private static final String TEST_V1_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-test-1.0.0.jar";
+ private static final String TEST_V2_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-test-2.0.0.jar";
private static final String UPGRADED_RESOURCE_KEY_PREFIX = "UPGRADED";
- private static final HashMap<String, List<String>> DEPS;
-
- static {
- DEPS = new HashMap<String, List<String>>();
-
- DEPS.put(BASE_PLUGIN_NAME, Collections.<String> emptyList());
- DEPS.put(PARENT_DEP_V1_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME));
- DEPS.put(PARENT_DEP_V2_PLUGIN_NAME, DEPS.get(PARENT_DEP_V1_PLUGIN_NAME));
- DEPS.put(PARENT_SIBLING_V1_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME));
- DEPS.put(PARENT_SIBLING_V2_PLUGIN_NAME,
DEPS.get(PARENT_SIBLING_V1_PLUGIN_NAME));
- DEPS.put(ROOT_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME));
- DEPS.put(SIBLING_V1_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
- DEPS.put(SIBLING_V2_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
- DEPS.put(TEST_V1_PLUGIN_NAME,
- Arrays.asList(BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME,
SIBLING_V1_PLUGIN_NAME));
- DEPS.put(TEST_V2_PLUGIN_NAME,
- Arrays.asList(BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME,
SIBLING_V2_PLUGIN_NAME));
- }
-
private static final ResType TEST_TYPE = new ResType("TestResource",
"test");
private static final ResType SIBLING_TYPE = new
ResType("TestResourceSibling", "test");
private static final ResType PARENT_TYPE = new
ResType("TestResourceParent", "test");
@@ -120,294 +106,276 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
private static List<ResType> ALL_TYPES = Arrays.asList(TEST_TYPE, SIBLING_TYPE,
PARENT_TYPE, PARENT_DEP_TYPE,
PARENT_DEP_SIBLING_TYPE, ROOT_TYPE);
- protected Collection<String> getRequiredPlugins() {
- return Arrays.asList(BASE_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME,
PARENT_DEP_V2_PLUGIN_NAME,
- PARENT_SIBLING_V1_PLUGIN_NAME, PARENT_SIBLING_V2_PLUGIN_NAME,
ROOT_PLUGIN_NAME, SIBLING_V1_PLUGIN_NAME,
- SIBLING_V2_PLUGIN_NAME, TEST_V1_PLUGIN_NAME, TEST_V2_PLUGIN_NAME);
- }
-
@Test
- public void testSuccess() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
-
- //let it all run in v1
- executeTestWithPlugins(getAllDepsFor(TEST_V1_PLUGIN_NAME,
PARENT_SIBLING_V1_PLUGIN_NAME),
- new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
- //now let's run with v2 plugins and check the layout of the inventory
- executeTestWithPlugins(getAllDepsFor(TEST_V2_PLUGIN_NAME,
PARENT_SIBLING_V2_PLUGIN_NAME),
- new AbstractTestPayload(false, ALL_TYPES) {
-
- public void test(Map<ResType, Set<Resource>> resources) {
- checkPresenceOfResourceTypes(resources, getExpectedResourceTypes());
-
- checkNumberOfResources(resources, ROOT_TYPE, 1);
- checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
-
- //check that the resources are upgraded
- checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
- checkResourcesUpgraded(resources.get(PARENT_TYPE), 3);
- checkResourcesUpgraded(resources.get(SIBLING_TYPE), 45);
- checkResourcesUpgraded(resources.get(TEST_TYPE), 45);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
+ @PluginContainerSetup(plugins = {TEST_V1_PLUGIN_NAME, PARENT_SIBLING_V1_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME, SIBLING_V1_PLUGIN_NAME},
+ sharedGroup = SUCCESS_TEST, clearDataDir = true, numberOfInitialDiscoveries = 3)
+ public void testSuccess_V1() throws Exception {
+ final FakeServerInventory inv = new FakeServerInventory();
+ setServerSideFake(SUCCESS_TEST, inv);
+
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
+ }
+ });
+
+ //let the discovery run in V1
+ startConfiguredPluginContainer();
}
+
+ @Test(dependsOnMethods = "testSuccess_V1")
+ @PluginContainerSetup(plugins = {TEST_V2_PLUGIN_NAME, PARENT_SIBLING_V2_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME, SIBLING_V2_PLUGIN_NAME},
+ sharedGroup = SUCCESS_TEST, clearInventoryDat = false, numberOfInitialDiscoveries
= 3)
+ public void testSuccess_V2() throws Exception {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(SUCCESS_TEST);
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ Map<ResType, Set<Resource>> resources =
getResourcesFromInventory(inventory, ALL_TYPES);
+
+ checkPresenceOfResourceTypes(resources, ALL_TYPES);
+
+ checkNumberOfResources(resources, ROOT_TYPE, 1);
+ checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
+ //check that the resources are upgraded
+ checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
+ checkResourcesUpgraded(resources.get(PARENT_TYPE), 3);
+ checkResourcesUpgraded(resources.get(SIBLING_TYPE), 45);
+ checkResourcesUpgraded(resources.get(TEST_TYPE), 45);
+
+ }
+
@Test
- public void testFailureOnLeaf() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
-
- executeTestWithPlugins(getAllDepsFor(TEST_V1_PLUGIN_NAME,
PARENT_SIBLING_V1_PLUGIN_NAME),
- new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- //in here we set up the failures that are going to happen when
- //the v2 plugins are run
-
- Resource parent0 = findResourceWithOrdinal(PARENT_TYPE, 0);
- assertNotNull(parent0, "Failed to find the parent to setup the
failures for.");
- Resource parent1 = findResourceWithOrdinal(PARENT_TYPE, 1);
- assertNotNull(parent1, "Failed to find the parent to setup the
failures for.");
-
- addChildrenToFail(parent0, TEST_TYPE, 1, 2);
- addChildrenToFail(parent1, SIBLING_TYPE, 1);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
- executeTestWithPlugins(getAllDepsFor(TEST_V2_PLUGIN_NAME,
PARENT_SIBLING_V2_PLUGIN_NAME),
- new AbstractTestPayload(false, ALL_TYPES) {
- public void test(Map<ResType, Set<Resource>> resources) {
- checkPresenceOfResourceTypes(resources, getExpectedResourceTypes());
-
- checkNumberOfResources(resources, ROOT_TYPE, 1);
- checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
-
- checkResourcesUpgraded(resources.get(PARENT_TYPE), 3);
- checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
-
- Resource parent0 = findResourceWithOrdinal(PARENT_TYPE, 0);
- Resource parent1 = findResourceWithOrdinal(PARENT_TYPE, 1);
- Resource parent2 = findResourceWithOrdinal(PARENT_TYPE, 2);
-
- Set<Resource> testsUnderParent0 =
filterResources(parent0.getChildResources(), TEST_TYPE);
- Set<Resource> siblingsUnderParent0 =
filterResources(parent0.getChildResources(), SIBLING_TYPE);
- Set<Resource> testsUnderParent1 =
filterResources(parent1.getChildResources(), TEST_TYPE);
- Set<Resource> siblingsUnderParent1 =
filterResources(parent1.getChildResources(), SIBLING_TYPE);
- Set<Resource> testsUnderParent2 =
filterResources(parent2.getChildResources(), TEST_TYPE);
- Set<Resource> siblingsUnderParent2 =
filterResources(parent2.getChildResources(), SIBLING_TYPE);
-
- //first check for the successful upgrades
- checkResourcesUpgraded(testsUnderParent2, 15);
- checkResourcesUpgraded(siblingsUnderParent2, 15);
- checkResourcesUpgraded(siblingsUnderParent0, 15);
- checkResourcesUpgraded(testsUnderParent1, 15);
-
- //there should be no newly discovered sibling resources of the failed
ones
- assertEquals(testsUnderParent0.size(), 10);
- assertEquals(siblingsUnderParent1.size(), 10);
-
- //check that the failed resources have the error attached to them
- //we find the resource instance from the map provided to this method
- //because that map contains the resources as found on the server-side
- //(i.e. they include error objects).
- Resource failedTest1 = getEqualFrom(resources.get(TEST_TYPE),
- findResourceWithOrdinal(testsUnderParent0, 1));
- Resource failedTest2 = getEqualFrom(resources.get(TEST_TYPE),
- findResourceWithOrdinal(testsUnderParent0, 2));
-
- checkResourceFailedUpgrade(failedTest1);
- checkResourceFailedUpgrade(failedTest2);
- checkOthersUpgraded(testsUnderParent0, failedTest1, failedTest2);
-
- Resource failedSibling = getEqualFrom(resources.get(SIBLING_TYPE),
- findResourceWithOrdinal(siblingsUnderParent1, 1));
-
- checkResourceFailedUpgrade(failedSibling);
- checkOthersUpgraded(siblingsUnderParent1, failedSibling);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
+ @PluginContainerSetup(plugins = {TEST_V1_PLUGIN_NAME, PARENT_SIBLING_V1_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME, SIBLING_V1_PLUGIN_NAME},
+ sharedGroup = FAILURE_ON_LEAF_TEST, clearDataDir = true,
numberOfInitialDiscoveries = 3)
+ public void testFailureOnLeaf_V1() throws Exception {
+ final FakeServerInventory inventory = new FakeServerInventory();
+ setServerSideFake(FAILURE_ON_LEAF_TEST, inventory);
+
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ //in here we set up the failures that are going to happen when
+ //the v2 plugins are run
+
+ Resource parent0 = findResourceWithOrdinal(PARENT_TYPE, 0);
+ assertNotNull(parent0, "Failed to find the parent to setup the failures
for.");
+ Resource parent1 = findResourceWithOrdinal(PARENT_TYPE, 1);
+ assertNotNull(parent1, "Failed to find the parent to setup the failures
for.");
+
+ addChildrenToFail(parent0, TEST_TYPE, 1, 2);
+ addChildrenToFail(parent1, SIBLING_TYPE, 1);
}
+ @Test(dependsOnMethods = "testFailureOnLeaf_V1")
+ @PluginContainerSetup(plugins = {TEST_V2_PLUGIN_NAME, PARENT_SIBLING_V2_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME, SIBLING_V2_PLUGIN_NAME},
+ sharedGroup = FAILURE_ON_LEAF_TEST, clearInventoryDat = false,
numberOfInitialDiscoveries = 3)
+ public void testFailureOnLeaf_V2() {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(FAILURE_ON_LEAF_TEST);
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ Map<ResType, Set<Resource>> resources =
getResourcesFromInventory(inventory, ALL_TYPES);
+
+ checkPresenceOfResourceTypes(resources, ALL_TYPES);
+
+ checkNumberOfResources(resources, ROOT_TYPE, 1);
+ checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
+
+ checkResourcesUpgraded(resources.get(PARENT_TYPE), 3);
+ checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
+
+ Resource parent0 = findResourceWithOrdinal(PARENT_TYPE, 0);
+ Resource parent1 = findResourceWithOrdinal(PARENT_TYPE, 1);
+ Resource parent2 = findResourceWithOrdinal(PARENT_TYPE, 2);
+
+ Set<Resource> testsUnderParent0 =
filterResources(parent0.getChildResources(), TEST_TYPE);
+ Set<Resource> siblingsUnderParent0 =
filterResources(parent0.getChildResources(), SIBLING_TYPE);
+ Set<Resource> testsUnderParent1 =
filterResources(parent1.getChildResources(), TEST_TYPE);
+ Set<Resource> siblingsUnderParent1 =
filterResources(parent1.getChildResources(), SIBLING_TYPE);
+ Set<Resource> testsUnderParent2 =
filterResources(parent2.getChildResources(), TEST_TYPE);
+ Set<Resource> siblingsUnderParent2 =
filterResources(parent2.getChildResources(), SIBLING_TYPE);
+
+ //first check for the successful upgrades
+ checkResourcesUpgraded(testsUnderParent2, 15);
+ checkResourcesUpgraded(siblingsUnderParent2, 15);
+ checkResourcesUpgraded(siblingsUnderParent0, 15);
+ checkResourcesUpgraded(testsUnderParent1, 15);
+
+ //there should be no newly discovered sibling resources of the failed ones
+ assertEquals(testsUnderParent0.size(), 10);
+ assertEquals(siblingsUnderParent1.size(), 10);
+
+ //check that the failed resources have the error attached to them
+ //we find the resource instance from the map provided to this method
+ //because that map contains the resources as found on the server-side
+ //(i.e. they include error objects).
+ Resource failedTest1 = getEqualFrom(resources.get(TEST_TYPE),
+ findResourceWithOrdinal(testsUnderParent0, 1));
+ Resource failedTest2 = getEqualFrom(resources.get(TEST_TYPE),
+ findResourceWithOrdinal(testsUnderParent0, 2));
+
+ checkResourceFailedUpgrade(failedTest1);
+ checkResourceFailedUpgrade(failedTest2);
+ checkOthersUpgraded(testsUnderParent0, failedTest1, failedTest2);
+
+ Resource failedSibling = getEqualFrom(resources.get(SIBLING_TYPE),
+ findResourceWithOrdinal(siblingsUnderParent1, 1));
+
+ checkResourceFailedUpgrade(failedSibling);
+ checkOthersUpgraded(siblingsUnderParent1, failedSibling);
+ }
+
@Test
- public void testFailureOnDependencies() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
-
- executeTestWithPlugins(getAllDepsFor(TEST_V1_PLUGIN_NAME,
PARENT_SIBLING_V1_PLUGIN_NAME),
- new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- //in here we set up the failures that are going to happen when
- //the v2 plugins are run
-
- Resource parent = findResourceWithOrdinal(PARENT_DEP_TYPE, 0);
- assertNotNull(parent, "Failed to find the parent to setup the
failures for.");
-
- addChildrenToFail(parent, PARENT_TYPE, 0);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
- executeTestWithPlugins(getAllDepsFor(TEST_V2_PLUGIN_NAME,
PARENT_SIBLING_V2_PLUGIN_NAME),
- new AbstractTestPayload(false, ALL_TYPES) {
- public void test(Map<ResType, Set<Resource>> resources) {
- checkPresenceOfResourceTypes(resources, getExpectedResourceTypes());
-
- checkNumberOfResources(resources, ROOT_TYPE, 1);
- checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
- checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
-
- //check that the failed resources have the error attached to them
- //we find the resource instance from the map provided to this method
- //because that map contains the resources as found on the server-side
- //(i.e. they include error objects).
- Resource parent0 = getEqualFrom(resources.get(PARENT_TYPE),
findResourceWithOrdinal(PARENT_TYPE, 0));
- Resource parent1 = getEqualFrom(resources.get(PARENT_TYPE),
findResourceWithOrdinal(PARENT_TYPE, 1));
-
- //v2 plugin discovers 3 resources but because parent0 failed to
upgrade,
- //the discovery shouldn't have occurred leaving us with the 2
already existing resources.
- checkNumberOfResources(resources, PARENT_TYPE, 2);
- checkResourceFailedUpgrade(parent0);
- checkOthersUpgraded(resources.get(PARENT_TYPE), parent0);
-
- //parent1 upgraded ok, so discovering its children should have
executed.
- //this is v2, so we should find 15 of each.
- checkResourcesUpgraded(filterResources(parent1.getChildResources(),
TEST_TYPE), 15);
- checkResourcesUpgraded(filterResources(parent1.getChildResources(),
SIBLING_TYPE), 15);
-
- //these shouldn't have been upgraded. in v1 we had 10 resources
of TEST_TYPE
- //and 10 resources of SIBLING_TYPE and that's what we should be
seeing
- //now.
-
checkResourcesNotUpgraded(filterResources(parent0.getChildResources(), TEST_TYPE), 10);
-
checkResourcesNotUpgraded(filterResources(parent0.getChildResources(), SIBLING_TYPE),
10);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
+ @PluginContainerSetup(plugins = {TEST_V1_PLUGIN_NAME, PARENT_SIBLING_V1_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME, SIBLING_V1_PLUGIN_NAME},
+ sharedGroup = FAILURE_ON_DEPENDENCIES_TEST, clearDataDir = true,
numberOfInitialDiscoveries = 3)
+ public void testFailureOnDependencies_V1() throws Exception {
+ final FakeServerInventory inventory = new FakeServerInventory();
+ setServerSideFake(FAILURE_ON_DEPENDENCIES_TEST, inventory);
+
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ //in here we set up the failures that are going to happen when
+ //the v2 plugins are run
+
+ Resource parent = findResourceWithOrdinal(PARENT_DEP_TYPE, 0);
+ assertNotNull(parent, "Failed to find the parent to setup the failures
for.");
+
+ addChildrenToFail(parent, PARENT_TYPE, 0);
}
+
+ @Test(dependsOnMethods = "testFailureOnDependencies_V1")
+ @PluginContainerSetup(plugins = {TEST_V2_PLUGIN_NAME, PARENT_SIBLING_V2_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME, SIBLING_V2_PLUGIN_NAME},
+ sharedGroup = FAILURE_ON_DEPENDENCIES_TEST, clearInventoryDat = false,
numberOfInitialDiscoveries = 3)
+ public void testFailureOnDependencies_V2() throws Exception {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(FAILURE_ON_DEPENDENCIES_TEST);
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ Map<ResType, Set<Resource>> resources =
getResourcesFromInventory(inventory, ALL_TYPES);
+
+ checkPresenceOfResourceTypes(resources, ALL_TYPES);
+
+ checkNumberOfResources(resources, ROOT_TYPE, 1);
+ checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
+ checkResourcesUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
+
+ //check that the failed resources have the error attached to them
+ //we find the resource instance from the map provided to this method
+ //because that map contains the resources as found on the server-side
+ //(i.e. they include error objects).
+ Resource parent0 = getEqualFrom(resources.get(PARENT_TYPE),
findResourceWithOrdinal(PARENT_TYPE, 0));
+ Resource parent1 = getEqualFrom(resources.get(PARENT_TYPE),
findResourceWithOrdinal(PARENT_TYPE, 1));
+
+ checkResourceFailedUpgrade(parent0);
+ checkOthersUpgraded(resources.get(PARENT_TYPE), parent0);
+ //v2 plugin discovers 3 resources but because parent0 failed to upgrade,
+ //the discovery shouldn't have occurred leaving us with the 2 already
existing resources.
+ checkNumberOfResources(resources, PARENT_TYPE, 2);
+
+ //parent1 upgraded ok, so discovering its children should have executed.
+ //this is v2, so we should find 15 of each.
+ checkResourcesUpgraded(filterResources(parent1.getChildResources(), TEST_TYPE),
15);
+ checkResourcesUpgraded(filterResources(parent1.getChildResources(),
SIBLING_TYPE), 15);
+
+ //these shouldn't have been upgraded. in v1 we had 10 resources of TEST_TYPE
+ //and 10 resources of SIBLING_TYPE and that's what we should be seeing
+ //now.
+ checkResourcesNotUpgraded(filterResources(parent0.getChildResources(),
TEST_TYPE), 10);
+ checkResourcesNotUpgraded(filterResources(parent0.getChildResources(),
SIBLING_TYPE), 10);
+ }
+
@Test
- public void testResourcesRevertedToOriginalStateAfterFailedUpgrade() throws Exception
{
- setCurrentServerSideInventory(new FakeServerInventory());
-
- //let it all run in v1
- executeTestWithPlugins(getAllDepsFor(TEST_V1_PLUGIN_NAME,
PARENT_SIBLING_V1_PLUGIN_NAME),
- new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
- getCurrentServerSideInventory().setFailUpgrade(true);
+ @PluginContainerSetup(plugins = {TEST_V1_PLUGIN_NAME, PARENT_SIBLING_V1_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME, SIBLING_V1_PLUGIN_NAME},
+ sharedGroup = RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST,
clearDataDir = true, numberOfInitialDiscoveries = 3)
+ public void testResourcesRevertedToOriginalStateAfterFailedUpgrade_V1() throws
Exception {
+ final FakeServerInventory inventory = new FakeServerInventory();
+ setServerSideFake(RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST,
inventory);
- //now let's run with v2 plugins and check the layout of the inventory
- executeTestWithPlugins(getAllDepsFor(TEST_V2_PLUGIN_NAME,
PARENT_SIBLING_V2_PLUGIN_NAME),
- new AbstractTestPayload(false, ALL_TYPES) {
-
- public void test(Map<ResType, Set<Resource>> resources) {
- checkPresenceOfResourceTypes(resources, getExpectedResourceTypes());
-
- checkNumberOfResources(resources, ROOT_TYPE, 1);
- checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
-
- //check that the resources are upgraded
- checkResourcesNotUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE),
1);
- checkResourcesNotUpgraded(resources.get(PARENT_TYPE), 2);
- checkResourcesNotUpgraded(resources.get(SIBLING_TYPE), 20);
- checkResourcesNotUpgraded(resources.get(TEST_TYPE), 20);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
}
+
+ @Test(dependsOnMethods =
"testResourcesRevertedToOriginalStateAfterFailedUpgrade_V1")
+ @PluginContainerSetup(plugins = {TEST_V2_PLUGIN_NAME, PARENT_SIBLING_V2_PLUGIN_NAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME, SIBLING_V2_PLUGIN_NAME},
+ sharedGroup = RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST,
clearInventoryDat = false, numberOfInitialDiscoveries = 3)
+ public void testResourcesRevertedToOriginalStateAfterFailedUpgrade_V2() throws
Exception {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(RESOURCES_REVERTED_TO_ORIGINAL_STATE_AFTER_FAILED_UPGRAGE_TEST);
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ inventory.setFailUpgrade(true);
+
+ startConfiguredPluginContainer();
+
+ Map<ResType, Set<Resource>> resources =
getResourcesFromInventory(inventory, ALL_TYPES);
+ checkPresenceOfResourceTypes(resources, ALL_TYPES);
+
+ checkNumberOfResources(resources, ROOT_TYPE, 1);
+ checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
+
+ //check that the resources are not upgraded
+ checkResourcesNotUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE), 1);
+ checkResourcesNotUpgraded(resources.get(PARENT_TYPE), 2);
+ checkResourcesNotUpgraded(resources.get(SIBLING_TYPE), 20);
+ checkResourcesNotUpgraded(resources.get(TEST_TYPE), 20);
+ }
@SuppressWarnings("unchecked")
- @Override
- protected void defineDefaultExpectations(Expectations expectations) {
- super.defineDefaultExpectations(expectations);
+ protected void defineDefaultExpectations(FakeServerInventory inventory, Expectations
expectations) {
+ super.defineDefaultExpectations(inventory, expectations);
try {
-
expectations.allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
+ ServerServices ss = pluginContainerConfiguration.getServerServices();
+ expectations.allowing(ss.getDiscoveryServerService()).mergeInventoryReport(
expectations.with(Expectations.any(InventoryReport.class)));
-
expectations.will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
+
expectations.will(inventory.mergeInventoryReport(InventoryStatus.COMMITTED));
- expectations.allowing(getCurrentDiscoveryServerService()).upgradeResources(
+ expectations.allowing(ss.getDiscoveryServerService()).upgradeResources(
expectations.with(Expectations.any(Set.class)));
- expectations.will(getCurrentServerSideInventory().upgradeResources());
+ expectations.will(inventory.upgradeResources());
} catch (InvalidInventoryReportException e) {
//this is not going to happen because we're mocking the invocation
}
}
- private Set<String> getAllDepsFor(String... plugins) {
- HashSet<String> deps = new HashSet<String>();
- for (String plugin : plugins) {
- deps.add(plugin);
- deps.addAll(DEPS.get(plugin));
- }
-
- return deps;
- }
-
- protected static void checkPresenceOfResourceTypes(Map<ResType,
Set<Resource>> resources, Set<ResType> expectedTypes) {
+ protected static void checkPresenceOfResourceTypes(Map<ResType,
Set<Resource>> resources, Collection<ResType> expectedTypes) {
for (ResType resType : expectedTypes) {
assertNotNull(resources.get(resType), "Expecting some resources of type
" + resType);
}
@@ -531,6 +499,21 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
return ret;
}
+
+ private Map<ResType, Set<Resource>>
getResourcesFromInventory(FakeServerInventory inventory, Collection<ResType> types)
{
+ Map<ResType, Set<Resource>> resources = new HashMap<ResType,
Set<Resource>>();
+
+ for(ResType type : types) {
+ ResourceType resType =
PluginContainer.getInstance().getPluginManager().getMetadataManager()
+ .getType(type.getResourceTypeName(), type.getResourceTypePluginName());
+
+ Set<Resource> rs = inventory.findResourcesByType(resType);
+ resources.put(type, rs);
+ }
+
+ return resources;
+ }
+
private static <T> T getEqualFrom(Collection<? extends T> collection, T
object) {
for (T other : collection) {
if (object.equals(other)) {
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
index 3234c30..65deac7 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
@@ -19,23 +19,14 @@
package org.rhq.core.pc.upgrade;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertEquals;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import static org.testng.Assert.assertNotNull;
import org.jmock.Expectations;
-import org.jmock.Mockery;
import org.testng.annotations.Test;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.test.pc.PluginContainerSetup;
/**
*
@@ -45,139 +36,113 @@ import org.rhq.core.domain.resource.Resource;
@Test
public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureHandlingTest {
- private static final String BASE_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-base-1.0.0.jar";
- private static final String PARENT_DEP_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-1.0.0.jar";
- private static final String PARENT_DEP_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-2.0.0.jar";
- private static final String ROOT_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-root-1.0.0.jar";
- private static final String UPGRADE_PROGRESS_PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-progress-test-1.0.0.jar";
- private static final String UPGRADE_PROGRESS_PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-progress-test-2.0.0.jar";
- private static final String UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-duplicate-test-1.0.0.jar";
- private static final String UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-duplicate-test-2.0.0.jar";
-
+ //test names
+ private static final String DUPLICIT_RESOURCE_KEYS_HANDLED_CORRECTLY_TEST =
"DuplicitResourceKeysHandledCorrectly";
+ private static final String
PARENT_RESOURCE_STARTED_UPGRADED_WHEN_CHILD_RESOURCE_BEING_UPGRADED_TEST =
"ParentResourceStartedUpgradedWhenChildResourceBeingUpgraded";
+
+ //plugin names
+ private static final String BASE_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-base-1.0.0.jar";
+ private static final String PARENT_DEP_V1_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentdep-1.0.0.jar";
+ private static final String PARENT_DEP_V2_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-parentdep-2.0.0.jar";
+ private static final String ROOT_PLUGIN_NAME =
"classpath:///resource-upgrade-test-plugin-multi-root-1.0.0.jar";
+ private static final String UPGRADE_PROGRESS_PLUGIN_V1_FILENAME =
"classpath:///resource-upgrade-test-plugin-progress-test-1.0.0.jar";
+ private static final String UPGRADE_PROGRESS_PLUGIN_V2_FILENAME =
"classpath:///resource-upgrade-test-plugin-progress-test-2.0.0.jar";
+ private static final String UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME =
"classpath:///resource-upgrade-test-plugin-duplicate-test-1.0.0.jar";
+ private static final String UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME =
"classpath:///resource-upgrade-test-plugin-duplicate-test-2.0.0.jar";
+
private static final ResType TEST_TYPE = new ResType("TestResource",
"test");
private static final ResType PARENT_DEP_TYPE = new
ResType("ParentDependency", "parentdep");
- private static final ResType ROOT_TYPE = new ResType("Root",
"root");
-
- private static final HashMap<String, List<String>> DEPS;
-
- static {
- DEPS = new HashMap<String, List<String>>();
-
- DEPS.put(BASE_PLUGIN_NAME, Collections.<String> emptyList());
- DEPS.put(PARENT_DEP_V1_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME));
- DEPS.put(PARENT_DEP_V2_PLUGIN_NAME, DEPS.get(PARENT_DEP_V1_PLUGIN_NAME));
- DEPS.put(ROOT_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME));
- DEPS.put(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
- DEPS.put(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
- DEPS.put(UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
- DEPS.put(UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
- }
+
+ @Test
+ @PluginContainerSetup(plugins = { UPGRADE_PROGRESS_PLUGIN_V1_FILENAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
+ PARENT_DEP_V1_PLUGIN_NAME }, sharedGroup =
PARENT_RESOURCE_STARTED_UPGRADED_WHEN_CHILD_RESOURCE_BEING_UPGRADED_TEST, clearDataDir =
true)
+ public void testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded_V1()
throws Exception {
+ final FakeServerInventory inventory = new FakeServerInventory();
+
setServerSideFake(PARENT_RESOURCE_STARTED_UPGRADED_WHEN_CHILD_RESOURCE_BEING_UPGRADED_TEST,
inventory);
- private Set<String> getAllDepsFor(String... plugins) {
- HashSet<String> deps = new HashSet<String>();
- for (String plugin : plugins) {
- deps.add(plugin);
- deps.addAll(DEPS.get(plugin));
- }
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
- return deps;
- }
-
- @Override
- protected Collection<String> getRequiredPlugins() {
- return Arrays.asList(BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
PARENT_DEP_V1_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME,
- UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, UPGRADE_PROGRESS_PLUGIN_V2_FILENAME,
UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME,
- UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME);
+ startConfiguredPluginContainer();
+
+ //in here we set up the failures that are going to happen when
+ //the v2 plugins are run
+
+ Resource parent = findResourceWithOrdinal(PARENT_DEP_TYPE, 0);
+ assertNotNull(parent, "Failed to find the parent.");
}
- @Test
- public void testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded() throws
Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
-
- executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME),
- new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- //in here we set up the failures that are going to happen when
- //the v2 plugins are run
-
- Resource parent = findResourceWithOrdinal(PARENT_DEP_TYPE, 0);
- assertNotNull(parent, "Failed to find the parent.");
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
+ @Test(dependsOnMethods =
"testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded_V1")
+ @PluginContainerSetup(plugins = { UPGRADE_PROGRESS_PLUGIN_V2_FILENAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
+ PARENT_DEP_V2_PLUGIN_NAME }, sharedGroup =
PARENT_RESOURCE_STARTED_UPGRADED_WHEN_CHILD_RESOURCE_BEING_UPGRADED_TEST,
clearInventoryDat = false)
+ public void testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded_V2()
throws Exception {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(PARENT_RESOURCE_STARTED_UPGRADED_WHEN_CHILD_RESOURCE_BEING_UPGRADED_TEST);
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
//the upgrade progress plugin is set to check that the parent resource key
//has been upgraded during its upgrade method, so we just need to check here
//that everything got upgraded. If it was not, it'd mean that the the
progress
//plugin failed the upgrade because it didn't see its parent upgraded.
- executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME),
- new AbstractTestPayload(false, Arrays.asList(TEST_TYPE, PARENT_DEP_TYPE)) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
-
checkResourcesUpgraded(resourceUpgradeTestResources.get(PARENT_DEP_TYPE), 1);
- checkResourcesUpgraded(resourceUpgradeTestResources.get(TEST_TYPE),
2);
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
+
+ checkResourcesUpgraded(getTestingResources(inventory, PARENT_DEP_TYPE), 1);
+ checkResourcesUpgraded(getTestingResources(inventory, TEST_TYPE), 2);
}
-
+
@Test
- public void testDuplicitResourceKeysHandledCorrectly() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
-
- executeTestWithPlugins(getAllDepsFor(UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME),
- new AbstractTestPayload(true, Arrays.asList(PARENT_DEP_TYPE, TEST_TYPE)) {
-
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- //there's not much to check with the v1 plugins. let's just
check all the
- //resources have been discovered
-
assertEquals(resourceUpgradeTestResources.get(PARENT_DEP_TYPE).size(), 1, "The V1
inventory should have 1 parent.");
- assertEquals(resourceUpgradeTestResources.get(TEST_TYPE).size(), 2,
"The V1 inventory should have 2 test resources.");
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
-
+ @PluginContainerSetup(plugins = { UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
+ PARENT_DEP_V1_PLUGIN_NAME }, sharedGroup =
DUPLICIT_RESOURCE_KEYS_HANDLED_CORRECTLY_TEST, clearDataDir = true,
numberOfInitialDiscoveries = 2)
+ public void testDuplicitResourceKeysHandledCorrectly_V1() throws Exception {
+ final FakeServerInventory inventory = new FakeServerInventory();
+ setServerSideFake(DUPLICIT_RESOURCE_KEYS_HANDLED_CORRECTLY_TEST, inventory);
+
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
+ //there's not much to check with the v1 plugins. let's just check all the
+ //resources have been discovered
+ assertEquals(getTestingResources(inventory, PARENT_DEP_TYPE).size(), 1,
+ "The V1 inventory should have 1 parent.");
+ assertEquals(getTestingResources(inventory, TEST_TYPE).size(), 2,
+ "The V1 inventory should have 2 test resources.");
+ }
+
+ @Test(dependsOnMethods = "testDuplicitResourceKeysHandledCorrectly_V1")
+ @PluginContainerSetup(plugins = { UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME,
BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
+ PARENT_DEP_V2_PLUGIN_NAME }, sharedGroup =
DUPLICIT_RESOURCE_KEYS_HANDLED_CORRECTLY_TEST, clearInventoryDat = false,
numberOfInitialDiscoveries = 2)
+ public void testDuplicitResourceKeysHandledCorrectly_V2() throws Exception {
+ final FakeServerInventory inventory = (FakeServerInventory)
getServerSideFake(DUPLICIT_RESOURCE_KEYS_HANDLED_CORRECTLY_TEST);
+
+ context.checking(new Expectations() {
+ {
+ defineDefaultExpectations(inventory, this);
+ }
+ });
+
+ startConfiguredPluginContainer();
+
//now the V2 test resource is set to create 2 resources with the same resource
keys.
//the upgrade should therefore fail.
- executeTestWithPlugins(getAllDepsFor(UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME),
- new AbstractTestPayload(false, Arrays.asList(PARENT_DEP_TYPE, TEST_TYPE)) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
-
checkResourcesUpgraded(resourceUpgradeTestResources.get(PARENT_DEP_TYPE), 1);
-
-
checkResourcesNotUpgraded(resourceUpgradeTestResources.get(TEST_TYPE), 2);
-
- for(Resource r : resourceUpgradeTestResources.get(TEST_TYPE)) {
- checkResourceFailedUpgrade(r);
- }
- }
-
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
- }
- };
- }
- });
- }
+
+ checkResourcesUpgraded(getTestingResources(inventory, PARENT_DEP_TYPE), 1);
+
+ checkResourcesNotUpgraded(getTestingResources(inventory, TEST_TYPE), 2);
+
+ for (Resource r : getTestingResources(inventory, TEST_TYPE)) {
+ checkResourceFailedUpgrade(r);
+ }
+ }
}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
index e2a8a84..39ae23d 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
@@ -1,24 +1,20 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
+ * GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.rhq.core.pc.upgrade;
@@ -28,304 +24,320 @@ import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import java.io.File;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.jmock.Expectations;
-import org.jmock.Mockery;
+import org.testng.annotations.AfterSuite;
import org.testng.annotations.Test;
import org.rhq.core.clientapi.server.discovery.InventoryReport;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.pc.PluginContainer;
+import org.rhq.core.pc.ServerServices;
import org.rhq.core.pc.inventory.ResourceContainer;
+import org.rhq.test.pc.PluginContainerSetup;
+import org.rhq.test.pc.PluginContainerTest;
/**
- * Test cases for resource upgrade.
*
+ *
* @author Lukas Krejci
*/
-@Test(sequential = true, invocationCount = 1)
+@Test
public class ResourceUpgradeTest extends ResourceUpgradeTestBase {
- private static final String PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-1.0.0.jar";
- private static final String PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-2.0.0.jar";
- private static final String FAILING_PLUGIN_FILE_NAME =
"/resource-upgrade-test-plugin-3.0.0.jar";
+ private static final String INCLUDE_UNCOMMITTED_RESOURCES_TEST =
"includeUncommittedResources";
+ private static final String UPGRADE_DATA_TEST = "upgradeData";
+ private static final String
INVENTORY_REINITIALIZATION_FROM_SERVER_DURING_UPGRADE_TEST =
"inventoryReinitializationFromServerDuringUpgrade";
+ private static final String SKIP_UPGRADE_WHEN_SERVER_UNAVAILABLE_TEST =
"skipUpgradeWhenServerUnavailable";
+ private static final String UPGRADE_WITH_PLATFORM_DELETED_ON_SERVER_TEST =
"upgradeWithPlatformDeletedOnServer";
+ private static final String UPGRADE_FAILURE_HANDLING =
"upgradeFailureHandling";
+
+ private static final String PLUGIN_V1_FILENAME =
"classpath:///resource-upgrade-test-plugin-1.0.0.jar";
+ private static final String PLUGIN_V2_FILENAME =
"classpath:///resource-upgrade-test-plugin-2.0.0.jar";
+ private static final String FAILING_PLUGIN_FILE_NAME =
"classpath:///resource-upgrade-test-plugin-3.0.0.jar";
private static final String SINGLETON_RESOURCE_TYPE_NAME = "Resource";
private static final String SINGLETON_RESOURCE_TYPE_PLUGIN_NAME =
"ResourceUpgradeTest";
private static final ResType SINGLETON_TYPE = new
ResType(SINGLETON_RESOURCE_TYPE_NAME,
SINGLETON_RESOURCE_TYPE_PLUGIN_NAME);
- private static List<ResType> getMyExpectedTypes() {
- return Arrays.asList(SINGLETON_TYPE);
+ @AfterSuite
+ public void cleanAfterPluginContainers() throws Exception {
+ PluginContainerTest.clearStorage();
}
- protected Collection<String> getRequiredPlugins() {
- return Arrays.asList(PLUGIN_V1_FILENAME, PLUGIN_V2_FILENAME,
FAILING_PLUGIN_FILE_NAME);
+ @Test
+ @PluginContainerSetup(plugins = { PLUGIN_V1_FILENAME }, sharedGroup =
INCLUDE_UNCOMMITTED_RESOURCES_TEST, clearDataDir = true)
+ public void testIncludeUncommittedResources_V1() throws Exception {
+ initialSyncAndDiscovery(INCLUDE_UNCOMMITTED_RESOURCES_TEST,
InventoryStatus.NEW);
}
- @Test
- public void testIncludeUncommittedResources() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
- initialSyncAndDiscovery(InventoryStatus.NEW);
+ @Test(dependsOnMethods = { "testIncludeUncommittedResources_V1" })
+ @PluginContainerSetup(plugins = { PLUGIN_V2_FILENAME }, sharedGroup =
INCLUDE_UNCOMMITTED_RESOURCES_TEST, clearInventoryDat = false)
+ @SuppressWarnings("unchecked")
+ public void testIncludeUncommittedResources_V2() throws Exception {
+ final FakeServerInventory inv = (FakeServerInventory) PluginContainerTest
+ .getServerSideFake(INCLUDE_UNCOMMITTED_RESOURCES_TEST);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- TestPayload testNoChange = new AbstractTestPayload(false, getMyExpectedTypes())
{
- public void test(Map<ResType, Set<Resource>> discoveredResources)
{
- assertEquals(discoveredResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
- Resource discoveredResource =
discoveredResources.get(SINGLETON_TYPE).iterator().next();
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.mergeInventoryReport(InventoryStatus.COMMITTED));
- assertEquals(discoveredResource.getResourceKey(),
"resource-key-v2");
- assertEquals(discoveredResource.getName(),
"resource-name-v2");
- assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
+
oneOf(ss.getDiscoveryServerService()).upgradeResources(with(any(Set.class)));
+ will(inv.upgradeResources());
}
+ });
- @SuppressWarnings("unchecked")
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
+ PluginContainerTest.startConfiguredPluginContainer();
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
+ Set<Resource> resources = getTestingResources(inv, SINGLETON_TYPE);
-
oneOf(getCurrentDiscoveryServerService()).upgradeResources(with(any(Set.class)));
- will(getCurrentServerSideInventory().upgradeResources());
- }
- };
- }
- };
+ assertEquals(resources.size(), 1, "Expected single test resource but
multiple found.");
- executeTestWithPlugins(Collections.singleton(PLUGIN_V2_FILENAME), testNoChange);
+ Resource discoveredResource = resources.iterator().next();
+
+ assertEquals(discoveredResource.getResourceKey(), "resource-key-v2");
+ assertEquals(discoveredResource.getName(), "resource-name-v2");
+ assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
}
@Test
- public void testUpgradeData() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
- upgradeTest(false);
+ @PluginContainerSetup(plugins = { PLUGIN_V1_FILENAME }, sharedGroup =
UPGRADE_DATA_TEST, clearDataDir = true)
+ public void testUpgradeData_V1() throws Exception {
+ initialSyncAndDiscovery(UPGRADE_DATA_TEST, InventoryStatus.COMMITTED);
+ }
+
+ @Test(dependsOnMethods = "testUpgradeData_V1")
+ @PluginContainerSetup(plugins = { PLUGIN_V2_FILENAME }, sharedGroup =
UPGRADE_DATA_TEST, clearInventoryDat = false)
+ public void testUpgradeData_V2() throws Exception {
+ upgradeTest(UPGRADE_DATA_TEST);
}
@Test
- public void testInventoryReinitializationFromServerDuringUpgrade() throws Exception
{
- setCurrentServerSideInventory(new FakeServerInventory());
- upgradeTest(true);
+ @PluginContainerSetup(plugins = { PLUGIN_V1_FILENAME }, sharedGroup =
INVENTORY_REINITIALIZATION_FROM_SERVER_DURING_UPGRADE_TEST, clearDataDir = true)
+ public void testInventoryReinitializationFromServerDuringUpgrade_V1() throws
Exception {
+
initialSyncAndDiscovery(INVENTORY_REINITIALIZATION_FROM_SERVER_DURING_UPGRADE_TEST,
InventoryStatus.COMMITTED);
+ }
+
+ @Test(dependsOnMethods =
"testInventoryReinitializationFromServerDuringUpgrade_V1")
+ @PluginContainerSetup(plugins = { PLUGIN_V2_FILENAME }, sharedGroup =
INVENTORY_REINITIALIZATION_FROM_SERVER_DURING_UPGRADE_TEST, clearInventoryDat = false)
+ public void testInventoryReinitializationFromServerDuringUpgrade_V2() throws
Exception {
+ upgradeTest(INVENTORY_REINITIALIZATION_FROM_SERVER_DURING_UPGRADE_TEST);
}
@Test
- public void testSkipUpgradeWhenServerUnavailable() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
- initialSyncAndDiscovery(InventoryStatus.COMMITTED);
+ @PluginContainerSetup(plugins = { PLUGIN_V1_FILENAME }, sharedGroup =
SKIP_UPGRADE_WHEN_SERVER_UNAVAILABLE_TEST, clearDataDir = true)
+ public void testSkipUpgradeWhenServerUnavailable_V1() throws Exception {
+ initialSyncAndDiscovery(SKIP_UPGRADE_WHEN_SERVER_UNAVAILABLE_TEST,
InventoryStatus.COMMITTED);
+ }
+
+ @Test(dependsOnMethods = "testSkipUpgradeWhenServerUnavailable_V1")
+ @PluginContainerSetup(plugins = { PLUGIN_V2_FILENAME }, sharedGroup =
SKIP_UPGRADE_WHEN_SERVER_UNAVAILABLE_TEST, clearInventoryDat = false)
+ @SuppressWarnings("unchecked")
+ public void testSkipUpgradeWhenServerUnavailable_V2() throws Exception {
+ final FakeServerInventory inv = (FakeServerInventory) PluginContainerTest
+ .getServerSideFake(SKIP_UPGRADE_WHEN_SERVER_UNAVAILABLE_TEST);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- getCurrentServerSideInventory().setFailing(true);
+ inv.setFailing(true);
- TestPayload test = new AbstractTestPayload(false, getMyExpectedTypes()) {
- public void test(Map<ResType, Set<Resource>> discoveredResources)
{
- assertEquals(discoveredResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
- Resource discoveredResource =
discoveredResources.get(SINGLETON_TYPE).iterator().next();
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.mergeInventoryReport(InventoryStatus.COMMITTED));
- assertEquals(discoveredResource.getResourceKey(),
"resource-key-v1");
- assertEquals(discoveredResource.getName(),
"resource-name-v1");
- assertEquals(discoveredResource.getDescription(),
"resource-description-v1");
+
never(ss.getDiscoveryServerService()).upgradeResources(with(any(Set.class)));
}
+ });
- @SuppressWarnings("unchecked")
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
+ PluginContainerTest.startConfiguredPluginContainer();
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
+ Set<Resource> discoveredResources = getTestingResources(inv,
SINGLETON_TYPE);
-
never(getCurrentDiscoveryServerService()).upgradeResources(with(any(Set.class)));
- }
- };
- }
- };
+ assertEquals(discoveredResources.size(), 1, "Expected single test resource
but multiple found.");
+
+ Resource discoveredResource = discoveredResources.iterator().next();
- executeTestWithPlugins(Collections.singleton(PLUGIN_V2_FILENAME), test);
+ assertEquals(discoveredResource.getResourceKey(), "resource-key-v1");
+ assertEquals(discoveredResource.getName(), "resource-name-v1");
+ assertEquals(discoveredResource.getDescription(),
"resource-description-v1");
}
@Test
- public void testUpgradeWithPlatformDeletedOnServer() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
- initialSyncAndDiscovery(InventoryStatus.COMMITTED);
+ @PluginContainerSetup(plugins = { PLUGIN_V1_FILENAME }, sharedGroup =
UPGRADE_WITH_PLATFORM_DELETED_ON_SERVER_TEST, clearDataDir = true)
+ public void testUpgradeWithPlatformDeletedOnServer_V1() throws Exception {
+ initialSyncAndDiscovery(UPGRADE_WITH_PLATFORM_DELETED_ON_SERVER_TEST,
InventoryStatus.COMMITTED);
+ }
- TestPayload test = new AbstractTestPayload(false, getMyExpectedTypes()) {
- public void test(Map<ResType, Set<Resource>> discoveredResources)
{
- assertEquals(discoveredResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ @Test(dependsOnMethods = "testUpgradeWithPlatformDeletedOnServer_V1")
+ @PluginContainerSetup(plugins = { PLUGIN_V2_FILENAME }, sharedGroup =
UPGRADE_WITH_PLATFORM_DELETED_ON_SERVER_TEST, clearInventoryDat = false)
+ @SuppressWarnings("unchecked")
+ public void testUpgradeWithPlatformDeletedOnServer_V2() throws Exception {
- Resource discoveredResource =
discoveredResources.get(SINGLETON_TYPE).iterator().next();
+ final FakeServerInventory inv = (FakeServerInventory) PluginContainerTest
+ .getServerSideFake(UPGRADE_WITH_PLATFORM_DELETED_ON_SERVER_TEST);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- assertEquals(discoveredResource.getResourceKey(),
"resource-key-v2");
- assertEquals(discoveredResource.getName(),
"resource-name-v2");
- assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
- ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
- .getResourceContainer(discoveredResource);
- File dataDir = container.getResourceContext().getDataDirectory();
+ //the first merge will be triggered from within the upgrade process and
we are
+ //going to report null sync.
+
oneOf(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.clearPlatform());
- File marker = new File(dataDir, "upgrade-succeeded");
+ //the rest of the inventory merges are executed by discoveries, so
let's import the
+ //discovered stuff into the server-side inventory.
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.mergeInventoryReport(InventoryStatus.COMMITTED));
- assertFalse(marker.exists(),
- "The upgrade seems to have occured even though there
shouldn't have been a resource to upgrade.");
+
never(ss.getDiscoveryServerService()).upgradeResources(with(any(Set.class)));
}
+ });
- @SuppressWarnings("unchecked")
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
-
- //the first merge will be triggered from within the upgrade
process and we are
- //going to report null sync.
- oneOf(getCurrentDiscoveryServerService())
- .mergeInventoryReport(with(any(InventoryReport.class)));
- will(getCurrentServerSideInventory().clearPlatform());
-
- //the rest of the inventory merges are executed by discoveries,
so let's import the
- //discovered stuff into the server-side inventory.
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
-
-
never(getCurrentDiscoveryServerService()).upgradeResources(with(any(Set.class)));
- }
- };
- }
- };
+ PluginContainerTest.startConfiguredPluginContainer();
+
+ Set<Resource> discoveredResources = getTestingResources(inv,
SINGLETON_TYPE);
+
+ assertEquals(discoveredResources.size(), 1, "Expected single test resource
but multiple found.");
+
+ Resource discoveredResource = discoveredResources.iterator().next();
- executeTestWithPlugins(Collections.singleton(PLUGIN_V2_FILENAME), test);
+ assertEquals(discoveredResource.getResourceKey(), "resource-key-v2");
+ assertEquals(discoveredResource.getName(), "resource-name-v2");
+ assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
+
+ ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
+ .getResourceContainer(discoveredResource);
+ File dataDir = container.getResourceContext().getDataDirectory();
+
+ File marker = new File(dataDir, "upgrade-succeeded");
+
+ assertFalse(marker.exists(),
+ "The upgrade seems to have occured even though there shouldn't have
been a resource to upgrade.");
}
@Test
- public void testUpgradeFailureHandling() throws Exception {
- setCurrentServerSideInventory(new FakeServerInventory());
- initialSyncAndDiscovery(InventoryStatus.COMMITTED);
+ @PluginContainerSetup(plugins = PLUGIN_V1_FILENAME, sharedGroup =
UPGRADE_FAILURE_HANDLING, clearDataDir = true)
+ public void testUpgradeFailureHandling_V1() throws Exception {
+ initialSyncAndDiscovery(UPGRADE_FAILURE_HANDLING, InventoryStatus.COMMITTED);
+ }
- TestPayload test = new AbstractTestPayload(false, getMyExpectedTypes()) {
- public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
- assertEquals(resourceUpgradeTestResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ @Test(dependsOnMethods = "testUpgradeFailureHandling_V1")
+ @PluginContainerSetup(plugins = FAILING_PLUGIN_FILE_NAME, sharedGroup =
UPGRADE_FAILURE_HANDLING, clearInventoryDat = false)
+ @SuppressWarnings("unchecked")
+ public void testUpgradeFailureHandling_V2() throws Exception {
+ final FakeServerInventory inv = (FakeServerInventory) PluginContainerTest
+ .getServerSideFake(UPGRADE_FAILURE_HANDLING);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- Resource discoveredResource =
resourceUpgradeTestResources.get(SINGLETON_TYPE).iterator().next();
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
- assertTrue(discoveredResource.getResourceErrors().size() > 0,
- "There should be upgrade errors persisted on the server
side.");
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.mergeInventoryReport(InventoryStatus.COMMITTED));
- //the discovery of the failed resource mustn't have run
- ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
- .getResourceContainer(discoveredResource);
- File dataDir = container.getResourceContext().getDataDirectory();
+
oneOf(ss.getDiscoveryServerService()).upgradeResources(with(any(Set.class)));
+ will(inv.upgradeResources());
+ }
+ });
- File marker = new File(dataDir, "failing-discovery-ran");
+ PluginContainerTest.startConfiguredPluginContainer();
- assertFalse(marker.exists(),
- "The discovery of the resource type with a failed upgraded
resource must not be executed but it was.");
- }
+ Set<Resource> resourceUpgradeTestResources = getTestingResources(inv,
SINGLETON_TYPE);
- @SuppressWarnings("unchecked")
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
+ Resource discoveredResource = resourceUpgradeTestResources.iterator().next();
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
+ assertTrue(discoveredResource.getResourceErrors().size() > 0,
+ "There should be upgrade errors persisted on the server side.");
-
oneOf(getCurrentDiscoveryServerService()).upgradeResources(with(any(Set.class)));
- will(getCurrentServerSideInventory().upgradeResources());
- }
- };
- }
- };
+ //the discovery of the failed resource mustn't have run
+ ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
+ .getResourceContainer(discoveredResource);
+ File dataDir = container.getResourceContext().getDataDirectory();
+
+ File marker = new File(dataDir, "failing-discovery-ran");
- executeTestWithPlugins(Collections.singleton(FAILING_PLUGIN_FILE_NAME), test);
+ assertFalse(marker.exists(),
+ "The discovery of the resource type with a failed upgraded resource must
not be executed but it was.");
}
- private void initialSyncAndDiscovery(final InventoryStatus requiredInventoryStatus)
throws Exception {
- cleanDataDir();
- executeTestWithPlugins(Collections.singleton(PLUGIN_V1_FILENAME), new
AbstractTestPayload(true,
- getMyExpectedTypes()) {
- public void test(Map<ResType, Set<Resource>> discoveredResources)
{
- assertEquals(discoveredResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ private FakeServerInventory initialSyncAndDiscovery(String key, final InventoryStatus
requiredInventoryStatus)
+ throws Exception {
+ final FakeServerInventory inv = new FakeServerInventory();
+ PluginContainerTest.setServerSideFake(key, inv);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- Resource discoveredResource =
discoveredResources.get(SINGLETON_TYPE).iterator().next();
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(inv, this);
- assertEquals(discoveredResource.getResourceKey(),
"resource-key-v1");
- assertEquals(discoveredResource.getName(),
"resource-name-v1");
- assertEquals(discoveredResource.getDescription(),
"resource-description-v1");
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(inv.mergeInventoryReport(requiredInventoryStatus));
}
+ });
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
+ PluginContainerTest.startConfiguredPluginContainer();
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(requiredInventoryStatus));
- }
- };
- }
- });
+ Set<Resource> resources = getTestingResources(inv, SINGLETON_TYPE);
- }
+ assertEquals(resources.size(), 1, "Expected single test resource but
multiple found.");
- private void upgradeTest(boolean clearInventoryDat) throws Exception {
- initialSyncAndDiscovery(InventoryStatus.COMMITTED);
+ Resource discoveredResource = resources.iterator().next();
- executeTestWithPlugins(Collections.singleton(PLUGIN_V2_FILENAME), new
AbstractTestPayload(clearInventoryDat,
- getMyExpectedTypes()) {
- public void test(Map<ResType, Set<Resource>> discoveredResources)
{
- assertEquals(discoveredResources.get(SINGLETON_TYPE).size(), 1,
- "Expected single test resource but multiple found.");
+ assertEquals(discoveredResource.getResourceKey(), "resource-key-v1");
+ assertEquals(discoveredResource.getName(), "resource-name-v1");
+ assertEquals(discoveredResource.getDescription(),
"resource-description-v1");
- Resource discoveredResource =
discoveredResources.get(SINGLETON_TYPE).iterator().next();
+ return inv;
+ }
- assertEquals(discoveredResource.getResourceKey(),
"resource-key-v2");
- assertEquals(discoveredResource.getName(),
"resource-name-v2");
- assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
+ @SuppressWarnings("unchecked")
+ private void upgradeTest(String key) throws Exception {
+ final FakeServerInventory serverInventory = (FakeServerInventory)
PluginContainerTest.getServerSideFake(key);
+ final ServerServices ss =
PluginContainerTest.getCurrentPluginContainerConfiguration().getServerServices();
- ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
- .getResourceContainer(discoveredResource);
- File dataDir = container.getResourceContext().getDataDirectory();
+ PluginContainerTest.getCurrentMockContext().checking(new Expectations() {
+ {
+ defineDefaultExpectations(serverInventory, this);
- File marker = new File(dataDir, "upgrade-succeeded");
+
allowing(ss.getDiscoveryServerService()).mergeInventoryReport(with(any(InventoryReport.class)));
+ will(serverInventory.mergeInventoryReport(InventoryStatus.COMMITTED));
- assertTrue(marker.exists(),
- "The upgrade success marker file wasn't found. This means
the upgrade didn't actually run.");
+
oneOf(ss.getDiscoveryServerService()).upgradeResources(with(any(Set.class)));
+ will(serverInventory.upgradeResources());
}
+ });
- @SuppressWarnings("unchecked")
- public Expectations getExpectations(Mockery context) throws Exception {
- return new Expectations() {
- {
- defineDefaultExpectations(this);
+ PluginContainerTest.startConfiguredPluginContainer();
-
allowing(getCurrentDiscoveryServerService()).mergeInventoryReport(
- with(any(InventoryReport.class)));
-
will(getCurrentServerSideInventory().mergeInventoryReport(InventoryStatus.COMMITTED));
+ Set<Resource> discoveredResources = getTestingResources(serverInventory,
SINGLETON_TYPE);
-
oneOf(getCurrentDiscoveryServerService()).upgradeResources(with(any(Set.class)));
- will(getCurrentServerSideInventory().upgradeResources());
- }
- };
- }
- });
+ assertEquals(discoveredResources.size(), 1, "Expected single test resource
but multiple found.");
+
+ Resource discoveredResource = discoveredResources.iterator().next();
+
+ assertEquals(discoveredResource.getResourceKey(), "resource-key-v2");
+ assertEquals(discoveredResource.getName(), "resource-name-v2");
+ assertEquals(discoveredResource.getDescription(),
"resource-description-v2");
+
+ ResourceContainer container =
PluginContainer.getInstance().getInventoryManager()
+ .getResourceContainer(discoveredResource);
+ File dataDir = container.getResourceContext().getDataDirectory();
+
+ File marker = new File(dataDir, "upgrade-succeeded");
+
+ assertTrue(marker.exists(),
+ "The upgrade success marker file wasn't found. This means the
upgrade didn't actually run.");
}
}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
index e0526a1..3035fef 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
@@ -19,398 +19,52 @@
package org.rhq.core.pc.upgrade;
-import static org.testng.Assert.assertTrue;
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
-import org.apache.commons.io.FileUtils;
import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.rhq.core.clientapi.server.bundle.BundleServerService;
-import org.rhq.core.clientapi.server.configuration.ConfigurationServerService;
-import org.rhq.core.clientapi.server.content.ContentServerService;
-import org.rhq.core.clientapi.server.core.CoreServerService;
-import org.rhq.core.clientapi.server.discovery.DiscoveryServerService;
-import org.rhq.core.clientapi.server.event.EventServerService;
-import org.rhq.core.clientapi.server.inventory.ResourceFactoryServerService;
-import org.rhq.core.clientapi.server.measurement.MeasurementServerService;
-import org.rhq.core.clientapi.server.operation.OperationServerService;
import org.rhq.core.domain.discovery.AvailabilityReport;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pc.PluginContainer;
-import org.rhq.core.pc.PluginContainerConfiguration;
import org.rhq.core.pc.ServerServices;
-import org.rhq.core.pc.inventory.InventoryManager;
-import org.rhq.core.pc.plugin.FileSystemPluginFinder;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.rhq.test.pc.PluginContainerTest;
/**
*
* @author Lukas Krejci
*/
-public abstract class ResourceUpgradeTestBase {
-
- private static final String PLUGINS_DIR_NAME = "plugins";
- private static final String DATA_DIR_NAME = "data";
- private static final String TMP_DIR_NAME = "tmp";
- private File tmpDir;
- private File pluginDir;
- private File dataDir;
- private BundleServerService currentBundleServerService;
- private ConfigurationServerService currentConfigurationServerService;
- private ContentServerService currentContentServerService;
- private CoreServerService currentCoreServerService;
- private DiscoveryServerService currentDiscoveryServerService;
- private EventServerService currentEventServerService;
- private MeasurementServerService currentMeasurementServerService;
- private OperationServerService currentOperationServerService;
- private ResourceFactoryServerService currentResourceFactoryServerService;
- private FakeServerInventory currentServerSideInventory;
-
- protected static class ResType {
- private String resourceTypeName;
- private String resourceTypePluginName;
-
- public ResType(String resourceTypeName, String resourceTypePluginName) {
- super();
- this.resourceTypeName = resourceTypeName;
- this.resourceTypePluginName = resourceTypePluginName;
- }
-
- public String getResourceTypeName() {
- return resourceTypeName;
- }
-
- public String getResourceTypePluginName() {
- return resourceTypePluginName;
- }
-
- @Override
- public int hashCode() {
- return resourceTypeName.hashCode() * resourceTypePluginName.hashCode();
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this) {
- return true;
- }
-
- if (!(other instanceof ResType)) {
- return false;
- }
-
- ResType o = (ResType)other;
-
- return resourceTypeName.equals(o.getResourceTypeName()) &&
resourceTypePluginName.equals(o.getResourceTypePluginName());
- }
-
- @Override
- public String toString() {
- return "ResType[name='" + resourceTypeName + "',
plugin='" + resourceTypePluginName + "']";
- }
- }
-
- protected interface TestPayload {
- Expectations getExpectations(Mockery context) throws Exception;
-
- void test(Map<ResType,Set<Resource>> resourceUpgradeTestResources);
-
- boolean isClearInventoryDat();
-
- Set<ResType> getExpectedResourceTypes();
- }
-
- protected static abstract class AbstractTestPayload implements TestPayload {
- private boolean clearInventoryDat;
- private Set<ResType> resourceTypes;
-
- public AbstractTestPayload(boolean clearInventoryDat, Collection<ResType>
resourceTypes) {
- this.clearInventoryDat = clearInventoryDat;
- this.resourceTypes = new HashSet<ResType>(resourceTypes);
- }
-
- public boolean isClearInventoryDat() {
- return clearInventoryDat;
- }
-
- public Set<ResType> getExpectedResourceTypes() {
- return resourceTypes;
- }
- }
-
- @BeforeClass
- public void init() {
- tmpDir = getTmpDirectory();
- pluginDir = new File(tmpDir, PLUGINS_DIR_NAME);
- assertTrue(pluginDir.mkdir(), "Could not create plugin deploy
directory.");
- dataDir = new File(tmpDir, DATA_DIR_NAME);
- assertTrue(dataDir.mkdir(), "Could not create plugin container data
directory.");
- }
-
- @BeforeClass
- public void verifyPluginsExist() {
- for (String plugin : getRequiredPlugins()) {
- verifyPluginExists(plugin);
- }
- }
-
- @AfterClass
- public void undeployPlugins() throws IOException {
- FileUtils.deleteDirectory(tmpDir);
- }
-
- protected abstract Collection<String> getRequiredPlugins();
-
- protected void setCurrentServerSideInventory(FakeServerInventory
currentServerSideInventory) {
- this.currentServerSideInventory = currentServerSideInventory;
- }
-
- protected FakeServerInventory getCurrentServerSideInventory() {
- return currentServerSideInventory;
- }
-
- protected void setCurrentResourceFactoryServerService(
- ResourceFactoryServerService currentResourceFactoryServerService) {
- this.currentResourceFactoryServerService = currentResourceFactoryServerService;
- }
-
- protected ResourceFactoryServerService getCurrentResourceFactoryServerService() {
- return currentResourceFactoryServerService;
- }
-
- protected void setCurrentOperationServerService(OperationServerService
currentOperationServerService) {
- this.currentOperationServerService = currentOperationServerService;
- }
-
- protected OperationServerService getCurrentOperationServerService() {
- return currentOperationServerService;
- }
-
- protected void setCurrentMeasurementServerService(MeasurementServerService
currentMeasurementServerService) {
- this.currentMeasurementServerService = currentMeasurementServerService;
- }
-
- protected MeasurementServerService getCurrentMeasurementServerService() {
- return currentMeasurementServerService;
- }
-
- protected void setCurrentEventServerService(EventServerService
currentEventServerService) {
- this.currentEventServerService = currentEventServerService;
- }
-
- protected EventServerService getCurrentEventServerService() {
- return currentEventServerService;
- }
-
- protected void setCurrentDiscoveryServerService(DiscoveryServerService
currentDiscoveryServerService) {
- this.currentDiscoveryServerService = currentDiscoveryServerService;
- }
-
- protected DiscoveryServerService getCurrentDiscoveryServerService() {
- return currentDiscoveryServerService;
- }
-
- protected void setCurrentCoreServerService(CoreServerService
currentCoreServerService) {
- this.currentCoreServerService = currentCoreServerService;
- }
-
- protected CoreServerService getCurrentCoreServerService() {
- return currentCoreServerService;
- }
-
- protected void setCurrentContentServerService(ContentServerService
currentContentServerService) {
- this.currentContentServerService = currentContentServerService;
- }
-
- protected ContentServerService getCurrentContentServerService() {
- return currentContentServerService;
- }
-
- protected void setCurrentConfigurationServerService(ConfigurationServerService
currentConfigurationServerService) {
- this.currentConfigurationServerService = currentConfigurationServerService;
- }
-
- protected ConfigurationServerService getCurrentConfigurationServerService() {
- return currentConfigurationServerService;
- }
-
- protected void setCurrentBundleServerService(BundleServerService
currentBundleServerService) {
- this.currentBundleServerService = currentBundleServerService;
- }
-
- protected BundleServerService getCurrentBundleServerService() {
- return currentBundleServerService;
- }
-
- protected static File getTmpDirectory() {
- File ret = new File(System.getProperty("java.io.tmpdir"),
"resource-upgrade-test" + System.currentTimeMillis());
-
- while (ret.exists() || !ret.mkdir()) {
- ret = new File(System.getProperty("java.io.tmpdir"),
"resource-upgrade-test" + System.currentTimeMillis());
- }
-
- return ret;
- }
-
- private PluginContainerConfiguration createPluginContainerConfiguration(Mockery
context) throws Exception {
- PluginContainerConfiguration conf = new PluginContainerConfiguration();
-
- conf.setPluginDirectory(new File(tmpDir, PLUGINS_DIR_NAME));
- conf.setDataDirectory(new File(tmpDir, DATA_DIR_NAME));
- conf.setTemporaryDirectory(new File(tmpDir, TMP_DIR_NAME));
- conf.setInsideAgent(true); //pc must think it's inside an agent so that it
persists the inventory between restarts
- conf.setPluginFinder(new FileSystemPluginFinder(conf.getPluginDirectory()));
- conf.setCreateResourceClassloaders(false);
-
- //we're not interested in any scans happening out of our control
- conf.setAvailabilityScanInitialDelay(Long.MAX_VALUE);
- conf.setConfigurationDiscoveryInitialDelay(Long.MAX_VALUE);
- conf.setContentDiscoveryInitialDelay(Long.MAX_VALUE);
- conf.setEventSenderInitialDelay(Long.MAX_VALUE);
- conf.setMeasurementCollectionInitialDelay(Long.MAX_VALUE);
- conf.setServerDiscoveryInitialDelay(Long.MAX_VALUE);
- conf.setServiceDiscoveryInitialDelay(Long.MAX_VALUE);
-
- setCurrentBundleServerService(context.mock(BundleServerService.class));
-
setCurrentConfigurationServerService(context.mock(ConfigurationServerService.class));
- setCurrentContentServerService(context.mock(ContentServerService.class));
- setCurrentCoreServerService(context.mock(CoreServerService.class));
- setCurrentDiscoveryServerService(context.mock(DiscoveryServerService.class));
- setCurrentEventServerService(context.mock(EventServerService.class));
-
setCurrentMeasurementServerService(context.mock(MeasurementServerService.class));
- setCurrentOperationServerService(context.mock(OperationServerService.class));
-
setCurrentResourceFactoryServerService(context.mock(ResourceFactoryServerService.class));
-
- ServerServices serverServices = new ServerServices();
- serverServices.setBundleServerService(getCurrentBundleServerService());
-
serverServices.setConfigurationServerService(getCurrentConfigurationServerService());
- serverServices.setContentServerService(getCurrentContentServerService());
- serverServices.setCoreServerService(getCurrentCoreServerService());
- serverServices.setDiscoveryServerService(getCurrentDiscoveryServerService());
- serverServices.setEventServerService(getCurrentEventServerService());
-
serverServices.setMeasurementServerService(getCurrentMeasurementServerService());
- serverServices.setOperationServerService(getCurrentOperationServerService());
-
serverServices.setResourceFactoryServerService(getCurrentResourceFactoryServerService());
-
- conf.setServerServices(serverServices);
-
- return conf;
- }
-
- /**
- * @param pluginResourcePath
- */
- protected void verifyPluginExists(String pluginResourcePath) {
- URL url = getClass().getResource(pluginResourcePath);
-
- File pluginFile = FileUtils.toFile(url);
-
- assert pluginFile!=null : "pluginFile was null";
- assertTrue(pluginFile.exists(), pluginFile.getAbsoluteFile() + " plugin jar
could not be found.");
- }
-
- private void copyPlugin(String pluginResourcePath, File pluginDirectory) throws
IOException {
- URL pluginUrl = getClass().getResource(pluginResourcePath);
-
- File pluginFile = new File(pluginResourcePath);
- String pluginFileName = pluginFile.getName();
-
- FileUtils.copyURLToFile(pluginUrl, new File(pluginDirectory, pluginFileName));
- }
-
- private Set<Resource> getTestingResources(String resourceTypeName, String
resourceTypePluginName) {
- ResourceType resType =
PluginContainer.getInstance().getPluginManager().getMetadataManager()
- .getType(resourceTypeName, resourceTypePluginName);
-
- return getCurrentServerSideInventory().findResourcesByType(resType);
- }
-
- protected void executeTestWithPlugins(Set<String> pluginResourcePaths,
TestPayload test) throws Exception {
- FileUtils.cleanDirectory(new File(tmpDir, PLUGINS_DIR_NAME));
-
- for (String pluginResourcePath : pluginResourcePaths) {
- copyPlugin(pluginResourcePath, pluginDir);
- }
-
- Mockery context = new Mockery();
-
- PluginContainerConfiguration pcConfig =
createPluginContainerConfiguration(context);
-
- if (test.isClearInventoryDat()) {
- File inventoryDat = new File(pcConfig.getDataDirectory(),
"inventory.dat");
- inventoryDat.delete();
- }
-
- context.checking(test.getExpectations(context));
-
- PluginContainer.getInstance().setConfiguration(pcConfig);
- PluginContainer.getInstance().initialize();
-
- try {
- //give the pc the time to finish resource upgrade
- while (!PluginContainer.getInstance().isStarted()) {
- Thread.sleep(500);
- }
-
- //execute full discovery
- InventoryManager im = PluginContainer.getInstance().getInventoryManager();
- im.executeServerScanImmediately();
-
- //do the service scan a couple of times so that we can commit
- //the resources deep in the type hierarchy
- for(int i = 0; i < 10; ++i) {
- im.executeServiceScanImmediately();
- }
-
- Map<ResType, Set<Resource>> resources = new HashMap<ResType,
Set<Resource>>();
-
- for(ResType type : test.getExpectedResourceTypes()) {
- Set<Resource> rs = getTestingResources(type.getResourceTypeName(),
type.getResourceTypePluginName());
- resources.put(type, rs);
- }
-
- test.test(resources);
-
- context.assertIsSatisfied();
- } finally {
- PluginContainer.getInstance().shutdown();
- }
- }
+public abstract class ResourceUpgradeTestBase extends PluginContainerTest {
@SuppressWarnings("unchecked")
- protected void defineDefaultExpectations(Expectations expectations) {
- expectations.ignoring(getCurrentBundleServerService());
- expectations.ignoring(getCurrentConfigurationServerService());
- expectations.ignoring(getCurrentContentServerService());
- expectations.ignoring(getCurrentCoreServerService());
- expectations.ignoring(getCurrentEventServerService());
- expectations.ignoring(getCurrentMeasurementServerService());
- expectations.ignoring(getCurrentOperationServerService());
- expectations.ignoring(getCurrentResourceFactoryServerService());
+ protected void defineDefaultExpectations(FakeServerInventory inventory, Expectations
expectations) {
+ ServerServices ss = pluginContainerConfiguration.getServerServices();
+
+ expectations.ignoring(ss.getBundleServerService());
+ expectations.ignoring(ss.getConfigurationServerService());
+ expectations.ignoring(ss.getContentServerService());
+ expectations.ignoring(ss.getCoreServerService());
+ expectations.ignoring(ss.getEventServerService());
+ expectations.ignoring(ss.getMeasurementServerService());
+ expectations.ignoring(ss.getOperationServerService());
+ expectations.ignoring(ss.getResourceFactoryServerService());
//just ignore these invocations if we get a availability scan in the PC...
-
expectations.allowing(getCurrentDiscoveryServerService()).mergeAvailabilityReport(
+ expectations.allowing(ss.getDiscoveryServerService()).mergeAvailabilityReport(
expectations.with(Expectations.any(AvailabilityReport.class)));
- expectations.allowing(getCurrentDiscoveryServerService()).getResources(
+ expectations.allowing(ss.getDiscoveryServerService()).getResources(
expectations.with(Expectations.any(Set.class)),
expectations.with(Expectations.any(boolean.class)));
- expectations.will(getCurrentServerSideInventory().getResources());
+ expectations.will(inventory.getResources());
-
expectations.allowing(getCurrentDiscoveryServerService()).postProcessNewlyCommittedResources(
+
expectations.allowing(ss.getDiscoveryServerService()).postProcessNewlyCommittedResources(
expectations.with(Expectations.any(Set.class)));
}
- protected void cleanDataDir() throws IOException {
- FileUtils.cleanDirectory(new File(tmpDir, DATA_DIR_NAME));
+ protected Set<Resource> getTestingResources(FakeServerInventory
serverInventory, ResType type) {
+ ResourceType resType =
PluginContainer.getInstance().getPluginManager().getMetadataManager()
+ .getType(type.getResourceTypeName(), type.getResourceTypePluginName());
+
+ return serverInventory.findResourcesByType(resType);
}
}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerSetup.java
b/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerSetup.java
new file mode 100644
index 0000000..a6baff0
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerSetup.java
@@ -0,0 +1,118 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.test.pc;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.rhq.core.pc.ServerServices;
+
+/**
+ * This annotation represents the setup of the plugin container to be
+ * performed before each test.
+ * @author Lukas Krejci
+ */
+(a)Retention(RetentionPolicy.RUNTIME)
+(a)Target({ElementType.METHOD, ElementType.TYPE})
+public @interface PluginContainerSetup {
+
+ /**
+ * The list of plugin URIs that should be loaded into the plugin container.
+ * The "classpath" scheme can be used in the URI to specify that the
plugin
+ * is stored in the classpath of the test being executed. Other schemes are
+ * resolved as usual.
+ * <p>
+ * Examples of URIs:
+ * <ul>
+ * <li> classpath:///test-plugin.jar
+ * <li> file:///some/location/on/the/filesystem.jar
+ * <li>
http://www.rhq-project.org/tests/test-plugin.jar
+ */
+ String[] plugins();
+
+ /**
+ * If specified, the plugin container setups with the same shared group will
+ * be invoked with the same directory layout for storing inventory, data and plugin
+ * files.
+ * <p>
+ * This enables the persistent data to survive among different plugin container
+ * runs which is useful for example to test plugin upgrades. We need to test for
different
+ * things in each plugin container run, we need to deploy different plugins to the
+ * plugin container, yet we usually want the persisted inventory to survive.
+ * <p>
+ * By default each test creates a new directory layout.
+ */
+ String sharedGroup() default "";
+
+ /**
+ * Whether the plugin container should be started and initialized before
+ * the control is handed over to the test method.
+ * <p>
+ * Default is false.
+ */
+ boolean startImmediately() default false;
+
+ /**
+ * If the plugin container is {@link #inAgent()}, it persists the state of
+ * the inventory in a 'inventory.dat' file.
+ * <p>
+ * Because the plugin container test can start up the PC using the same
+ * directories to use (using the {@link #sharedGroup()} grouping), the persisted
+ * inventory can be shared between multiple tests.
+ * <p>
+ * The default value is true.
+ */
+ boolean clearInventoryDat() default true;
+
+ /**
+ * Whether to clear the data directory of the plugin container
+ */
+ boolean clearDataDir() default false;
+
+ /**
+ * The number of server and service discoveries executed before the control
+ * is handed over to the test method. This is useful if you have deep hierarchies
+ * of server resources that only get committed a level at a time.
+ * <p>
+ * If set to 0, no discoveries will be performed.
+ * <p>
+ * The default value is 1.
+ */
+ int numberOfInitialDiscoveries() default 1;
+
+ /**
+ * Should the plugin container be set to think it runs inside an agent?
+ * <p>
+ * The default is true.
+ */
+ boolean inAgent() default true;
+
+ /**
+ * By default the PluginContainerTest
+ * By default the {@link ServerServices} the plugin container will be initialized
with
+ * will contain the mocked out interfaces of the individual services.
+ * <p>
+ * If you need to provide custom implementations, you can tell the setup
+ * to use the instance returned by the method named using this attribute.
+ */
+ String pluginConfigurationProviderMethod() default "";
+}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerTest.java
new file mode 100644
index 0000000..7e91ede
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/test/pc/PluginContainerTest.java
@@ -0,0 +1,397 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.test.pc;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URI;
+import java.net.URL;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.FileUtils;
+import org.jmock.Mockery;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.Listeners;
+
+import org.rhq.core.clientapi.server.bundle.BundleServerService;
+import org.rhq.core.clientapi.server.configuration.ConfigurationServerService;
+import org.rhq.core.clientapi.server.content.ContentServerService;
+import org.rhq.core.clientapi.server.core.CoreServerService;
+import org.rhq.core.clientapi.server.discovery.DiscoveryServerService;
+import org.rhq.core.clientapi.server.event.EventServerService;
+import org.rhq.core.clientapi.server.inventory.ResourceFactoryServerService;
+import org.rhq.core.clientapi.server.measurement.MeasurementServerService;
+import org.rhq.core.clientapi.server.operation.OperationServerService;
+import org.rhq.core.pc.PluginContainer;
+import org.rhq.core.pc.PluginContainerConfiguration;
+import org.rhq.core.pc.ServerServices;
+import org.rhq.core.pc.inventory.InventoryManager;
+import org.rhq.core.pc.plugin.FileSystemPluginFinder;
+import org.rhq.test.JMockTest;
+
+/**
+ * This class is similar to {@link JMockTest} in that it can be used both
+ * as a base class to your test or as a TestNG {@link Listeners listener}
+ * on your test class.
+ * <p>
+ * This class is used to declaratively setup a plugin container a test wants
+ * to use using the {@link PluginContainerSetup} annotation on a test method or class.
+ *
+ * @author Lukas Krejci
+ */
+public class PluginContainerTest extends JMockTest {
+ private static final File ROOT;
+ private static boolean cleanedUp = false;
+
+ private static final String PLUGINS_DIR_NAME = "plugins";
+
+ private static final String DATA_DIR_NAME = "data";
+ private static final String TMP_DIR_NAME = "tmp";
+
+ private static final ThreadLocal<PluginContainerConfiguration>
STATICALLY_ACCESSIBLE_PLUGIN_CONTAINER_CONFIGURATION = new
ThreadLocal<PluginContainerConfiguration>();
+
+ private static final ThreadLocal<PluginContainerSetup> CURRENT_SETUP = new
ThreadLocal<PluginContainerSetup>();
+
+ private static final Map<String, Object> SERVERSIDE_FAKES =
Collections.synchronizedMap(new HashMap<String, Object>());
+
+ protected PluginContainerConfiguration pluginContainerConfiguration;
+
+ static {
+ File f = new File(System.getProperty("java.io.tmpdir"),
"plugin-container-test-" + System.currentTimeMillis());
+ while (f.exists() || !f.mkdir()) {
+ f = new File(System.getProperty("java.io.tmpdir"),
"plugin-container-test-" + System.currentTimeMillis());
+ }
+
+ ROOT = f;
+ }
+
+ /**
+ * During the tests, one might need to "fake" responses that come to the
plugin container
+ * from external sources, like RHQ server. These are usually mocked out using the
facilities
+ * provided by JMock.
+ * <p>
+ * This method together with {@link #setServerSideFake(String, Object)} provides a
generic
+ * "storage" for tests to share these objects and is only provided as a
convenience to
+ * the test writers. There's nothing that would manadate using it.
+ *
+ * @param name
+ * @return
+ */
+ public static Object getServerSideFake(String name) {
+ return SERVERSIDE_FAKES.get(name);
+ }
+
+ /**
+ * The opposite of {@link #getServerSideFake(String)}.
+ */
+ public static void setServerSideFake(String name, Object object) {
+ SERVERSIDE_FAKES.put(name, object);
+ }
+
+ /**
+ * Returns the {@link PluginContainerConfiguration} as configured using
+ * the {@link PluginContainerSetup} annotation on the current test (or null
+ * if no such thing is configured).
+ * @return
+ */
+ public static PluginContainerConfiguration getCurrentPluginContainerConfiguration()
{
+ return STATICALLY_ACCESSIBLE_PLUGIN_CONTAINER_CONFIGURATION.get();
+ }
+
+ @Override
+ protected void initBeforeTest(Object testObject, Method testMethod) {
+ super.initBeforeTest(testObject, testMethod);
+
+ CURRENT_SETUP.set(getSetup(testMethod));
+
+ if (CURRENT_SETUP.get() != null) {
+ try {
+ initPluginContainerConfiguration(testObject, testMethod);
+ initDirectoryStructure();
+ deployPlugins(testObject,
pluginContainerConfiguration.getPluginDirectory(), CURRENT_SETUP.get());
+
+
PluginContainer.getInstance().setConfiguration(pluginContainerConfiguration);
+
+ if (CURRENT_SETUP.get().clearInventoryDat()) {
+ File inventoryDat = new
File(pluginContainerConfiguration.getDataDirectory(), "inventory.dat");
+ inventoryDat.delete();
+ }
+
+ if (CURRENT_SETUP.get().startImmediately()) {
+ startConfiguredPluginContainer();
+ }
+ } catch (Throwable t) {
+ throw new IllegalStateException("Failed to setup the plugin
container.", t);
+ }
+ }
+ }
+
+ @Override
+ protected void tearDownAfterTest(ITestResult testResult) {
+ try {
+ deletePlugins(pluginContainerConfiguration.getPluginDirectory());
+ } catch (Exception e) {
+ //hmmm
+ } finally {
+ PluginContainer.getInstance().shutdown();
+ super.tearDownAfterTest(testResult);
+ }
+ }
+
+ /**
+ * Starts the plugin container. This method is supposed to be called from tests that
+ * need to start the plugin container manually after it has been configured using
+ * the {@link PluginContainerSetup} annotation.
+ */
+ public static void startConfiguredPluginContainer() {
+
PluginContainer.getInstance().setConfiguration(getCurrentPluginContainerConfiguration());
+
+ PluginContainer.getInstance().initialize();
+
+ try {
+ while (!PluginContainer.getInstance().isStarted()) {
+ Thread.sleep(100);
+ }
+ } catch (InterruptedException e) {
+ throw new IllegalStateException("Thread interrupted while waiting for
plugin container to start.");
+ }
+
+ InventoryManager im = PluginContainer.getInstance().getInventoryManager();
+ for (int i = 0; i < CURRENT_SETUP.get().numberOfInitialDiscoveries(); ++i) {
+ im.executeServerScanImmediately();
+ im.executeServiceScanImmediately();
+ }
+ }
+
+ /**
+ * This method can be called in the after methods of the tests to clear up data
+ * left after the plugin container run.
+ * <p>
+ * This is not done automatically to support sharing the plugin container among
+ * multiple tests to simulate upgrades, etc.
+ *
+ * @throws IOException
+ */
+ public static void clearStorageOfCurrentPluginContainer() throws IOException {
+ File f =
STATICALLY_ACCESSIBLE_PLUGIN_CONTAINER_CONFIGURATION.get().getPluginDirectory();
+ f = f.getParentFile();
+
+ if (f.exists()) {
+ FileUtils.cleanDirectory(f);
+
+ f.delete();
+ }
+ }
+
+ /**
+ * This method clears the storage of all tests made. This is useful in {@link
AfterSuite}
+ * method to clean up after all the tests (annotated with {@link
PluginContainerSetup})
+ * that have been run.
+ *
+ * @throws IOException
+ */
+ public synchronized static void clearStorage() throws IOException {
+ if (!cleanedUp) {
+ FileUtils.cleanDirectory(ROOT);
+ ROOT.delete();
+ cleanedUp = true;
+ }
+ }
+
+ /**
+ * If PluginContainerTest is used as a base class to your tests (and not as a {@link
Listeners listener},
+ * this method is provided to automatically clean up after all the plugin container
tests that ran
+ * in the test suite.
+ * <p>
+ * If you use PluginContainerTest as a listener, you have to call {@link
#clearStorage()} method
+ * on your own.
+ *
+ * @throws IOException
+ */
+ @AfterSuite
+ public void cleanUpAfterPluginContainerTests() throws IOException {
+ clearStorage();
+ }
+
+ /**
+ * This method returns the {@link PluginContainerConfiguration} that will be used in
+ * the current test as was configured by the PluginContainerSetup annotation.
+ * <p>
+ * If your test class inherits from PluginContainerTest, you can override this method
+ * to provide custom configuration.
+ *
+ * @param testObject the object of the current test
+ * @param testMethod the test method currently being executed on the test object
+ * @return
+ */
+ protected PluginContainerConfiguration createPluginConfigurationToUse(Object
testObject, Method testMethod) {
+ PluginContainerSetup setup = CURRENT_SETUP.get();
+
+ if (setup.pluginConfigurationProviderMethod().isEmpty()) {
+ return createDefaultPluginConfiguration(setup, context);
+ } else {
+ String providerName = setup.pluginConfigurationProviderMethod();
+ Class<?> testClass = testMethod.getDeclaringClass();
+ try {
+ Method pluginContainerProvider = testClass.getMethod(providerName,
(Class<?>[]) null);
+
+ if
(!PluginContainerConfiguration.class.isAssignableFrom(pluginContainerProvider.getReturnType()))
{
+ throw new IllegalStateException("The configured
pluginConfigurationProviderMethod '" + providerName + "' on the test
class '" + testClass + "' does not return a
PluginContainerConfiguration.");
+ }
+
+ return (PluginContainerConfiguration)
pluginContainerProvider.invoke(testObject, (Object[]) null);
+ } catch (SecurityException e) {
+ throw new IllegalStateException("The configured
pluginConfigurationProviderMethod '" + providerName + "' could not be
found on the test class '" + testClass + "'.", e);
+ } catch (NoSuchMethodException e) {
+ throw new IllegalStateException("The configured
pluginConfigurationProviderMethod '" + providerName + "' could not be
found on the test class '" + testClass + "'.", e);
+ } catch (IllegalAccessException e) {
+ throw new IllegalStateException("Failed to invoke method '"
+ providerName + "' on test class '" + testClass + "'.",
e);
+ } catch (InvocationTargetException e) {
+ throw new IllegalStateException("Failed to invoke method '"
+ providerName + "' on test class '" + testClass + "'.",
e);
+ }
+ }
+ }
+
+ /**
+ * This method is called after the test to tear down resources associated with the
+ * current plugin container configuration.
+ */
+ protected void tearDownPluginContainerConfiguration() {
+ pluginContainerConfiguration = null;
+ STATICALLY_ACCESSIBLE_PLUGIN_CONTAINER_CONFIGURATION.set(null);
+ }
+
+ private void initPluginContainerConfiguration(Object testObject, Method testMethod)
{
+ pluginContainerConfiguration = createPluginConfigurationToUse(testObject,
testMethod);
+
STATICALLY_ACCESSIBLE_PLUGIN_CONTAINER_CONFIGURATION.set(pluginContainerConfiguration);
+ }
+
+ private static PluginContainerSetup getSetup(Method method) {
+ PluginContainerSetup setup = method.getAnnotation(PluginContainerSetup.class);
+
+ if (setup == null) {
+ setup =
method.getDeclaringClass().getAnnotation(PluginContainerSetup.class);
+ }
+
+ return setup;
+ }
+
+ private void initDirectoryStructure() {
+ File pluginDir = pluginContainerConfiguration.getPluginDirectory();
+ File dataDir = pluginContainerConfiguration.getDataDirectory();
+ File tempDir = pluginContainerConfiguration.getTemporaryDirectory();
+
+ pluginDir.mkdirs();
+ dataDir.mkdirs();
+ tempDir.mkdirs();
+ }
+
+ private static PluginContainerConfiguration
createDefaultPluginConfiguration(PluginContainerSetup setup, Mockery context) {
+ PluginContainerConfiguration conf = new PluginContainerConfiguration();
+
+ File tmpDir = createTemporaryDirectory(setup);
+
+ conf.setPluginDirectory(new File(tmpDir, PLUGINS_DIR_NAME));
+ conf.setDataDirectory(new File(tmpDir, DATA_DIR_NAME));
+ conf.setTemporaryDirectory(new File(tmpDir, TMP_DIR_NAME));
+ conf.setInsideAgent(setup.inAgent());
+ conf.setPluginFinder(new FileSystemPluginFinder(conf.getPluginDirectory()));
+ conf.setCreateResourceClassloaders(false);
+
+ //we're not interested in any scans happening out of our control
+ conf.setAvailabilityScanInitialDelay(Long.MAX_VALUE);
+ conf.setConfigurationDiscoveryInitialDelay(Long.MAX_VALUE);
+ conf.setContentDiscoveryInitialDelay(Long.MAX_VALUE);
+ conf.setEventSenderInitialDelay(Long.MAX_VALUE);
+ conf.setMeasurementCollectionInitialDelay(Long.MAX_VALUE);
+ conf.setServerDiscoveryInitialDelay(Long.MAX_VALUE);
+ conf.setServiceDiscoveryInitialDelay(Long.MAX_VALUE);
+
+ ServerServices serverServices = new ServerServices();
+ serverServices.setBundleServerService(context.mock(BundleServerService.class));
+
serverServices.setConfigurationServerService(context.mock(ConfigurationServerService.class));
+
serverServices.setContentServerService(context.mock(ContentServerService.class));
+ serverServices.setCoreServerService(context.mock(CoreServerService.class));
+
serverServices.setDiscoveryServerService(context.mock(DiscoveryServerService.class));
+ serverServices.setEventServerService(context.mock(EventServerService.class));
+
serverServices.setMeasurementServerService(context.mock(MeasurementServerService.class));
+
serverServices.setOperationServerService(context.mock(OperationServerService.class));
+
serverServices.setResourceFactoryServerService(context.mock(ResourceFactoryServerService.class));
+
+ conf.setServerServices(serverServices);
+
+ return conf;
+ }
+
+ private void deployPlugins(Object testObject, File destination, PluginContainerSetup
setup) throws IOException {
+ for(String plugin : setup.plugins()) {
+ copyPluginToDestination(testObject, plugin, destination);
+ }
+ }
+
+ private void deletePlugins(File deployDirectory) throws IOException {
+ if (deployDirectory.exists()) {
+ FileUtils.cleanDirectory(deployDirectory);
+ }
+ }
+
+ private static File createTemporaryDirectory(PluginContainerSetup setup) {
+ String name = null;
+ boolean mustBeNew = true;
+ if (setup.sharedGroup().length() > 0) {
+ name = setup.sharedGroup();
+ mustBeNew = false;
+ } else {
+ name = Long.toString(System.currentTimeMillis());
+ }
+
+ File ret = new File(ROOT, name);
+
+ while (mustBeNew && (ret.exists() || !ret.mkdir())) {
+ ret = new File(ROOT, Long.toString(System.currentTimeMillis()));
+ }
+
+ return ret;
+ }
+
+ private File copyPluginToDestination(Object testObject, String plugin, File
destination) throws IOException {
+ URI pluginUri = URI.create(plugin);
+ URL pluginUrl = null;
+ if ("classpath".equals(pluginUri.getScheme())) {
+ String path = pluginUri.getPath();
+ pluginUrl = testObject.getClass().getResource(path);
+ } else {
+ pluginUrl = pluginUri.toURL();
+ }
+
+
+ String pluginFileName =
pluginUri.getPath().substring(pluginUri.getPath().lastIndexOf('/') + 1);
+
+ File pluginJar = new File(destination, pluginFileName);
+ FileUtils.copyURLToFile(pluginUrl, pluginJar);
+
+ return pluginJar;
+ }
+}
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index f51a2ed..d1863d4 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -55,6 +55,21 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>${rhq.groupId}</groupId>
+ <artifactId>rhq-core-plugin-container</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${rhq.groupId}</groupId>
+ <artifactId>test-utils</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
<!--
TODO: This is a fix for the Javac bug requiring annotations to be available when
compiling dependent classes.
It is fixed in JDK 6.
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 89fbc3c..3ed6856 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -75,7 +75,13 @@
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-testng</artifactId>
- <version>3.1</version>
+ <version>3.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.unitils</groupId>
diff --git a/modules/test-utils/src/main/java/org/rhq/test/JMockTest.java
b/modules/test-utils/src/main/java/org/rhq/test/JMockTest.java
index f3add4e..2088460 100644
--- a/modules/test-utils/src/main/java/org/rhq/test/JMockTest.java
+++ b/modules/test-utils/src/main/java/org/rhq/test/JMockTest.java
@@ -23,29 +23,145 @@
package org.rhq.test;
+import java.lang.reflect.Method;
+
import org.jmock.Mockery;
import org.testng.IHookCallBack;
import org.testng.IHookable;
+import org.testng.IInvokedMethod;
+import org.testng.IInvokedMethodListener;
import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Listeners;
-public class JMockTest implements IHookable {
+/**
+ * This class can either be used as a base class for tests using JMock
+ * or it also can be used as a TestNG listener to provide the JMock
+ * context to test classes that need to inherit from another class.
+ * <p>
+ * In the former case, the JMock context is accessible through the {@link #context}
protected
+ * field, while in the latter case (when JMockTest is specified as a {@link Listeners
listener}
+ * of a test class), the JMock context is accessible using the {@link
#getCurrentMockContext()}
+ * static method.
+ *
+ * @author John Sanda
+ * @author Lukas Krejci
+ */
+public class JMockTest implements IHookable, IInvokedMethodListener {
protected Mockery context;
- @BeforeMethod
- public void initContext() {
- context = new Mockery();
+ private static final ThreadLocal<Mockery> STATICALLY_ACCESSIBLE_CONTEXT = new
ThreadLocal<Mockery>();
+
+ private boolean initRan;
+ private boolean tearDownRan;
+
+ /**
+ * @return the JMock context of the current test or null if the calling test class
doesn't have
+ * this class set as a listener or doesn't inherit from this class.
+ */
+ public static Mockery getCurrentMockContext() {
+ return STATICALLY_ACCESSIBLE_CONTEXT.get();
}
- public void run(IHookCallBack iHookCallBack, ITestResult iTestResult) {
+ @BeforeMethod
+ public void initMockContext(Method testMethod) {
+ if (!initRan) {
+ initBeforeTest(this, testMethod);
+ }
+ tearDownRan = false;
+ initRan = true;
+ }
+
+ @AfterMethod
+ public void tearDownMockContext(ITestResult testResult) {
+ if (!tearDownRan) {
+ tearDownAfterTest(testResult);
+ }
+ tearDownRan = true;
+ initRan = false;
+ }
+
+ /**
+ * This method runs {@link #initBeforeTest(ITestResult)}, followed by the actual
test,
+ * followed by {@link #tearDownAfterTest(ITestResult)}.
+ * <p>
+ * If you want to modify the behavior of this method, override the above mentioned
+ * methods.
+ *
+ * @see IHookable#run(IHookCallBack, ITestResult)
+ */
+ public final void run(IHookCallBack iHookCallBack, ITestResult iTestResult) {
iHookCallBack.runTestMethod(iTestResult);
+ }
+
+ /**
+ * Runs {@link #initBeforeTest(ITestResult)}.
+ *
+ * @see IInvokedMethodListener#beforeInvocation(IInvokedMethod, ITestResult)
+ */
+ public final void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
+ if (!initRan) {
+ initBeforeTest(testResult.getInstance(),
testResult.getMethod().getMethod());
+ }
+ initRan = true;
+ tearDownRan = false;
+ }
+
+ /**
+ * Runs {@link #tearDownAfterTest(ITestResult)}.
+ *
+ * @see IInvokedMethodListener#afterInvocation(IInvokedMethod, ITestResult)
+ */
+ public final void afterInvocation(IInvokedMethod method, ITestResult testResult) {
+ if (!tearDownRan) {
+ tearDownAfterTest(testResult);
+ }
+ initRan = false;
+ tearDownRan = true;
+ }
+
+ /**
+ * Does whatever needs done before the test is invoked.
+ * <p>
+ * If you override this method, be sure to call this method
<b>before</b>
+ * your code so that you gain access to the {@link #context}.
+ *
+ * @param testResult
+ */
+ protected void initBeforeTest(Object testObject, Method testMethod) {
+ initContext();
+ }
+
+ /**
+ * Does whatever needs done after the test has been invoked.
+ * <p>
+ * This method calls {@link Mockery#assertIsSatisfied()} and nulls out the {@link
#context}.
+ * <p>
+ * If you override this method, call this implmentation as the last call in your
code.
+ * @param result
+ */
+ protected void tearDownAfterTest(ITestResult result) {
try {
context.assertIsSatisfied();
+ } catch (Throwable t) {
+ result.setStatus(ITestResult.FAILURE);
+ result.setThrowable(t);
+ } finally {
+ tearDownContext();
}
- catch (Throwable t) {
- iTestResult.setStatus(ITestResult.FAILURE);
- iTestResult.setThrowable(t);
- }
+ }
+
+ private void initContext() {
+ context = new Mockery();
+ STATICALLY_ACCESSIBLE_CONTEXT.set(context);
+ }
+
+ private void tearDownContext() {
+ context = null;
+ //null out the static field so that the GC can
+ //collect the no-longer used context.
+ STATICALLY_ACCESSIBLE_CONTEXT.set(null);
}
}
commit 68414c5dda7381a72816a8754151c62e4ad29541
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 25 17:11:35 2011 -0400
Add missing element terminator.
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
index d589fa8..94d9621 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.html
@@ -8,7 +8,7 @@
Note, when building the app, you must include the "ie6" gwt.userAgent
since we're emulating IE7 (which
requires the "ie6" userAgent.
-->
- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"
>
+ <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"
/>
<!-- support internationalized characters -->
<meta http-equiv="Content-Type"
content="text/html;charset=UTF-8" />
commit c4432f792961c2ce406cf0f9a0be4847842260f7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 25 17:11:05 2011 -0400
[BZ 707759 - Deployment of new WAR to EAP server fails due to thread timeout - Need
configurable thread timeout]
Provide overrides for the default 60 second timeout of create and
delete child actions.
In general 60s may be enough but for applications that need time to deploy,
or perhaps to shut down gracefully, this can be too short. The overrides
are blunt in that they affect all types. And it should be noted that while
creating(deploying) or deleting the child resource, the parent resource will
be write-locked, meaning deferred metric reporting etc. So, it it recommended
that when possible fast create and delete is performed for these facet
implementations.
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceFactoryManager.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceFactoryManager.java
index 161596e..cd0bfcc 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceFactoryManager.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceFactoryManager.java
@@ -1,25 +1,25 @@
- /*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser General Public License along with this program;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
package org.rhq.core.pc.inventory;
import java.util.Set;
@@ -62,7 +62,41 @@ import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
* @author Jason Dobies
*/
public class ResourceFactoryManager extends AgentService implements ContainerService,
ResourceFactoryAgentService {
- private static final int FACET_METHOD_TIMEOUT = 60 * 1000; // 60 seconds
+
+ // This used to be a single value fixed at 60 seconds. But create and delete actions
can very well exceed 1 minute
+ // depending on the type of resource being created, or perhaps graceful shutdown of a
resource being deleted. So,
+ // allow the timeout value to be overriden by editing rhq-agent-env.sh with new -D
settings. Also, create separate
+ // timeouts for create and delete, as their execution times really are not related.
The properties are set in
+ // milliseconds:
+ // rhq.agent.plugins.facet.create-child-resource.timeout
+ // rhq.agent.plugins.facet.delete-resource.timeout
+ //
+ // The default is still 60s. Note that increasing this value affects all types
across all plugins and should not
+ // be raised unless a successful create or delete action requires the higher limit.
Realize that while a
+ // create or delete is in progress that the resource is write-locked, so no other
actions can take place (like
+ // metric collection).
+ //
+ // TODO: Add a timeout to the create resource wizard that can be set as an override
for a single create action.
+ private static final int FACET_CREATE_TIMEOUT;
+ private static final int FACET_DELETE_TIMEOUT;
+
+ static {
+ int timeout;
+ try {
+ timeout =
Integer.parseInt(System.getProperty("rhq.agent.plugins.facet.create-child-resource.timeout",
+ "60000"));
+ } catch (Throwable t) {
+ timeout = 60 * 1000;
+ }
+ FACET_CREATE_TIMEOUT = timeout;
+
+ try {
+ timeout =
Integer.parseInt(System.getProperty("rhq.agent.plugins.facet.delete-resource.timeout",
"60000"));
+ } catch (Throwable t) {
+ timeout = 60 * 1000;
+ }
+ FACET_DELETE_TIMEOUT = timeout;
+ }
// Attributes --------------------------------------------
@@ -235,7 +269,7 @@ public class ResourceFactoryManager extends AgentService implements
ContainerSer
*/
private DeleteResourceFacet getDeleteResourceFacet(int resourceId) throws
PluginContainerException {
DeleteResourceFacet facet = ComponentUtil.getComponent(resourceId,
DeleteResourceFacet.class,
- FacetLockType.WRITE, FACET_METHOD_TIMEOUT, false, true);
+ FacetLockType.WRITE, FACET_DELETE_TIMEOUT, false, true);
return facet;
}
@@ -251,7 +285,7 @@ public class ResourceFactoryManager extends AgentService implements
ContainerSer
*/
private CreateChildResourceFacet getCreateChildResourceFacet(int parentResourceId)
throws PluginContainerException {
CreateChildResourceFacet facet = ComponentUtil.getComponent(parentResourceId,
CreateChildResourceFacet.class,
- FacetLockType.WRITE, FACET_METHOD_TIMEOUT, false, true);
+ FacetLockType.WRITE, FACET_CREATE_TIMEOUT, false, true);
return facet;
}
commit f594ce268fdcb8e111ccc4e125bf91640e3a6862
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed May 25 16:21:30 2011 -0400
Refactoring logic in dbreset script for use with upgrade db
The database name comes from settings.xml for hudson builds. If you want
to develop/test against a database on which you have run dbupgrade, then
you can run maven with -Dupgrade.db and it will use the rhqupgrade
database.
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 063f2ce..800cb87 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -105,21 +105,19 @@
server = project.properties['rhq.dev.ds.server-name'] ?:
'127.0.0.1'
rhqUser = project.properties['rhq.dev.ds.user-name'] ?:
'rhqadmin'
}
- // This is a bit of a temporary hack to work around
- //
https://cvs.codehaus.org/browse/GMAVEN-46 which results in
- // groovy scripts not being able to get the correct values of
- // build properties that are overridden on the command line.
- // This is being done in support of the hudson job which is
- // trying to use a database named rhqupgrade.
- else if (project.properties['upgrade.db']) {
- database = 'rhqupgrade'
- }
else {
database = project.properties['rhq.test.ds.db-name']
server = project.properties['rhq.test.ds.server-name'] ?:
'127.0.0.1'
rhqUser = project.properties['rhq.test.ds.user-name'] ?:
'rhqadmin'
}
+ // The upgrade.db property should be set for local builds when you
+ // need to test upgrade changes. Hudson builds will specify the
+ // database to use in settings.xml
+ if (project.properties['upgrade.db']) {
+ database = 'rhqupgrade'
+ }
+
adminUsername = project.properties['rhq.db.admin.username'] ?:
'postgres'
adminPassword = project.properties['rhq.db.admin.password'] ?:
'postgres'
project.properties.dbsetup = 'true'
commit b2fa19f030d49a99c9449871b03def42d6165bfc
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed May 25 12:02:37 2011 -0400
add javadoc
diff --git
a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
index a349f0c..d23dd0a 100644
---
a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
+++
b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
@@ -45,7 +45,15 @@ import org.hibernate.Hibernate;
import org.hibernate.proxy.HibernateProxy;
/**
+ * This is a single static utility that is used to process any object just prior to
sending it over the wire
+ * to remote clients (like GWT clients or remote web service clients).
+ *
+ * Essentially this utility scrubs the object of all Hibernate proxies, cleaning it such
that it
+ * can be serialized over the wire successfully.
+ *
* @author Greg Hinkle
+ * @author Jay Shaughnessy
+ * @author John Mazzitelli
*/
@SuppressWarnings("unchecked")
public class HibernateDetachUtility {
commit e89bbe0b05d951c3621e6e11ed0f7de0daf24ce3
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon May 23 17:05:56 2011 +0200
Rename to _pt only as this is Portuguese and can this way apply to more users.
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
new file mode 100755
index 0000000..65514b0
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
@@ -0,0 +1,2315 @@
+#
+# RHQ GUI i18n Messages - pt-BR
+###################################
+
+#************************************** SHARED ****************************************
+
+#=================== Common =====================
+
+#
+# Build Info
+#
+common_buildInfo_gwtVersion=${gwt.version}
+
+# Button Labels
+#--------------
+common_button_ack=Confirmar
+common_button_ack_all=Confirmar Todos
+common_button_add=Adicionar
+common_button_advanced=Avan\u00E7ado...
+common_button_apply=Aplicar
+common_button_cancel=Cancelar
+common_button_close=Fechar
+common_button_compare=Comparar
+common_button_create_child=Criar filho
+common_button_delete=Excluir
+common_button_delete_all=Excluir Todos
+common_button_disable=Desabilitar
+common_button_edit=Editar
+common_button_enable=Habilitar
+common_button_finish=Finalizar
+common_button_import=Importar
+common_button_new=Novo
+common_button_next=Pr\u00F3ximo
+common_button_ok=OK
+common_button_previous=Anterior
+common_button_purgeAll=Purge All
+common_button_refresh=Refresh
+common_button_reset=Limpar
+common_button_save=Salvar
+common_button_schedule=Schedule
+common_button_search=Procurar
+common_button_set=Set
+common_button_showDetails=Mostrar Detalhes...
+common_button_uninventory=Remover do Invent\u00E1rio
+
+# Common Labels
+#------------------------
+common_label_ago=ago
+common_label_all=TODOS
+common_label_all_resources=todos os recursos
+common_label_day=dia
+common_label_days=dias
+common_label_hour=hora
+common_label_hours=horas
+common_label_item=item
+common_label_items=itens
+common_label_milliseconds=milisegundos
+common_label_minutes=minutos
+common_label_month=m\u00EAs
+common_label_none=nenhum
+common_label_role=perfil
+common_label_roles=perfis
+common_label_scheduled_operations=opera\u00E7\u00F5es agendadas
+common_label_seconds=segundos
+common_label_selected_resources=recursos selecionados
+common_label_unlimited=ilimitado
+common_label_user=usu\u00E1rio
+common_label_users=usu\u00E1rios
+common_label_week=semana
+common_label_weeks=semanas
+common_label_yesterday=Yesterday
+
+# Common Units
+#-------------
+common_unit_times=times
+common_unit_milliseconds=milliseconds
+common_unit_seconds=seconds
+common_unit_minutes=minutes
+common_unit_hours=hours
+common_unit_days=days
+common_unit_weeks=weeks
+common_unit_months=months
+common_unit_years=years
+
+# Common Severities
+#------------------
+common_severity_debug=Debug
+common_severity_info=Info
+common_severity_warn=Warn
+common_severity_error=Error
+common_severity_fatal=Fatal
+
+# Common Titles
+#--------------
+common_title_address=Endere\u00E7o
+common_title_add_column=Adicionar Coluna
+common_title_add_graph_to_view=Add Graph to Monitor View
+common_title_add_portlet=Adicionar Portlet
+common_title_alert_range=S\u00E9rie de Alertas
+common_title_ancestry=Ancestry
+common_title_availability=Disponibilidade
+common_title_average_metrics=M\u00E9tricas da m\u00E9dia por Minuto
+common_title_available_resources=Recursos Dispon\u00EDveis
+common_title_background=Background
+common_title_bundle=Bundle
+common_title_bundles=Bundles
+common_title_category=Categoria
+common_title_change_refresh_time=Refresh Interval
+common_title_columns=Colunas
+common_title_configuration=Configura\u00E7\u00E3o
+common_title_compare_metrics=Compare Metrics
+common_title_compatibleGroups=Grupos Compat\u00EDveis
+common_title_compatibleGroups_total=Total de Grupos Compat\u00EDveis
+common_title_component_errors=Componentes com erro
+common_title_config_update_status=Update Status
+common_title_count=Count
+common_title_custom=Personalizado
+common_title_dashboard_name=Nome do Painel de Controle
+common_title_dateCreated=Data de Cria\u00E7\u00E3o
+common_title_dateRange=Date Range
+common_title_default=Padr\u00E3o
+common_title_description=Descri\u00E7\u00E3o
+common_title_details=Detalhes
+common_title_display=Display
+common_title_display_name=Nome do Display
+common_title_duration=Dura\u00E7\u00E3o
+common_title_edit_mode=Modo Edi\u00E7\u00E3o
+common_title_enabled=Habilitado?
+common_title_end=Fim
+common_title_error=Error
+common_title_generalProp=Propriedades Gerais
+common_title_group=Group
+common_title_groups=Groups
+common_title_group_def_total=Total de Defini\u00E7\u00E3o de Grupos
+common_title_group_member_health=Group Member Health
+common_title_icon=\u00EDcone
+common_title_id=ID
+common_title_id_parent=ID do Recurso pai
+common_title_info=Info
+common_title_help=Help
+common_title_host=Host
+common_title_inventory=Invent\u00E1rio
+common_title_inventorySummary=Sum\u00E1rio do Invent\u00E1rio
+common_title_lastUpdated=\u00DAltima Atualiza\u00E7\u00E3o
+common_title_lastUpdatedBy=\u00DAltima Atualiza\u00E7\u00E3o feita por
+common_title_ldapGroups=LDAP Groups
+common_title_mashup=Mashup
+common_title_members_reporting=Members Reporting
+common_title_message=Mensagem
+common_title_metric=M\u00E9trica
+common_title_metric_chart=Metric Chart
+common_title_mixedGroups=Grupos Mistos
+common_title_mixedGroups_total=Total de Grupos Mistos
+common_title_name=Nome
+common_title_new_dashboard=Novo Painel de Controle
+common_title_numeric_metrics=Numeric Metrics
+common_title_numeric_type=Tipo Num\u00E9rico
+common_title_operation_status=Operation Status
+common_title_operations=Opera\u00E7\u00F5es
+common_title_operations_range=S\u00E9rie de Opera\u00E7\u00F5es
+common_title_over=Execesso
+common_title_password=Senha
+common_title_path=Path
+common_title_permissions=Permissions
+common_title_platform=Plataforma
+common_title_platform_total=Total de Plataformas
+common_title_plugin=Plugin
+common_title_port=Porta
+common_title_providers=Provedores
+common_title_recent_alerts=Alertas Recentes
+common_title_recent_bundle_deployments=Recent Bundle Deployments
+common_title_recent_configuration_updates=Recent Configuration Updates
+common_title_recent_event_counts=Recent Event Counts
+common_title_recent_measurements=Recent Measurements
+common_title_recent_oob_metrics=Recent Out of Bound metrics
+common_title_recent_operations=Opera\u00E7\u00F5es Recentes
+common_title_recent_pkg_history=Recent Package History
+common_title_recently_added=Recursos Adicionados Recentemente
+common_title_remove_column=Remover Coluna
+common_title_repositories=Reposit\u00F3rios
+common_title_resource=Recursos
+common_title_resources=Resources
+common_title_resource_group=Grupo de Recursos
+common_title_resourceGroups=Resource Groups
+common_title_resource_inventory=Invent\u00E1rio de Recursos
+common_title_resource_id=ID do Recurso
+common_title_resource_name=Nome do Recurso
+common_title_resource_key=Resource Key
+common_title_resource_type=Resource Type
+common_title_results_count=Results Count
+common_title_results_count_tooltip=Displays this number of results
+common_title_role=Role
+common_title_roles=Roles
+common_title_search=Procurar
+common_title_scheduled_operations=Opera\u00E7\u00F5es Agendadas
+common_title_selected_resources=Recursos Selecionados
+common_title_server=Server
+common_title_server_total=Total de Servidores
+common_title_service=Service
+common_title_service_total=Total de Servi\u00E7os
+common_title_settings=Configura\u00E7\u00F5es
+common_title_show=Visualizar
+common_title_show_more=Visualizar mais...
+common_title_sort_order=Sort Order
+common_title_sort_order_tooltip=Sets sort order for results.
+common_title_start=Iniciar
+common_title_status=Status
+common_title_stop=Stop
+common_title_summary=Sum\u00E1rio
+common_title_tag_cloud=Nuvem de Tags
+common_title_the=O
+common_title_timestamp=Data/Hora
+common_title_total=Total
+common_title_type=Tipo
+common_title_units=Unidades
+common_title_user=Usu\u00E1rio
+common_title_users=Users
+common_title_value=Valor
+common_title_version=Vers\u00E3o
+common_title_view_mode=Modo vis\u00E3o
+common_title_web_address=Endere\u00E7o Web
+common_title_welcome=Bem Vindo
+
+# Common Messages
+#--------------
+common_msg_areYouSure=Tem certeza?
+common_msg_changeAutoDetected=Change auto-detected
+common_msg_deleteConfirm=Tem certeza de que deseja excluir o \# selecionado {0}?
+common_msg_emphasizedNotePrefix=NOTA\:
+common_msg_loading=Carregando...
+common_msg_noItemsToShow=N\u00E3o existem itens para apresentar
+common_msg_notYetImplemented=Not Yet Implemented
+common_msg_see_more=see more...
+common_msg_step_x_of_y=Step {0} of {1}
+common_msg_asyncTimeout={0}. This occurred because the server is taking a long time to
complete this request. \
+Please be aware that the server may still be processing your request and it may complete
shortly. \
+You can check the server logs to see if any abnormal errors occurred.
+
+# Common Values
+#--------------
+common_val_for=para
+common_val_no=N\u00E3o
+common_val_no_lower=n\u00E3o
+common_val_yes=Sim
+common_val_yes_lower=sim
+common_val_never=Nunca
+common_val_na=N/A
+common_val_none=Nenhum
+
+# Common Statuses
+common_status_canceled=Canceled
+common_status_deferred=Deferred
+common_status_failed=Failed
+common_status_inprogress=In Progress
+common_status_nochange=No Change
+common_status_success=Success
+common_status_unknown=Unknown
+common_status_timedOut=Timed Out
+common_status_partial=Partial
+
+# 1st, 2nd, 3rd, 4th, etc.
+common_val_n1st={0}st
+common_val_n2nd={0}nd
+common_val_n3rd={0}rd
+common_val_nth={0}th
+
+# Common Alert Priorities
+#------------------------
+common_alert_high=High
+common_alert_medium=Medium
+common_alert_low=Low
+
+# Common Calendar
+#--------------
+common_calendar_january_short=jan
+common_calendar_february_short=fev
+common_calendar_march_short=mar
+common_calendar_april_short=abr
+common_calendar_may_short=mai
+common_calendar_june_short=jun
+common_calendar_july_short=jul
+common_calendar_august_short=ago
+common_calendar_september_short=set
+common_calendar_october_short=out
+common_calendar_november_short=nov
+common_calendar_december_short=dez
+
+
+#=================== Widgets =====================
+
+# Favorites
+#--------------
+favorites=Favorites
+favorites_resources=Favorite Resources
+favorites_groups=Favorite Groups
+favorites_recentlyViewed=Recently Viewed
+
+# Record Editor
+#--------------
+widget_recordEditor_title_view=Visualizar {0} [{1}]
+widget_recordEditor_title_edit=Editar {0} [{1}]
+widget_recordEditor_title_new=Criar Novo {0}
+# // dup in common
+widget_recordEditor_label_loading=Carregar...
+widget_recordEditor_error_invalidViewPath=Caminho inv\u00E1lido\: [{0}]
+widget_recordEditor_error_noRecords=Nenhum registro encontrado - era esperado exatamente
um.
+widget_recordEditor_error_multipleRecords=Foram encontrados v\u00E1rios registros - era
esperado apenas um.
+widget_recordEditor_info_recordCreatedConcise={0} criado.
+widget_recordEditor_info_recordCreatedDetailed={0} [{1}] criado.
+widget_recordEditor_info_recordUpdatedConcise={0} atualizado.
+widget_recordEditor_info_recordUpdatedDetailed={0} [{1}] atualizado.
+widget_recordEditor_info_recordsDeletedConcise={0} {1} exclu\u00EDdo.
+widget_recordEditor_info_recordsDeletedDetailed={0} {1} exclu\u00EDdo\: {2}.
+widget_recordEditor_error_operation=Operation failed. An error occurred
+widget_recordEditor_error_operationInvalidValues=Operation failed - one or more fields
have invalid values
+widget_recordEditor_error_unsupportedOperationType=Tipo de opera\u00E7\u00E3o n\u00E3o
suportada\: [{0}]
+widget_recordEditor_error_permissionCreate=You do not have the permissions required to
create a new [{0}]
+widget_recordEditor_warn_validation=One or more fields have invalid values. This [{0}]
cannot be saved until these values are corrected
+
+# Resource Selector/Picker
+#--------------------------------
+widget_resourceSelector_selectResource=Selecionar um Recurso
+widget_resourceSelector_pleaseSelectResource=Favor selecionar um recurso
+widget_resourceSelector_selectMultipleResources=Selecionar Recursos
+widget_resourceSelector_pleaseSelectMultipleResource=Favor selecionar um ou mais
recursos
+widget_resourceSelector_groupCategory=Categoria do Grupo
+
+# Resource Factory Wizard
+#--------------------------------
+widget_resourceFactoryWizard_uploadInProgress=Upload em andamento... Esse processo pode
demorar alguns minutos para ser finalizado em caso de arquivos muito grandes.
+widget_resourceFactoryWizard_uploadFileStepName=Upload do Arquivo do Recurso
+widget_resourceFactoryWizard_uploadFailure=Falha ao realizar o upload do arquivo
+widget_resourceFactoryWizard_editConfigStepName=Editar Configura\u00E7\u00E3o
+widget_resourceFactoryWizard_editConfigStep_nothingToDo=There is no configuration that
you need to define for this resource.
+widget_resourceFactoryWizard_infoStepName=Informa\u00E7\u00E3o do Recurso
+widget_resourceFactoryWizard_infoStep_loadFail=Failed to get available Architectures
+widget_resourceFactoryWizard_namePrompt=Novo Nome do Recurso
+widget_resourceFactoryWizard_templatePrompt=Modelo de Propriedades para Conex\u00E3o
+widget_resourceFactoryWizard_contentTemplatePrompt=Modelos de Configura\u00E7\u00E3o do
Tempo de Deploy
+widget_resourceFactoryWizard_configTemplatePrompt=Modelo de Configura\u00E7\u00E3o de
Recurso
+widget_resourceFactoryWizard_archPrompt=Arquitetura do Pacote
+widget_resourceFactoryWizard_versionPrompt=Vers\u00E3o do Pacote
+widget_resourceFactoryWizard_importWizardWindowTitle=Assistente para Importa\u00E7\u00E3o
de Recurso
+widget_resourceFactoryWizard_importWizardTitle=Importar Recursos do Tipo [{0}]
+widget_resourceFactoryWizard_importFailure=Falha ao importar recursos manualmente
+widget_resourceFactoryWizard_importSubmitted=Uma requisi\u00E7\u00E3o para importar um
novo recurso do tipo [{0}] foi submetida
+widget_resourceFactoryWizard_createWizardWindowTitle=Assistente para Cria\u00E7\u00E3o de
Recurso
+widget_resourceFactoryWizard_createWizardTitle=Criar novo recurso do tipo [{0}]
+widget_resourceFactoryWizard_execute1=Falha ao criar novo recurso - vers\u00E3o do pacote
inexistente
+widget_resourceFactoryWizard_execute2=Falha ao criar novo recurso
+widget_resourceFactoryWizard_createSubmitType=A requisi\u00E7\u00E3o para
cria\u00E7\u00E3o de um recurso do tipo [{0}] foi submetida com sucesso.
+widget_resourceFactoryWizard_createSubmit=A requisi\u00E7\u00E3o para cria\u00E7\u00E3o
de um recurso com nome [{0}] foi submetida com sucesso.
+widget_resourceFactoryWizard_failedToGetType=Falha ao recuperar o tipo de pacote para o
novo recurso
+widget_resourceFactoryWizard_failedToDeleteVersion=Falha ao excluir a vers\u00E3o do
pacote durante o cancelamento da cria\u00E7\u00E3o do recurso
+
+widget_typeCache_loadFail=Failed to load resource type metadata
+
+widget_typeTree_badTemplateType=Invalid URL. Unknown template type [{0}]
+widget_typeTree_badTypeId=Invalid URL. Bad resource type ID [{0}]
+widget_typeTree_loadFail=Failed to load resource types
+
+# Color Picker
+#--------------
+widget_colorPicker_tooltip=Click to select a new color
+
+# Job Trigger Editor
+#--------------------
+widget_jobTriggerEditor_field_mode=Schedule using
+widget_jobTriggerEditor_value_calendar=Calendar
+widget_jobTriggerEditor_value_cronExpression=Cron Expression
+widget_jobTriggerEditor_value_now=Now
+widget_jobTriggerEditor_value_nowAndRepeat=Now & Repeat
+widget_jobTriggerEditor_value_later=Later
+widget_jobTriggerEditor_value_laterAndRepeat=Later & Repeat
+widget_jobTriggerEditor_field_cronExpression=Cron Expression
+widget_jobTriggerEditor_tab_format=Format
+widget_jobTriggerEditor_tab_examples=Examples
+widget_jobTriggerEditor_field_repeatInterval_now=Run now and every
+widget_jobTriggerEditor_field_repeatInterval_later=Repeat every
+widget_jobTriggerEditor_fieldHelp_repeatInterval=how often the operation should be
executed
+widget_jobTriggerEditor_value_for=For
+widget_jobTriggerEditor_value_until=Until
+widget_jobTriggerEditor_value_indefinitely=Indefinitely
+widget_jobTriggerEditor_fieldHelp_repeatDuration=keep running this operation this many
times or until this amount of time has elapsed
+widget_jobTriggerEditor_field_startType=Run
+widget_jobTriggerEditor_value_on=on
+widget_jobTriggerEditor_value_in=in
+widget_jobTriggerEditor_fieldHelp_startDelay=start executing the operation after this
amount of time has elapsed
+widget_jobTriggerEditor_message_startTimeMustBeInFuture=Start time must be in the
future.
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime=End time must be after start
time.
+widget_jobTriggerEditor_message_endTimeMustBeInFuture=End time must be in the future.
+
+# Duration Item
+#---------------
+widget_durationItem_inputUnitLessThanTargetUnit=Input unit is less than target unit.
+widget_durationItem_unitTypeNotSupported=Unit type [{0}] is not supported by this
DurationItem.
+
+
+#===================== Utils ======================
+
+# Ancestry
+#-------------------------------------------------
+util_ancestry_parentAncestry=Parent Ancestry for:
+
+# Disambiguation Report Decorator
+#-------------------------------------------------
+util_disambiguationReportDecorator_pluginSuffix=({0} plugin)
+
+# Monitoring Request Callback
+#------------------------------------------
+util_monitoringRequestCallback_error_checkServerStatusFailure=Imposs\u00EDvel verificar o
status do login - verifique o estatdo do Servidor.
+
+# RPC Manager
+#----------------------
+util_rpcManager_activeRequests={0} Requisi\u00E7\u00F5es ativas
+
+# User Permissions Manager
+#--------------------------
+util_userPerm_loadFailGlobal=Falha ao carregar permiss\u00F5es globais - nenhuma
permiss\u00E3o concedida.
+util_userPerm_loadFailGroup=Falha ao carregar suas permiss\u00F5es para o Grupo de
Recursos com id [{0}] - nenhum permiss\u00E3o concedida.
+util_userPerm_loadFailResource=Falha ao carregar suas permiss\u00F5es para o Recurso com
id [{0}] - nenhuma permiss\u00E3o concedida.
+
+# User Session Manager
+#--------------------------
+util_userSession_loadFailSubject=UserSessionManager\: Falha ao carregar a credencial do
usu\u00E1rio
+util_userSession_logoutFail=Falha durante o logout.
+
+# Error Handler
+#--------------------
+util_errorHandler_nullException=Exce\u00E7\u00E3o nula
+
+# Widgets Field
+#---------------------
+util_widgetsField_unlimited=Ilimitado
+
+
+#================== DataSources ====================
+
+# RPC (abstract)
+#-----------------------
+dataSource_bundle_loadFailed=Failed to load Bundle data
+
+
+# RPC (abstract)
+#-----------------------
+dataSource_rpc_error_transformRequestFailure=Ocorreu uma falha na fonte de dados durante
o processamento da requisi\u00E7\u00E3o {0}.
+dataSource_rpc_error_unsupportedArrayFilterType=Sem suporte para passing de array filters
do tipo {0}.
+dataSource_rpc_error_unsupportedEnumType=Favor adicionar um trecho de c\u00F3digo
apropriado para a enum {0} para RPCDataSource.getEnumArray(Class)
+dataSource_rpc_yes=sim
+dataSource_rpc_no=n\u00E3o
+
+# ContentRepositoryTree
+#------
+dataSource_ContentRepoTree_error_load=Erro ao carregar os reposit\u00F3rios
+dataSource_ContentRepoTree_field_parentId=Parent ID
+
+
+# Users
+#------
+###### dup in common
+dataSource_users_field_id=ID
+dataSource_users_field_name=Nome do Usu\u00E1rio
+dataSource_users_field_ldap=LDAP Login?
+dataSource_users_field_password=Senha
+dataSource_users_field_passwordVerify=Verifique a Senha
+dataSource_users_field_firstName=Primeiro Nome
+dataSource_users_field_lastName=\u00DAltimo Nome
+dataSource_users_field_emailAddress=Endere\u00E7o de Email
+dataSource_users_field_phoneNumber=N\u00FAmero de Telefone
+dataSource_users_field_department=Departamento
+dataSource_users_field_factive=Login Habilitado?
+dataSource_users_delete=Deleted user [{0}]
+dataSource_users_deleteFailed=Failed to delete user [{0}]
+dataSource_users_passwordsDoNotMatch=Passwords do not match.
+dataSource_users_invalidEmailAddress=Invalid email address.
+
+# Roles
+#------
+datasource_roles_field_resourceGroups=Resource Groups
+datasource_roles_field_permissions=Permissions
+datasource_roles_field_subjects=Subjects
+datasource_roles_field_ldapGroups=LDAP Groups
+
+# Platforms
+#-----------
+dataSource_platforms_field_cpu=CPU
+dataSource_platforms_field_memory=Mem\u00F3ria
+dataSource_platforms_field_swap=Swap
+
+# Traits
+#------
+dataSource_traits_failFetch=Failed to fetch traits for criteria [{0}].
+dataSource_traits_field_primaryKey=Chave Prim\u00E1ria
+dataSource_traits_field_definitionID=Definition ID
+dataSource_traits_field_lastChanged=\u00DAltima Altera\u00E7\u00E3o
+dataSource_traits_field_trait=Propriedade
+dataSource_traits_group_field_groupId=ID de Grupo
+
+# Measurement OOBs
+#---------------------------------
+dataSource_measurementOob_field_scheduleName=M\u00E9trica
+dataSource_measurementOob_field_resourceName=Recurso
+dataSource_measurementOob_field_parentName=Pai
+dataSource_measurementOob_field_formattedBaseband=Faixa
+dataSource_measurementOob_field_formattedOutlier=Fora de s\u00E9rie
+dataSource_measurementOob_field_factor=Fator fora da faixa (%)
+dataSource_measurementOob_error_fetchFailure=Falha ao carregar informa\u00E7\u00F5es das
m\u00E9tricas OOB
+
+# Measurements
+#----------------------
+dataSource_definitions_loadFailed=Falha ao carregar defini\u00E7\u00E3o de m\u00E9tricas
+dataSource_schedules_loadFailed=Falha ao carregar agendamento de m\u00E9tricas
+dataSource_schedules_loadFailedCriteria=Failed to load metric schedules for criteria
[{0}]
+dataSource_schedules_loadFailedContext=Failed to load metric schedules for context [{0}]
+dataSource_schedules_field_resourceGroupId=ID de Grupo
+
+dataSource_schedules_enableFailure_resource=Falha ao habilitar a coleta de m\u00E9tricas
de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
+dataSource_schedules_enableFailure_group=Falha ao habilitar a coleta de m\u00E9tricas de
[{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
+
+dataSource_schedules_enableSuccessful_concise=Voce habilitou a coleta de m\u00E9tricas de
[{0}]
+dataSource_schedules_enableSuccessful_full_resource=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\:
[{2}]
+dataSource_schedules_enableSuccessful_full_group=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas
foram\: [{2}]
+
+dataSource_schedules_disableFailure_resource=Falha ao desabilitar a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas eram\: [{2}]
+dataSource_schedules_disableFailure_group=Falha ao desabilitar a coleta de m\u00E9tricas
de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas eram\: [{2}]
+
+dataSource_schedules_disableSuccessful_concise=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de [{0}]
+dataSource_schedules_disableSuccessful_full_resource=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas
s\u00E3o\: [{2}]
+dataSource_schedules_disableSuccessful_full_group=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas
desabilitadas s\u00E3o\: [{2}]
+
+dataSource_schedules_updateFailure_resource=Falha ao configurar o intervalo para coleta
de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. M\u00E9tricas\: [{2}]. O intervalo
de coleta seria de [{3}] segundos.
+dataSource_schedules_updateFailure_group=Falha ao configurar o intervalo para coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. M\u00E9tricas\: [{2}]. O
intervalo de coleta seria de [{3}] segundos.
+
+dataSource_schedules_updateSuccessful_concise=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}]
+dataSource_schedules_updateSuccessful_full_resource=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o recurso com ID [{2}].
M\u00E9tricas atualizadas\: [{3}]
+dataSource_schedules_updateSuccessful_full_group=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o grupo de recursos com ID
[{2}]. M\u00E9tricas atualizadas\: [{3}]
+
+# Resources
+#-----------------------
+dataSource_resources_field_location=Location
+dataSource_resources_field_key=Key
+dataSource_resources_field_discoveryTime=Discovery Time
+dataSource_resources_field_importTime=Import Time
+dataSource_resources_field_lastModifiedTime=Last Modified Time
+dataSource_resources_field_lastModifier=Last Modifier
+
+# Resource Groups
+#-----------------------
+dataSource_resourceGroups_loadFailed=Failed to load Resource Groups
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_alerts=Alertas
+dataSource_problemResources_field_available=Disponibilidade Atual
+dataSource_problemResources_error_fetchFailure=Falha com carregar Recursos com
alertas/indisponibilidade.
+
+# Recent Operations
+#----------------------------
+dataSource_recentOperations_field_resource=Recurso
+dataSource_recentOperations_field_location=Localiza\u00E7\u00E3o
+dataSource_recentOperations_field_operation=Opera\u00E7\u00E3o
+dataSource_recentOperations_field_time=Data/Hora
+dataSource_recentOperations_field_status=Status
+dataSource_recentOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es finalizadas recentemente.
+
+# Scheduled Operations (ResourceOperationScheduleComposites)
+#------------------------------------------------------------
+dataSource_scheduledOperations_field_resource=Recurso
+dataSource_scheduledOperations_field_location=Localiza\u00E7\u00E3o
+dataSource_scheduledOperations_field_operation=Opera\u00E7\u00E3o
+dataSource_scheduledOperations_field_time=Data/Hora
+dataSource_scheduledOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es agendadas
+
+# Operation Schedules
+#--------------------
+dataSource_operationSchedule_field_id=Schedule ID
+dataSource_operationSchedule_field_operationName=Operation
+dataSource_operationSchedule_field_operationDisplayName=Operation
+dataSource_operationSchedule_field_subject=Owner
+dataSource_operationSchedule_field_description=Notes
+dataSource_operationSchedule_field_nextFireTime=Next Execution
+dataSource_operationSchedule_field_timeout=Timeout (in seconds)
+
+# Operation Histories
+#--------------------
+dataSource_operationHistory_field_operationName=Operation Name
+dataSource_operationHistory_field_createdTime=Created Time
+dataSource_operationHistory_field_startedTime=Started Time
+dataSource_operationHistory_field_subject=Requester
+dataSource_operationHistory_error_fetchFailure=Falha ao carregar o hist\u00F3rico de
opera\u00E7\u00F5es.
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_dateSubmitted=Date Submitted
+dataSource_configurationHistory_dateCompleted=Date Completed
+dataSource_configurationHistory_updateType=Update Type
+dataSource_configurationHistory_updateType_individual=Individual
+dataSource_configurationHistory_updateType_group=Group
+dataSource_configurationHistory_currentConfig=This is the current configuration
+dataSource_configurationHistory_clickToSeeError=Double click to see error message...
+dataSource_configurationHistory_error_fetchFailure=N\u00E3o foi poss\u00EDvel carregar o
hist\u00F3rico de configura\u00E7\u00E3o.
+
+# Resource Errors
+#-------------------------
+dataSource_resourceErrors_field_summary=Sum\u00E1rio
+dataSource_resourceErrors_field_errorType=Tipo de Erro
+dataSource_resourceErrors_field_timeOccured=Tempo
+dataSource_resourceErrors_error_fetchFailure=Falha ao procurar por erros para o Recurso
com ID [{0}].
+dataSource_resourceErrors_clickStatusIcon=Click the icon for more details
+dataSource_resourceErrors_deleteSuccess=You have successfully deleted [{0}] resource
error messages.
+dataSource_resourceErrors_deleteFailure=Failed to delete resource errors
+
+# Template Schedules
+#-------------------------
+datasource_templateSchedules_disabled=Disabled collection of selected metric [{0}].
+datasource_templateSchedules_disabled_detailed=Disabled collection of metric [{0}] [{1}]
by default for ResourceType with id [{2}].
+datasource_templateSchedules_disabled_failed=Failed to disable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled=Enabled collection of selected metric [{0}].
+datasource_templateSchedules_enabled_detailed=Enabled collection of metric [{0}] [{1}] by
default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled_failed=Failed to enable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_updated=Updated collection intervals of selected metric
[{0}].
+datasource_templateSchedules_updated_detail=Collection interval for metric [{0}] [{1}] by
default for ResourceType with id [{2}] set to [{3}] seconds.
+datasource_templateSchedules_updated_failed=Failed to set collection interval to [{0}]
seconds for metric [{1}] [{2}] by default for ResourceType with id [{3}].
+
+
+#********************************** VIEW-SPECIFIC *************************************
+
+#================= Administration ==================
+
+view_admin_administration=Administra\u00E7\u00E3o
+view_admin_landing=Nesta se\u00E7\u00E3o \u00E9 poss\u00EDvel administrar propriedades
globais do RHQ. Isso inclui configura\u00E7\u00F5es de Seguran\u00E7a, Plugins, e
gerenciamento de servidores RHQ e agentes.
+view_admin_configuration=Configura\u00E7\u00E3o
+view_admin_security=Seguran\u00E7a
+view_admin_topology=Topologia
+view_admin_content=Content
+
+view_adminSecurity_users=Usu\u00E1rios
+view_adminSecurity_roles=Perfis
+
+view_adminTopology_affinityGroups=Grupos de Afinidade
+view_adminTopology_agents=Agentes
+view_adminTopology_partitionEvents=Eventos na Parti\u00E7\u00E3o
+view_adminTopology_remoteAgentInstall=Instala\u00E7\u00E3o Remota de Agentes
+view_adminTopology_servers=Servidores
+
+view_adminConfig_downloads=Downloads
+view_adminConfig_plugins=Plugins
+view_adminConfig_systemSettings=Propriedades de Sistema
+view_adminConfig_templates=Modelos
+
+view_adminContent_contentSources=Content Sources
+view_adminContent_repositories=Repositories
+
+# Administration/Templates
+#--------------------------------
+
+view_adminTemplates_platforms=Platforms
+view_adminTemplates_platformServices=Platform Services
+view_adminTemplates_servers=Servers
+view_adminTemplates_enabledAlertTemplates=Enabled Alert Templates
+view_adminTemplates_disabledAlertTemplates=Disabled Alert Templates
+view_adminTemplates_enabledMetricTemplates=Enabled Metric Templates
+view_adminTemplates_disabledMetricTemplates=Disabled Metric Templates
+view_adminTemplates_editAlertTemplate=Edit Alert Template
+view_adminTemplates_editMetricTemplate=Edit Metric Template
+view_adminTemplates_prompt_enabledAlertTemplates=Number of alert templates that are
enabled on this resource type
+view_adminTemplates_prompt_disabledAlertTemplates=Number of alert templates that are
created but disabled on this resource type
+view_adminTemplates_prompt_enabledMetricTemplates=Number of metric schedules that are
enabled by default on this resource type
+view_adminTemplates_prompt_disabledMetricTemplates=Number of metric schedules that are
disabled by default on this resource type
+
+# Administration/Security/Users
+#--------------------------------
+view_adminUsersList_dataTypeName=usu\u00E1rio
+view_adminUsersList_dataTypeNamePlural=usu\u00E1rios
+
+# Administration/Security/Users/#
+#--------------------------------
+view_adminUsersDetails_dataTypeName=usu\u00E1rio
+
+# Administration/Security/Roles/#
+#--------------------------------
+view_adminRoles_assignedGroups=Grupos de Recursos Associados
+view_adminRoles_assignedSubjects=Perfis Associados
+view_adminRoles_failLdap=Falha ao determinar se o LDAP foi configurado - assumindo como
LDAP n\u00E3o configurado.
+view_adminRoles_failLdapGroups=Falha ao recuperar os grupos dispon\u00EDveis no LDAP -
assumindo como LDAP sem grupos.
+view_adminRoles_failLdapGroupsRole=Falha ao carregar grupos do LDAP dispon\u00EDveis para
o perfil.
+view_adminRoles_failRoles=Falha ao recuperar perfis.
+view_adminRoles_globalPerms=Permiss\u00F5es Globais
+view_adminRoles_ldapGroups=Grupos LDAP
+view_adminRoles_ldapGroupsReadOnly=Informa\u00E7\u00F5es do grupo LDAP com
permiss\u00F5es apenas de leitura
+view_adminRoles_noItems=Sem itens para apresentar
+view_adminRoles_noLdap=A integra\u00E7\u00E3o com o LDAP ainda n\u00E3o foi configurada.
Para configurar o LDAP acesse <a {0}>{1}</a>.
+view_adminRoles_perms=Permiss\u00F5es
+view_adminRoles_resourcePerms=Permiss\u00F5es do Recurso
+view_adminRoles_roleAdded=Perfil [{0}] adicionado.
+view_adminRoles_roleDeleteFailed=Falha ao excluir o perfil [{0}].
+view_adminRoles_roleDeleted=Perfil [{0}] exclu\u00EDdo.
+view_adminRoles_roleUpdateFailed=Falha ao atualizar o perfil [{0}].
+view_adminRoles_roleUpdated=Perfil [{0}] atualizado.
+view_adminRoles_permissions_globalPermissions=Global Permissions
+view_adminRoles_permissions_resourcePermissions=Resource Permissions
+view_adminRoles_permissions_readAccessImplied=Read access for the {0} permission is
implied and cannot be disabled.
+view_adminRoles_permissions_isAuthorized=Authorized?
+view_adminRoles_permissions_isRead=Read?
+view_adminRoles_permissions_isWrite=Write?
+view_adminRoles_permissions_read=Read:
+view_adminRoles_permissions_write=Write:
+view_adminRoles_permissions_perm_manageSecurity=Manage Security
+view_adminRoles_permissions_permDesc_manageSecurity=can create, update, or delete users
and roles (viewing is implied for everyone)
+view_adminRoles_permissions_perm_manageInventory=Manage Inventory
+view_adminRoles_permissions_permDesc_manageInventory=has all Resource permissions, as
described below, for all Resources; can create, update, and delete groups; and can import
auto-discovered or manually discovered Resources
+view_adminRoles_permissions_perm_manageSettings=Manage Settings
+view_adminRoles_permissions_permDesc_manageSettings=can modify the RHQ Server
configuration and perform any Server-related functionality
+view_adminRoles_permissions_perm_manageBundles=Manage Bundles
+view_adminRoles_permissions_permDesc_manageBundles=can create, update, or delete
provisioning bundles (viewing is implied for everyone)
+view_adminRoles_permissions_perm_manageRepositories=Manage Repositories
+view_adminRoles_permissions_permDesc_manageRepositories=can create, update, or delete
repositories of any user (everyone can create their own repositories), can associate
content sources to repositories.
+view_adminRoles_permissions_perm_inventory=Inventory
+view_adminRoles_permissions_permReadDesc_inventory=(IMPLIED) view Resource properties
(name, description, version, etc.), connection settings, and connection settings history
+view_adminRoles_permissions_permWriteDesc_inventory=update Resource name, version,
description, and connection settings; delete connection settings history items
+view_adminRoles_permissions_perm_manageMeasurements=Manage Measurements
+view_adminRoles_permissions_permReadDesc_manageMeasurements=(IMPLIED) view metric data
and collection schedules
+view_adminRoles_permissions_permWriteDesc_manageMeasurements=update metric collection
schedules
+view_adminRoles_permissions_perm_manageAlerts=Manage Alerts
+view_adminRoles_permissions_permReadDesc_manageAlerts=(IMPLIED) view alert definitions
and alert history
+view_adminRoles_permissions_permWriteDesc_manageAlerts=create, update, and delete alert
definitions; acknowledge and delete alert history items
+view_adminRoles_permissions_perm_configure=Configure
+view_adminRoles_permissions_permReadDesc_configure=view Resource configuration and
Resource configuration revision history
+view_adminRoles_permissions_permWriteDesc_configure=update Resource configuration; delete
Resource configuration revision history items
+view_adminRoles_permissions_perm_control=Control
+view_adminRoles_permissions_permReadDesc_control=(IMPLIED) view available operations and
operation execution history
+view_adminRoles_permissions_permWriteDesc_control=execute operations; delete operation
execution history items
+view_adminRoles_permissions_perm_manageEvents=Manage Events
+view_adminRoles_permissions_permReadDesc_manageEvents=(IMPLIED) view events
+view_adminRoles_permissions_permWriteDesc_manageEvents=delete events
+view_adminRoles_permissions_perm_manageContent=Manage Content
+view_adminRoles_permissions_permReadDesc_manageContent=(IMPLIED) view installed and
available packages; view package installation history
+view_adminRoles_permissions_permWriteDesc_manageContent=subscribe to content sources;
install and uninstall packages
+view_adminRoles_permissions_perm_createChildResources=Create Child Resources
+view_adminRoles_permissions_permReadDesc_createChildResources=(IMPLIED) view child
Resource creation history
+view_adminRoles_permissions_permWriteDesc_createChildResources=create new child Resources
(for child Resources of types that are creatable)
+view_adminRoles_permissions_perm_deleteChildResources=Delete Child Resources
+view_adminRoles_permissions_permReadDesc_deleteChildResources=(IMPLIED) view child
Resource deletion history
+view_adminRoles_permissions_permWriteDesc_deleteChildResources=uninventory resources;
delete Resources (for Resources of types that are deletable)
+view_adminRoles_permissions_autoselecting_manageSecurity_implied=Autoselected unselected
permissions, since MANAGE_SECURITY implies all other permissions...
+view_adminRoles_permissions_autoselecting_manageInventory_implied=Autoselected unselected
Resource permissions, since MANAGE_INVENTORY implies all Resource permissions...
+view_adminRoles_permissions_autoselecting_configureWrite_implied=Autoselected
CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
+view_adminRoles_permissions_autoselecting_configureRead_implied=Autodeselected
CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
+view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection={0} permission
cannot be deselected, unless the Manage Security permission, which implies all other
permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection={0}
permission cannot be deselected, unless Manage Inventory, which implies all Resource
permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToCorrespondingWritePermSelection={0}
read permission cannot be deselected, unless the {0} write permission, which implies the
read permission, is deselected first.
+
+# Administration/Topology/RemoteAgentInstall/#
+#--------------------------------
+view_remoteAgentInstall_agentStatus=Status do Agente
+view_remoteAgentInstall_agentStatusDefault=-Pressione o Bot\u00E3o Atualizar Status-
+view_remoteAgentInstall_connInfo=Informa\u00E7\u00E3o de Conex\u00E3o
+view_remoteAgentInstall_buttonFindAgent=Procurar Agente
+view_remoteAgentInstall_error_1=Ocorreu um erro ao tentar localizar o caminho de
instala\u00E7\u00E3o do agente
+view_remoteAgentInstall_error_2=N\u00E3o foi poss\u00EDvel encontrar uma
instala\u00E7\u00E3o do agente nos locais comuns
+view_remoteAgentInstall_error_3=N\u00E3o foi poss\u00EDvel encontar a
instala\u00E7\u00E3o do agente em [{0}]
+view_remoteAgentInstall_error_4=Falha ao instalar o agente
+view_remoteAgentInstall_error_5=Falha a iniciar o agente
+view_remoteAgentInstall_error_6=Falha ao parar o agente
+
+view_remoteAgentInstall_installAgent=Instalar Agente
+view_remoteAgentInstall_installInfo=Informa\u00E7\u00E3o sobre a instala\u00E7\u00E3o do
Agente
+view_remoteAgentInstall_installPath=Caminho de Instala\u00E7\u00E3o do Agente
+view_remoteAgentInstall_owner=Propriet\u00E1rio
+view_remoteAgentInstall_promptInstallPath=Onde o agente est\u00E1 ou ser\u00E1 instalado.
Caso n\u00E3o tenha certeza onde o agente est\u00E1 instalado, informe um diret\u00F3rio
pai e clique em ''Procurar Agente'' para encontrar o agente. Caso informe
um diret\u00F3rio vazio, a busca pelo agente ser\u00E1 realizada em locais de
instala\u00E7\u00E3o comuns.
+view_remoteAgentInstall_promptHost=O host onde o agente est\u00E1 ou ser\u00E1 instalado
+view_remoteAgentInstall_promptPassword=Credenciais usadas para autentica\u00E7\u00E3o do
usu\u00E1rio no host via SSH
+view_remoteAgentInstall_promptPort=Porta onde o servidor SSH escuta. Se n\u00E3o
especificada, o padr\u00E3o \u00E9 22
+view_remoteAgentInstall_promptUser=Nome do usu\u00E1rio informado nas credenciais
passadas ao host via SSH
+view_remoteAgentInstall_result=Resultado
+view_remoteAgentInstall_resultCode=ResultCode
+view_remoteAgentInstall_startAgent=Iniciar Agente
+view_remoteAgentInstall_startAgentResults=resultado da inicializa\u00E7\u00E3o do
Agente\: [{0}]
+view_remoteAgentInstall_step=Step
+view_remoteAgentInstall_stopAgent=Parar Agente
+view_remoteAgentInstall_stopAgentResults=resultado do encerramento do Agente\: [{0}]
+view_remoteAgentInstall_success=Instala\u00E7\u00E3o do Agente finalizada
+view_remoteAgentInstall_updateStatus=Status da Atualiza\u00E7\u00E3o
+
+# Administration/SystemSettings
+#------------------------------
+view_admin_systemSettings_cannotLoadSettings=Cannot obtain the current system settings
+view_admin_systemSettings_savedSettings=You successfully saved the system properties
+view_admin_systemSettings_saveFailure=Failed to save the system settings
+view_admin_systemSettings_fixBeforeSaving=Please fix the invalid values before saving
+view_admin_systemSettings_group_general=General Configuration Properties
+view_admin_systemSettings_group_dataMgr=Data Manager Configuration Properties
+view_admin_systemSettings_group_baseline=Automatic Baseline Configuration Properties
+view_admin_systemSettings_group_ldap=LDAP Configuration Properties
+view_admin_systemSettings_cannotLoadServerDetails=Cannot load server details
+view_admin_systemSettings_serverDetails=Server Details
+view_admin_systemSettings_serverDetails_buildNumber=Build Number
+view_admin_systemSettings_serverDetails_tz=Server Time Zone
+view_admin_systemSettings_serverDetails_time=Server Local Time
+view_admin_systemSettings_serverDetails_installDir=Server Installation Directory
+view_admin_systemSettings_serverDetails_dbUrl=Database Connection URL
+view_admin_systemSettings_serverDetails_dbName=Database Product Name
+view_admin_systemSettings_serverDetails_dbVersion=Database Product Version
+view_admin_systemSettings_serverDetails_dbDriverName=Database Driver Name
+view_admin_systemSettings_serverDetails_dbDriverVersion=Database Driver Version
+view_admin_systemSettings_serverDetails_currentTable=Current Measurement Raw Table
+view_admin_systemSettings_serverDetails_nextRotation=Next Measurement Table Rotation
+view_admin_systemSettings_BaseURL_name=GUI Console URL
+view_admin_systemSettings_BaseURL_desc=A URL to the server GUI, used mainly within alert
email notifications.
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_name=Agent Max Quiet Time Allowed
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_desc=If this amount of time passes
without hearing from an agent, that quiet agent will be considered down. This value is
specified in minutes.
+view_admin_systemSettings_EnableAgentAutoUpdate_name=Enable Agent Auto-Updates
+view_admin_systemSettings_EnableAgentAutoUpdate_desc=Determines if the server will allow
agents to auto-update themselves. You will not be able to download agent distributions
from the server if this is disabled.
+view_admin_systemSettings_EnableDebugMode_name=Enable Debug Mode
+view_admin_systemSettings_EnableDebugMode_desc=If enabled, the server will enter debug
mode.
+view_admin_systemSettings_EnableExperimentalFeatures_name=Enable Experimental Features
+view_admin_systemSettings_EnableExperimentalFeatures_desc=If enabled, any experimental
features that exist in the current product will be available.
+view_admin_systemSettings_DataMaintenance_name=Database Maintenance Period
+view_admin_systemSettings_DataMaintenance_desc=How often database maintenance is
performed (for example, vacuuming if using Postgres). This is specified in hours.
+view_admin_systemSettings_AvailabilityPurge_name=Delete Availability Data Older Than
+view_admin_systemSettings_AvailabilityPurge_desc=How old availability data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_AlertPurge_name=Delete Alerts Older Than
+view_admin_systemSettings_AlertPurge_desc=How old alert history items must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_TraitPurge_name=Delete Measurement Traits Older Than
+view_admin_systemSettings_TraitPurge_desc=How old measurement trait data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_RtDataPurge_name=Delete Response Time Data Older Than
+view_admin_systemSettings_RtDataPurge_desc=How old response time data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_EventPurge_name=Delete Events Older Than
+view_admin_systemSettings_EventPurge_desc=How old event data must be before being purged
from the database. This is specified in days.
+view_admin_systemSettings_DataReindex_name=Reindex Data Tables Nightly
+view_admin_systemSettings_DataReindex_desc=If enabled, certain database tables will be
re-indexed periodically.
+view_admin_systemSettings_BaselineFrequency_name=Baseline Calculation Frequency
+view_admin_systemSettings_BaselineFrequency_desc=The frequency which the auto-calculation
of baselines will be performed. If 0, baseline auto-calculation is disabled. This is
specified in days.
+view_admin_systemSettings_BaselineDataSet_name=Baseline Dataset
+view_admin_systemSettings_BaselineDataSet_desc=The amount of past measurement data that
is used to determine a baseline. This is specified in days.
+view_admin_systemSettings_JAASProvider_name=Enable LDAP
+view_admin_systemSettings_JAASProvider_desc=Should LDAP be used to determine user
identity?
+view_admin_systemSettings_LDAPUrl_name=LDAP URL
+view_admin_systemSettings_LDAPUrl_desc=URL to the LDAP Server
+view_admin_systemSettings_LDAPProtocol_name=SSL
+view_admin_systemSettings_LDAPProtocol_desc=Should communication with the LDAP server be
done over SSL?
+view_admin_systemSettings_LDAPLoginProperty_name=Login Property
+view_admin_systemSettings_LDAPLoginProperty_desc=The LDAP property that contains the user
name. Defaults to "cn". If multiple matches are found, the first entry found is
used.
+view_admin_systemSettings_LDAPFilter_name=Search Filter
+view_admin_systemSettings_LDAPFilter_desc=Any additional filters to apply when doing the
LDAP search. This is useful if the population to authenticate can be identified via a
given LDAP property, e.g. RHQUser=true
+view_admin_systemSettings_LDAPGroupFilter_name=Group Search Filter
+view_admin_systemSettings_LDAPGroupFilter_desc=LDAP search filter that must return all
LDAP groups available for authorization. This is used for LDAP group authorization.
+view_admin_systemSettings_LDAPGroupMember_name=Group Member Filter
+view_admin_systemSettings_LDAPGroupMember_desc=LDAP search filter that is used in
conjunction with the group search filter to determine user authorization. This is used for
LDAP group authorization.
+view_admin_systemSettings_LDAPBaseDN_name=Search Base
+view_admin_systemSettings_LDAPBaseDN_desc=The base of the directory tree to search for
usernames and passwords while authenticating users, e.g. ou=People,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindDN_name=Username
+view_admin_systemSettings_LDAPBindDN_desc=The username to connect to the LDAP server when
querying the LDAP user database. This is typically the full LDAP distinguished name (DN)
of a manager user, e.g. cn=Manager,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindPW_name=Password
+view_admin_systemSettings_LDAPBindPW_desc=The credentials of the user used to connect to
the LDAP server when querying the LDAP user database.
+
+# Administration/Downloads
+#------------------------------
+view_admin_downloads_agentDownload=Agent Download
+view_admin_downloads_cliDownload=Command Line Client Download
+view_admin_downloads_bundleDownload=Bundle Deployer Download
+view_admin_downloads_connectorsDownload=Connectors Download
+
+view_admin_downloads_agent_loadError=Cannot get agent version info
+view_admin_downloads_agent_version=Agent Version
+view_admin_downloads_agent_buildNumber=Agent Build
+view_admin_downloads_agent_md5=Agent MD5
+view_admin_downloads_agent_link_label=Link
+view_admin_downloads_agent_link_value=Download Agent {0} ({1})
+view_admin_downloads_agent_help=<p> \
+ This is the RHQ Agent Update Binary jar file. The purpose of this \
+ jar file is to allow you to install a fresh agent on a machine \
+ where an agent does not yet exist and to allow you to update \
+ an agent that is already installed on a machine. \
+ For more details, run this agent download jar with the --help command line
option:<br/> \
+ <b>java -jar <agent-download.jar> --help</b> \
+ </p> \
+ <h3>Agent Install</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --install[=<new agent
directory>]</b><br/> \
+ This command will install a new agent. If you do not specify the new agent
directory, the default will be "." \
+ </p> \
+ <h3>Agent Update</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --update[=<old agent
home>]</b><br/> \
+ This will update an existing agent that was already installed. \
+ If you do not specify the directory where the old, existing agent was installed, it
will assumed to be "rhq-agent". \
+ </p>
+
+view_admin_downloads_cli_loadError=Cannot get CLI version info
+view_admin_downloads_cli_version=CLI Version
+view_admin_downloads_cli_buildNumber=CLI Build
+view_admin_downloads_cli_md5=CLI MD5
+view_admin_downloads_cli_link_label=Link
+view_admin_downloads_cli_link_value=Download CLI {0} ({1})
+view_admin_downloads_cli_help=<p> \
+ This is the Command Line Client tool, otherwise known as the CLI. \
+ It is a standalone tool that runs from within a console and provides a \
+ command line interface to the RHQ Server. You can invoke commands via the CLI \
+ as well as run scripts to perform automated tasks. See the documentation for \
+ more information on how to install and use the CLI. \
+ </p>
+
+view_admin_downloads_bundle_loadError=Cannot get bundle deployer info
+view_admin_downloads_bundle_link_label=Link
+view_admin_downloads_bundle_link_value=Download Bundle Deployer {0}
+view_admin_downloads_bundle_help=<p> \
+ This is the Bundle Deployer tool. It is for use by developers and packagers of RHQ
bundles. \
+ This standalone tool allows you to test your bundles and their recipes from a console.
\
+ </p>
+
+view_admin_downloads_connectors_loadError=Cannot get connectors info
+view_admin_downloads_connectors_none=No connectors are available for download
+view_admin_downloads_connectors_help=Connectors are software that is needed in order for
some products to be manageable by RHQ. You install connectors into some managed products
so RHQ agents can talk to them. See the documentation for more information.
+
+# Measurement Templates view
+view_admin_measTemplates_title=Template Metric Collection Schedules
+view_admin_measTemplates_updateExisting_title=Update Existing Schedules
+view_admin_measTemplates_updateExisting_tooltip=Check this box to update the collection
schedules for the selected metrics on all existing resources of this type. If this is not
checked, the template schedules will only be applied to new resources of this type that
are added to inventory in the future.
+
+#==================== Alerts ======================
+view_alerts_table_title_group=Hist\u00F3rico de Alertas do Grupo
+view_alerts_table_title_resource=Hist\u00F3rico de Alertas do Recurso
+view_alerts_table_filter_priority=Filtro de Prioridade
+view_alerts_field_created_time=Data de Cria\u00E7\u00E3o
+view_alerts_field_modified_time=Data de Altera\u00E7\u00E3o
+view_alerts_field_enabled=Habilitado
+view_alerts_field_ack_time=Data de Verifica\u00E7\u00E3o
+view_alerts_field_ack_subject=Assunto da Verifica\u00E7\u00E3o
+view_alerts_field_ack_status=Status
+view_alerts_field_ack_status_noAck=No Ack
+view_alerts_field_ack_status_noAckHover=Not yet Acknowledged
+view_alerts_field_ack_status_ack=Ack ({0})
+view_alerts_field_ack_status_ackHover=Acknowledged by {0} at {1}
+view_alerts_field_name=Nome
+view_alerts_field_condition_text=Condi\u00E7\u00E3o
+view_alerts_field_condition_text_none=Sem condi\u00E7\u00F5es
+view_alerts_field_condition_text_many=M\u00FAltiplas condi\u00E7\u00F5es
+view_alerts_field_condition_value=Valor da Condi\u00E7\u00E3o
+view_alerts_field_priority=Prioridade
+view_alerts_field_parent=Pai
+view_alerts_field_protected=Protegido
+view_alerts_field_protected_tooltip=Se verdadeiro, esta defini\u00E7\u00E3o \u00E9
protegida de altera\u00E7\u00F5es feitas na defini\u00E7\u00E3o pai, ou seja,
altera\u00E7\u00F5es realizadas no pai n\u00E3o sobrescrevem esta defini\u00E7\u00E3o.
+view_alerts_loadFailed=Falha ao carregar dados dos alertas
+view_alerts_delete_confirm=Excluir o(s) alerta(s) selecionado(s)?
+view_alerts_delete_confirm_all=Excluir todos os alertas?
+view_alerts_delete_success=Alertas {0} exclu\u00EDdos com sucesso
+view_alerts_delete_failure=Falha ao excluir alertas com os seguintes IDs\: {0}
+view_alerts_delete_failure_all=N\u00E3o foi poss\u00EDvel excluir os alertas
+view_alerts_ack_confirm=Confirma o(s) alerta(s) selecionado(s)?
+view_alerts_ack_confirm_all=Confirma todos os alertas?
+view_alerts_ack_success=Alertas {0} confirmados com sucesso
+view_alerts_ack_failure=Falha ao confirmar alertas com os seguintes IDs\: {0}
+view_alerts_ack_failure_all=N\u00E3o foi poss\u00EDvel confirmar todos os alertas
+view_alert_details_loadFailed=Falha ao recuperar detalhes do alerta
+view_alert_details_field_ack_by=Verificado por
+view_alert_details_field_ack_at=Verificado em
+view_alert_details_field_recovery_info=Informa\u00E7\u00E3o de Recupera\u00E7\u00E3o
+view_alert_definition_for_type=Visualizar Template
+view_alert_definition_for_group=Visualizar Defini\u00E7\u00E3o de Grupo
+view_alert_definitions_table_title_group=Defini\u00E7\u00F5es de Alertas para Grupo
+view_alert_definitions_table_title_resource=Defini\u00E7\u00F5es de Alerta para Recurso
+view_alert_definitions_loadFailed=Falha ao obter a defini\u00E7\u00E3o do alerta
+view_alert_definitions_loadFailed_single=Falha ao obter a defini\u00E7\u00E3o do alerta
com ID {0}
+view_alert_definitions_enable_confirm=Habilitar a(s) defini\u00E7\u00E3o(\u00F5es) para o
alerta selecionado?
+view_alert_definitions_enable_success=Defini\u00E7\u00F5es do alerta {0} habilitados com
sucesso
+view_alert_definitions_enable_failure=Falha ao habilitar defini\u00E7\u00F5es para o
alerta selecionado
+view_alert_definitions_disable_confirm=Desabilitar as defini\u00E7\u00F5es para o alerta
selecionado?
+view_alert_definitions_disable_success=Defini\u00E7\u00F5es do alerta {0} desabilitadas
com sucesso
+view_alert_definitions_disable_failure=Falha ao desabilitar defini\u00E7\u00F5es para o
alerta selecionado
+view_alert_definitions_delete_confirm=Excluir defini\u00E7\u00F5es para o alerta
selecionado?
+view_alert_definitions_delete_success=Defini\u00E7\u00F5es do alerta {0} exclu\u00EDdas
com sucesso
+view_alert_definitions_delete_failure=Falha aos excluir as defini\u00E7\u00F5es do alerta
selecionado
+view_alert_definitions_create_success=Defini\u00E7\u00E3o do alerta criada com sucesso
+view_alert_definitions_create_failure=Falha na cria\u00E7\u00E3o da defini\u00E7\u00E3o
do alerta
+view_alert_definitions_update_success=Defini\u00E7\u00E3o do alerta atualizada com
sucesso
+view_alert_definitions_update_failure=Falha ao atualizar a defini\u00E7\u00E3o do alerta
+view_alert_definition_condition_editor_option_label=Tipo de Condi\u00E7\u00E3o
+view_alert_definition_condition_editor_option_availability=Mudan\u00E7a de
Disponibilidade
+view_alert_definition_condition_editor_option_metric_threshold=Threshold (valor absoluto)
da M\u00E9trica
+view_alert_definition_condition_editor_option_metric_baseline=Threshold base da
M\u00E9trica
+view_alert_definition_condition_editor_option_metric_change=Mudan\u00E7a no valor da
M\u00E9trica
+view_alert_definition_condition_editor_option_metric_calltime_threshold=Tempo limite da
chamada
+view_alert_definition_condition_editor_option_metric_calltime_change=Mudan\u00E7a no
tempo de chamada
+view_alert_definition_condition_editor_option_metric_trait_change=Mudan\u00E7a de
Carcter\u00EDstica
+view_alert_definition_condition_editor_option_operation=Execu\u00E7\u00E3o de
Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_option_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
+view_alert_definition_condition_editor_option_event=Detec\u00E7\u00E3o de Evento
+view_alert_definition_condition_editor_avilability_tooltip=Especifica a mudan\u00E7a de
estado na disponibilidade do recurso que ir\u00E1 disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_avilability_value=Disponibilidade
+view_alert_definition_condition_editor_avilability_option_up=DISPON\u00CDVEL
+view_alert_definition_condition_editor_avilability_option_down=INDISPON\u00CDVEL
+view_alert_definition_condition_editor_metric_common_definition_not_found=Deve existir
uma defini\u00E7\u00E3o para a m\u00E9trica - algo est\u00E1 incorreto
+view_alert_definition_condition_editor_metric_threshold_tooltip=Especifica um threshold
que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser
absoluto e com uma unidade de medida opcional.
+view_alert_definition_condition_editor_metric_threshold_name=M\u00E9trica
+view_alert_definition_condition_editor_metric_threshold_value=Valor da M\u00E9trica
+view_alert_definition_condition_editor_metric_threshold_value_tooltip=Limiar (threshold)
da m\u00E9trica utilizado na compara\u00E7\u00E3o como condi\u00E7\u00E3o de disparo.
+view_alert_definition_condition_editor_metric_threshold_comparator=Mecanismo de
Compara\u00E7\u00E3o
+view_alert_definition_condition_editor_metric_threshold_comparator_less=Menor que
+view_alert_definition_condition_editor_metric_threshold_comparator_equal=Igual \u00E0
+view_alert_definition_condition_editor_metric_threshold_comparator_greater=Maior que
+view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=Como a
m\u00E9trica coletada deve ser comparada ao threshold estabelecido
+view_alert_definition_condition_editor_metric_baseline_tooltip=Especifica a linha de base
que, quando violada, dispara a condi\u00E7\u00E3o. O valor especificado \u00E9 o
percentual do valor da linha de base informado.
+view_alert_definition_condition_editor_metric_baseline_percentage=Percentual da linha de
base
+view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=Valor da
m\u00E9trica coletada usada para disparo da condi\u00E7\u00E3o quando comparado ao valor
da linha de base selecionada
+view_alert_definition_condition_editor_metric_baseline_value=Linha de base
(<i>baseline</i>)
+view_alert_definition_condition_editor_metric_change_tooltip=Especifica a m\u00E9trica
cujo valor deve ser alterado para disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Especifica um
tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O
valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9
necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\:
m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
+view_alert_definition_condition_editor_metric_calltime_common_name=M\u00E9trica do tempo
de chamada
+view_alert_definition_condition_editor_metric_calltime_common_limit=Tempo limite da
chamada
+view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=Tempo de
chamada limite a ser comparado com o valor informado
+view_alert_definition_condition_editor_metric_calltime_common_regex=Express\u00E3o
Regular
+view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=Se
especificada, essa \u00E9 a express\u00E3o regular a ser satisfeita pela chamada para
disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_metric_calltime_common_comparator=Compara\u00E7\u00E3o
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Redu\u00E7\u00F5es
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Ganhos
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Mudan\u00E7as
+view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=Como o
valor do tempo de chamada deve ser comparado ao valor limite
+view_alert_definition_condition_editor_metric_calltime_threshold_value=Valor do tempo de
chamada
+view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=O valor do
limiar (<i>threshold</i>) da m\u00E9trica usado para disparar a
condi\u00E7\u00E3o quando comparado ao mecanismo de compara\u00E7\u00E3o escolhido.
+view_alert_definition_condition_editor_metric_calltime_change_tooltip=Especifica o valor
do tempo de chamada que, quanto alterado, dispara a condi\u00E7\u00E3o. \u00C9
necess\u00E1rio especificar o tempo limite para a chamada (m\u00EDnimo, m\u00E1ximo ou
m\u00E9dio) e o percental de mudan\u00E7a que deve ocorrer.
+view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentual de
Mudan\u00E7a
+view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=Valor do
tempo de chamada coletado usado para disparar a condi\u00E7\u00E3o quando diferir do
percentual do valor limite do tempo de chamada definido.
+view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait
whose value must change to trigger the condition.
+view_alert_definition_condition_editor_metric_trait_change_value=Caracter\u00EDstica
+view_alert_definition_condition_editor_operation_tooltip=Define o resultado esperado
quando a opera\u00E7\u00E3o selecionada for executada para dispararo da
confi\u00E7\u00E3o.
+view_alert_definition_condition_editor_operation_value=Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_operation_status=Status da Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_operation_status_inprogress=Em andamento
+view_alert_definition_condition_editor_operation_status_success=Sucesso
+view_alert_definition_condition_editor_operation_status_failure=Falha
+view_alert_definition_condition_editor_operation_status_canceled=Cancelada
+view_alert_definition_condition_editor_resource_configuration_tooltip=Essa
condi\u00E7\u00E3o \u00E9 disparada quando a configura\u00E7\u00E3o do recurso for
alterada.
+view_alert_definition_condition_editor_event_tooltip=Define a severeidade do evento para
disparar a condi\u00E7\u00E3o. Caso seja definida uma express\u00E3o regular, a
condi\u00E7\u00E3o somente ser\u00E1 disparada se o evento satisfazer a express\u00E3o.
+view_alert_definition_condition_editor_event_severity=Severidade do Evento
+view_alert_definition_condition_editor_event_severity_debug=Debug
+view_alert_definition_condition_editor_event_severity_info=Info
+view_alert_definition_condition_editor_event_severity_warn=Warn
+view_alert_definition_condition_editor_event_severity_error=Error
+view_alert_definition_condition_editor_event_severity_fatal=Fatal
+view_alert_definition_condition_editor_event_regex=Express\u00E3o Regular
+view_alert_definition_condition_editor_event_regex_tooltip=Se definida, a
condi\u00E7\u00E3o somente ser\u00E1 disparada caso o evento satisfa\u00E7a a
express\u00E3o.
+view_alert_definition_condition_editor_common_min=M\u00EDnimo
+view_alert_definition_condition_editor_common_avg=M\u00E9dio
+view_alert_definition_condition_editor_common_max=M\u00E1ximo
+view_alert_definition_condition_editor_delete_confirm=Delete the selected alert
condition(s)?
+view_alert_definition_notification_editor_title_add=Adicionar Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_title_edit=Editar Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_sender=Remetente da Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_none_available=Remetentes n\u00E3o
dispon\u00EDveis
+view_alert_definition_notification_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel obter
remetentes
+view_alert_definition_notification_editor_loadFailed_single=N\u00E3o \u00E9 poss\u00EDvel
obter a configura\u00E7\u00E3o do remetente
+view_alert_definition_notification_editor_saveFailed=N\u00E3o foi poss\u00EDvel salvar a
configura\u00E7\u00E3o
+view_alert_definition_notification_editor_field_sender=Remetente
+view_alert_definition_notification_editor_field_configuration=Configura\u00E7\u00E3o
+view_alert_definition_notification_editor_field_configuration_not_loaded=Desconhecido
+view_alert_definition_notification_editor_field_configuration_loadFailed=Falha ao obter a
configura\u00E7\u00E3o
+view_alert_definition_notification_editor_delete_confirm=Tem certeza de que deseja
excluir as notifica\u00E7\u00F5es selecionadas?
+view_alert_definition_notification_operation_editor_mode_title=Modo de Sele\u00E7\u00E3o
do Recurso
+view_alert_definition_notification_operation_editor_mode_this=Este Recurso
+view_alert_definition_notification_operation_editor_mode_specific=Recurso
Espec\u00EDfico
+view_alert_definition_notification_operation_editor_mode_relative=Recurso parente
+view_alert_definition_notification_operation_editor_mode_unknown=OP\u00C7\u00C3O
INV\u00C1LIDA - BUG\!
+view_alert_definition_notification_operation_editor_common_operation=Opera\u00E7\u00E3o
+view_alert_definition_notification_operation_editor_specific_resource=Recurso
+view_alert_definition_notification_operation_editor_specific_pick_button=Selecionar
+view_alert_definition_notification_operation_editor_specific_pick_text=Selecione um
recurso...
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Favor
selecionar um recurso
+view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Selecione
um recurso que possua um ou mais opera\u00E7\u00F5es
+view_alert_definition_notification_operation_editor_relative_ancestor=Iniciar a busca a
partir de
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Selecione o
topo da hierarquia para buscar a \u00E1rvore de descendentes para Filtro por Tipo
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter a ascend\u00EAncia do tipo
+view_alert_definition_notification_operation_editor_relative_ancestor_root=Tipo do
Ancestral Raiz
+view_alert_definition_notification_operation_editor_relative_descendant=Ent\u00E3o
procure por
+view_alert_definition_notification_operation_editor_relative_descendant_tooltip=Tipo do
recurso a ser procurado a baixo do tipo raiz definido na sele\u00E7\u00E3o 'Inicia a
Pesquesa a partir de'.
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=Um
nome especifico para identificar unicamente um recurso quando existir mais de um do mesmo
tipo. Isso \u00E9 opcional, se definido, sempre ser\u00E1 um recurso do tipo slecionda na
hierarquia.
+view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter os tipos de descendentes
+view_alert_definition_notification_operation_editor_operations_loadFailed=Falha ao
carregar a lista de opera\u00E7\u00F5es dispon\u00EDveis
+view_alert_definition_notification_operation_editor_operations_no_parameters=Esta
opera\u00E7\u00E3o n\u00E3o recebe par\u00E2metros
+view_alert_definition_notification_role_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os perfis atuais - iniciando vazio
+view_alert_definition_notification_role_editor_restoreFailed=N\u00E3o \u00E9
poss\u00EDvel usar os perfis atuais - iniciando vazio
+view_alert_definition_notification_role_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os perfis selecionados
+view_alert_definition_notification_user_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os usu\u00E1rios atuais - iniciando vazio
+view_alert_definition_notification_user_editor_restoreFailed=N\u00E3o foi poss\u00EDvel
usar os usu\u00E1rios atuais - iniciando vazio
+view_alert_definition_notification_user_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os usu\u00E1rios seleciondados
+view_alert_definition_notification_cliScript_editor_repository=Repository
+view_alert_definition_notification_cliScript_editor_script=Script
+view_alert_definition_notification_cliScript_editor_whichUser=User To Run The Script As
+view_alert_definition_notification_cliScript_editor_thisUser=Myself
+view_alert_definition_notification_cliScript_editor_anotherUser=Another User
+view_alert_definition_notification_cliScript_editor_verifyAuthentication=Verify
+view_alert_definition_notification_cliScript_editor_loadFailed=Loading the CLI
Notification Editor Failed.
+view_alert_definition_notification_cliScript_editor_selectRepoFirst=Select a repository
first.
+view_alert_definition_notification_cliScript_editor_existingScript=Existing Script
+view_alert_definition_notification_cliScript_editor_uploadNewScript=Upload New Script
+view_alert_definition_notification_cliScript_editor_newScriptVersion=Version
+view_alert_definition_notification_cliScript_editor_selectRepo=Select the repository
where the script should reside
+view_alert_definition_recovery_editor_disable_when_fired=Desabilitar quando disparado
+view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indica se este alerta
deve ser desabilitado ap\u00F3s ser disparado. Uma vez desabilitado, o alerta pode ser
reativado manualmente ou um alerta de recupera\u00E7\u00E3o pode ser definido para
reativ\u00E1-lo automaticamente. If this alert is a recovery alert itself, this setting
cannot be turned on.
+view_alert_definition_recovery_editor_recovery_alert=Alerta de Recupera\u00E7\u00E3o
+view_alert_definition_recovery_editor_recovery_alert_tooltip=O Alerta a ser recuperado
(reativado) ap\u00F3s o disparo deste alerta. N\u00E3o selecione um alerta aqui caso
n\u00E3o esteja definindo um alerta de recupera\u00E7\u00E3o.
+view_alert_definition_recovery_editor_loadFailed=N\u00E3o foi poss\u00EDvel construir o
menu de recupera\u00E7\u00E3o
+view_alert_definition_recovery_editor_none_available=Nenhum
+view_alert_common_tab_general=Propriedades Gerais
+view_alert_common_tab_conditions=Condi\u00E7\u00F5es
+view_alert_common_tab_conditions_modal_title=Adicionar nova condi\u00E7\u00E3o.
+view_alert_common_tab_conditions_expression=Disparar alerta quando
+view_alert_common_tab_conditions_expression_tooltip=Determina se QUALQUER UMA ou TODAS as
condi\u00E7\u00F5es devem ser satisfeitas para que todo o conjunto de condi\u00E7\u00F5es
seja considerado verdadeiro.
+view_alert_common_tab_conditions_text=Condi\u00E7\u00E3o
+view_alert_common_tab_conditions_value=Valor
+view_alert_common_tab_conditions_type_availability=Mudan\u00E7a na Disponibilidade
+view_alert_common_tab_conditions_type_availability_down=Indispon\u00EDvel
+view_alert_common_tab_conditions_type_availability_up=Dispon\u00EDvel
+view_alert_common_tab_conditions_type_metric_threshold=Valor da M\u00E9trica excede o
limiar (threshold)
+view_alert_common_tab_conditions_type_metric_calltime_threshold=Tempo de chamada excede o
limiar (threshold)
+view_alert_common_tab_conditions_type_metric_calltime_destination=com o destino da
chamada correspondente
+view_alert_common_tab_conditions_type_metric_calltime_change=Mudan\u00E7a no tempo de
chamada
+view_alert_common_tab_conditions_type_metric_calltime_change_verb=ao menos
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Aumento
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Redu\u00E7\u00E3o
+view_alert_common_tab_conditions_type_metric_calltime_delta_other=Mudan\u00E7a
+view_alert_common_tab_conditions_type_metric_baseline=Valor da m\u00E9trica excede a
linha de base (baseline)
+view_alert_common_tab_conditions_type_metric_baseline_verb=de
+view_alert_common_tab_conditions_type_metric_change=Mudan\u00E7a no valor da
m\u00E9trica
+view_alert_common_tab_conditions_type_metric_trait_change=Mudan\u00E7a de
Carater\u00EDstica
+view_alert_common_tab_conditions_type_operation=Execu\u00E7\u00E3o de Opera\u00E7\u00E3o
+view_alert_common_tab_conditions_type_operation_status=resultado com status
+view_alert_common_tab_conditions_type_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
+view_alert_common_tab_conditions_type_event=Detec\u00E7\u00E3o de Envento
+view_alert_common_tab_conditions_type_event_matching=combinando com o evento de origem
+view_alert_common_tab_conditions_recovery_enabled=''{0}'' disparado para
ser reativado.
+view_alert_common_tab_conditions_recovery_disabled=Este alerta desativou a sua
defini\u00E7\u00E3o.
+view_alert_common_tab_notifications=Notifica\u00E7\u00F5es
+view_alert_common_tab_notifications_sender=Remetente
+view_alert_common_tab_notifications_status=Status
+view_alert_common_tab_notifications_message=Mensagem
+view_alert_common_tab_dampening=Sensibilidade
+view_alert_common_tab_dampening_category_none=N\u00E3o definido
+view_alert_common_tab_dampening_category_none_tooltip=Sensibilidade desabilitada. Cada
vez que o conjunto de condi\u00E7\u00F5es for satisfeito, um alerta ser\u00E1 disparado.
+view_alert_common_tab_dampening_category_consecutive_count=Consecutivos
+view_alert_common_tab_dampening_category_consecutive_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias consecutivas em que o conjunto de condi\u00E7\u1E4Des
for satisfeito.
+view_alert_common_tab_dampening_category_partial_count=\u00DAltimas N
verifica\u00E7\u00F5es
+view_alert_common_tab_dampening_category_partial_count_tooltip=Um alerta \u00E9 disparado
a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9 satisfeito
durante as \u00FAltimas N verifica\u00E7\u00F5es.
+view_alert_common_tab_dampening_category_duration_count=Per\u00EDodo de Tempo
+view_alert_common_tab_dampening_category_duration_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9
satisfeito dentro de um dado per\u00EDodo de tempo.
+view_alert_common_tab_dampening_consecutive_occurrences_label=Ocorr\u00EAcias
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=O n\u00FAmero de
vezes que o conjunto de condi\u00E7\u00F5es deve ser satisfeito antes do alerta ser
disparado.
+view_alert_common_tab_dampening_partial_occurrences_label=Ocorr\u00EAncias
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante as \u00FAltimas N
verifica\u00E7\u00F5es antes do alerta ser disparado.
+view_alert_common_tab_dampening_partial_evalatuions_label=Verifica\u00E7\u00F5es
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=O total de vezes que o
conjunto de condi\u00E7\u00F5es ser\u00E1 testado para certificar-se de que o n\u00FAmero
de ocorr\u00EAncias definido foi satisfeito.
+view_alert_common_tab_dampening_duration_occurrences_label=Ocorr\u00EAncias
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante o per\u00EDodo de tempo
definido antes do alerta ser disparado.
+view_alert_common_tab_dampening_duration_period_label=Per\u00EDodo de Tempo
+view_alert_common_tab_dampening_duration_period_label_tooltip=Espa\u00E7o de tempo em que
o conjunto de condi\u00E7\u00F5es ser\u00E1 testado para verificar se o n\u00FAmero de
ocorr\u00EAncias definido \u00E9 satisfeito.
+view_alert_common_tab_recovery=Recupera\u00E7\u00E3o~
+view_alert_common_tab_invalid_condition_category=Categoria de condi\u00E7\u00E3o
inv\u00E1lida - favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_dampening_category=Categora de sensibilidade inv\u00E1lida
- favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_time_units=Unidade de tempo inv\u00E1lida - favor reportar
como um bug\: {0}
+
+# Auto Discovery Queue
+#----------------------------
+view_autoDiscoveryQ_title=Fila de Autodescoberta
+view_autoDiscoveryQ_import=Importar
+view_autoDiscoveryQ_ignore=Ignorar
+view_autoDiscoveryQ_ignored=Ignorado
+view_autoDiscoveryQ_unignore=N\u00E3o ignorar
+view_autoDiscoveryQ_committed=Committed
+view_autoDiscoveryQ_deleted=Deleted
+view_autoDiscoveryQ_uninventoried=Uninventoried
+view_autoDiscoveryQ_new=Novo
+view_autoDiscoveryQ_newAndIgnored=Novo e Ignorado
+view_autoDiscoveryQ_importFailure=Falha ao importar recursos
+view_autoDiscoveryQ_importSuccessful=Os recursos selecionados foram importados com
sucesso.
+view_autoDiscoveryQ_ignoreFailure=Falha ao ignorar recursos.
+view_autoDiscoveryQ_ignoreSuccessful=Os recursos selecionados foram ignorados com
sucesso.
+view_autoDiscoveryQ_unignoreFailure=Falha ao reimportar os recursos
+view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected
resources.~
+view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See
Administrator to change)~
+view_autoDiscoveryQ_noItems=N\u00E3o h\u00E1 itens a serem mostrados
+view_autoDiscoveryQ_field_parentId=ID Pai
+view_autoDiscoveryQ_field_name=Nome do Recurso
+view_autoDiscoveryQ_field_key=Chave do Recurso
+view_autoDiscoveryQ_field_discoveryTime=Data e Hora da Descoberta
+view_autoDiscoveryQ_field_inventoryStatus=Status do Invet\u00E1rio
+view_autoDiscoveryQ_loadFailure=Falha ao carregar a fila de descoberta do
invent\u00E1rio
+view_autoDiscoveryQ_showStatus=Show
+view_autoDiscoveryQ_confirmSelect=Also select the platform children?
+
+#==================== Bundles ======================
+
+# some common bundle terms
+view_bundle_bundle=Bundle~
+view_bundle_bundles=Bundles~
+view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_bundleDeployment=Bundle Deployment~
+view_bundle_bundleDeployments=Bundle Deployments~
+view_bundle_bundleFiles=Bundle Files~
+view_bundle_bundleType=Bundle Type~
+view_bundle_bundleVersion=Bundle Version~
+view_bundle_bundleVersions=Bundle Versions~
+view_bundle_deploy=Deploy~
+view_bundle_deployed=Deployed~
+view_bundle_deployDir=Deploy Directory~
+view_bundle_deployments=Deployments~
+view_bundle_destinations=Destinations~
+view_bundle_files=Files~
+view_bundle_latestVersion=Latest Version~
+view_bundle_recipe=Recipe~
+view_bundle_revert=Revert~
+view_bundle_purge=Purge
+view_bundle_versions=Versions~
+view_bundle_deleteConfirm=Are you sure you want to delete this bundle? All versions,
destinations and deployments for this bundle will also be deleted.
+
+# individual bundle views/wizards
+view_bundle_fileListView_fileSize=File Size~
+view_bundle_fileListView_md5=MD5
+view_bundle_fileListView_sha256=SHA256
+view_bundle_fileListView_loadFailure=Failed to load bundle file data~
+view_bundle_version_backToBundle=Back to Bundle~
+view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
+view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the
bundle version tags~
+view_bundle_version_deleteConfirm=Are you sure you want to delete this bundle version?
+view_bundle_version_deleteFailure=Failed to delete the bundle version [{0}]
+view_bundle_version_deleteSuccessful=You successfully deleted the bundle version [{0}]
+view_bundle_version_loadFailure=Failed to load bundle version~
+view_bundle_tree_loadFailure=Failed to load bundle data~
+view_bundle_revertWizard_title=Bundle Revert~
+view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
+view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
+view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
+view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
+view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}~
+view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)~
+view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment
name~
+view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
+view_bundle_revertWizard_confirmStep_noLiveDeployment_concise=No live deployment was
found for the destination
+view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for
the destination [{0}]~
+view_bundle_revertWizard_confirmStep_noPriorDeployment_concise=The live deployment cannot
be reverted because there is no prior deployment
+view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot
be reverted because there is no prior deployment for the destination [{1}]~
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live
deployment; cannot revert~
+view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
+view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
+view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous
Deployment. Click "Next" to continue...~
+view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
+view_bundle_revertWizard_revertStep_reverting=Reverting...~
+view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert
deployment!~
+view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to
revert the bundle deployment [{0}] from resource group [{1}]~
+view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert
deployment!~
+view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
+view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
+view_bundle_list_versionsCount=Versions Count~
+view_bundle_list_destinationsCount=Destinations Count~
+view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version
data~
+view_bundleVersion_loadFailure=Failed to load bundle version data~
+view_bundle_list_backToAll=Back to All Bundles~
+view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
+view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
+view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
+view_bundle_list_deletesFailure=Failed to delete the bundles
+view_bundle_list_deletesSuccessful=You successfully deleted the bundles
+view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
+view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
+view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
+view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
+view_bundle_list_error3=Failed to load bundle~
+view_bundle_dest_group=Group~
+view_bundle_dest_created=Created~
+view_bundle_dest_deployDir=Deploy Directory~
+view_bundle_dest_lastDeployedVersion=Last Deployed Version~
+view_bundle_dest_lastDeploymentDate=Last Deployment Date~
+view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
+view_bundle_dest_loadFailure=Failed to load bundle destinations~
+view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed
version information~
+view_bundle_dest_backToBundle=Back to Bundle~
+view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
+view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination
tags~
+view_bundle_dest_purgeConfirm=This will purge the bundle content from all remote
machines. Are you sure you want to do this?
+view_bundle_dest_purgeFailure=Failed to purge the bundle destination [{0}] from some or
all of the remote machines.
+view_bundle_dest_purgeSuccessful=You successfully purged the bundle destination [{0}]
from all of the remote machines.
+view_bundle_dest_revertConfirm=This will revert all remote machines back to the previous
bundle deployment. Are you sure you want to do this?
+view_bundle_dest_deleteConfirm=Are you sure you want to delete this bundle destination?
This only deletes it from the database; all bundle content that was deployed to this
destination on remote machines will remain.
+view_bundle_dest_deleteFailure=Failed to delete the bundle destination [{0}]
+view_bundle_dest_deleteSuccessful=You successfully deleted the bundle destination [{0}]
+view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
+view_bundle_deploy_name=Deployment Name~
+view_bundle_deploy_time=Deployment Time~
+view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
+view_bundle_deploy_action=Action~
+view_bundle_deploy_installDetails=Install Details~
+view_bundle_deploy_backButton=Back to Destination~
+view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
+view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle
deployment tags~
+view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
+view_bundle_deploy_selectARow=Select a row to show installation details~
+view_bundle_deploy_operatingSystem=Operating System~
+view_bundle_deploy_loadFailure=Failed to load bundle deployment~
+view_bundle_deploy_loadBundleFailure=Failed to find bundle~
+view_bundle_deploy_deployedBy=Deployed By
+view_bundle_deploy_clickForError=Click the icon for the error message
+view_bundle_deploy_deleteConfirm=Are you sure you want to delete this bundle deployment?
+view_bundle_deploy_deleteFailure=Failed to delete the bundle deployment [{0}]
+view_bundle_deploy_deleteSuccessful=You successfully deleted the bundle deployment [{0}]
+view_bundle_createWizard_title=Create Bundle~
+view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
+view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}],
version=[{1}]~
+view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle
[{0}], version=[{1}] - the bundle may still exist in the database~
+view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must
deploy a valid plugin that supports bundle deployments~
+view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
+view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from
server~
+view_bundle_createWizard_enterUrl=Please enter a valid URL where the bundle distribution
file can be downloaded from
+view_bundle_createWizard_enterRecipe=Please supply a valid recipe
+view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several
minutes for large files~
+view_bundle_createWizard_uploadStepName=Provide a Bundle Distribution~
+view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded
for this bundle~
+view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
+view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution
file~
+view_bundle_createWizard_bundleDistro=Bundle Distribution~
+view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a
bundle!
+view_bundle_createWizard_urlOption=URL~
+view_bundle_createWizard_uploadOption=Upload~
+view_bundle_createWizard_recipeOption=Recipe~
+view_bundle_createWizard_provideBundleDistro=Provide a Bundle Distribution
+view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
+view_bundle_createWizard_createFailure=Failed to create the bundle~
+view_bundle_createWizard_createSuccessful=You have successfully created a bundle named
[{0}] with a version of [{1}]~
+
+view_bundle_deployWizard_deploying=Deploying...~
+view_bundle_deployWizard_deployStep=Deploy Bundle to Destination Platforms~
+view_bundle_deployWizard_deploymentCreated=Created Deployment...~
+view_bundle_deployWizard_deploymentCreatedDetail=Created deployment [{0}] description
[{1}]~
+view_bundle_deployWizard_deploymentCreatedDetail_concise=You have created the deployment
[{0}]
+view_bundle_deployWizard_destinationCreatedDetail=Created destination [{0}] description
[{1}]~
+view_bundle_deployWizard_destinationCreatedDetail_concise=You have created the
destination [{0}]
+view_bundle_deployWizard_deploymentScheduled=Bundle Deployment Scheduled!~
+view_bundle_deployWizard_deploymentScheduledDetail=Scheduled bundle deployment [{0}]
destination group [{1}]~
+view_bundle_deployWizard_deploymentScheduledDetail_concise=You have scheduled the bundle
deployment
+view_bundle_deployWizard_error_1=Failed to delete new deployment on Cancel:
+view_bundle_deployWizard_error_2=Failed to delete new destination on Cancel:
+view_bundle_deployWizard_error_3=Failed to Schedule Deployment!~
+view_bundle_deployWizard_error_4=Failed to schedule deployment: {0}~
+view_bundle_deployWizard_error_5=Failed to Create Deployment!~
+view_bundle_deployWizard_error_6=Failed to create deployment: {0}~
+view_bundle_deployWizard_error_7=Failed to get deployment name.~
+view_bundle_deployWizard_error_8=You must select a valid resource group from the drop
down~
+view_bundle_deployWizard_error_9=Failed to delete new destination in nextPage:~
+view_bundle_deployWizard_error_10=Failed to create destination, it may already exist.
(Note, for an existing destination deploy from the Destination view)~
+view_bundle_deployWizard_error_11=Failed to find defined deployments.~
+view_bundle_deployWizard_error_12=Failed to find defined bundles.~
+view_bundle_deployWizard_getConfigStep=Set Deployment Configuration~
+view_bundle_deployWizard_getConfigSkip=No configuration needed for this bundle version.~
+view_bundle_deployWizard_getDestStep=New Destination~
+view_bundle_deployWizard_getDest_name=Destination Name~
+view_bundle_deployWizard_getDest_desc=Destination Description~
+view_bundle_deployWizard_getDest_deployDir=Root Deployment Directory (on destination
platforms)~
+view_bundle_deployWizard_getInfoStep=Provide Deployment Information~
+view_bundle_deployWizard_getInfo_clean=Clean Deployment? (wipe deploy directory on
destination platform)~
+view_bundle_deployWizard_getInfo_deploymentDesc=Deployment Description~
+view_bundle_deployWizard_getInfo_deploymentName=Deployment Name~
+view_bundle_deployWizard_getOptionsStep=Deploy Options~
+view_bundle_deployWizard_getOptions_deployLater=Deploy Later~
+view_bundle_deployWizard_getOptions_deployNow=Deploy Now~
+view_bundle_deployWizard_getOptions_deployTime=Deployment Time~
+view_bundle_deployWizard_selectBundleStep=Select Deployment Bundle~
+view_bundle_deployWizard_selectBundle_single=Select only a single bundle for
deployment.~
+view_bundle_deployWizard_selectVersionStep=Select Deployment Bundle Version~
+view_bundle_deployWizard_selectVersion_latest=Latest Version [{0}]~
+view_bundle_deployWizard_selectVersion_live=Live Version [{0}]~
+view_bundle_deployWizard_selectVersion_select=Select Version from List:~
+view_bundle_deployWizard_title=Bundle Deployment Wizard~
+
+# =================== Measurement Views =====================
+
+view_measureTable_chartMetricValues=Chart Selected Metrics
+view_measureTable_getLive=Get Live Value
+view_measureTable_getLive_failure=Cannot get live values for those metrics. Make sure the
agent is running and the managed resource is up.
+view_measureTable_live_title=Live Data
+
+# =================== Components =====================
+
+view_configCompare_comparingConfigs=Comparando Configura\u00E7\u00F5es
+view_configCompare_configCompare=Compara\u00E7\u00E3o de Configura\u00E7\u00F5es
+
+view_configEdit_addItem=Adicionar Item \u00E0 Lista
+view_configEdit_confirm_1=Tem certeza de que deseja excluir as propriedades
selecionadas?
+view_configEdit_confirm_2=Tem certeza de que deseja excluir esta linha?
+view_configEdit_confirm_3=Tem certeza de que deseja excluir [{0}] selecionado [{1}]?
+view_configEdit_viewRow=View Row
+view_configEdit_editRow=Editar Linha de Configura\u00E7\u00E3o
+view_configEdit_enterPropName=Informe o nome da propriedade a ser adicionada.
+view_configEdit_error_1=Este recurso n\u00E3o suporta Configura\u00E7\u00E3o.
+view_configEdit_error_2=Este recurso n\u00E3o possui suporte \u00E0 propriedades de
conex\u00E3o.
+view_configEdit_error_3=N\u00E3o f\u00F3 poss\u00EDvel adicionar a propriedade com nome
[{0}]. Nome de propriedade j\u00E1 utilizada neste conjunto.
+view_configEdit_files=Arquivos
+view_configEdit_hideAll=Ocultar todos
+view_configEdit_jumpToSection=Ir direto para a Sele\u00E7\u00E3o
+view_configEdit_msg_1=Propriedade [{0}] adicionada ao conjunto.
+view_configEdit_msg_2=Propriedades removidas do conjunto.
+view_configEdit_msg_3=[{0} {1}] removido da lista.
+view_configEdit_msg_4=Item adicionado \u00E0 lista.
+view_configEdit_properties=Propriedades
+view_configEdit_tooltip_1=Remove os itens selecionados da lista.
+view_configEdit_tooltip_2=Adiciona um item \u00E0 lista.
+
+view_groupConfigEdit_member=Membro
+view_groupConfigEdit_noListProps=Lista de propriedades n\u00E3o suportada atualmente para
configura\u00E7\u00F5es em grupo.
+view_groupConfigEdit_tooltip_1=Valores dos membros diferem - clique no \u00EDcone para
edit\u00E1-los.
+view_groupConfigEdit_setAll=Atribuir todos os valores \u00E0\:
+view_groupConfigEdit_unset=Remover atribui\u00E7\u00E3o
+view_groupConfigEdit_valsDiff=valores dos membros diferem
+view_groupConfigEdit_valsDiffForProp=Valores dos membros para a Propriedade [{0}]
+
+view_leftNav_unknownPage=P\u00E1gina desconhecida [{0}] para a se\u00E7\u00E3o [{1}] -
URL inv\u00E1lida.
+
+view_measure_nan=--dados indispon\u00EDveis--
+
+# Measurement Range Selector
+view_measureRange_last=\u00DAltimo
+view_measureRange_start=Time Range - Start
+view_measureRange_simple=Simples...
+
+view_selector_assigned=Associado {0}
+view_selector_available=Dispon\u00EDvel {0}
+
+view_subTab_error_disabled=N\u00E3o \u00E9 poss\u00EDvel selecionar uma subTab
desabilidada [{0}].
+
+view_table_drawFail=Failed to draw Table [{0}].
+view_table_matchingRows=Matching Rows: {0} (selected: {1})
+view_table_totalRows=Total de Linhas\: {0} (selecionada\: {1})
+view_tableSection_backButton=Voltar \u00E0 Lista
+view_tableSection_error_noId=Table [{0}] record is missing 'id' attribute -
please report this bug.~
+view_tableSection_error_badId=Can not show detail for [{0}]. Illegal 'id': [{1}].
Please report this bug~
+
+view_tags_tags=Tags~
+view_tags_error_1=Failed to load Tags~
+view_tags_tooltip_1=Click to remove this Tag~
+view_tags_tooltip_2=Click to edit Tags~
+view_tags_tooltip_3=Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g.
it:env=QA, or owner=John)
+
+# File Upload (various)
+view_upload_alreadyUploaded=File has already been uploaded~
+view_upload_bundleDistFile=Distribution File~
+view_upload_error_bundleDistFile=Error uploading Bundle Distribution File~
+view_upload_error_file=Error uploading file~
+view_upload_error_fileName=Error uploading file [{0}]~
+view_upload_error_fileName_2=Error uploading file [{0}], check for invalid file path.~
+view_upload_error_packageVersionFile=Error uploading Package Version File~
+view_upload_error_results=Error uploading file, unexpected results: [{0}]~
+view_upload_inProgress=Can not submit, upload is currently in progress~
+view_upload_prompt_1=[{0}] File to Upload~
+view_upload_prompt_2=File to Upload~
+view_upload_tooltip_1a=Select a file to upload, then click Upload or Next
+view_upload_tooltip_1b=Select a file to upload, then click Next
+view_upload_tooltip_2=File upload had previously failed~
+view_upload_success=File successfully uploaded~
+view_upload_upload=Upload~
+view_upload_uploadFile=UploadFile~
+
+# Group Create Wizard
+view_groupCreateWizard_membersStepName=Select Members~
+view_groupCreateWizard_createStepName=Group Settings~
+view_groupCreateWizard_createStep_recursive=Recursive~
+view_groupCreateWizard_title=Create Group~
+view_groupCreateWizard_windowTitle=Create Group~
+view_groupCreateWizard_createFailure=Failed to create the resource group~
+view_groupCreateWizard_createSuccessful_concise=You have created a new resource group.
[<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group
with the name [{1}] that contains [{2}] member resources~
+
+# Resource Type / Plugin View/Datasources
+view_type_resourceTypes=Resource Types~
+view_type_parentId=Parent ID~
+view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+
+# Tabs
+view_tabs_invalidSubTab=Invalid subtab: {0}
+view_tabs_invalidTab=Invalid tab: {0}
+
+# Group Tree
+group_tree_partialClusterTooltip={0} out of {1} group members have a
''{2}'' resource
+
+#=================== Dashboard =====================
+view_dashboard_favorites_error1=Failed to load favorite Resources.~
+view_dashboardManager_error=Failed to save dashboard to server~
+view_dashboardManager_saved=Saved dashboard {0} to server~
+view_dashboardManager_success=Saved dashboard~
+view_dashboardManager_deleteFail=Failed to delete dashboard.
+view_dashboardManager_deleted=Successfully deleted dashboard {0}~
+view_dashboards_title=Dashboard~
+view_dashboards_confirm1=Are you sure you want to delete~
+view_dashboards_portlets_refresh_fail1=Failed to update interval for portlets that
auto-refresh
+view_dashboards_portlets_refresh_fail2=Failed to disable reload for portlets that
auto-refresh
+view_dashboards_portlets_refresh_none=No Refresh
+view_dashboards_portlets_refresh_one_min=1 minute
+view_dashboards_portlets_refresh_multiple_min={0} minutes
+view_dashboards_portlets_refresh_success1=Updated interval for portlets that
auto-refresh
+view_dashboards_portlets_refresh_success2=Stopping reload for portlets that auto-refresh
+view_dashboardsManager_error1=Failed to add new dashboard~
+view_dashboardsManager_message_title_details=<h1>Welcome to
RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems
management suite that provides extensible and integrated systems management for multiple
products and platforms across a set of core features. The project is designed with layered
modules that provide a flexible architecture for deployment. It delivers a core user
interface that delivers audited and historical management across an entire enterprise. A
Server/Agent architecture provides remote management and plugins implement all specific
support for managed products.</p>\n <p>This default dashboard can be edited by
clicking the (edit mode) button above.</p>~
+
+view_portlet_factory_invalidPortlet=This is an obsolete portlet that is no longer valid.
Please delete it.
+
+view_portlet_defaultName_autodiscovery=Discovery Queue
+view_portlet_defaultName_favoriteResources=Favorite Resources
+view_portlet_defaultName_resourceMetric=Resource Metric Graph
+view_portlet_defaultName_groupMetric=Resource Group Metric Graph
+view_portlet_defaultName_inventorySummary=Inventory Summary
+view_portlet_defaultName_mashup=Mashup
+view_portlet_defaultName_message=Message
+view_portlet_defaultName_operations=Recent Operations
+view_portlet_defaultName_platformSummary=Platform Utilization
+view_portlet_defaultName_problemResources=Alerted or Unavailable Resources
+view_portlet_defaultName_recentAlerts=Recent Alerts
+view_portlet_defaultName_recentlyAddedResources=Recently Added Resources
+view_portlet_defaultName_tagCloud=Tag Count
+
+view_portlet_defaultName_group_alerts=Group: Alerts
+view_portlet_defaultName_group_bundles=Group: Bundle Deployments
+view_portlet_defaultName_group_config_updates=Group: Configuration Updates
+view_portlet_defaultName_group_events=Group: Event Counts
+view_portlet_defaultName_group_metrics=Group: Metrics
+view_portlet_defaultName_group_oobs=Group: OOB Conditions
+view_portlet_defaultName_group_operations=Group: Operations
+view_portlet_defaultName_group_pkg_hisory=Group: Package History
+view_portlet_defaultName_resource_alerts=Resource: Alerts
+view_portlet_defaultName_resource_bundles=Resource: Bundle Deployments
+view_portlet_defaultName_resource_config_updates=Resource: Configuration Updates
+view_portlet_defaultName_resource_events=Resource: Event Counts
+view_portlet_defaultName_resource_metrics=Resource: Measurements
+view_portlet_defaultName_resource_oobs=Resource: OOB Metrics
+view_portlet_defaultName_resource_operations=Resource: Operations
+view_portlet_defaultName_resource_pkg_hisory=Resource: Package History
+
+view_portlet_help_autodiscovery=This portlet allows import or ignore of newly discovered
resources. Imported resources are added to inventory for monitoring and management.
Ignored resources are not imported and are hidden from view unless explicitly unignored.
+view_portlet_help_bundle_deps=This portlet shows relevant bundle deployments based on
display criteria configured.
+view_portlet_help_config_updates=This portlet displays recent configuration changes
consistent with configuration settings.
+view_portlet_help_eventcounts=This portlet displays Event counts consistent with display
criteria configured.
+view_portlet_help_favoriteResources=This portlet displays the current user''s
favorite resources.
+view_portlet_help_graph=This portlet displays the resource metric graph.
+view_portlet_help_inventorySummary=This portlet displays a short summary of the current
user''s viewable inventory and metric collection rate.
+view_portlet_help_mashup=This portlet displays the returned content of a remote HTTP
request (via an iframe).
+view_portlet_help_metrics=This portlet graphs relevant recent metric data based on
display criteria configured.
+view_portlet_help_message=This portlet displays a static HTML message. The
<i>message</i> property must be configured.
+view_portlet_help_oobs=This portlet displays OOB(Out of Bound) metric conditions.
+view_portlet_help_operations=This portlet displays the most recently executed operations
for the current user''s inventory.
+view_portlet_help_scheduledOperations=This portlet displays the next scheduled operations
for the current user''s inventory.
+view_portlet_help_operations_criteria=This portlet displays Operations consistent with
display criteria configured.
+view_portlet_help_pkg_history=This portlet shows relevant package history based on
display criteria configured.
+view_portlet_help_platformSummary=This portlet displays utilization data (such as current
CPU and memory usage) for platform resources that are accessible by the current user.
+view_portlet_help_problemResources=This portlet displays the current user''s
alerted or unavailable resources.
+view_portlet_help_recentAlerts=This portlet displays alerts recently fired on the current
user''s viewable inventory.
+view_portlet_help_recentlyAdded=This portlet displays resources that have recently been
imported into inventory.
+view_portlet_help_tagCloud=This portlet displays the relative tag counts for the current
user''s inventory.
+view_portlet_help_none=There is no help available for this portlet.
+
+view_portlet_configure_needed=Click the Settings button to configure this portlet.
+view_portlet_configure_notNeeded=Configuration is not necessary for this portlet.
+view_portlet_configure_definitionTitle=Portlet Configuration
+view_portlet_configure_definitionDesc=The configuration settings for the portlet.
+
+view_portlet_autodiscovery_setting_platforms=discovered platforms
+
+view_portlet_graph_configure_resource_graph=The resource to graph~
+view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
+
+view_portlet_inventory_error1=Failed to retrieve inventory summary~
+view_portlet_inventory_tooltip_expand=Click to show more details for this resource.
+view_portlet_inventory_tooltip_collapse=Click to hide details for this resource.
+
+view_portlet_message_title=Message~
+
+view_portlet_operations_config_completed_maximum=Maximum number of Completed operations
to display.~
+view_portlet_operations_config_completed_enable=Whether to enable completed operations
results grouping for dashboard.~
+view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations
results grouping for dashboard.~
+view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations
to display.~
+view_portlet_operations_config_completed=completed operations~
+view_portlet_operations_config_show_last=show Last~
+view_portlet_operations_config_show_next=show Next~
+view_portlet_operations_disabled=(Results currently disabled. Change settings to enable
results.~
+
+view_portlet_platform_platform_error_1=Failed to load platform metrics~
+view_portlet_platform_type_error_1=Could not load type data~
+
+view_portlet_problemResources_config_display_maximum=Maximum number of Problem resources
to display.
+view_portlet_problemResources_config_display_range=Show problem resources going back this
many hours.
+view_portlet_problemResources_config_display_range2=From {0} to {1}
+view_portlet_problemResources_maxDisplaySetting=maximum resources.
+
+view_portlet_recentAlerts_config_members=Select Members~
+view_portlet_recentAlerts_config_priority_label=priority Alerts,~
+view_portlet_recentAlerts_config_when=within the past~
+view_portlet_recentAlerts_fail_msg=Failed to load resources assigned for alert
filtering.
+
+view_portlet_recentlyAdded_setting_addedPlatforms=recently added platforms
+view_portlet_recentlyAdded_error1=Failed to load recently added resources~
+view_portlet_results_empty=No results found using specified criteria.
+
+# =================== Inventory =====================
+view_inventory_adq=Discovery Queue~
+view_inventory_sectionHelp=From this section, newly discovered Resources, inventoried
Resources, and Groups can be viewed and managed.~
+view_inventory_problemGroups=Problem Groups~
+view_inventory_collectionInterval=Collection Interval~
+view_inventory_mixed=mixed~
+view_inventory_unavailableServers=Unavailable Servers
+view_inventory_groups=Groups~
+view_inventory_allGroups=All Groups~
+view_inventory_allResources=All Resources~
+view_inventory_platforms=Platforms~
+view_inventory_servers=Servers~
+view_inventory_services=Services~
+view_inventory_summary_agent_error1=Failed to locate agent managing resource id~
+view_inventory_summary_agent_error2=Failed to ping agent managing resource id~
+view_inventory_summary_agent_error3=You do not have permission to view details for this
Agent.
+view_inventory_summary_agent_fullEnpoint=Full Endpoint~
+view_inventory_summary_agent_fullEnpoint_err1=!No remote endpoint associated with this
resource!~
+view_inventory_summary_agent_last_title=Last Received Availability Report~
+view_inventory_summary_agent_status_title=Agent Communications Status~
+view_inventory_summary_agent_title=Agent Managing this Resource~
+view_inventory_dynagroupDefs=Dynagroup Definitions~
+view_metric_traits=Traits~
+view_metric_viewTraitHistory=Value History for Trait [{0}]~
+view_inventory_eventHistory_groupEventHistory=Group Event History~
+view_inventory_eventHistory_resourceEventHistory=Resource Event History~
+view_inventory_eventHistory_sourceFilter=Source Filter~
+view_inventory_eventHistory_detailsFilter=Details Filter~
+view_inventory_eventHistory_severityFilter=Severity Filter~
+view_inventory_eventHistory_timestamp=Timestamp~
+view_inventory_eventHistory_severity=Severity~
+view_inventory_eventHistory_details=Details~
+view_inventory_eventHistory_sourceLocation=Source Location~
+view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events
for [{1}]~
+view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
+view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for
[{1}]~
+view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
+view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
+view_inventory_groups_resourceGroups=Resource Groups~
+view_inventory_groups_children=Children~
+view_inventory_groups_descendants=Descendants~
+view_inventory_groups_deleteSuccessful=You have successfully deleted the selected
resource groups~
+view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
+view_inventory_groups_loadFailed=Failed to load group composite data~
+view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not
accessible~
+view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected
resources?~
+view_inventory_resources_deleteSuccessful=You have successfully deleted the selected
resources~
+view_inventory_resources_deleteFailed=Failed to delete the selected resources~
+view_inventory_resources_uninventoryConfirm=Are you sure you want to uninventory the
selected resources? Note that if a selected resource still exists, then it will get
rediscovered during its agent''s next discovery scan.
+view_inventory_resources_uninventorySuccessful=You have successfully uninventoried the
selected resources
+view_inventory_resources_uninventoryFailed=Failed to uninventory the selected resources
+view_inventory_resources_loadFailed=Failed to load resource composite data~
+view_inventory_resources_title=Member Resources~
+view_inventory_resources_title_children=Child Resources~
+view_inventory_resources_title_members=Member Resources~
+view_resource_inventory_activity_changed_by=Changed by
+view_resource_inventory_activity_criteria_no_recent_events=No event counts based off
display criteria.
+view_resource_inventory_activity_no_recent_alerts=No recent alerts
+view_resource_inventory_activity_no_recent_bundle_deploy=No recent bundle deployments
+view_resource_inventory_activity_no_recent_config_history=No configuration change
history
+view_resource_inventory_activity_no_recent_events=No events in the last 24 hours
+view_resource_inventory_activity_no_recent_metrics=This resource has no recent metrics
+view_resource_inventory_activity_no_recent_oob=No OOB conditions found
+view_resource_inventory_activity_no_recent_operations=No recent operation history
+view_resource_inventory_activity_no_recent_pkg_history=No recent package history
+view_resource_inventory_childhistory_createdChild=Created Child
+view_resource_inventory_childhistory_deletedChild=Deleted Child
+view_resource_inventory_childhistory_status_invalidArtifact=Invalid Artifact
+view_resource_inventory_childhistory_status_invalidConfig=Invalid Configuration
+view_resource_inventory_childhistory_filterTitle=Past N Days
+view_resource_monitor_availability_loadFailed=Failed to load availability history~
+view_resource_monitor_graphs_noneAvailable=No graphs available~
+view_resource_monitor_graphs_loadFailed=Failed to load graph data~
+view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
+view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
+view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
+view_resource_monitor_table_min=Minimum
+view_resource_monitor_table_max=Maximum
+view_resource_monitor_table_avg=Average
+view_resource_monitor_table_last=Last
+view_resource_monitor_table_alerts=Alerts
+view_resource_monitor_detailed_graph_label=Detailed Graph~
+view_resource_monitor_calltime_title=Call Time Data~
+view_resource_monitor_calltime_destination=Call Destination~
+view_resource_monitor_calltime_count=Count~
+view_resource_monitor_calltime_minimum=Minimum~
+view_resource_monitor_calltime_average=Average~
+view_resource_monitor_calltime_maximum=Maximum~
+view_resource_monitor_calltime_total=Total~
+view_resource_monitor_calltime_loadFailed=Could not load call time data~
+view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
+view_resource_monitor_calltime_editFailed=Call time data can not be edited~
+view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+view_resource_title_tagUpdateFailed=Failed to update resource tags~
+view_resource_title_component_errors_tooltip=Shows managed component errors. Click for
details~
+view_tree_common_loadFailed_generic=Failed to load data for tree~
+view_tree_common_loadFailed_root=Failed to load root for tree~
+view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
+view_tree_common_loadFailed_children=Failed to load children for node~
+view_tree_common_createFailed_autoCluster=Failed to create or update autocluster backing
group
+view_tree_common_loadFailed_group=Failed to load group with id [{0}]
+view_tree_common_loadFailed_groupTree=Failed to load group tree
+view_tree_common_loadFailed_selection=Failed to select this node~
+view_tree_common_loadFailed_node=Failed to load data for this node~
+view_tree_common_loadFailed_create=Failed to create view for this node~
+view_tree_common_loadFailed_update=Failed to update view for this node~
+view_tree_common_contextMenu_loadFail_children=Failed to load platform manual add
children
+view_tree_common_contextMenu_loadFail_dashboards=Failed to load user dashboards
+view_tree_common_contextMenu_loadFail_group=Failed to load group for context menu
+view_tree_common_contextMenu_type_name_label=Type: {0}
+view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
+view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
+view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource
Configuration~
+view_tree_common_contextMenu_operations=Operations~
+view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running
operations~
+view_tree_common_contextMenu_measurements=Measurements~
+view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+view_tree_common_contextMenu_resourceGraph=Resource Metric Graph
+view_tree_common_contextMenu_groupGraph=Group Metric Graph
+view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard
[{0}]~
+view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
+view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
+view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual
add children~
+view_tree_group_error_updateAutoCluster=Failed to create or update autocluster backing
group. key: [{0}]
+view_tabs_common_activity=Activity
+view_tabs_common_agent=Agent
+view_tabs_common_summary=Summary~
+view_tabs_common_overview=Overview~
+view_tabs_common_dashboard=Dashboard~
+view_tabs_common_timeline=Timeline~
+view_tabs_common_monitoring=Monitoring~
+view_tabs_common_graphs=Graphs~
+view_tabs_common_tables=Tables~
+view_tabs_common_traits=Traits~
+view_tabs_common_availability=Availability~
+view_tabs_common_schedules=Schedules~
+view_tabs_common_calltime=Calltime~
+view_tabs_common_inventory=Inventory~
+view_tabs_common_groups=Groups~
+view_tabs_common_members=Members~
+view_tabs_common_group_members=Group Members
+view_tabs_common_group_membership=Group Membership~
+view_tabs_common_child_resources=Child Resources~
+view_tabs_common_child_history=Child History~
+view_tabs_common_connectionSettings=Connection Settings~
+view_tabs_common_connectionSettingsHistory=Connection Settings History~
+view_tabs_common_operations=Operations~
+view_tabs_common_schedule=Schedule
+view_tabs_common_history=History~
+view_tabs_common_alerts=Alerts~
+view_tabs_common_definitions=Definitions~
+view_tabs_common_current=Current~
+view_tabs_common_events=Events~
+view_tabs_common_configuration=Configuration~
+view_tabs_common_content=Content~
+view_tabs_common_deployed=Deployed~
+view_tabs_common_new=New~
+view_tabs_common_subscriptions=Subscriptions~
+view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
+view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
+view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
+view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
+view_titleBar_common_clickToAddFav=Click to add this as a favorite~
+view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
+view_titleBar_common_addedFav=You have added [{0}] as a favorite~
+view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
+view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
+view_titleBar_group_failInfo=Failed to get general info on group [{0}] with ID [{1}]
+view_titleBar_group_summary_collapsedTooltip=Click to show more details for this group
+view_titleBar_group_summary_expandedTooltip=Click to hide details for this group
+view_dynagroup_expressionSet=Expression Set~
+view_dynagroup_recalculationInterval=Recalculation Interval~
+view_dynagroup_lastCalculationTime=Last Calculation Time~
+view_dynagroup_nextCalculationTime=Next Calculation Time~
+view_dynagroup_definitionCreated=You have successfully created a group definition named
[{0}]~
+view_dynagroup_definitionLoadFailure=Failed to load group definitions~
+view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
+view_dynagroup_saveSuccessful=You have successfully saved the group definition named
[{0}]~
+view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
+view_dynagroup_singleSaveFailure=An error occurred - there should have been one created,
but instead there were [{0}] created~
+view_dynagroup_saveAndRecalculate=Save & Recalculate~
+view_dynagroup_recalculate=Recalculate~
+view_dynagroup_recalcSuccessful=You have successfully recalculated this group
definition~
+view_dynagroup_recalcFailure=Failed to recalculated this group definition~
+view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group
definitions~
+view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group
definitions~
+view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group
definitions~
+view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
+view_dynagroup_children=DynaGroup Children~
+view_dynagroup_newGroupDefinition=New Group Definition~
+view_dynagroup_editing=Editing [{0}]~
+view_dynagroup_expression=Expression~
+view_dynagroup_recursive=Recursive~
+view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
+view_dynagroup_permDenied=You do not have permission to view group definitions~
+view_dynagroup_definitions=DynaGroup Definitions~
+view_dynagroup_template_customExpression=Custom Expression...
+view_dynagroup_template_jbossas4_clusters=JBossAS 4 - Clusters
+view_dynagroup_template_jbossas5_clusters=JBossAS 5/6 - Clusters
+view_dynagroup_template_jbossas4_earClusters=JBossAS 4 - Clustered EARs
+view_dynagroup_template_jbossas4_uniqueVersions=JBossAS 4 - Unique versions
+view_dynagroup_template_platforms=Platform resources in inventory
+view_dynagroup_template_uniqueResourceTypes=Unique resource types in inventory
+view_dynagroup_template_jbossas4_hostingApp=JBossAS 4 - All hosting any version of
"my" app
+view_dynagroup_template_jbossas4_nonsecured=JBossAS 4 - All non-secured
+view_dynagroup_template_downedResources=All resources currently down
+view_dynagroup_mixed=Mixed
+view_dynagroup_compatible=Compatible
+view_dynagroup_expressionBuilderIconTooltip=Expression Builder...
+view_dynagroup_exprBuilder_title=Expression Builder
+view_dynagroup_exprBuilder_expression=Expression
+view_dynagroup_exprBuilder_expression_tooltip=This is the full expression that is
represented by the selections in the form below. This text will be added to your group
definition expression text when you click the "Add Expression" button.
+view_dynagroup_exprBuilder_addExpression=Add Expression
+view_dynagroup_exprBuilder_value_tooltip=The string value for the expression to query
+view_dynagroup_exprBuilder_comparisonType=Comparison Type
+view_dynagroup_exprBuilder_comparisonType_tooltip=Comparison Type
+view_dynagroup_exprBuilder_unset=Unset
+view_dynagroup_exprBuilder_unset_tooltip=Unset will find all of the values that have a
null value in the database. This is not possible using the "=" operator because
of how databases store and query data.
+view_dynagroup_exprBuilder_propertyName=Property Name
+view_dynagroup_exprBuilder_propertyName_tooltip=The name of the property to query. This
is defined by the expression type as well as the resource type.
+view_dynagroup_exprBuilder_resourceType=Resource Type
+view_dynagroup_exprBuilder_resourceType_tooltip=The type of resource
+view_dynagroup_exprBuilder_definingPlugin=Defining Plugin
+view_dynagroup_exprBuilder_definingPlugin_tooltip=The plugin to search
+view_dynagroup_exprBuilder_expressionType=Expression Type
+view_dynagroup_exprBuilder_expressionType_tooltip=The type of property this expression
switches on:<br/> \
+<b>Resource</b>: A resource property such as its name or version<br/>
\
+<b>Resource Type</b>: Search for resources of a specific type<br/> \
+<b>Resource Category</b>: Search for resources by category: platform, server,
service<br/> \
+<b>Trait</b>: Resources that have selected values for a monitored
trait<br/> \
+<b>Plugin Configuration</b>: Search by the plugin component configuration
setting of the component<br/> \
+<b>Resource Configuration</b>: Search by the configuration setting of the
managed resource
+view_dynagroup_exprBuilder_resource=Resource
+view_dynagroup_exprBuilder_resource_tooltip=Choose the level of the resource you wish to
select. For example, select "parent" will find resources whose parent resource
matches the rest of the expression.
+view_dynagroup_exprBuilder_groupBy=Group by
+view_dynagroup_exprBuilder_groupBy_tooltip=GroupBy will cause the system to pivot on the
values from the entered expressions creating a separate group for each value. For example,
GroupBy on the cluster name to create a group for each cluster with all cluster members in
it.
+view_dynagroup_exprBuilder_resource_resource=Resource
+view_dynagroup_exprBuilder_resource_child=Child
+view_dynagroup_exprBuilder_resource_parent=Parent
+view_dynagroup_exprBuilder_resource_grandparent=Grandparent
+view_dynagroup_exprBuilder_resource_greatGrandparent=GreatGrandparent
+view_dynagroup_exprBuilder_resource_greatGreatGrandparent=GreatGreatGrandparent
+view_dynagroup_exprBuilder_comparisonType_equals=equals
+view_dynagroup_exprBuilder_comparisonType_startsWith=starts with
+view_dynagroup_exprBuilder_comparisonType_endsWith=ends with
+view_dynagroup_exprBuilder_comparisonType_contains=contains
+view_dynagroup_exprBuilder_expressionType_resource=Resource
+view_dynagroup_exprBuilder_expressionType_resourceType=Resource Type
+view_dynagroup_exprBuilder_expressionType_resourceCategory=Resource Category
+view_dynagroup_exprBuilder_expressionType_trait=Trait
+view_dynagroup_exprBuilder_expressionType_pluginConfig=Plugin Configuration
+view_dynagroup_exprBuilder_expressionType_resourceConfig=Resource Configuration
+view_dynagroup_exprBuilder_pluginLoadFailure=Cannot get the list of plugins
+view_dynagroup_exprBuilder_resTypeLoadFailure=Cannot get list of resource types for
plugin [{0}]
+view_dynagroup_exprBuilder_propLoadFailure=Cannot get list of properties
+view_dynagroup_exprBuilder_noResourceTypes=--No resource types--
+view_dynagroup_exprBuilder_noProperties=--No properties--
+view_dynagroup_exprBuilder_noPlugins=--No plugins--
+
+view_group_detail_failLoad=Failed to load group for group with ID [{0}]
+view_group_detail_failLoadComp=Failed to load group composite for group with ID [{0}]
+view_group_detail_recursiveChange=You successfully changed the recursive setting for
group [{0}]
+view_group_detail_failRecursiveChange=Failed to update the recursive setting for group
[{0}]
+view_group_inventory_activity_no_recent_metrics=This group has no recent metrics
+view_group_membership_failFetch=Failed to fetch Resource Group
+view_group_membership_saveFailure=Failed to update membership of group [{0}]~
+view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
+view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
+view_group_resConfig_edit_loadFail=Failed to retrieve member Resource configurations for
[{0}]
+view_group_resConfig_edit_noperm=You do not have permission to edit this group
configuration~
+view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been
initiated~
+view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been
initiated for the [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for
[{0}] compatible group named [{1}]~
+view_group_resConfig_edit_valid=All configuration properties have valid values, so the
configuration can now be saved~
+view_group_resConfig_edit_invalid=The following configuration properties have invalid
values and must be corrected before the configuration can be saved: [{0}]~
+
+view_group_resConfig_view_noperm=You do not have permissions to see the resource
configuration settings
+view_group_resConfig_view_groupProperties=Group Properties
+view_group_resConfig_table_title=Group Resource Configuration History
+view_group_resConfig_table_statusDetails=Status Details
+view_group_resConfig_table_viewSettings=View Settings
+view_group_resConfig_table_viewMemberHistory=View Member History
+view_group_resConfig_table_msg1=View Member History for status of each individual
resource
+view_group_resConfig_table_failFetch=Failed to get group resource config history
+view_group_resConfig_table_deleteSuccessful=You have deleted [{0}] history items
+view_group_resConfig_table_deleteFailure=Failed to delete group resource config history
+view_group_resConfig_table_statusSuccess=This group configuration update was successful
+view_group_resConfig_table_statusInprogress=This group configuration update is still in
progress
+view_group_resConfig_table_statusNochange=No changes were made to this group
configuration
+view_group_resConfig_table_statusFailure=This group configuration update failed
+view_group_resConfig_table_clickStatusIcon=Click the status icon for full details
+view_group_resConfig_members_title=Group Resource Configuration Member Histories
+view_group_resConfig_members_fetchFailure=Failed to get resource config update history
for members of group [{0}]
+view_group_resConfig_members_fetchFailureConfig=Failed to retrieve member resource
configuration settings for [{0}]
+view_group_resConfig_members_fetchFailureConfigInProgress=A group resource configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
+view_group_resConfig_members_statusDetails=Status Details
+view_group_resConfig_members_statusSuccess=This configuration update was successful
+view_group_resConfig_members_statusInprogress=This configuration update is still in
progress
+view_group_resConfig_members_statusNochange=No changes were made to this configuration
+view_group_resConfig_members_statusFailure=This configuration update failed for an
unknown reason
+
+view_group_pluginConfig_view_noperm=You do not have permissions to see the connection
settings~
+view_group_pluginConfig_view_groupProperties=Group Properties~
+view_group_pluginConfig_table_failFetch=Failed to get group plugin config history
+view_group_pluginConfig_table_title=Group Connection Settings History~
+view_group_pluginConfig_table_statusDetails=Status Details~
+view_group_pluginConfig_table_viewSettings=View Settings~
+view_group_pluginConfig_table_viewMemberHistory=View Member History~
+view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
+view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config
history~
+view_group_pluginConfig_table_msg1=View Member History for status of each individual
resource~
+view_group_pluginConfig_table_statusSuccess=This group configuration update was
successful~
+view_group_pluginConfig_table_statusInprogress=This group configuration update is still
in progress~
+view_group_pluginConfig_table_statusNochange=No changes were made to this group
configuration~
+view_group_pluginConfig_table_statusFailure=This group configuration update failed~
+view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
+view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
+view_group_pluginConfig_members_statusDetails=Status Details~
+view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
+view_group_pluginConfig_members_statusInprogress=This configuration update is still in
progress~
+view_group_pluginConfig_members_statusNochange=No changes were made to this
configuration~
+view_group_pluginConfig_members_statusFailure=This configuration update failed for an
unknown reason~
+view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history
for members of group [{0}]~
+view_group_pluginConfig_members_fetchFailureConn=Failed to retrieve member connection
settings for [{0}]
+view_group_pluginConfig_members_fetchFailureConnInProgress=A group plugin configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
+view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
+view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group
members~
+view_group_pluginConfig_edit_noperm=You do not have permission to edit this group
connection settings~
+view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates
have been initiated~
+view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have
been initiated for the [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting
update for [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_valid=All connection setting properties have valid values,
so the connection settings can now be saved~
+view_group_pluginConfig_edit_invalid=The following connection setting properties have
invalid values and must be corrected before the connection settings can be saved: [{0}]~
+view_group_meas_schedules_title=Group Metric Collection Schedules~
+view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with
ID [{0}] - could not change from [{1}] to [{2}]~
+view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group
with ID [{0}] from [{1}] to [{2}]~
+view_group_summary_memberType=Member Type~
+view_group_summary_memberCount=Member Count~
+view_group_summary_dynamic=Dynamic~
+view_group_summary_recursive=Recursive~
+view_group_summary_groupDefinition=Group Definition~
+view_group_summary_mixed=Mixed~
+view_group_summary_compatible=Compatible
+view_group_summary_descUpdateFailure=Failed to change the description of the resource
group with ID [{0}]~
+view_group_summary_descUpdateSuccessful=You have changed the description of this resource
group~
+view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and
therefore are not editable~
+
+# Connection Settings Details
+#------------------------------------------
+view_connectionSettingsDetails_noPermission=You do not have permission to edit this
Resource''s connection settings.~
+view_connectionSettingsDetails_error_updateFailure=Failed to update connection
settings.~
+view_connectionSettingsDetails_messageConcise_updateSuccess=Connection settings
updated.~
+view_connectionSettingsDetails_messageDetailed_updateSuccess=Connection settings updated
for Resource [{0}].~
+view_connectionSettingsDetails_allPropertiesValid=All connection settings have valid
values, so the settings can now be saved.~
+view_connectionSettingsDetails_somePropertiesInvalid=The following connection settings
have invalid values: {0}. The values must be corrected before the settings can be saved.~
+
+# Resource Resource Groups
+#-----------------------------------------
+view_resourceResourceGroupList_error_fetchFailure=Failed to fetch Resource''s
groups.~
+view_resourceResourceGroupList_error_updateFailure=Failed to update assigned Resource
groups.~
+view_resourceResourceGroupList_message_updateSuccess=Group membership updated for [{0}].
+
+# Configuration Details
+#-------------------------------
+view_configurationDetails_noPermission=You do not have permission to edit this
Resource''s configuration.~
+view_configurationDetails_error_updateFailure=Failed to update configuration.~
+view_configurationDetails_messageConcise=Configuration updated - current version is
{0}.~
+view_configurationDetails_messageDetailed=Configuration updated to version {0} for
Resource [{1}].
+view_configurationDetails_allPropertiesValid=All configuration properties have valid
values, so the configuration can now be saved.~
+view_configurationDetails_somePropertiesInvalid=The following configuration properties
have invalid values: {0}. The values must be corrected before the configuration can be
saved.~
+view_configurationDetails_configNotUpdatedDueToNoChange=Configuration was not updated,
since the new configuration is equivalent to the current configuration.
+
+# Resource Configuration History List
+#-------------------------------
+view_configurationHistoryList_title=Configuration History~
+
+# Abstract Configuration History List
+#-------------------------------
+view_configurationHistoryList_rollback=Rollback
+view_configurationHistoryList_rollback_success=You successfully rolled back the
configuration to the selected past configuration.
+view_configurationHistoryList_rollback_failure=Failed to rollback the configuration. The
original configuration is still in effect.
+view_configurationHistoryList_delete_success=You successfully deleted the selected
configuration history items.
+view_configurationHistoryList_delete_failure=Failed to delete the configuration history
items.
+view_configurationHistoryList_cannotDeleteGroupItems=One or more selected configuration
history items are part of a group configuration update. \
+You must purge that parent group history item before you can delete its individual
resource history items.
+view_configurationHistoryList_cannotDeleteCurrent=One of the selected history items
represents the current configuration - you cannot delete it.
+view_configurationHistoryList_table_statusSuccess=This configuration update was
successful
+view_configurationHistoryList_table_statusInprogress=This configuration update is still
in progress
+view_configurationHistoryList_table_statusNochange=No changes were made to this
configuration
+view_configurationHistoryList_table_statusFailure=This configuration update failed
+view_configurationHistoryList_table_clickStatusIcon=Click the status icon for full
details
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_error_loadFailure=Unable to load configuration
history.~
+
+
+# Operation Schedule List
+#------------------------
+xxx =
+
+# Operation Schedule Details
+#---------------------------
+view_operationScheduleDetails_operationSchedule=Operation Schedule
+view_operationScheduleDetails_field_description=Description
+view_operationScheduleDetails_field_parameters=Parameters
+view_operationScheduleDetails_field_timeout=Timeout
+view_operationScheduleDetails_fieldHelp_timeout=a time duration - if specified, if the
duration elapses before a scheduled operation execution has completed, the RHQ Server will
timeout the operation and consider it to have failed; note, it is usually not possible to
abort the underlying managed resource operation if it was already initiated
+view_operationScheduleDetails_fieldHelp_description=an optional description of this
scheduled operation (e.g. nightly maintenance app server restart)
+view_operationScheduleDetails_fieldDefault_description=Select an operation to see its
description.
+view_operationScheduleDetails_fieldDefault_parameters=Select an operation to see its
parameters.
+view_operationScheduleDetails_noParameters=This operation does not take any parameters.
+view_operationScheduleDetails_enterParametersBelow=Enter parameters below...
+
+view_group_operationScheduleDetails_failedToLoadMembers=Failed to load group member
Resources.
+view_group_operationScheduleDetails_field_execute=Execute
+view_group_operationScheduleDetails_value_parallel=in parallel
+view_group_operationScheduleDetails_value_sequential=in the order specified below (drag
and drop member Resources to change order)
+view_group_operationScheduleDetails_field_haltOnFailure=Halt on Failure?
+view_group_operationScheduleDetails_memberResource=Member Resource
+
+
+# Operation History List
+#-----------------------
+view_operationHistoryList_title=Operation History~
+view_operationHistoryList_button_runOperation=Run Operation~
+view_operationHistoryList_button_forceDelete=Force Delete
+view_operationHistoryList_notYetStarted=not yet started
+
+# Operation History Details
+#--------------------------
+view_operationHistoryDetails_error_fetchFailure=Failure loading operation history.~
+view_operationHistoryDetails_operation=Operation
+view_operationHistoryDetails_dateSubmitted=Date Submitted
+view_operationHistoryDetails_dateCompleted=Date Completed
+view_operationHistoryDetails_requestor=Requestor
+view_operationHistoryDetails_status=Status
+view_operationHistoryDetails_parameters=Parameters
+view_operationHistoryDetails_results=Results
+view_operationHistoryDetails_noResults=This operation does not return any results.
+
+
+# Summary Overview
+#-----------------------------
+view_summaryOverview_header_detectedErrors=Detected Errors~
+view_summaryOverview_tooltip_detectedErrors=Click on the rows to see the error details.~
+view_summaryOverview_title_errorDetailsWindow=Error Details~
+
+# Summary Overview Form
+#-------------------------------------
+view_summaryOverviewForm_field_type=Type~
+view_summaryOverviewForm_field_name=Name~
+view_summaryOverviewForm_field_description=Description~
+view_summaryOverviewForm_field_location=Location~
+view_summaryOverviewForm_field_version=Version~
+view_summaryOverviewForm_error_traitsLoadFailure=Failed to load traits for {0}.~
+view_summaryOverviewForm_label_plugin=Plugin:
+view_summaryOverviewForm_label_type=Type:
+view_summaryOverviewForm_header_summary=Summary~
+view_summaryOverviewForm_error_nameChangeFailure=Failed to change name of Resource with
id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess=Name of Resource with id {0} was
changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_descriptionChangeFailure=Failed to change description of
Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess=Description of Resource with id
{0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_locationChangeFailure=Failed to change location of
Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess=Location of Resource with id {0}
was changed from [{1}] to [{2}].~
+
+# Summary Dashboard
+#-----------------------------
+view_summaryDashboard_resetConfirm=Reset to default summary dashboard (lose local
changes)?
+
+# Group Inventory>Members subtab
+#-----------------------------------------
+view_groupInventoryMembers_button_updateMembership=Update Membership...
+view_groupInventoryMembers_title_updateMembership=Update Membership
+
+
+#==================== Reports ======================
+
+view_reportsTop_title=Relat\u00F3rios~
+view_reportsTop_description=This section provides access to global reports.~
+view_reports_platforms=Utiliza\u00E7\u00E3o de Mem\u00F3ria e CPU~
+view_reports_subsystems=Subsistemas~
+view_reports_alertDefinitions=Defini\u00E7\u00E3o de Alertas~
+
+view_measurementOob_title=M\u00E9tricas Suspeitas~
+
+view_tagCloud_title=Nuvem de Tags~
+view_tagCloud_error_fetchFailure=Falha ao carregar etiquetas (tags).~
+view_tagCloud_error_tagUsedCount=Etiqueta (tag) usada {0} vezes.~
+view_tagCloud_deleteTag=Delete Tag
+view_tagCloud_deleteTagFailure=Failed to delete the tag [{0}]
+view_tagCloud_deleteTagSuccess=You successfully deleted the tag [{0}]
+
+view_reports_inventorySummary_failFetch=Failed to get inventory summary
+
+view_taggedResources_title=Recursos Etiquetados~
+
+view_reports_alertDefinitions_parentHover=Click to go to the parent alert definition
+view_reports_alertDefinitions_resTypeLoadError=Cannot get the template resource type -
unable to view the alert template.
+
+#==================== Help ======================
+
+view_helpTop_description=This section provides access to documentation, tutorials,
version, and other helpful information.
+view_help_section_product=Product
+view_help_section_product_about=About
+
+
+#===================== Test =======================
+view_testTop_title=Teste~
+view_testTop_description=Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para
realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.~
+
+#=================== Top Level =====================
+
+# About Box
+#----------
+view_aboutBox_allRightsReserved=Todos os Direitos Reservados.~
+view_aboutBox_buildNumber=N\u00FAmero do Build\:~
+view_aboutBox_failedToLoad=Falha ao carregar informa\u00E7oes do produto.~
+view_aboutBox_homepage=P\u00E1gina Inicial~
+view_aboutBox_jbossByRedHat=JBoss by Red Hat~
+view_aboutBox_title=Sobre {0}~
+view_aboutBox_version=Vers\u00E3o\:~
+
+# CoreGUI
+#--------------
+view_core_error_1=Falha ao perquisar novos alertas~
+#view_core_loggedInAs = Logged in as {0}
+view_core_loggedOut=Logged out~
+view_core_recentAlerts=[{0}] alertas recentes~
+view_core_noRecentAlerts=There are no recent alerts to report
+view_core_uncaught=Exce\u00E7\u00E3o n\u00E3o capturada~
+
+# Login
+#--------------
+view_login_invalidEmail=Endere\u00E7o de e-mail inv\u00E1lido~
+view_login_login=Login~
+view_login_logout=Logout~
+view_login_noBackend=Fonte de Dados indispon\u00EDvel.~
+view_login_noLdap=Note: Optional retrieval of ldap details unsuccessful. Manual entry is
required.~
+view_login_noUser=Usu\u00E1rio ou senha inv\u00E1lidos.~
+view_login_prompt=Favor efetuar Login~
+view_login_registerLater=(Logout - Concluir registro mais tarde.)~
+view_login_registerLdapSuccess=Novo usu\u00E1rios do LDAP registrado com sucesso.~
+view_login_registerUser=Registrar Usu\u00E1rio~
+view_login_welcome=Bem Vindo~
+view_login_welcomeMsg=Seja Bem Vindo ao JBoss ON\! <br/><br/> Informe ou
altere os seguintes campos para completar o processo de registro.<br/> Clique em
"OK" para acessar o sistema.<br/><br/>~
+
+# Menu Bar
+#--------------
+view_menuBar_logout=Logout~
+
+# Search Bar, GUI
+#-----------------
+view_searchBar_resources=Recursos~
+view_searchBar_resourceGroups=Grupos de Recursos~
+# TODO: i18n pluralization
+view_searchBar_welcomeMessage=procurar por {0}s~
+view_searchBar_defaultPattern=definir nome para o padr\u00E3o~
+view_searchBar_error_selectSavedSearch=''Erro ao selecionar a
pesquisa''~
+view_searchBar_query=Query~
+
+view_searchGUI_loginStatus=Imposs\u00EDvel determinar o status do login, verifique o
status do servidor~
+
+# Message Center
+#--------------------------
+view_messageCenter_messageTitle=Centro de Mensagens~
+view_messageCenter_noRecentMessages=N\u00E3o existem Mensagens Recentes~
+view_messageCenter_maxMessages=Max Messages
+view_messageCenter_lastNMessages=Last {0} Messages
+view_messageCenter_clearAllMessages=Clear All Messages
+view_messageCenter_messageTime=Tempo~
+view_messageCenter_messageSeverity=Severidade~
+view_messageCenter_messageDetail=Detalhe~
+view_messageCenter_stackTraceFollows=--- STACK TRACE FOLLOWS ---
+view_messageCenter_messageBarShowDetails=Show Details
+common_title_favorites=Favoritos
+common_title_summary_counts=Sum\u00E1rio de Contagem
+dataSource_traits_group_field_memberResource=Recurso Membro
+
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_resource=Recurso
+dataSource_problemResources_field_location=Local
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_field_id=ID
+dataSource_configurationHistory_field_resource=Recurso
+dataSource_configurationHistory_field_createdTime=Criado
+dataSource_configurationHistory_field_status=Status
+dataSource_configurationHistory_field_subject=Assunto
+dataSource_resourceErrors_field_detail=Mensagem detalhada
+view_adminConfig_license=Licen\u00E7a
+view_adminRoles_roleExists=O perfil com nome [{0}] j\u00E1 existe.
+view_alerts_field_ack_status_empty=Ainda n\u00E3o verificado
+view_alerts_field_ack_status_filled={0} verificado em {1}
+view_alerts_field_resource=Recurso
+view_alert_details_breadcrumb=Detalhes
+TODO=PAREI AQUI\!\!\!
+view_alert_common_tab_notifications_all_emails=Todos os Emails
+view_alert_common_tab_notifications_bad_emails=Emails recusados
+view_measureRange_day=1 Dia
+view_measureRange_days={0} Dias
+view_measureRange_hour=1 Hora
+view_measureRange_hours={0} Horas
+view_measureRange_minutes={0} Minutos
+view_measureRange_range=Faixa
+view_tags_title=Tags:~
+view_upload_tooltip_1=Select a file to upload, then click Upload or Next~
+# // dup in common
+view_dashboardsManager_inventory_title=Inventory Summary~
+view_dashboardsManager_mashup_title=RHQ News~
+view_dashboardsManager_message_title=Welcome To RHQ~
+view_dashboardsManager_tagcloud_title=Tag Cloud~
+view_portlet_autodiscovery_config_platform_selection=Number of platforms to display~
+view_portlet_autodiscovery_help_msg=This portlet offers the ability to import newly
discovered resources into the inventory for monitoring and management or to ignore them
from further action.~
+view_portlet_autodiscovery_title=Discovery Queue~
+view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
+view_portlet_favoriteResources_title=Favorite Resources~
+view_portlet_generic_help=No help available for this portlet~
+view_portlet_generic_unconfigured=No settings available for this portlet~
+view_portlet_graph_configure_title=Graph Config~
+view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
+view_portlet_graph_help_msg=This Portlet supports the graphing of a resource metric.~
+view_portlet_graph_help_title=Graph Portlet~
+view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings
button to configure.~
+view_portlet_graph_title=Resource Graph~
+view_portlet_mashup_config_title=MashupPorlet Configuration~
+view_portlet_mashup_config_title_desc=The configuration settings for the mashup
portlet.~
+view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an
iframe on the dashboard.~
+view_portlet_mashup_unconfigured=Page address not yet configured, click the settings
button to setup this portlet.~
+view_portlet_message_config_title=MessagePortlet Configuration~
+view_portlet_message_config_title_desc=The configuration settings for the message
portlet.~
+view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
+view_portlet_message_unconfigured=Message not yet configured, click the settings button
to setup this portlet.~
+view_portlet_operations_config_title=OperationsPortlet Configuration~
+view_portlet_operations_config_title_desc=The configuration settings for the Operations
portlet.~
+view_portlet_operations_help_msg=This portlet displays both operations that have occurred
and are scheduled to occur.~
+view_portlet_platform_help_msg=This portlet displays information about platforms in
inventory.~
+view_portlet_platform_title=Platforms Summary~
+view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources
to display.~
+view_portlet_problem_resources_config_display_range=Show problem resources going back
this many hours.~
+view_portlet_problem_resources_config_display_range2=From {0} to {1}~
+view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
+view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
+view_portlet_problem_resources_config_title_desc=The configuration settings for the
Problem resources portlet.~
+view_portlet_problem_resources_help=This portlet displays resources that have reported
alerts or Down availability.~
+view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
+view_portlet_recentAlerts_help_msg=Displays recent alerts fired on resources visible to
the current user login.~
+# // dup in common
+view_portlet_recentAlerts_title=Recent Alerts~
+view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
+view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently
been imported into the inventory.~
+view_portlet_recentlyAdded_title=Recently Added Portlet~
+view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible
to the current user.~
+view_portlet_tagCloud_title=TagCloud~
+view_inventory_cannotGetGlobalPerms=Could not determine global permissions - assuming
none.~
+view_inventory_downServers=Down Servers~
+view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
+view_tree_common_contextMenu_chart=Chart~
+view_tabs_common_scheduled=Scheduled~
+view_dynagroup_permUnknown=Could not determine if you have the proper permissions -
access is denied~
+view_configurationHistoryList_itemNamePlural=configuration history items
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_dialogTitle=Configuration Details~
+
+# Operation Create Wizard
+#-------------------------------------
+view_operationCreateWizard_title=Operation Wizard~
+view_operationCreateWizard_header=Execute {0} on {1}~
+view_operationCreateWizard_button_execute=Execute~
+view_operationCreateWizard_button_executeImmediately=Execute Immediately~
+view_operationCreateWizard_error_scheduleOperationFailure=Failed to schedule operation
execution.~
+view_operationCreateWizard_message_scheduleOperationSuccess=Schedule operation [{0}] on
Resource [{1}] with cron string [{2}].~
+view_operationCreateWizard_parametersStep_name=Operation Parameters~
+view_operationCreateWizard_parametersStep_noParameters=This operation does not take any
parameters.~
+view_operationCreateWizard_schedulingStep_name=Schedule~
+view_operationCreateWizard_schedulingStep_label_start=Start~
+view_operationCreateWizard_schedulingStep_label_schedule=Schedule~
+view_operationCreateWizard_schedulingStep_label_recurrence=Recurrence~
+view_operationCreateWizard_schedulingStep_label_runAt=Run At~
+view_operationCreateWizard_schedulingStep_label_nMinutes=n Minutes~
+view_operationCreateWizard_schedulingStep_label_hourly=Hourly~
+view_operationCreateWizard_schedulingStep_label_daily=Daily~
+view_operationCreateWizard_schedulingStep_label_weekly=Weekly~
+view_operationCreateWizard_schedulingStep_label_monthly=Monthly~
+view_operationCreateWizard_schedulingStep_label_timePeriod=Time Period~
+view_operationCreateWizard_schedulingStep_label_startDate=Start Date~
+view_operationCreateWizard_schedulingStep_label_recurrenceEnd=Recurrence End~
+view_operationCreateWizard_schedulingStep_label_endDate=End Date~
+view_operationCreateWizard_schedulingStep_label_willExecuteImmediately=Will execute
immediately~
+view_operationCreateWizard_schedulingStep_label_onceAt=Once At~
+view_operationCreateWizard_schedulingStep_label_date=Date~
+view_operationCreateWizard_schedulingStep_label_time=Time~
+view_operationCreateWizard_schedulingStep_label_everyNMinutes=Every n Minutes~
+view_operationCreateWizard_schedulingStep_label_minuteInterval=Minute Interval~
+view_operationCreateWizard_schedulingStep_label_hourlyAt=Hourly At~
+view_operationCreateWizard_schedulingStep_label_minuteOfHour=Minute of Hour~
+view_operationCreateWizard_schedulingStep_label_dailyAt=Daily At~
+view_operationCreateWizard_schedulingStep_label_timeOfDay=Time of Day~
+view_operationCreateWizard_schedulingStep_label_weeklyOn=Weekly On~
+view_operationCreateWizard_schedulingStep_label_dayOfWeek=Day of Week~
+view_operationCreateWizard_schedulingStep_label_monthlyOn=Monthly On~
+view_operationCreateWizard_schedulingStep_label_dayOfMonth=Day of Month~
+view_summaryOverviewForm_field_parent=Parent~
+view_core_loggedInAs=Logado como {0}~
+
+
+# Menu Bar
+#--------------
+view_menuBar_help=Ajuda~
+
+# Message Center
+#--------------------------
+view_messageCenter_button_messages=Mensagens~
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
deleted file mode 100755
index 65514b0..0000000
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
+++ /dev/null
@@ -1,2315 +0,0 @@
-#
-# RHQ GUI i18n Messages - pt-BR
-###################################
-
-#************************************** SHARED ****************************************
-
-#=================== Common =====================
-
-#
-# Build Info
-#
-common_buildInfo_gwtVersion=${gwt.version}
-
-# Button Labels
-#--------------
-common_button_ack=Confirmar
-common_button_ack_all=Confirmar Todos
-common_button_add=Adicionar
-common_button_advanced=Avan\u00E7ado...
-common_button_apply=Aplicar
-common_button_cancel=Cancelar
-common_button_close=Fechar
-common_button_compare=Comparar
-common_button_create_child=Criar filho
-common_button_delete=Excluir
-common_button_delete_all=Excluir Todos
-common_button_disable=Desabilitar
-common_button_edit=Editar
-common_button_enable=Habilitar
-common_button_finish=Finalizar
-common_button_import=Importar
-common_button_new=Novo
-common_button_next=Pr\u00F3ximo
-common_button_ok=OK
-common_button_previous=Anterior
-common_button_purgeAll=Purge All
-common_button_refresh=Refresh
-common_button_reset=Limpar
-common_button_save=Salvar
-common_button_schedule=Schedule
-common_button_search=Procurar
-common_button_set=Set
-common_button_showDetails=Mostrar Detalhes...
-common_button_uninventory=Remover do Invent\u00E1rio
-
-# Common Labels
-#------------------------
-common_label_ago=ago
-common_label_all=TODOS
-common_label_all_resources=todos os recursos
-common_label_day=dia
-common_label_days=dias
-common_label_hour=hora
-common_label_hours=horas
-common_label_item=item
-common_label_items=itens
-common_label_milliseconds=milisegundos
-common_label_minutes=minutos
-common_label_month=m\u00EAs
-common_label_none=nenhum
-common_label_role=perfil
-common_label_roles=perfis
-common_label_scheduled_operations=opera\u00E7\u00F5es agendadas
-common_label_seconds=segundos
-common_label_selected_resources=recursos selecionados
-common_label_unlimited=ilimitado
-common_label_user=usu\u00E1rio
-common_label_users=usu\u00E1rios
-common_label_week=semana
-common_label_weeks=semanas
-common_label_yesterday=Yesterday
-
-# Common Units
-#-------------
-common_unit_times=times
-common_unit_milliseconds=milliseconds
-common_unit_seconds=seconds
-common_unit_minutes=minutes
-common_unit_hours=hours
-common_unit_days=days
-common_unit_weeks=weeks
-common_unit_months=months
-common_unit_years=years
-
-# Common Severities
-#------------------
-common_severity_debug=Debug
-common_severity_info=Info
-common_severity_warn=Warn
-common_severity_error=Error
-common_severity_fatal=Fatal
-
-# Common Titles
-#--------------
-common_title_address=Endere\u00E7o
-common_title_add_column=Adicionar Coluna
-common_title_add_graph_to_view=Add Graph to Monitor View
-common_title_add_portlet=Adicionar Portlet
-common_title_alert_range=S\u00E9rie de Alertas
-common_title_ancestry=Ancestry
-common_title_availability=Disponibilidade
-common_title_average_metrics=M\u00E9tricas da m\u00E9dia por Minuto
-common_title_available_resources=Recursos Dispon\u00EDveis
-common_title_background=Background
-common_title_bundle=Bundle
-common_title_bundles=Bundles
-common_title_category=Categoria
-common_title_change_refresh_time=Refresh Interval
-common_title_columns=Colunas
-common_title_configuration=Configura\u00E7\u00E3o
-common_title_compare_metrics=Compare Metrics
-common_title_compatibleGroups=Grupos Compat\u00EDveis
-common_title_compatibleGroups_total=Total de Grupos Compat\u00EDveis
-common_title_component_errors=Componentes com erro
-common_title_config_update_status=Update Status
-common_title_count=Count
-common_title_custom=Personalizado
-common_title_dashboard_name=Nome do Painel de Controle
-common_title_dateCreated=Data de Cria\u00E7\u00E3o
-common_title_dateRange=Date Range
-common_title_default=Padr\u00E3o
-common_title_description=Descri\u00E7\u00E3o
-common_title_details=Detalhes
-common_title_display=Display
-common_title_display_name=Nome do Display
-common_title_duration=Dura\u00E7\u00E3o
-common_title_edit_mode=Modo Edi\u00E7\u00E3o
-common_title_enabled=Habilitado?
-common_title_end=Fim
-common_title_error=Error
-common_title_generalProp=Propriedades Gerais
-common_title_group=Group
-common_title_groups=Groups
-common_title_group_def_total=Total de Defini\u00E7\u00E3o de Grupos
-common_title_group_member_health=Group Member Health
-common_title_icon=\u00EDcone
-common_title_id=ID
-common_title_id_parent=ID do Recurso pai
-common_title_info=Info
-common_title_help=Help
-common_title_host=Host
-common_title_inventory=Invent\u00E1rio
-common_title_inventorySummary=Sum\u00E1rio do Invent\u00E1rio
-common_title_lastUpdated=\u00DAltima Atualiza\u00E7\u00E3o
-common_title_lastUpdatedBy=\u00DAltima Atualiza\u00E7\u00E3o feita por
-common_title_ldapGroups=LDAP Groups
-common_title_mashup=Mashup
-common_title_members_reporting=Members Reporting
-common_title_message=Mensagem
-common_title_metric=M\u00E9trica
-common_title_metric_chart=Metric Chart
-common_title_mixedGroups=Grupos Mistos
-common_title_mixedGroups_total=Total de Grupos Mistos
-common_title_name=Nome
-common_title_new_dashboard=Novo Painel de Controle
-common_title_numeric_metrics=Numeric Metrics
-common_title_numeric_type=Tipo Num\u00E9rico
-common_title_operation_status=Operation Status
-common_title_operations=Opera\u00E7\u00F5es
-common_title_operations_range=S\u00E9rie de Opera\u00E7\u00F5es
-common_title_over=Execesso
-common_title_password=Senha
-common_title_path=Path
-common_title_permissions=Permissions
-common_title_platform=Plataforma
-common_title_platform_total=Total de Plataformas
-common_title_plugin=Plugin
-common_title_port=Porta
-common_title_providers=Provedores
-common_title_recent_alerts=Alertas Recentes
-common_title_recent_bundle_deployments=Recent Bundle Deployments
-common_title_recent_configuration_updates=Recent Configuration Updates
-common_title_recent_event_counts=Recent Event Counts
-common_title_recent_measurements=Recent Measurements
-common_title_recent_oob_metrics=Recent Out of Bound metrics
-common_title_recent_operations=Opera\u00E7\u00F5es Recentes
-common_title_recent_pkg_history=Recent Package History
-common_title_recently_added=Recursos Adicionados Recentemente
-common_title_remove_column=Remover Coluna
-common_title_repositories=Reposit\u00F3rios
-common_title_resource=Recursos
-common_title_resources=Resources
-common_title_resource_group=Grupo de Recursos
-common_title_resourceGroups=Resource Groups
-common_title_resource_inventory=Invent\u00E1rio de Recursos
-common_title_resource_id=ID do Recurso
-common_title_resource_name=Nome do Recurso
-common_title_resource_key=Resource Key
-common_title_resource_type=Resource Type
-common_title_results_count=Results Count
-common_title_results_count_tooltip=Displays this number of results
-common_title_role=Role
-common_title_roles=Roles
-common_title_search=Procurar
-common_title_scheduled_operations=Opera\u00E7\u00F5es Agendadas
-common_title_selected_resources=Recursos Selecionados
-common_title_server=Server
-common_title_server_total=Total de Servidores
-common_title_service=Service
-common_title_service_total=Total de Servi\u00E7os
-common_title_settings=Configura\u00E7\u00F5es
-common_title_show=Visualizar
-common_title_show_more=Visualizar mais...
-common_title_sort_order=Sort Order
-common_title_sort_order_tooltip=Sets sort order for results.
-common_title_start=Iniciar
-common_title_status=Status
-common_title_stop=Stop
-common_title_summary=Sum\u00E1rio
-common_title_tag_cloud=Nuvem de Tags
-common_title_the=O
-common_title_timestamp=Data/Hora
-common_title_total=Total
-common_title_type=Tipo
-common_title_units=Unidades
-common_title_user=Usu\u00E1rio
-common_title_users=Users
-common_title_value=Valor
-common_title_version=Vers\u00E3o
-common_title_view_mode=Modo vis\u00E3o
-common_title_web_address=Endere\u00E7o Web
-common_title_welcome=Bem Vindo
-
-# Common Messages
-#--------------
-common_msg_areYouSure=Tem certeza?
-common_msg_changeAutoDetected=Change auto-detected
-common_msg_deleteConfirm=Tem certeza de que deseja excluir o \# selecionado {0}?
-common_msg_emphasizedNotePrefix=NOTA\:
-common_msg_loading=Carregando...
-common_msg_noItemsToShow=N\u00E3o existem itens para apresentar
-common_msg_notYetImplemented=Not Yet Implemented
-common_msg_see_more=see more...
-common_msg_step_x_of_y=Step {0} of {1}
-common_msg_asyncTimeout={0}. This occurred because the server is taking a long time to
complete this request. \
-Please be aware that the server may still be processing your request and it may complete
shortly. \
-You can check the server logs to see if any abnormal errors occurred.
-
-# Common Values
-#--------------
-common_val_for=para
-common_val_no=N\u00E3o
-common_val_no_lower=n\u00E3o
-common_val_yes=Sim
-common_val_yes_lower=sim
-common_val_never=Nunca
-common_val_na=N/A
-common_val_none=Nenhum
-
-# Common Statuses
-common_status_canceled=Canceled
-common_status_deferred=Deferred
-common_status_failed=Failed
-common_status_inprogress=In Progress
-common_status_nochange=No Change
-common_status_success=Success
-common_status_unknown=Unknown
-common_status_timedOut=Timed Out
-common_status_partial=Partial
-
-# 1st, 2nd, 3rd, 4th, etc.
-common_val_n1st={0}st
-common_val_n2nd={0}nd
-common_val_n3rd={0}rd
-common_val_nth={0}th
-
-# Common Alert Priorities
-#------------------------
-common_alert_high=High
-common_alert_medium=Medium
-common_alert_low=Low
-
-# Common Calendar
-#--------------
-common_calendar_january_short=jan
-common_calendar_february_short=fev
-common_calendar_march_short=mar
-common_calendar_april_short=abr
-common_calendar_may_short=mai
-common_calendar_june_short=jun
-common_calendar_july_short=jul
-common_calendar_august_short=ago
-common_calendar_september_short=set
-common_calendar_october_short=out
-common_calendar_november_short=nov
-common_calendar_december_short=dez
-
-
-#=================== Widgets =====================
-
-# Favorites
-#--------------
-favorites=Favorites
-favorites_resources=Favorite Resources
-favorites_groups=Favorite Groups
-favorites_recentlyViewed=Recently Viewed
-
-# Record Editor
-#--------------
-widget_recordEditor_title_view=Visualizar {0} [{1}]
-widget_recordEditor_title_edit=Editar {0} [{1}]
-widget_recordEditor_title_new=Criar Novo {0}
-# // dup in common
-widget_recordEditor_label_loading=Carregar...
-widget_recordEditor_error_invalidViewPath=Caminho inv\u00E1lido\: [{0}]
-widget_recordEditor_error_noRecords=Nenhum registro encontrado - era esperado exatamente
um.
-widget_recordEditor_error_multipleRecords=Foram encontrados v\u00E1rios registros - era
esperado apenas um.
-widget_recordEditor_info_recordCreatedConcise={0} criado.
-widget_recordEditor_info_recordCreatedDetailed={0} [{1}] criado.
-widget_recordEditor_info_recordUpdatedConcise={0} atualizado.
-widget_recordEditor_info_recordUpdatedDetailed={0} [{1}] atualizado.
-widget_recordEditor_info_recordsDeletedConcise={0} {1} exclu\u00EDdo.
-widget_recordEditor_info_recordsDeletedDetailed={0} {1} exclu\u00EDdo\: {2}.
-widget_recordEditor_error_operation=Operation failed. An error occurred
-widget_recordEditor_error_operationInvalidValues=Operation failed - one or more fields
have invalid values
-widget_recordEditor_error_unsupportedOperationType=Tipo de opera\u00E7\u00E3o n\u00E3o
suportada\: [{0}]
-widget_recordEditor_error_permissionCreate=You do not have the permissions required to
create a new [{0}]
-widget_recordEditor_warn_validation=One or more fields have invalid values. This [{0}]
cannot be saved until these values are corrected
-
-# Resource Selector/Picker
-#--------------------------------
-widget_resourceSelector_selectResource=Selecionar um Recurso
-widget_resourceSelector_pleaseSelectResource=Favor selecionar um recurso
-widget_resourceSelector_selectMultipleResources=Selecionar Recursos
-widget_resourceSelector_pleaseSelectMultipleResource=Favor selecionar um ou mais
recursos
-widget_resourceSelector_groupCategory=Categoria do Grupo
-
-# Resource Factory Wizard
-#--------------------------------
-widget_resourceFactoryWizard_uploadInProgress=Upload em andamento... Esse processo pode
demorar alguns minutos para ser finalizado em caso de arquivos muito grandes.
-widget_resourceFactoryWizard_uploadFileStepName=Upload do Arquivo do Recurso
-widget_resourceFactoryWizard_uploadFailure=Falha ao realizar o upload do arquivo
-widget_resourceFactoryWizard_editConfigStepName=Editar Configura\u00E7\u00E3o
-widget_resourceFactoryWizard_editConfigStep_nothingToDo=There is no configuration that
you need to define for this resource.
-widget_resourceFactoryWizard_infoStepName=Informa\u00E7\u00E3o do Recurso
-widget_resourceFactoryWizard_infoStep_loadFail=Failed to get available Architectures
-widget_resourceFactoryWizard_namePrompt=Novo Nome do Recurso
-widget_resourceFactoryWizard_templatePrompt=Modelo de Propriedades para Conex\u00E3o
-widget_resourceFactoryWizard_contentTemplatePrompt=Modelos de Configura\u00E7\u00E3o do
Tempo de Deploy
-widget_resourceFactoryWizard_configTemplatePrompt=Modelo de Configura\u00E7\u00E3o de
Recurso
-widget_resourceFactoryWizard_archPrompt=Arquitetura do Pacote
-widget_resourceFactoryWizard_versionPrompt=Vers\u00E3o do Pacote
-widget_resourceFactoryWizard_importWizardWindowTitle=Assistente para Importa\u00E7\u00E3o
de Recurso
-widget_resourceFactoryWizard_importWizardTitle=Importar Recursos do Tipo [{0}]
-widget_resourceFactoryWizard_importFailure=Falha ao importar recursos manualmente
-widget_resourceFactoryWizard_importSubmitted=Uma requisi\u00E7\u00E3o para importar um
novo recurso do tipo [{0}] foi submetida
-widget_resourceFactoryWizard_createWizardWindowTitle=Assistente para Cria\u00E7\u00E3o de
Recurso
-widget_resourceFactoryWizard_createWizardTitle=Criar novo recurso do tipo [{0}]
-widget_resourceFactoryWizard_execute1=Falha ao criar novo recurso - vers\u00E3o do pacote
inexistente
-widget_resourceFactoryWizard_execute2=Falha ao criar novo recurso
-widget_resourceFactoryWizard_createSubmitType=A requisi\u00E7\u00E3o para
cria\u00E7\u00E3o de um recurso do tipo [{0}] foi submetida com sucesso.
-widget_resourceFactoryWizard_createSubmit=A requisi\u00E7\u00E3o para cria\u00E7\u00E3o
de um recurso com nome [{0}] foi submetida com sucesso.
-widget_resourceFactoryWizard_failedToGetType=Falha ao recuperar o tipo de pacote para o
novo recurso
-widget_resourceFactoryWizard_failedToDeleteVersion=Falha ao excluir a vers\u00E3o do
pacote durante o cancelamento da cria\u00E7\u00E3o do recurso
-
-widget_typeCache_loadFail=Failed to load resource type metadata
-
-widget_typeTree_badTemplateType=Invalid URL. Unknown template type [{0}]
-widget_typeTree_badTypeId=Invalid URL. Bad resource type ID [{0}]
-widget_typeTree_loadFail=Failed to load resource types
-
-# Color Picker
-#--------------
-widget_colorPicker_tooltip=Click to select a new color
-
-# Job Trigger Editor
-#--------------------
-widget_jobTriggerEditor_field_mode=Schedule using
-widget_jobTriggerEditor_value_calendar=Calendar
-widget_jobTriggerEditor_value_cronExpression=Cron Expression
-widget_jobTriggerEditor_value_now=Now
-widget_jobTriggerEditor_value_nowAndRepeat=Now & Repeat
-widget_jobTriggerEditor_value_later=Later
-widget_jobTriggerEditor_value_laterAndRepeat=Later & Repeat
-widget_jobTriggerEditor_field_cronExpression=Cron Expression
-widget_jobTriggerEditor_tab_format=Format
-widget_jobTriggerEditor_tab_examples=Examples
-widget_jobTriggerEditor_field_repeatInterval_now=Run now and every
-widget_jobTriggerEditor_field_repeatInterval_later=Repeat every
-widget_jobTriggerEditor_fieldHelp_repeatInterval=how often the operation should be
executed
-widget_jobTriggerEditor_value_for=For
-widget_jobTriggerEditor_value_until=Until
-widget_jobTriggerEditor_value_indefinitely=Indefinitely
-widget_jobTriggerEditor_fieldHelp_repeatDuration=keep running this operation this many
times or until this amount of time has elapsed
-widget_jobTriggerEditor_field_startType=Run
-widget_jobTriggerEditor_value_on=on
-widget_jobTriggerEditor_value_in=in
-widget_jobTriggerEditor_fieldHelp_startDelay=start executing the operation after this
amount of time has elapsed
-widget_jobTriggerEditor_message_startTimeMustBeInFuture=Start time must be in the
future.
-widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime=End time must be after start
time.
-widget_jobTriggerEditor_message_endTimeMustBeInFuture=End time must be in the future.
-
-# Duration Item
-#---------------
-widget_durationItem_inputUnitLessThanTargetUnit=Input unit is less than target unit.
-widget_durationItem_unitTypeNotSupported=Unit type [{0}] is not supported by this
DurationItem.
-
-
-#===================== Utils ======================
-
-# Ancestry
-#-------------------------------------------------
-util_ancestry_parentAncestry=Parent Ancestry for:
-
-# Disambiguation Report Decorator
-#-------------------------------------------------
-util_disambiguationReportDecorator_pluginSuffix=({0} plugin)
-
-# Monitoring Request Callback
-#------------------------------------------
-util_monitoringRequestCallback_error_checkServerStatusFailure=Imposs\u00EDvel verificar o
status do login - verifique o estatdo do Servidor.
-
-# RPC Manager
-#----------------------
-util_rpcManager_activeRequests={0} Requisi\u00E7\u00F5es ativas
-
-# User Permissions Manager
-#--------------------------
-util_userPerm_loadFailGlobal=Falha ao carregar permiss\u00F5es globais - nenhuma
permiss\u00E3o concedida.
-util_userPerm_loadFailGroup=Falha ao carregar suas permiss\u00F5es para o Grupo de
Recursos com id [{0}] - nenhum permiss\u00E3o concedida.
-util_userPerm_loadFailResource=Falha ao carregar suas permiss\u00F5es para o Recurso com
id [{0}] - nenhuma permiss\u00E3o concedida.
-
-# User Session Manager
-#--------------------------
-util_userSession_loadFailSubject=UserSessionManager\: Falha ao carregar a credencial do
usu\u00E1rio
-util_userSession_logoutFail=Falha durante o logout.
-
-# Error Handler
-#--------------------
-util_errorHandler_nullException=Exce\u00E7\u00E3o nula
-
-# Widgets Field
-#---------------------
-util_widgetsField_unlimited=Ilimitado
-
-
-#================== DataSources ====================
-
-# RPC (abstract)
-#-----------------------
-dataSource_bundle_loadFailed=Failed to load Bundle data
-
-
-# RPC (abstract)
-#-----------------------
-dataSource_rpc_error_transformRequestFailure=Ocorreu uma falha na fonte de dados durante
o processamento da requisi\u00E7\u00E3o {0}.
-dataSource_rpc_error_unsupportedArrayFilterType=Sem suporte para passing de array filters
do tipo {0}.
-dataSource_rpc_error_unsupportedEnumType=Favor adicionar um trecho de c\u00F3digo
apropriado para a enum {0} para RPCDataSource.getEnumArray(Class)
-dataSource_rpc_yes=sim
-dataSource_rpc_no=n\u00E3o
-
-# ContentRepositoryTree
-#------
-dataSource_ContentRepoTree_error_load=Erro ao carregar os reposit\u00F3rios
-dataSource_ContentRepoTree_field_parentId=Parent ID
-
-
-# Users
-#------
-###### dup in common
-dataSource_users_field_id=ID
-dataSource_users_field_name=Nome do Usu\u00E1rio
-dataSource_users_field_ldap=LDAP Login?
-dataSource_users_field_password=Senha
-dataSource_users_field_passwordVerify=Verifique a Senha
-dataSource_users_field_firstName=Primeiro Nome
-dataSource_users_field_lastName=\u00DAltimo Nome
-dataSource_users_field_emailAddress=Endere\u00E7o de Email
-dataSource_users_field_phoneNumber=N\u00FAmero de Telefone
-dataSource_users_field_department=Departamento
-dataSource_users_field_factive=Login Habilitado?
-dataSource_users_delete=Deleted user [{0}]
-dataSource_users_deleteFailed=Failed to delete user [{0}]
-dataSource_users_passwordsDoNotMatch=Passwords do not match.
-dataSource_users_invalidEmailAddress=Invalid email address.
-
-# Roles
-#------
-datasource_roles_field_resourceGroups=Resource Groups
-datasource_roles_field_permissions=Permissions
-datasource_roles_field_subjects=Subjects
-datasource_roles_field_ldapGroups=LDAP Groups
-
-# Platforms
-#-----------
-dataSource_platforms_field_cpu=CPU
-dataSource_platforms_field_memory=Mem\u00F3ria
-dataSource_platforms_field_swap=Swap
-
-# Traits
-#------
-dataSource_traits_failFetch=Failed to fetch traits for criteria [{0}].
-dataSource_traits_field_primaryKey=Chave Prim\u00E1ria
-dataSource_traits_field_definitionID=Definition ID
-dataSource_traits_field_lastChanged=\u00DAltima Altera\u00E7\u00E3o
-dataSource_traits_field_trait=Propriedade
-dataSource_traits_group_field_groupId=ID de Grupo
-
-# Measurement OOBs
-#---------------------------------
-dataSource_measurementOob_field_scheduleName=M\u00E9trica
-dataSource_measurementOob_field_resourceName=Recurso
-dataSource_measurementOob_field_parentName=Pai
-dataSource_measurementOob_field_formattedBaseband=Faixa
-dataSource_measurementOob_field_formattedOutlier=Fora de s\u00E9rie
-dataSource_measurementOob_field_factor=Fator fora da faixa (%)
-dataSource_measurementOob_error_fetchFailure=Falha ao carregar informa\u00E7\u00F5es das
m\u00E9tricas OOB
-
-# Measurements
-#----------------------
-dataSource_definitions_loadFailed=Falha ao carregar defini\u00E7\u00E3o de m\u00E9tricas
-dataSource_schedules_loadFailed=Falha ao carregar agendamento de m\u00E9tricas
-dataSource_schedules_loadFailedCriteria=Failed to load metric schedules for criteria
[{0}]
-dataSource_schedules_loadFailedContext=Failed to load metric schedules for context [{0}]
-dataSource_schedules_field_resourceGroupId=ID de Grupo
-
-dataSource_schedules_enableFailure_resource=Falha ao habilitar a coleta de m\u00E9tricas
de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
-dataSource_schedules_enableFailure_group=Falha ao habilitar a coleta de m\u00E9tricas de
[{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
-
-dataSource_schedules_enableSuccessful_concise=Voce habilitou a coleta de m\u00E9tricas de
[{0}]
-dataSource_schedules_enableSuccessful_full_resource=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\:
[{2}]
-dataSource_schedules_enableSuccessful_full_group=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas
foram\: [{2}]
-
-dataSource_schedules_disableFailure_resource=Falha ao desabilitar a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas eram\: [{2}]
-dataSource_schedules_disableFailure_group=Falha ao desabilitar a coleta de m\u00E9tricas
de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas eram\: [{2}]
-
-dataSource_schedules_disableSuccessful_concise=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de [{0}]
-dataSource_schedules_disableSuccessful_full_resource=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas
s\u00E3o\: [{2}]
-dataSource_schedules_disableSuccessful_full_group=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas
desabilitadas s\u00E3o\: [{2}]
-
-dataSource_schedules_updateFailure_resource=Falha ao configurar o intervalo para coleta
de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. M\u00E9tricas\: [{2}]. O intervalo
de coleta seria de [{3}] segundos.
-dataSource_schedules_updateFailure_group=Falha ao configurar o intervalo para coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. M\u00E9tricas\: [{2}]. O
intervalo de coleta seria de [{3}] segundos.
-
-dataSource_schedules_updateSuccessful_concise=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}]
-dataSource_schedules_updateSuccessful_full_resource=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o recurso com ID [{2}].
M\u00E9tricas atualizadas\: [{3}]
-dataSource_schedules_updateSuccessful_full_group=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o grupo de recursos com ID
[{2}]. M\u00E9tricas atualizadas\: [{3}]
-
-# Resources
-#-----------------------
-dataSource_resources_field_location=Location
-dataSource_resources_field_key=Key
-dataSource_resources_field_discoveryTime=Discovery Time
-dataSource_resources_field_importTime=Import Time
-dataSource_resources_field_lastModifiedTime=Last Modified Time
-dataSource_resources_field_lastModifier=Last Modifier
-
-# Resource Groups
-#-----------------------
-dataSource_resourceGroups_loadFailed=Failed to load Resource Groups
-
-# Problem Resources
-#------------------------------
-dataSource_problemResources_field_alerts=Alertas
-dataSource_problemResources_field_available=Disponibilidade Atual
-dataSource_problemResources_error_fetchFailure=Falha com carregar Recursos com
alertas/indisponibilidade.
-
-# Recent Operations
-#----------------------------
-dataSource_recentOperations_field_resource=Recurso
-dataSource_recentOperations_field_location=Localiza\u00E7\u00E3o
-dataSource_recentOperations_field_operation=Opera\u00E7\u00E3o
-dataSource_recentOperations_field_time=Data/Hora
-dataSource_recentOperations_field_status=Status
-dataSource_recentOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es finalizadas recentemente.
-
-# Scheduled Operations (ResourceOperationScheduleComposites)
-#------------------------------------------------------------
-dataSource_scheduledOperations_field_resource=Recurso
-dataSource_scheduledOperations_field_location=Localiza\u00E7\u00E3o
-dataSource_scheduledOperations_field_operation=Opera\u00E7\u00E3o
-dataSource_scheduledOperations_field_time=Data/Hora
-dataSource_scheduledOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es agendadas
-
-# Operation Schedules
-#--------------------
-dataSource_operationSchedule_field_id=Schedule ID
-dataSource_operationSchedule_field_operationName=Operation
-dataSource_operationSchedule_field_operationDisplayName=Operation
-dataSource_operationSchedule_field_subject=Owner
-dataSource_operationSchedule_field_description=Notes
-dataSource_operationSchedule_field_nextFireTime=Next Execution
-dataSource_operationSchedule_field_timeout=Timeout (in seconds)
-
-# Operation Histories
-#--------------------
-dataSource_operationHistory_field_operationName=Operation Name
-dataSource_operationHistory_field_createdTime=Created Time
-dataSource_operationHistory_field_startedTime=Started Time
-dataSource_operationHistory_field_subject=Requester
-dataSource_operationHistory_error_fetchFailure=Falha ao carregar o hist\u00F3rico de
opera\u00E7\u00F5es.
-
-# Configuration History
-#-------------------------------
-dataSource_configurationHistory_dateSubmitted=Date Submitted
-dataSource_configurationHistory_dateCompleted=Date Completed
-dataSource_configurationHistory_updateType=Update Type
-dataSource_configurationHistory_updateType_individual=Individual
-dataSource_configurationHistory_updateType_group=Group
-dataSource_configurationHistory_currentConfig=This is the current configuration
-dataSource_configurationHistory_clickToSeeError=Double click to see error message...
-dataSource_configurationHistory_error_fetchFailure=N\u00E3o foi poss\u00EDvel carregar o
hist\u00F3rico de configura\u00E7\u00E3o.
-
-# Resource Errors
-#-------------------------
-dataSource_resourceErrors_field_summary=Sum\u00E1rio
-dataSource_resourceErrors_field_errorType=Tipo de Erro
-dataSource_resourceErrors_field_timeOccured=Tempo
-dataSource_resourceErrors_error_fetchFailure=Falha ao procurar por erros para o Recurso
com ID [{0}].
-dataSource_resourceErrors_clickStatusIcon=Click the icon for more details
-dataSource_resourceErrors_deleteSuccess=You have successfully deleted [{0}] resource
error messages.
-dataSource_resourceErrors_deleteFailure=Failed to delete resource errors
-
-# Template Schedules
-#-------------------------
-datasource_templateSchedules_disabled=Disabled collection of selected metric [{0}].
-datasource_templateSchedules_disabled_detailed=Disabled collection of metric [{0}] [{1}]
by default for ResourceType with id [{2}].
-datasource_templateSchedules_disabled_failed=Failed to disable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_enabled=Enabled collection of selected metric [{0}].
-datasource_templateSchedules_enabled_detailed=Enabled collection of metric [{0}] [{1}] by
default for ResourceType with id [{2}].
-datasource_templateSchedules_enabled_failed=Failed to enable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_updated=Updated collection intervals of selected metric
[{0}].
-datasource_templateSchedules_updated_detail=Collection interval for metric [{0}] [{1}] by
default for ResourceType with id [{2}] set to [{3}] seconds.
-datasource_templateSchedules_updated_failed=Failed to set collection interval to [{0}]
seconds for metric [{1}] [{2}] by default for ResourceType with id [{3}].
-
-
-#********************************** VIEW-SPECIFIC *************************************
-
-#================= Administration ==================
-
-view_admin_administration=Administra\u00E7\u00E3o
-view_admin_landing=Nesta se\u00E7\u00E3o \u00E9 poss\u00EDvel administrar propriedades
globais do RHQ. Isso inclui configura\u00E7\u00F5es de Seguran\u00E7a, Plugins, e
gerenciamento de servidores RHQ e agentes.
-view_admin_configuration=Configura\u00E7\u00E3o
-view_admin_security=Seguran\u00E7a
-view_admin_topology=Topologia
-view_admin_content=Content
-
-view_adminSecurity_users=Usu\u00E1rios
-view_adminSecurity_roles=Perfis
-
-view_adminTopology_affinityGroups=Grupos de Afinidade
-view_adminTopology_agents=Agentes
-view_adminTopology_partitionEvents=Eventos na Parti\u00E7\u00E3o
-view_adminTopology_remoteAgentInstall=Instala\u00E7\u00E3o Remota de Agentes
-view_adminTopology_servers=Servidores
-
-view_adminConfig_downloads=Downloads
-view_adminConfig_plugins=Plugins
-view_adminConfig_systemSettings=Propriedades de Sistema
-view_adminConfig_templates=Modelos
-
-view_adminContent_contentSources=Content Sources
-view_adminContent_repositories=Repositories
-
-# Administration/Templates
-#--------------------------------
-
-view_adminTemplates_platforms=Platforms
-view_adminTemplates_platformServices=Platform Services
-view_adminTemplates_servers=Servers
-view_adminTemplates_enabledAlertTemplates=Enabled Alert Templates
-view_adminTemplates_disabledAlertTemplates=Disabled Alert Templates
-view_adminTemplates_enabledMetricTemplates=Enabled Metric Templates
-view_adminTemplates_disabledMetricTemplates=Disabled Metric Templates
-view_adminTemplates_editAlertTemplate=Edit Alert Template
-view_adminTemplates_editMetricTemplate=Edit Metric Template
-view_adminTemplates_prompt_enabledAlertTemplates=Number of alert templates that are
enabled on this resource type
-view_adminTemplates_prompt_disabledAlertTemplates=Number of alert templates that are
created but disabled on this resource type
-view_adminTemplates_prompt_enabledMetricTemplates=Number of metric schedules that are
enabled by default on this resource type
-view_adminTemplates_prompt_disabledMetricTemplates=Number of metric schedules that are
disabled by default on this resource type
-
-# Administration/Security/Users
-#--------------------------------
-view_adminUsersList_dataTypeName=usu\u00E1rio
-view_adminUsersList_dataTypeNamePlural=usu\u00E1rios
-
-# Administration/Security/Users/#
-#--------------------------------
-view_adminUsersDetails_dataTypeName=usu\u00E1rio
-
-# Administration/Security/Roles/#
-#--------------------------------
-view_adminRoles_assignedGroups=Grupos de Recursos Associados
-view_adminRoles_assignedSubjects=Perfis Associados
-view_adminRoles_failLdap=Falha ao determinar se o LDAP foi configurado - assumindo como
LDAP n\u00E3o configurado.
-view_adminRoles_failLdapGroups=Falha ao recuperar os grupos dispon\u00EDveis no LDAP -
assumindo como LDAP sem grupos.
-view_adminRoles_failLdapGroupsRole=Falha ao carregar grupos do LDAP dispon\u00EDveis para
o perfil.
-view_adminRoles_failRoles=Falha ao recuperar perfis.
-view_adminRoles_globalPerms=Permiss\u00F5es Globais
-view_adminRoles_ldapGroups=Grupos LDAP
-view_adminRoles_ldapGroupsReadOnly=Informa\u00E7\u00F5es do grupo LDAP com
permiss\u00F5es apenas de leitura
-view_adminRoles_noItems=Sem itens para apresentar
-view_adminRoles_noLdap=A integra\u00E7\u00E3o com o LDAP ainda n\u00E3o foi configurada.
Para configurar o LDAP acesse <a {0}>{1}</a>.
-view_adminRoles_perms=Permiss\u00F5es
-view_adminRoles_resourcePerms=Permiss\u00F5es do Recurso
-view_adminRoles_roleAdded=Perfil [{0}] adicionado.
-view_adminRoles_roleDeleteFailed=Falha ao excluir o perfil [{0}].
-view_adminRoles_roleDeleted=Perfil [{0}] exclu\u00EDdo.
-view_adminRoles_roleUpdateFailed=Falha ao atualizar o perfil [{0}].
-view_adminRoles_roleUpdated=Perfil [{0}] atualizado.
-view_adminRoles_permissions_globalPermissions=Global Permissions
-view_adminRoles_permissions_resourcePermissions=Resource Permissions
-view_adminRoles_permissions_readAccessImplied=Read access for the {0} permission is
implied and cannot be disabled.
-view_adminRoles_permissions_isAuthorized=Authorized?
-view_adminRoles_permissions_isRead=Read?
-view_adminRoles_permissions_isWrite=Write?
-view_adminRoles_permissions_read=Read:
-view_adminRoles_permissions_write=Write:
-view_adminRoles_permissions_perm_manageSecurity=Manage Security
-view_adminRoles_permissions_permDesc_manageSecurity=can create, update, or delete users
and roles (viewing is implied for everyone)
-view_adminRoles_permissions_perm_manageInventory=Manage Inventory
-view_adminRoles_permissions_permDesc_manageInventory=has all Resource permissions, as
described below, for all Resources; can create, update, and delete groups; and can import
auto-discovered or manually discovered Resources
-view_adminRoles_permissions_perm_manageSettings=Manage Settings
-view_adminRoles_permissions_permDesc_manageSettings=can modify the RHQ Server
configuration and perform any Server-related functionality
-view_adminRoles_permissions_perm_manageBundles=Manage Bundles
-view_adminRoles_permissions_permDesc_manageBundles=can create, update, or delete
provisioning bundles (viewing is implied for everyone)
-view_adminRoles_permissions_perm_manageRepositories=Manage Repositories
-view_adminRoles_permissions_permDesc_manageRepositories=can create, update, or delete
repositories of any user (everyone can create their own repositories), can associate
content sources to repositories.
-view_adminRoles_permissions_perm_inventory=Inventory
-view_adminRoles_permissions_permReadDesc_inventory=(IMPLIED) view Resource properties
(name, description, version, etc.), connection settings, and connection settings history
-view_adminRoles_permissions_permWriteDesc_inventory=update Resource name, version,
description, and connection settings; delete connection settings history items
-view_adminRoles_permissions_perm_manageMeasurements=Manage Measurements
-view_adminRoles_permissions_permReadDesc_manageMeasurements=(IMPLIED) view metric data
and collection schedules
-view_adminRoles_permissions_permWriteDesc_manageMeasurements=update metric collection
schedules
-view_adminRoles_permissions_perm_manageAlerts=Manage Alerts
-view_adminRoles_permissions_permReadDesc_manageAlerts=(IMPLIED) view alert definitions
and alert history
-view_adminRoles_permissions_permWriteDesc_manageAlerts=create, update, and delete alert
definitions; acknowledge and delete alert history items
-view_adminRoles_permissions_perm_configure=Configure
-view_adminRoles_permissions_permReadDesc_configure=view Resource configuration and
Resource configuration revision history
-view_adminRoles_permissions_permWriteDesc_configure=update Resource configuration; delete
Resource configuration revision history items
-view_adminRoles_permissions_perm_control=Control
-view_adminRoles_permissions_permReadDesc_control=(IMPLIED) view available operations and
operation execution history
-view_adminRoles_permissions_permWriteDesc_control=execute operations; delete operation
execution history items
-view_adminRoles_permissions_perm_manageEvents=Manage Events
-view_adminRoles_permissions_permReadDesc_manageEvents=(IMPLIED) view events
-view_adminRoles_permissions_permWriteDesc_manageEvents=delete events
-view_adminRoles_permissions_perm_manageContent=Manage Content
-view_adminRoles_permissions_permReadDesc_manageContent=(IMPLIED) view installed and
available packages; view package installation history
-view_adminRoles_permissions_permWriteDesc_manageContent=subscribe to content sources;
install and uninstall packages
-view_adminRoles_permissions_perm_createChildResources=Create Child Resources
-view_adminRoles_permissions_permReadDesc_createChildResources=(IMPLIED) view child
Resource creation history
-view_adminRoles_permissions_permWriteDesc_createChildResources=create new child Resources
(for child Resources of types that are creatable)
-view_adminRoles_permissions_perm_deleteChildResources=Delete Child Resources
-view_adminRoles_permissions_permReadDesc_deleteChildResources=(IMPLIED) view child
Resource deletion history
-view_adminRoles_permissions_permWriteDesc_deleteChildResources=uninventory resources;
delete Resources (for Resources of types that are deletable)
-view_adminRoles_permissions_autoselecting_manageSecurity_implied=Autoselected unselected
permissions, since MANAGE_SECURITY implies all other permissions...
-view_adminRoles_permissions_autoselecting_manageInventory_implied=Autoselected unselected
Resource permissions, since MANAGE_INVENTORY implies all Resource permissions...
-view_adminRoles_permissions_autoselecting_configureWrite_implied=Autoselected
CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
-view_adminRoles_permissions_autoselecting_configureRead_implied=Autodeselected
CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
-view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection={0} permission
cannot be deselected, unless the Manage Security permission, which implies all other
permissions, is deselected first.
-view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection={0}
permission cannot be deselected, unless Manage Inventory, which implies all Resource
permissions, is deselected first.
-view_adminRoles_permissions_illegalDeselectionDueToCorrespondingWritePermSelection={0}
read permission cannot be deselected, unless the {0} write permission, which implies the
read permission, is deselected first.
-
-# Administration/Topology/RemoteAgentInstall/#
-#--------------------------------
-view_remoteAgentInstall_agentStatus=Status do Agente
-view_remoteAgentInstall_agentStatusDefault=-Pressione o Bot\u00E3o Atualizar Status-
-view_remoteAgentInstall_connInfo=Informa\u00E7\u00E3o de Conex\u00E3o
-view_remoteAgentInstall_buttonFindAgent=Procurar Agente
-view_remoteAgentInstall_error_1=Ocorreu um erro ao tentar localizar o caminho de
instala\u00E7\u00E3o do agente
-view_remoteAgentInstall_error_2=N\u00E3o foi poss\u00EDvel encontrar uma
instala\u00E7\u00E3o do agente nos locais comuns
-view_remoteAgentInstall_error_3=N\u00E3o foi poss\u00EDvel encontar a
instala\u00E7\u00E3o do agente em [{0}]
-view_remoteAgentInstall_error_4=Falha ao instalar o agente
-view_remoteAgentInstall_error_5=Falha a iniciar o agente
-view_remoteAgentInstall_error_6=Falha ao parar o agente
-
-view_remoteAgentInstall_installAgent=Instalar Agente
-view_remoteAgentInstall_installInfo=Informa\u00E7\u00E3o sobre a instala\u00E7\u00E3o do
Agente
-view_remoteAgentInstall_installPath=Caminho de Instala\u00E7\u00E3o do Agente
-view_remoteAgentInstall_owner=Propriet\u00E1rio
-view_remoteAgentInstall_promptInstallPath=Onde o agente est\u00E1 ou ser\u00E1 instalado.
Caso n\u00E3o tenha certeza onde o agente est\u00E1 instalado, informe um diret\u00F3rio
pai e clique em ''Procurar Agente'' para encontrar o agente. Caso informe
um diret\u00F3rio vazio, a busca pelo agente ser\u00E1 realizada em locais de
instala\u00E7\u00E3o comuns.
-view_remoteAgentInstall_promptHost=O host onde o agente est\u00E1 ou ser\u00E1 instalado
-view_remoteAgentInstall_promptPassword=Credenciais usadas para autentica\u00E7\u00E3o do
usu\u00E1rio no host via SSH
-view_remoteAgentInstall_promptPort=Porta onde o servidor SSH escuta. Se n\u00E3o
especificada, o padr\u00E3o \u00E9 22
-view_remoteAgentInstall_promptUser=Nome do usu\u00E1rio informado nas credenciais
passadas ao host via SSH
-view_remoteAgentInstall_result=Resultado
-view_remoteAgentInstall_resultCode=ResultCode
-view_remoteAgentInstall_startAgent=Iniciar Agente
-view_remoteAgentInstall_startAgentResults=resultado da inicializa\u00E7\u00E3o do
Agente\: [{0}]
-view_remoteAgentInstall_step=Step
-view_remoteAgentInstall_stopAgent=Parar Agente
-view_remoteAgentInstall_stopAgentResults=resultado do encerramento do Agente\: [{0}]
-view_remoteAgentInstall_success=Instala\u00E7\u00E3o do Agente finalizada
-view_remoteAgentInstall_updateStatus=Status da Atualiza\u00E7\u00E3o
-
-# Administration/SystemSettings
-#------------------------------
-view_admin_systemSettings_cannotLoadSettings=Cannot obtain the current system settings
-view_admin_systemSettings_savedSettings=You successfully saved the system properties
-view_admin_systemSettings_saveFailure=Failed to save the system settings
-view_admin_systemSettings_fixBeforeSaving=Please fix the invalid values before saving
-view_admin_systemSettings_group_general=General Configuration Properties
-view_admin_systemSettings_group_dataMgr=Data Manager Configuration Properties
-view_admin_systemSettings_group_baseline=Automatic Baseline Configuration Properties
-view_admin_systemSettings_group_ldap=LDAP Configuration Properties
-view_admin_systemSettings_cannotLoadServerDetails=Cannot load server details
-view_admin_systemSettings_serverDetails=Server Details
-view_admin_systemSettings_serverDetails_buildNumber=Build Number
-view_admin_systemSettings_serverDetails_tz=Server Time Zone
-view_admin_systemSettings_serverDetails_time=Server Local Time
-view_admin_systemSettings_serverDetails_installDir=Server Installation Directory
-view_admin_systemSettings_serverDetails_dbUrl=Database Connection URL
-view_admin_systemSettings_serverDetails_dbName=Database Product Name
-view_admin_systemSettings_serverDetails_dbVersion=Database Product Version
-view_admin_systemSettings_serverDetails_dbDriverName=Database Driver Name
-view_admin_systemSettings_serverDetails_dbDriverVersion=Database Driver Version
-view_admin_systemSettings_serverDetails_currentTable=Current Measurement Raw Table
-view_admin_systemSettings_serverDetails_nextRotation=Next Measurement Table Rotation
-view_admin_systemSettings_BaseURL_name=GUI Console URL
-view_admin_systemSettings_BaseURL_desc=A URL to the server GUI, used mainly within alert
email notifications.
-view_admin_systemSettings_AgentMaxQuietTimeAllowed_name=Agent Max Quiet Time Allowed
-view_admin_systemSettings_AgentMaxQuietTimeAllowed_desc=If this amount of time passes
without hearing from an agent, that quiet agent will be considered down. This value is
specified in minutes.
-view_admin_systemSettings_EnableAgentAutoUpdate_name=Enable Agent Auto-Updates
-view_admin_systemSettings_EnableAgentAutoUpdate_desc=Determines if the server will allow
agents to auto-update themselves. You will not be able to download agent distributions
from the server if this is disabled.
-view_admin_systemSettings_EnableDebugMode_name=Enable Debug Mode
-view_admin_systemSettings_EnableDebugMode_desc=If enabled, the server will enter debug
mode.
-view_admin_systemSettings_EnableExperimentalFeatures_name=Enable Experimental Features
-view_admin_systemSettings_EnableExperimentalFeatures_desc=If enabled, any experimental
features that exist in the current product will be available.
-view_admin_systemSettings_DataMaintenance_name=Database Maintenance Period
-view_admin_systemSettings_DataMaintenance_desc=How often database maintenance is
performed (for example, vacuuming if using Postgres). This is specified in hours.
-view_admin_systemSettings_AvailabilityPurge_name=Delete Availability Data Older Than
-view_admin_systemSettings_AvailabilityPurge_desc=How old availability data must be before
being purged from the database. This is specified in days.
-view_admin_systemSettings_AlertPurge_name=Delete Alerts Older Than
-view_admin_systemSettings_AlertPurge_desc=How old alert history items must be before
being purged from the database. This is specified in days.
-view_admin_systemSettings_TraitPurge_name=Delete Measurement Traits Older Than
-view_admin_systemSettings_TraitPurge_desc=How old measurement trait data must be before
being purged from the database. This is specified in days.
-view_admin_systemSettings_RtDataPurge_name=Delete Response Time Data Older Than
-view_admin_systemSettings_RtDataPurge_desc=How old response time data must be before
being purged from the database. This is specified in days.
-view_admin_systemSettings_EventPurge_name=Delete Events Older Than
-view_admin_systemSettings_EventPurge_desc=How old event data must be before being purged
from the database. This is specified in days.
-view_admin_systemSettings_DataReindex_name=Reindex Data Tables Nightly
-view_admin_systemSettings_DataReindex_desc=If enabled, certain database tables will be
re-indexed periodically.
-view_admin_systemSettings_BaselineFrequency_name=Baseline Calculation Frequency
-view_admin_systemSettings_BaselineFrequency_desc=The frequency which the auto-calculation
of baselines will be performed. If 0, baseline auto-calculation is disabled. This is
specified in days.
-view_admin_systemSettings_BaselineDataSet_name=Baseline Dataset
-view_admin_systemSettings_BaselineDataSet_desc=The amount of past measurement data that
is used to determine a baseline. This is specified in days.
-view_admin_systemSettings_JAASProvider_name=Enable LDAP
-view_admin_systemSettings_JAASProvider_desc=Should LDAP be used to determine user
identity?
-view_admin_systemSettings_LDAPUrl_name=LDAP URL
-view_admin_systemSettings_LDAPUrl_desc=URL to the LDAP Server
-view_admin_systemSettings_LDAPProtocol_name=SSL
-view_admin_systemSettings_LDAPProtocol_desc=Should communication with the LDAP server be
done over SSL?
-view_admin_systemSettings_LDAPLoginProperty_name=Login Property
-view_admin_systemSettings_LDAPLoginProperty_desc=The LDAP property that contains the user
name. Defaults to "cn". If multiple matches are found, the first entry found is
used.
-view_admin_systemSettings_LDAPFilter_name=Search Filter
-view_admin_systemSettings_LDAPFilter_desc=Any additional filters to apply when doing the
LDAP search. This is useful if the population to authenticate can be identified via a
given LDAP property, e.g. RHQUser=true
-view_admin_systemSettings_LDAPGroupFilter_name=Group Search Filter
-view_admin_systemSettings_LDAPGroupFilter_desc=LDAP search filter that must return all
LDAP groups available for authorization. This is used for LDAP group authorization.
-view_admin_systemSettings_LDAPGroupMember_name=Group Member Filter
-view_admin_systemSettings_LDAPGroupMember_desc=LDAP search filter that is used in
conjunction with the group search filter to determine user authorization. This is used for
LDAP group authorization.
-view_admin_systemSettings_LDAPBaseDN_name=Search Base
-view_admin_systemSettings_LDAPBaseDN_desc=The base of the directory tree to search for
usernames and passwords while authenticating users, e.g. ou=People,dc=redhat,dc=com
-view_admin_systemSettings_LDAPBindDN_name=Username
-view_admin_systemSettings_LDAPBindDN_desc=The username to connect to the LDAP server when
querying the LDAP user database. This is typically the full LDAP distinguished name (DN)
of a manager user, e.g. cn=Manager,dc=redhat,dc=com
-view_admin_systemSettings_LDAPBindPW_name=Password
-view_admin_systemSettings_LDAPBindPW_desc=The credentials of the user used to connect to
the LDAP server when querying the LDAP user database.
-
-# Administration/Downloads
-#------------------------------
-view_admin_downloads_agentDownload=Agent Download
-view_admin_downloads_cliDownload=Command Line Client Download
-view_admin_downloads_bundleDownload=Bundle Deployer Download
-view_admin_downloads_connectorsDownload=Connectors Download
-
-view_admin_downloads_agent_loadError=Cannot get agent version info
-view_admin_downloads_agent_version=Agent Version
-view_admin_downloads_agent_buildNumber=Agent Build
-view_admin_downloads_agent_md5=Agent MD5
-view_admin_downloads_agent_link_label=Link
-view_admin_downloads_agent_link_value=Download Agent {0} ({1})
-view_admin_downloads_agent_help=<p> \
- This is the RHQ Agent Update Binary jar file. The purpose of this \
- jar file is to allow you to install a fresh agent on a machine \
- where an agent does not yet exist and to allow you to update \
- an agent that is already installed on a machine. \
- For more details, run this agent download jar with the --help command line
option:<br/> \
- <b>java -jar <agent-download.jar> --help</b> \
- </p> \
- <h3>Agent Install</h3> \
- <p> \
- <b>java -jar <agent-download.jar> --install[=<new agent
directory>]</b><br/> \
- This command will install a new agent. If you do not specify the new agent
directory, the default will be "." \
- </p> \
- <h3>Agent Update</h3> \
- <p> \
- <b>java -jar <agent-download.jar> --update[=<old agent
home>]</b><br/> \
- This will update an existing agent that was already installed. \
- If you do not specify the directory where the old, existing agent was installed, it
will assumed to be "rhq-agent". \
- </p>
-
-view_admin_downloads_cli_loadError=Cannot get CLI version info
-view_admin_downloads_cli_version=CLI Version
-view_admin_downloads_cli_buildNumber=CLI Build
-view_admin_downloads_cli_md5=CLI MD5
-view_admin_downloads_cli_link_label=Link
-view_admin_downloads_cli_link_value=Download CLI {0} ({1})
-view_admin_downloads_cli_help=<p> \
- This is the Command Line Client tool, otherwise known as the CLI. \
- It is a standalone tool that runs from within a console and provides a \
- command line interface to the RHQ Server. You can invoke commands via the CLI \
- as well as run scripts to perform automated tasks. See the documentation for \
- more information on how to install and use the CLI. \
- </p>
-
-view_admin_downloads_bundle_loadError=Cannot get bundle deployer info
-view_admin_downloads_bundle_link_label=Link
-view_admin_downloads_bundle_link_value=Download Bundle Deployer {0}
-view_admin_downloads_bundle_help=<p> \
- This is the Bundle Deployer tool. It is for use by developers and packagers of RHQ
bundles. \
- This standalone tool allows you to test your bundles and their recipes from a console.
\
- </p>
-
-view_admin_downloads_connectors_loadError=Cannot get connectors info
-view_admin_downloads_connectors_none=No connectors are available for download
-view_admin_downloads_connectors_help=Connectors are software that is needed in order for
some products to be manageable by RHQ. You install connectors into some managed products
so RHQ agents can talk to them. See the documentation for more information.
-
-# Measurement Templates view
-view_admin_measTemplates_title=Template Metric Collection Schedules
-view_admin_measTemplates_updateExisting_title=Update Existing Schedules
-view_admin_measTemplates_updateExisting_tooltip=Check this box to update the collection
schedules for the selected metrics on all existing resources of this type. If this is not
checked, the template schedules will only be applied to new resources of this type that
are added to inventory in the future.
-
-#==================== Alerts ======================
-view_alerts_table_title_group=Hist\u00F3rico de Alertas do Grupo
-view_alerts_table_title_resource=Hist\u00F3rico de Alertas do Recurso
-view_alerts_table_filter_priority=Filtro de Prioridade
-view_alerts_field_created_time=Data de Cria\u00E7\u00E3o
-view_alerts_field_modified_time=Data de Altera\u00E7\u00E3o
-view_alerts_field_enabled=Habilitado
-view_alerts_field_ack_time=Data de Verifica\u00E7\u00E3o
-view_alerts_field_ack_subject=Assunto da Verifica\u00E7\u00E3o
-view_alerts_field_ack_status=Status
-view_alerts_field_ack_status_noAck=No Ack
-view_alerts_field_ack_status_noAckHover=Not yet Acknowledged
-view_alerts_field_ack_status_ack=Ack ({0})
-view_alerts_field_ack_status_ackHover=Acknowledged by {0} at {1}
-view_alerts_field_name=Nome
-view_alerts_field_condition_text=Condi\u00E7\u00E3o
-view_alerts_field_condition_text_none=Sem condi\u00E7\u00F5es
-view_alerts_field_condition_text_many=M\u00FAltiplas condi\u00E7\u00F5es
-view_alerts_field_condition_value=Valor da Condi\u00E7\u00E3o
-view_alerts_field_priority=Prioridade
-view_alerts_field_parent=Pai
-view_alerts_field_protected=Protegido
-view_alerts_field_protected_tooltip=Se verdadeiro, esta defini\u00E7\u00E3o \u00E9
protegida de altera\u00E7\u00F5es feitas na defini\u00E7\u00E3o pai, ou seja,
altera\u00E7\u00F5es realizadas no pai n\u00E3o sobrescrevem esta defini\u00E7\u00E3o.
-view_alerts_loadFailed=Falha ao carregar dados dos alertas
-view_alerts_delete_confirm=Excluir o(s) alerta(s) selecionado(s)?
-view_alerts_delete_confirm_all=Excluir todos os alertas?
-view_alerts_delete_success=Alertas {0} exclu\u00EDdos com sucesso
-view_alerts_delete_failure=Falha ao excluir alertas com os seguintes IDs\: {0}
-view_alerts_delete_failure_all=N\u00E3o foi poss\u00EDvel excluir os alertas
-view_alerts_ack_confirm=Confirma o(s) alerta(s) selecionado(s)?
-view_alerts_ack_confirm_all=Confirma todos os alertas?
-view_alerts_ack_success=Alertas {0} confirmados com sucesso
-view_alerts_ack_failure=Falha ao confirmar alertas com os seguintes IDs\: {0}
-view_alerts_ack_failure_all=N\u00E3o foi poss\u00EDvel confirmar todos os alertas
-view_alert_details_loadFailed=Falha ao recuperar detalhes do alerta
-view_alert_details_field_ack_by=Verificado por
-view_alert_details_field_ack_at=Verificado em
-view_alert_details_field_recovery_info=Informa\u00E7\u00E3o de Recupera\u00E7\u00E3o
-view_alert_definition_for_type=Visualizar Template
-view_alert_definition_for_group=Visualizar Defini\u00E7\u00E3o de Grupo
-view_alert_definitions_table_title_group=Defini\u00E7\u00F5es de Alertas para Grupo
-view_alert_definitions_table_title_resource=Defini\u00E7\u00F5es de Alerta para Recurso
-view_alert_definitions_loadFailed=Falha ao obter a defini\u00E7\u00E3o do alerta
-view_alert_definitions_loadFailed_single=Falha ao obter a defini\u00E7\u00E3o do alerta
com ID {0}
-view_alert_definitions_enable_confirm=Habilitar a(s) defini\u00E7\u00E3o(\u00F5es) para o
alerta selecionado?
-view_alert_definitions_enable_success=Defini\u00E7\u00F5es do alerta {0} habilitados com
sucesso
-view_alert_definitions_enable_failure=Falha ao habilitar defini\u00E7\u00F5es para o
alerta selecionado
-view_alert_definitions_disable_confirm=Desabilitar as defini\u00E7\u00F5es para o alerta
selecionado?
-view_alert_definitions_disable_success=Defini\u00E7\u00F5es do alerta {0} desabilitadas
com sucesso
-view_alert_definitions_disable_failure=Falha ao desabilitar defini\u00E7\u00F5es para o
alerta selecionado
-view_alert_definitions_delete_confirm=Excluir defini\u00E7\u00F5es para o alerta
selecionado?
-view_alert_definitions_delete_success=Defini\u00E7\u00F5es do alerta {0} exclu\u00EDdas
com sucesso
-view_alert_definitions_delete_failure=Falha aos excluir as defini\u00E7\u00F5es do alerta
selecionado
-view_alert_definitions_create_success=Defini\u00E7\u00E3o do alerta criada com sucesso
-view_alert_definitions_create_failure=Falha na cria\u00E7\u00E3o da defini\u00E7\u00E3o
do alerta
-view_alert_definitions_update_success=Defini\u00E7\u00E3o do alerta atualizada com
sucesso
-view_alert_definitions_update_failure=Falha ao atualizar a defini\u00E7\u00E3o do alerta
-view_alert_definition_condition_editor_option_label=Tipo de Condi\u00E7\u00E3o
-view_alert_definition_condition_editor_option_availability=Mudan\u00E7a de
Disponibilidade
-view_alert_definition_condition_editor_option_metric_threshold=Threshold (valor absoluto)
da M\u00E9trica
-view_alert_definition_condition_editor_option_metric_baseline=Threshold base da
M\u00E9trica
-view_alert_definition_condition_editor_option_metric_change=Mudan\u00E7a no valor da
M\u00E9trica
-view_alert_definition_condition_editor_option_metric_calltime_threshold=Tempo limite da
chamada
-view_alert_definition_condition_editor_option_metric_calltime_change=Mudan\u00E7a no
tempo de chamada
-view_alert_definition_condition_editor_option_metric_trait_change=Mudan\u00E7a de
Carcter\u00EDstica
-view_alert_definition_condition_editor_option_operation=Execu\u00E7\u00E3o de
Opera\u00E7\u00E3o
-view_alert_definition_condition_editor_option_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
-view_alert_definition_condition_editor_option_event=Detec\u00E7\u00E3o de Evento
-view_alert_definition_condition_editor_avilability_tooltip=Especifica a mudan\u00E7a de
estado na disponibilidade do recurso que ir\u00E1 disparar a condi\u00E7\u00E3o.
-view_alert_definition_condition_editor_avilability_value=Disponibilidade
-view_alert_definition_condition_editor_avilability_option_up=DISPON\u00CDVEL
-view_alert_definition_condition_editor_avilability_option_down=INDISPON\u00CDVEL
-view_alert_definition_condition_editor_metric_common_definition_not_found=Deve existir
uma defini\u00E7\u00E3o para a m\u00E9trica - algo est\u00E1 incorreto
-view_alert_definition_condition_editor_metric_threshold_tooltip=Especifica um threshold
que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser
absoluto e com uma unidade de medida opcional.
-view_alert_definition_condition_editor_metric_threshold_name=M\u00E9trica
-view_alert_definition_condition_editor_metric_threshold_value=Valor da M\u00E9trica
-view_alert_definition_condition_editor_metric_threshold_value_tooltip=Limiar (threshold)
da m\u00E9trica utilizado na compara\u00E7\u00E3o como condi\u00E7\u00E3o de disparo.
-view_alert_definition_condition_editor_metric_threshold_comparator=Mecanismo de
Compara\u00E7\u00E3o
-view_alert_definition_condition_editor_metric_threshold_comparator_less=Menor que
-view_alert_definition_condition_editor_metric_threshold_comparator_equal=Igual \u00E0
-view_alert_definition_condition_editor_metric_threshold_comparator_greater=Maior que
-view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=Como a
m\u00E9trica coletada deve ser comparada ao threshold estabelecido
-view_alert_definition_condition_editor_metric_baseline_tooltip=Especifica a linha de base
que, quando violada, dispara a condi\u00E7\u00E3o. O valor especificado \u00E9 o
percentual do valor da linha de base informado.
-view_alert_definition_condition_editor_metric_baseline_percentage=Percentual da linha de
base
-view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=Valor da
m\u00E9trica coletada usada para disparo da condi\u00E7\u00E3o quando comparado ao valor
da linha de base selecionada
-view_alert_definition_condition_editor_metric_baseline_value=Linha de base
(<i>baseline</i>)
-view_alert_definition_condition_editor_metric_change_tooltip=Especifica a m\u00E9trica
cujo valor deve ser alterado para disparar a condi\u00E7\u00E3o.
-view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Especifica um
tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O
valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9
necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\:
m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
-view_alert_definition_condition_editor_metric_calltime_common_name=M\u00E9trica do tempo
de chamada
-view_alert_definition_condition_editor_metric_calltime_common_limit=Tempo limite da
chamada
-view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=Tempo de
chamada limite a ser comparado com o valor informado
-view_alert_definition_condition_editor_metric_calltime_common_regex=Express\u00E3o
Regular
-view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=Se
especificada, essa \u00E9 a express\u00E3o regular a ser satisfeita pela chamada para
disparar a condi\u00E7\u00E3o.
-view_alert_definition_condition_editor_metric_calltime_common_comparator=Compara\u00E7\u00E3o
-view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Redu\u00E7\u00F5es
-view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Ganhos
-view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Mudan\u00E7as
-view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=Como o
valor do tempo de chamada deve ser comparado ao valor limite
-view_alert_definition_condition_editor_metric_calltime_threshold_value=Valor do tempo de
chamada
-view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=O valor do
limiar (<i>threshold</i>) da m\u00E9trica usado para disparar a
condi\u00E7\u00E3o quando comparado ao mecanismo de compara\u00E7\u00E3o escolhido.
-view_alert_definition_condition_editor_metric_calltime_change_tooltip=Especifica o valor
do tempo de chamada que, quanto alterado, dispara a condi\u00E7\u00E3o. \u00C9
necess\u00E1rio especificar o tempo limite para a chamada (m\u00EDnimo, m\u00E1ximo ou
m\u00E9dio) e o percental de mudan\u00E7a que deve ocorrer.
-view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentual de
Mudan\u00E7a
-view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=Valor do
tempo de chamada coletado usado para disparar a condi\u00E7\u00E3o quando diferir do
percentual do valor limite do tempo de chamada definido.
-view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait
whose value must change to trigger the condition.
-view_alert_definition_condition_editor_metric_trait_change_value=Caracter\u00EDstica
-view_alert_definition_condition_editor_operation_tooltip=Define o resultado esperado
quando a opera\u00E7\u00E3o selecionada for executada para dispararo da
confi\u00E7\u00E3o.
-view_alert_definition_condition_editor_operation_value=Opera\u00E7\u00E3o
-view_alert_definition_condition_editor_operation_status=Status da Opera\u00E7\u00E3o
-view_alert_definition_condition_editor_operation_status_inprogress=Em andamento
-view_alert_definition_condition_editor_operation_status_success=Sucesso
-view_alert_definition_condition_editor_operation_status_failure=Falha
-view_alert_definition_condition_editor_operation_status_canceled=Cancelada
-view_alert_definition_condition_editor_resource_configuration_tooltip=Essa
condi\u00E7\u00E3o \u00E9 disparada quando a configura\u00E7\u00E3o do recurso for
alterada.
-view_alert_definition_condition_editor_event_tooltip=Define a severeidade do evento para
disparar a condi\u00E7\u00E3o. Caso seja definida uma express\u00E3o regular, a
condi\u00E7\u00E3o somente ser\u00E1 disparada se o evento satisfazer a express\u00E3o.
-view_alert_definition_condition_editor_event_severity=Severidade do Evento
-view_alert_definition_condition_editor_event_severity_debug=Debug
-view_alert_definition_condition_editor_event_severity_info=Info
-view_alert_definition_condition_editor_event_severity_warn=Warn
-view_alert_definition_condition_editor_event_severity_error=Error
-view_alert_definition_condition_editor_event_severity_fatal=Fatal
-view_alert_definition_condition_editor_event_regex=Express\u00E3o Regular
-view_alert_definition_condition_editor_event_regex_tooltip=Se definida, a
condi\u00E7\u00E3o somente ser\u00E1 disparada caso o evento satisfa\u00E7a a
express\u00E3o.
-view_alert_definition_condition_editor_common_min=M\u00EDnimo
-view_alert_definition_condition_editor_common_avg=M\u00E9dio
-view_alert_definition_condition_editor_common_max=M\u00E1ximo
-view_alert_definition_condition_editor_delete_confirm=Delete the selected alert
condition(s)?
-view_alert_definition_notification_editor_title_add=Adicionar Notifica\u00E7\u00E3o
-view_alert_definition_notification_editor_title_edit=Editar Notifica\u00E7\u00E3o
-view_alert_definition_notification_editor_sender=Remetente da Notifica\u00E7\u00E3o
-view_alert_definition_notification_editor_none_available=Remetentes n\u00E3o
dispon\u00EDveis
-view_alert_definition_notification_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel obter
remetentes
-view_alert_definition_notification_editor_loadFailed_single=N\u00E3o \u00E9 poss\u00EDvel
obter a configura\u00E7\u00E3o do remetente
-view_alert_definition_notification_editor_saveFailed=N\u00E3o foi poss\u00EDvel salvar a
configura\u00E7\u00E3o
-view_alert_definition_notification_editor_field_sender=Remetente
-view_alert_definition_notification_editor_field_configuration=Configura\u00E7\u00E3o
-view_alert_definition_notification_editor_field_configuration_not_loaded=Desconhecido
-view_alert_definition_notification_editor_field_configuration_loadFailed=Falha ao obter a
configura\u00E7\u00E3o
-view_alert_definition_notification_editor_delete_confirm=Tem certeza de que deseja
excluir as notifica\u00E7\u00F5es selecionadas?
-view_alert_definition_notification_operation_editor_mode_title=Modo de Sele\u00E7\u00E3o
do Recurso
-view_alert_definition_notification_operation_editor_mode_this=Este Recurso
-view_alert_definition_notification_operation_editor_mode_specific=Recurso
Espec\u00EDfico
-view_alert_definition_notification_operation_editor_mode_relative=Recurso parente
-view_alert_definition_notification_operation_editor_mode_unknown=OP\u00C7\u00C3O
INV\u00C1LIDA - BUG\!
-view_alert_definition_notification_operation_editor_common_operation=Opera\u00E7\u00E3o
-view_alert_definition_notification_operation_editor_specific_resource=Recurso
-view_alert_definition_notification_operation_editor_specific_pick_button=Selecionar
-view_alert_definition_notification_operation_editor_specific_pick_text=Selecione um
recurso...
-view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Favor
selecionar um recurso
-view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Selecione
um recurso que possua um ou mais opera\u00E7\u00F5es
-view_alert_definition_notification_operation_editor_relative_ancestor=Iniciar a busca a
partir de
-view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Selecione o
topo da hierarquia para buscar a \u00E1rvore de descendentes para Filtro por Tipo
-view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter a ascend\u00EAncia do tipo
-view_alert_definition_notification_operation_editor_relative_ancestor_root=Tipo do
Ancestral Raiz
-view_alert_definition_notification_operation_editor_relative_descendant=Ent\u00E3o
procure por
-view_alert_definition_notification_operation_editor_relative_descendant_tooltip=Tipo do
recurso a ser procurado a baixo do tipo raiz definido na sele\u00E7\u00E3o 'Inicia a
Pesquesa a partir de'.
-view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=Um
nome especifico para identificar unicamente um recurso quando existir mais de um do mesmo
tipo. Isso \u00E9 opcional, se definido, sempre ser\u00E1 um recurso do tipo slecionda na
hierarquia.
-view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter os tipos de descendentes
-view_alert_definition_notification_operation_editor_operations_loadFailed=Falha ao
carregar a lista de opera\u00E7\u00F5es dispon\u00EDveis
-view_alert_definition_notification_operation_editor_operations_no_parameters=Esta
opera\u00E7\u00E3o n\u00E3o recebe par\u00E2metros
-view_alert_definition_notification_role_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os perfis atuais - iniciando vazio
-view_alert_definition_notification_role_editor_restoreFailed=N\u00E3o \u00E9
poss\u00EDvel usar os perfis atuais - iniciando vazio
-view_alert_definition_notification_role_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os perfis selecionados
-view_alert_definition_notification_user_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os usu\u00E1rios atuais - iniciando vazio
-view_alert_definition_notification_user_editor_restoreFailed=N\u00E3o foi poss\u00EDvel
usar os usu\u00E1rios atuais - iniciando vazio
-view_alert_definition_notification_user_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os usu\u00E1rios seleciondados
-view_alert_definition_notification_cliScript_editor_repository=Repository
-view_alert_definition_notification_cliScript_editor_script=Script
-view_alert_definition_notification_cliScript_editor_whichUser=User To Run The Script As
-view_alert_definition_notification_cliScript_editor_thisUser=Myself
-view_alert_definition_notification_cliScript_editor_anotherUser=Another User
-view_alert_definition_notification_cliScript_editor_verifyAuthentication=Verify
-view_alert_definition_notification_cliScript_editor_loadFailed=Loading the CLI
Notification Editor Failed.
-view_alert_definition_notification_cliScript_editor_selectRepoFirst=Select a repository
first.
-view_alert_definition_notification_cliScript_editor_existingScript=Existing Script
-view_alert_definition_notification_cliScript_editor_uploadNewScript=Upload New Script
-view_alert_definition_notification_cliScript_editor_newScriptVersion=Version
-view_alert_definition_notification_cliScript_editor_selectRepo=Select the repository
where the script should reside
-view_alert_definition_recovery_editor_disable_when_fired=Desabilitar quando disparado
-view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indica se este alerta
deve ser desabilitado ap\u00F3s ser disparado. Uma vez desabilitado, o alerta pode ser
reativado manualmente ou um alerta de recupera\u00E7\u00E3o pode ser definido para
reativ\u00E1-lo automaticamente. If this alert is a recovery alert itself, this setting
cannot be turned on.
-view_alert_definition_recovery_editor_recovery_alert=Alerta de Recupera\u00E7\u00E3o
-view_alert_definition_recovery_editor_recovery_alert_tooltip=O Alerta a ser recuperado
(reativado) ap\u00F3s o disparo deste alerta. N\u00E3o selecione um alerta aqui caso
n\u00E3o esteja definindo um alerta de recupera\u00E7\u00E3o.
-view_alert_definition_recovery_editor_loadFailed=N\u00E3o foi poss\u00EDvel construir o
menu de recupera\u00E7\u00E3o
-view_alert_definition_recovery_editor_none_available=Nenhum
-view_alert_common_tab_general=Propriedades Gerais
-view_alert_common_tab_conditions=Condi\u00E7\u00F5es
-view_alert_common_tab_conditions_modal_title=Adicionar nova condi\u00E7\u00E3o.
-view_alert_common_tab_conditions_expression=Disparar alerta quando
-view_alert_common_tab_conditions_expression_tooltip=Determina se QUALQUER UMA ou TODAS as
condi\u00E7\u00F5es devem ser satisfeitas para que todo o conjunto de condi\u00E7\u00F5es
seja considerado verdadeiro.
-view_alert_common_tab_conditions_text=Condi\u00E7\u00E3o
-view_alert_common_tab_conditions_value=Valor
-view_alert_common_tab_conditions_type_availability=Mudan\u00E7a na Disponibilidade
-view_alert_common_tab_conditions_type_availability_down=Indispon\u00EDvel
-view_alert_common_tab_conditions_type_availability_up=Dispon\u00EDvel
-view_alert_common_tab_conditions_type_metric_threshold=Valor da M\u00E9trica excede o
limiar (threshold)
-view_alert_common_tab_conditions_type_metric_calltime_threshold=Tempo de chamada excede o
limiar (threshold)
-view_alert_common_tab_conditions_type_metric_calltime_destination=com o destino da
chamada correspondente
-view_alert_common_tab_conditions_type_metric_calltime_change=Mudan\u00E7a no tempo de
chamada
-view_alert_common_tab_conditions_type_metric_calltime_change_verb=ao menos
-view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Aumento
-view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Redu\u00E7\u00E3o
-view_alert_common_tab_conditions_type_metric_calltime_delta_other=Mudan\u00E7a
-view_alert_common_tab_conditions_type_metric_baseline=Valor da m\u00E9trica excede a
linha de base (baseline)
-view_alert_common_tab_conditions_type_metric_baseline_verb=de
-view_alert_common_tab_conditions_type_metric_change=Mudan\u00E7a no valor da
m\u00E9trica
-view_alert_common_tab_conditions_type_metric_trait_change=Mudan\u00E7a de
Carater\u00EDstica
-view_alert_common_tab_conditions_type_operation=Execu\u00E7\u00E3o de Opera\u00E7\u00E3o
-view_alert_common_tab_conditions_type_operation_status=resultado com status
-view_alert_common_tab_conditions_type_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
-view_alert_common_tab_conditions_type_event=Detec\u00E7\u00E3o de Envento
-view_alert_common_tab_conditions_type_event_matching=combinando com o evento de origem
-view_alert_common_tab_conditions_recovery_enabled=''{0}'' disparado para
ser reativado.
-view_alert_common_tab_conditions_recovery_disabled=Este alerta desativou a sua
defini\u00E7\u00E3o.
-view_alert_common_tab_notifications=Notifica\u00E7\u00F5es
-view_alert_common_tab_notifications_sender=Remetente
-view_alert_common_tab_notifications_status=Status
-view_alert_common_tab_notifications_message=Mensagem
-view_alert_common_tab_dampening=Sensibilidade
-view_alert_common_tab_dampening_category_none=N\u00E3o definido
-view_alert_common_tab_dampening_category_none_tooltip=Sensibilidade desabilitada. Cada
vez que o conjunto de condi\u00E7\u00F5es for satisfeito, um alerta ser\u00E1 disparado.
-view_alert_common_tab_dampening_category_consecutive_count=Consecutivos
-view_alert_common_tab_dampening_category_consecutive_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias consecutivas em que o conjunto de condi\u00E7\u1E4Des
for satisfeito.
-view_alert_common_tab_dampening_category_partial_count=\u00DAltimas N
verifica\u00E7\u00F5es
-view_alert_common_tab_dampening_category_partial_count_tooltip=Um alerta \u00E9 disparado
a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9 satisfeito
durante as \u00FAltimas N verifica\u00E7\u00F5es.
-view_alert_common_tab_dampening_category_duration_count=Per\u00EDodo de Tempo
-view_alert_common_tab_dampening_category_duration_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9
satisfeito dentro de um dado per\u00EDodo de tempo.
-view_alert_common_tab_dampening_consecutive_occurrences_label=Ocorr\u00EAcias
-view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=O n\u00FAmero de
vezes que o conjunto de condi\u00E7\u00F5es deve ser satisfeito antes do alerta ser
disparado.
-view_alert_common_tab_dampening_partial_occurrences_label=Ocorr\u00EAncias
-view_alert_common_tab_dampening_partial_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante as \u00FAltimas N
verifica\u00E7\u00F5es antes do alerta ser disparado.
-view_alert_common_tab_dampening_partial_evalatuions_label=Verifica\u00E7\u00F5es
-view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=O total de vezes que o
conjunto de condi\u00E7\u00F5es ser\u00E1 testado para certificar-se de que o n\u00FAmero
de ocorr\u00EAncias definido foi satisfeito.
-view_alert_common_tab_dampening_duration_occurrences_label=Ocorr\u00EAncias
-view_alert_common_tab_dampening_duration_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante o per\u00EDodo de tempo
definido antes do alerta ser disparado.
-view_alert_common_tab_dampening_duration_period_label=Per\u00EDodo de Tempo
-view_alert_common_tab_dampening_duration_period_label_tooltip=Espa\u00E7o de tempo em que
o conjunto de condi\u00E7\u00F5es ser\u00E1 testado para verificar se o n\u00FAmero de
ocorr\u00EAncias definido \u00E9 satisfeito.
-view_alert_common_tab_recovery=Recupera\u00E7\u00E3o~
-view_alert_common_tab_invalid_condition_category=Categoria de condi\u00E7\u00E3o
inv\u00E1lida - favor reportar como um bug\: {0}
-view_alert_common_tab_invalid_dampening_category=Categora de sensibilidade inv\u00E1lida
- favor reportar como um bug\: {0}
-view_alert_common_tab_invalid_time_units=Unidade de tempo inv\u00E1lida - favor reportar
como um bug\: {0}
-
-# Auto Discovery Queue
-#----------------------------
-view_autoDiscoveryQ_title=Fila de Autodescoberta
-view_autoDiscoveryQ_import=Importar
-view_autoDiscoveryQ_ignore=Ignorar
-view_autoDiscoveryQ_ignored=Ignorado
-view_autoDiscoveryQ_unignore=N\u00E3o ignorar
-view_autoDiscoveryQ_committed=Committed
-view_autoDiscoveryQ_deleted=Deleted
-view_autoDiscoveryQ_uninventoried=Uninventoried
-view_autoDiscoveryQ_new=Novo
-view_autoDiscoveryQ_newAndIgnored=Novo e Ignorado
-view_autoDiscoveryQ_importFailure=Falha ao importar recursos
-view_autoDiscoveryQ_importSuccessful=Os recursos selecionados foram importados com
sucesso.
-view_autoDiscoveryQ_ignoreFailure=Falha ao ignorar recursos.
-view_autoDiscoveryQ_ignoreSuccessful=Os recursos selecionados foram ignorados com
sucesso.
-view_autoDiscoveryQ_unignoreFailure=Falha ao reimportar os recursos
-view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected
resources.~
-view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See
Administrator to change)~
-view_autoDiscoveryQ_noItems=N\u00E3o h\u00E1 itens a serem mostrados
-view_autoDiscoveryQ_field_parentId=ID Pai
-view_autoDiscoveryQ_field_name=Nome do Recurso
-view_autoDiscoveryQ_field_key=Chave do Recurso
-view_autoDiscoveryQ_field_discoveryTime=Data e Hora da Descoberta
-view_autoDiscoveryQ_field_inventoryStatus=Status do Invet\u00E1rio
-view_autoDiscoveryQ_loadFailure=Falha ao carregar a fila de descoberta do
invent\u00E1rio
-view_autoDiscoveryQ_showStatus=Show
-view_autoDiscoveryQ_confirmSelect=Also select the platform children?
-
-#==================== Bundles ======================
-
-# some common bundle terms
-view_bundle_bundle=Bundle~
-view_bundle_bundles=Bundles~
-view_bundle_bundleDestinations=Bundle Destinations~
-view_bundle_bundleDeployment=Bundle Deployment~
-view_bundle_bundleDeployments=Bundle Deployments~
-view_bundle_bundleFiles=Bundle Files~
-view_bundle_bundleType=Bundle Type~
-view_bundle_bundleVersion=Bundle Version~
-view_bundle_bundleVersions=Bundle Versions~
-view_bundle_deploy=Deploy~
-view_bundle_deployed=Deployed~
-view_bundle_deployDir=Deploy Directory~
-view_bundle_deployments=Deployments~
-view_bundle_destinations=Destinations~
-view_bundle_files=Files~
-view_bundle_latestVersion=Latest Version~
-view_bundle_recipe=Recipe~
-view_bundle_revert=Revert~
-view_bundle_purge=Purge
-view_bundle_versions=Versions~
-view_bundle_deleteConfirm=Are you sure you want to delete this bundle? All versions,
destinations and deployments for this bundle will also be deleted.
-
-# individual bundle views/wizards
-view_bundle_fileListView_fileSize=File Size~
-view_bundle_fileListView_md5=MD5
-view_bundle_fileListView_sha256=SHA256
-view_bundle_fileListView_loadFailure=Failed to load bundle file data~
-view_bundle_version_backToBundle=Back to Bundle~
-view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
-view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the
bundle version tags~
-view_bundle_version_deleteConfirm=Are you sure you want to delete this bundle version?
-view_bundle_version_deleteFailure=Failed to delete the bundle version [{0}]
-view_bundle_version_deleteSuccessful=You successfully deleted the bundle version [{0}]
-view_bundle_version_loadFailure=Failed to load bundle version~
-view_bundle_tree_loadFailure=Failed to load bundle data~
-view_bundle_revertWizard_title=Bundle Revert~
-view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
-view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
-view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
-view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
-view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}~
-view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)~
-view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment
name~
-view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
-view_bundle_revertWizard_confirmStep_noLiveDeployment_concise=No live deployment was
found for the destination
-view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for
the destination [{0}]~
-view_bundle_revertWizard_confirmStep_noPriorDeployment_concise=The live deployment cannot
be reverted because there is no prior deployment
-view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot
be reverted because there is no prior deployment for the destination [{1}]~
-view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live
deployment; cannot revert~
-view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
-view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
-view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous
Deployment. Click "Next" to continue...~
-view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
-view_bundle_revertWizard_revertStep_reverting=Reverting...~
-view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert
deployment!~
-view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to
revert the bundle deployment [{0}] from resource group [{1}]~
-view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert
deployment!~
-view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
-view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
-view_bundle_list_versionsCount=Versions Count~
-view_bundle_list_destinationsCount=Destinations Count~
-view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version
data~
-view_bundleVersion_loadFailure=Failed to load bundle version data~
-view_bundle_list_backToAll=Back to All Bundles~
-view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
-view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
-view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
-view_bundle_list_deletesFailure=Failed to delete the bundles
-view_bundle_list_deletesSuccessful=You successfully deleted the bundles
-view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
-view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
-view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
-view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
-view_bundle_list_error3=Failed to load bundle~
-view_bundle_dest_group=Group~
-view_bundle_dest_created=Created~
-view_bundle_dest_deployDir=Deploy Directory~
-view_bundle_dest_lastDeployedVersion=Last Deployed Version~
-view_bundle_dest_lastDeploymentDate=Last Deployment Date~
-view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
-view_bundle_dest_loadFailure=Failed to load bundle destinations~
-view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed
version information~
-view_bundle_dest_backToBundle=Back to Bundle~
-view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
-view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination
tags~
-view_bundle_dest_purgeConfirm=This will purge the bundle content from all remote
machines. Are you sure you want to do this?
-view_bundle_dest_purgeFailure=Failed to purge the bundle destination [{0}] from some or
all of the remote machines.
-view_bundle_dest_purgeSuccessful=You successfully purged the bundle destination [{0}]
from all of the remote machines.
-view_bundle_dest_revertConfirm=This will revert all remote machines back to the previous
bundle deployment. Are you sure you want to do this?
-view_bundle_dest_deleteConfirm=Are you sure you want to delete this bundle destination?
This only deletes it from the database; all bundle content that was deployed to this
destination on remote machines will remain.
-view_bundle_dest_deleteFailure=Failed to delete the bundle destination [{0}]
-view_bundle_dest_deleteSuccessful=You successfully deleted the bundle destination [{0}]
-view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
-view_bundle_deploy_name=Deployment Name~
-view_bundle_deploy_time=Deployment Time~
-view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
-view_bundle_deploy_action=Action~
-view_bundle_deploy_installDetails=Install Details~
-view_bundle_deploy_backButton=Back to Destination~
-view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
-view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle
deployment tags~
-view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
-view_bundle_deploy_selectARow=Select a row to show installation details~
-view_bundle_deploy_operatingSystem=Operating System~
-view_bundle_deploy_loadFailure=Failed to load bundle deployment~
-view_bundle_deploy_loadBundleFailure=Failed to find bundle~
-view_bundle_deploy_deployedBy=Deployed By
-view_bundle_deploy_clickForError=Click the icon for the error message
-view_bundle_deploy_deleteConfirm=Are you sure you want to delete this bundle deployment?
-view_bundle_deploy_deleteFailure=Failed to delete the bundle deployment [{0}]
-view_bundle_deploy_deleteSuccessful=You successfully deleted the bundle deployment [{0}]
-view_bundle_createWizard_title=Create Bundle~
-view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
-view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}],
version=[{1}]~
-view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle
[{0}], version=[{1}] - the bundle may still exist in the database~
-view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must
deploy a valid plugin that supports bundle deployments~
-view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
-view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from
server~
-view_bundle_createWizard_enterUrl=Please enter a valid URL where the bundle distribution
file can be downloaded from
-view_bundle_createWizard_enterRecipe=Please supply a valid recipe
-view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several
minutes for large files~
-view_bundle_createWizard_uploadStepName=Provide a Bundle Distribution~
-view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded
for this bundle~
-view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
-view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution
file~
-view_bundle_createWizard_bundleDistro=Bundle Distribution~
-view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a
bundle!
-view_bundle_createWizard_urlOption=URL~
-view_bundle_createWizard_uploadOption=Upload~
-view_bundle_createWizard_recipeOption=Recipe~
-view_bundle_createWizard_provideBundleDistro=Provide a Bundle Distribution
-view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
-view_bundle_createWizard_createFailure=Failed to create the bundle~
-view_bundle_createWizard_createSuccessful=You have successfully created a bundle named
[{0}] with a version of [{1}]~
-
-view_bundle_deployWizard_deploying=Deploying...~
-view_bundle_deployWizard_deployStep=Deploy Bundle to Destination Platforms~
-view_bundle_deployWizard_deploymentCreated=Created Deployment...~
-view_bundle_deployWizard_deploymentCreatedDetail=Created deployment [{0}] description
[{1}]~
-view_bundle_deployWizard_deploymentCreatedDetail_concise=You have created the deployment
[{0}]
-view_bundle_deployWizard_destinationCreatedDetail=Created destination [{0}] description
[{1}]~
-view_bundle_deployWizard_destinationCreatedDetail_concise=You have created the
destination [{0}]
-view_bundle_deployWizard_deploymentScheduled=Bundle Deployment Scheduled!~
-view_bundle_deployWizard_deploymentScheduledDetail=Scheduled bundle deployment [{0}]
destination group [{1}]~
-view_bundle_deployWizard_deploymentScheduledDetail_concise=You have scheduled the bundle
deployment
-view_bundle_deployWizard_error_1=Failed to delete new deployment on Cancel:
-view_bundle_deployWizard_error_2=Failed to delete new destination on Cancel:
-view_bundle_deployWizard_error_3=Failed to Schedule Deployment!~
-view_bundle_deployWizard_error_4=Failed to schedule deployment: {0}~
-view_bundle_deployWizard_error_5=Failed to Create Deployment!~
-view_bundle_deployWizard_error_6=Failed to create deployment: {0}~
-view_bundle_deployWizard_error_7=Failed to get deployment name.~
-view_bundle_deployWizard_error_8=You must select a valid resource group from the drop
down~
-view_bundle_deployWizard_error_9=Failed to delete new destination in nextPage:~
-view_bundle_deployWizard_error_10=Failed to create destination, it may already exist.
(Note, for an existing destination deploy from the Destination view)~
-view_bundle_deployWizard_error_11=Failed to find defined deployments.~
-view_bundle_deployWizard_error_12=Failed to find defined bundles.~
-view_bundle_deployWizard_getConfigStep=Set Deployment Configuration~
-view_bundle_deployWizard_getConfigSkip=No configuration needed for this bundle version.~
-view_bundle_deployWizard_getDestStep=New Destination~
-view_bundle_deployWizard_getDest_name=Destination Name~
-view_bundle_deployWizard_getDest_desc=Destination Description~
-view_bundle_deployWizard_getDest_deployDir=Root Deployment Directory (on destination
platforms)~
-view_bundle_deployWizard_getInfoStep=Provide Deployment Information~
-view_bundle_deployWizard_getInfo_clean=Clean Deployment? (wipe deploy directory on
destination platform)~
-view_bundle_deployWizard_getInfo_deploymentDesc=Deployment Description~
-view_bundle_deployWizard_getInfo_deploymentName=Deployment Name~
-view_bundle_deployWizard_getOptionsStep=Deploy Options~
-view_bundle_deployWizard_getOptions_deployLater=Deploy Later~
-view_bundle_deployWizard_getOptions_deployNow=Deploy Now~
-view_bundle_deployWizard_getOptions_deployTime=Deployment Time~
-view_bundle_deployWizard_selectBundleStep=Select Deployment Bundle~
-view_bundle_deployWizard_selectBundle_single=Select only a single bundle for
deployment.~
-view_bundle_deployWizard_selectVersionStep=Select Deployment Bundle Version~
-view_bundle_deployWizard_selectVersion_latest=Latest Version [{0}]~
-view_bundle_deployWizard_selectVersion_live=Live Version [{0}]~
-view_bundle_deployWizard_selectVersion_select=Select Version from List:~
-view_bundle_deployWizard_title=Bundle Deployment Wizard~
-
-# =================== Measurement Views =====================
-
-view_measureTable_chartMetricValues=Chart Selected Metrics
-view_measureTable_getLive=Get Live Value
-view_measureTable_getLive_failure=Cannot get live values for those metrics. Make sure the
agent is running and the managed resource is up.
-view_measureTable_live_title=Live Data
-
-# =================== Components =====================
-
-view_configCompare_comparingConfigs=Comparando Configura\u00E7\u00F5es
-view_configCompare_configCompare=Compara\u00E7\u00E3o de Configura\u00E7\u00F5es
-
-view_configEdit_addItem=Adicionar Item \u00E0 Lista
-view_configEdit_confirm_1=Tem certeza de que deseja excluir as propriedades
selecionadas?
-view_configEdit_confirm_2=Tem certeza de que deseja excluir esta linha?
-view_configEdit_confirm_3=Tem certeza de que deseja excluir [{0}] selecionado [{1}]?
-view_configEdit_viewRow=View Row
-view_configEdit_editRow=Editar Linha de Configura\u00E7\u00E3o
-view_configEdit_enterPropName=Informe o nome da propriedade a ser adicionada.
-view_configEdit_error_1=Este recurso n\u00E3o suporta Configura\u00E7\u00E3o.
-view_configEdit_error_2=Este recurso n\u00E3o possui suporte \u00E0 propriedades de
conex\u00E3o.
-view_configEdit_error_3=N\u00E3o f\u00F3 poss\u00EDvel adicionar a propriedade com nome
[{0}]. Nome de propriedade j\u00E1 utilizada neste conjunto.
-view_configEdit_files=Arquivos
-view_configEdit_hideAll=Ocultar todos
-view_configEdit_jumpToSection=Ir direto para a Sele\u00E7\u00E3o
-view_configEdit_msg_1=Propriedade [{0}] adicionada ao conjunto.
-view_configEdit_msg_2=Propriedades removidas do conjunto.
-view_configEdit_msg_3=[{0} {1}] removido da lista.
-view_configEdit_msg_4=Item adicionado \u00E0 lista.
-view_configEdit_properties=Propriedades
-view_configEdit_tooltip_1=Remove os itens selecionados da lista.
-view_configEdit_tooltip_2=Adiciona um item \u00E0 lista.
-
-view_groupConfigEdit_member=Membro
-view_groupConfigEdit_noListProps=Lista de propriedades n\u00E3o suportada atualmente para
configura\u00E7\u00F5es em grupo.
-view_groupConfigEdit_tooltip_1=Valores dos membros diferem - clique no \u00EDcone para
edit\u00E1-los.
-view_groupConfigEdit_setAll=Atribuir todos os valores \u00E0\:
-view_groupConfigEdit_unset=Remover atribui\u00E7\u00E3o
-view_groupConfigEdit_valsDiff=valores dos membros diferem
-view_groupConfigEdit_valsDiffForProp=Valores dos membros para a Propriedade [{0}]
-
-view_leftNav_unknownPage=P\u00E1gina desconhecida [{0}] para a se\u00E7\u00E3o [{1}] -
URL inv\u00E1lida.
-
-view_measure_nan=--dados indispon\u00EDveis--
-
-# Measurement Range Selector
-view_measureRange_last=\u00DAltimo
-view_measureRange_start=Time Range - Start
-view_measureRange_simple=Simples...
-
-view_selector_assigned=Associado {0}
-view_selector_available=Dispon\u00EDvel {0}
-
-view_subTab_error_disabled=N\u00E3o \u00E9 poss\u00EDvel selecionar uma subTab
desabilidada [{0}].
-
-view_table_drawFail=Failed to draw Table [{0}].
-view_table_matchingRows=Matching Rows: {0} (selected: {1})
-view_table_totalRows=Total de Linhas\: {0} (selecionada\: {1})
-view_tableSection_backButton=Voltar \u00E0 Lista
-view_tableSection_error_noId=Table [{0}] record is missing 'id' attribute -
please report this bug.~
-view_tableSection_error_badId=Can not show detail for [{0}]. Illegal 'id': [{1}].
Please report this bug~
-
-view_tags_tags=Tags~
-view_tags_error_1=Failed to load Tags~
-view_tags_tooltip_1=Click to remove this Tag~
-view_tags_tooltip_2=Click to edit Tags~
-view_tags_tooltip_3=Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g.
it:env=QA, or owner=John)
-
-# File Upload (various)
-view_upload_alreadyUploaded=File has already been uploaded~
-view_upload_bundleDistFile=Distribution File~
-view_upload_error_bundleDistFile=Error uploading Bundle Distribution File~
-view_upload_error_file=Error uploading file~
-view_upload_error_fileName=Error uploading file [{0}]~
-view_upload_error_fileName_2=Error uploading file [{0}], check for invalid file path.~
-view_upload_error_packageVersionFile=Error uploading Package Version File~
-view_upload_error_results=Error uploading file, unexpected results: [{0}]~
-view_upload_inProgress=Can not submit, upload is currently in progress~
-view_upload_prompt_1=[{0}] File to Upload~
-view_upload_prompt_2=File to Upload~
-view_upload_tooltip_1a=Select a file to upload, then click Upload or Next
-view_upload_tooltip_1b=Select a file to upload, then click Next
-view_upload_tooltip_2=File upload had previously failed~
-view_upload_success=File successfully uploaded~
-view_upload_upload=Upload~
-view_upload_uploadFile=UploadFile~
-
-# Group Create Wizard
-view_groupCreateWizard_membersStepName=Select Members~
-view_groupCreateWizard_createStepName=Group Settings~
-view_groupCreateWizard_createStep_recursive=Recursive~
-view_groupCreateWizard_title=Create Group~
-view_groupCreateWizard_windowTitle=Create Group~
-view_groupCreateWizard_createFailure=Failed to create the resource group~
-view_groupCreateWizard_createSuccessful_concise=You have created a new resource group.
[<a href="{0}">View Group</a>]~
-view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group
with the name [{1}] that contains [{2}] member resources~
-
-# Resource Type / Plugin View/Datasources
-view_type_resourceTypes=Resource Types~
-view_type_parentId=Parent ID~
-view_type_typeTreeLoadFailure=Failed to load resource type tree data~
-
-# Tabs
-view_tabs_invalidSubTab=Invalid subtab: {0}
-view_tabs_invalidTab=Invalid tab: {0}
-
-# Group Tree
-group_tree_partialClusterTooltip={0} out of {1} group members have a
''{2}'' resource
-
-#=================== Dashboard =====================
-view_dashboard_favorites_error1=Failed to load favorite Resources.~
-view_dashboardManager_error=Failed to save dashboard to server~
-view_dashboardManager_saved=Saved dashboard {0} to server~
-view_dashboardManager_success=Saved dashboard~
-view_dashboardManager_deleteFail=Failed to delete dashboard.
-view_dashboardManager_deleted=Successfully deleted dashboard {0}~
-view_dashboards_title=Dashboard~
-view_dashboards_confirm1=Are you sure you want to delete~
-view_dashboards_portlets_refresh_fail1=Failed to update interval for portlets that
auto-refresh
-view_dashboards_portlets_refresh_fail2=Failed to disable reload for portlets that
auto-refresh
-view_dashboards_portlets_refresh_none=No Refresh
-view_dashboards_portlets_refresh_one_min=1 minute
-view_dashboards_portlets_refresh_multiple_min={0} minutes
-view_dashboards_portlets_refresh_success1=Updated interval for portlets that
auto-refresh
-view_dashboards_portlets_refresh_success2=Stopping reload for portlets that auto-refresh
-view_dashboardsManager_error1=Failed to add new dashboard~
-view_dashboardsManager_message_title_details=<h1>Welcome to
RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems
management suite that provides extensible and integrated systems management for multiple
products and platforms across a set of core features. The project is designed with layered
modules that provide a flexible architecture for deployment. It delivers a core user
interface that delivers audited and historical management across an entire enterprise. A
Server/Agent architecture provides remote management and plugins implement all specific
support for managed products.</p>\n <p>This default dashboard can be edited by
clicking the (edit mode) button above.</p>~
-
-view_portlet_factory_invalidPortlet=This is an obsolete portlet that is no longer valid.
Please delete it.
-
-view_portlet_defaultName_autodiscovery=Discovery Queue
-view_portlet_defaultName_favoriteResources=Favorite Resources
-view_portlet_defaultName_resourceMetric=Resource Metric Graph
-view_portlet_defaultName_groupMetric=Resource Group Metric Graph
-view_portlet_defaultName_inventorySummary=Inventory Summary
-view_portlet_defaultName_mashup=Mashup
-view_portlet_defaultName_message=Message
-view_portlet_defaultName_operations=Recent Operations
-view_portlet_defaultName_platformSummary=Platform Utilization
-view_portlet_defaultName_problemResources=Alerted or Unavailable Resources
-view_portlet_defaultName_recentAlerts=Recent Alerts
-view_portlet_defaultName_recentlyAddedResources=Recently Added Resources
-view_portlet_defaultName_tagCloud=Tag Count
-
-view_portlet_defaultName_group_alerts=Group: Alerts
-view_portlet_defaultName_group_bundles=Group: Bundle Deployments
-view_portlet_defaultName_group_config_updates=Group: Configuration Updates
-view_portlet_defaultName_group_events=Group: Event Counts
-view_portlet_defaultName_group_metrics=Group: Metrics
-view_portlet_defaultName_group_oobs=Group: OOB Conditions
-view_portlet_defaultName_group_operations=Group: Operations
-view_portlet_defaultName_group_pkg_hisory=Group: Package History
-view_portlet_defaultName_resource_alerts=Resource: Alerts
-view_portlet_defaultName_resource_bundles=Resource: Bundle Deployments
-view_portlet_defaultName_resource_config_updates=Resource: Configuration Updates
-view_portlet_defaultName_resource_events=Resource: Event Counts
-view_portlet_defaultName_resource_metrics=Resource: Measurements
-view_portlet_defaultName_resource_oobs=Resource: OOB Metrics
-view_portlet_defaultName_resource_operations=Resource: Operations
-view_portlet_defaultName_resource_pkg_hisory=Resource: Package History
-
-view_portlet_help_autodiscovery=This portlet allows import or ignore of newly discovered
resources. Imported resources are added to inventory for monitoring and management.
Ignored resources are not imported and are hidden from view unless explicitly unignored.
-view_portlet_help_bundle_deps=This portlet shows relevant bundle deployments based on
display criteria configured.
-view_portlet_help_config_updates=This portlet displays recent configuration changes
consistent with configuration settings.
-view_portlet_help_eventcounts=This portlet displays Event counts consistent with display
criteria configured.
-view_portlet_help_favoriteResources=This portlet displays the current user''s
favorite resources.
-view_portlet_help_graph=This portlet displays the resource metric graph.
-view_portlet_help_inventorySummary=This portlet displays a short summary of the current
user''s viewable inventory and metric collection rate.
-view_portlet_help_mashup=This portlet displays the returned content of a remote HTTP
request (via an iframe).
-view_portlet_help_metrics=This portlet graphs relevant recent metric data based on
display criteria configured.
-view_portlet_help_message=This portlet displays a static HTML message. The
<i>message</i> property must be configured.
-view_portlet_help_oobs=This portlet displays OOB(Out of Bound) metric conditions.
-view_portlet_help_operations=This portlet displays the most recently executed operations
for the current user''s inventory.
-view_portlet_help_scheduledOperations=This portlet displays the next scheduled operations
for the current user''s inventory.
-view_portlet_help_operations_criteria=This portlet displays Operations consistent with
display criteria configured.
-view_portlet_help_pkg_history=This portlet shows relevant package history based on
display criteria configured.
-view_portlet_help_platformSummary=This portlet displays utilization data (such as current
CPU and memory usage) for platform resources that are accessible by the current user.
-view_portlet_help_problemResources=This portlet displays the current user''s
alerted or unavailable resources.
-view_portlet_help_recentAlerts=This portlet displays alerts recently fired on the current
user''s viewable inventory.
-view_portlet_help_recentlyAdded=This portlet displays resources that have recently been
imported into inventory.
-view_portlet_help_tagCloud=This portlet displays the relative tag counts for the current
user''s inventory.
-view_portlet_help_none=There is no help available for this portlet.
-
-view_portlet_configure_needed=Click the Settings button to configure this portlet.
-view_portlet_configure_notNeeded=Configuration is not necessary for this portlet.
-view_portlet_configure_definitionTitle=Portlet Configuration
-view_portlet_configure_definitionDesc=The configuration settings for the portlet.
-
-view_portlet_autodiscovery_setting_platforms=discovered platforms
-
-view_portlet_graph_configure_resource_graph=The resource to graph~
-view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
-
-view_portlet_inventory_error1=Failed to retrieve inventory summary~
-view_portlet_inventory_tooltip_expand=Click to show more details for this resource.
-view_portlet_inventory_tooltip_collapse=Click to hide details for this resource.
-
-view_portlet_message_title=Message~
-
-view_portlet_operations_config_completed_maximum=Maximum number of Completed operations
to display.~
-view_portlet_operations_config_completed_enable=Whether to enable completed operations
results grouping for dashboard.~
-view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations
results grouping for dashboard.~
-view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations
to display.~
-view_portlet_operations_config_completed=completed operations~
-view_portlet_operations_config_show_last=show Last~
-view_portlet_operations_config_show_next=show Next~
-view_portlet_operations_disabled=(Results currently disabled. Change settings to enable
results.~
-
-view_portlet_platform_platform_error_1=Failed to load platform metrics~
-view_portlet_platform_type_error_1=Could not load type data~
-
-view_portlet_problemResources_config_display_maximum=Maximum number of Problem resources
to display.
-view_portlet_problemResources_config_display_range=Show problem resources going back this
many hours.
-view_portlet_problemResources_config_display_range2=From {0} to {1}
-view_portlet_problemResources_maxDisplaySetting=maximum resources.
-
-view_portlet_recentAlerts_config_members=Select Members~
-view_portlet_recentAlerts_config_priority_label=priority Alerts,~
-view_portlet_recentAlerts_config_when=within the past~
-view_portlet_recentAlerts_fail_msg=Failed to load resources assigned for alert
filtering.
-
-view_portlet_recentlyAdded_setting_addedPlatforms=recently added platforms
-view_portlet_recentlyAdded_error1=Failed to load recently added resources~
-view_portlet_results_empty=No results found using specified criteria.
-
-# =================== Inventory =====================
-view_inventory_adq=Discovery Queue~
-view_inventory_sectionHelp=From this section, newly discovered Resources, inventoried
Resources, and Groups can be viewed and managed.~
-view_inventory_problemGroups=Problem Groups~
-view_inventory_collectionInterval=Collection Interval~
-view_inventory_mixed=mixed~
-view_inventory_unavailableServers=Unavailable Servers
-view_inventory_groups=Groups~
-view_inventory_allGroups=All Groups~
-view_inventory_allResources=All Resources~
-view_inventory_platforms=Platforms~
-view_inventory_servers=Servers~
-view_inventory_services=Services~
-view_inventory_summary_agent_error1=Failed to locate agent managing resource id~
-view_inventory_summary_agent_error2=Failed to ping agent managing resource id~
-view_inventory_summary_agent_error3=You do not have permission to view details for this
Agent.
-view_inventory_summary_agent_fullEnpoint=Full Endpoint~
-view_inventory_summary_agent_fullEnpoint_err1=!No remote endpoint associated with this
resource!~
-view_inventory_summary_agent_last_title=Last Received Availability Report~
-view_inventory_summary_agent_status_title=Agent Communications Status~
-view_inventory_summary_agent_title=Agent Managing this Resource~
-view_inventory_dynagroupDefs=Dynagroup Definitions~
-view_metric_traits=Traits~
-view_metric_viewTraitHistory=Value History for Trait [{0}]~
-view_inventory_eventHistory_groupEventHistory=Group Event History~
-view_inventory_eventHistory_resourceEventHistory=Resource Event History~
-view_inventory_eventHistory_sourceFilter=Source Filter~
-view_inventory_eventHistory_detailsFilter=Details Filter~
-view_inventory_eventHistory_severityFilter=Severity Filter~
-view_inventory_eventHistory_timestamp=Timestamp~
-view_inventory_eventHistory_severity=Severity~
-view_inventory_eventHistory_details=Details~
-view_inventory_eventHistory_sourceLocation=Source Location~
-view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events
for [{1}]~
-view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
-view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for
[{1}]~
-view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
-view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
-view_inventory_groups_resourceGroups=Resource Groups~
-view_inventory_groups_children=Children~
-view_inventory_groups_descendants=Descendants~
-view_inventory_groups_deleteSuccessful=You have successfully deleted the selected
resource groups~
-view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
-view_inventory_groups_loadFailed=Failed to load group composite data~
-view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not
accessible~
-view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected
resources?~
-view_inventory_resources_deleteSuccessful=You have successfully deleted the selected
resources~
-view_inventory_resources_deleteFailed=Failed to delete the selected resources~
-view_inventory_resources_uninventoryConfirm=Are you sure you want to uninventory the
selected resources? Note that if a selected resource still exists, then it will get
rediscovered during its agent''s next discovery scan.
-view_inventory_resources_uninventorySuccessful=You have successfully uninventoried the
selected resources
-view_inventory_resources_uninventoryFailed=Failed to uninventory the selected resources
-view_inventory_resources_loadFailed=Failed to load resource composite data~
-view_inventory_resources_title=Member Resources~
-view_inventory_resources_title_children=Child Resources~
-view_inventory_resources_title_members=Member Resources~
-view_resource_inventory_activity_changed_by=Changed by
-view_resource_inventory_activity_criteria_no_recent_events=No event counts based off
display criteria.
-view_resource_inventory_activity_no_recent_alerts=No recent alerts
-view_resource_inventory_activity_no_recent_bundle_deploy=No recent bundle deployments
-view_resource_inventory_activity_no_recent_config_history=No configuration change
history
-view_resource_inventory_activity_no_recent_events=No events in the last 24 hours
-view_resource_inventory_activity_no_recent_metrics=This resource has no recent metrics
-view_resource_inventory_activity_no_recent_oob=No OOB conditions found
-view_resource_inventory_activity_no_recent_operations=No recent operation history
-view_resource_inventory_activity_no_recent_pkg_history=No recent package history
-view_resource_inventory_childhistory_createdChild=Created Child
-view_resource_inventory_childhistory_deletedChild=Deleted Child
-view_resource_inventory_childhistory_status_invalidArtifact=Invalid Artifact
-view_resource_inventory_childhistory_status_invalidConfig=Invalid Configuration
-view_resource_inventory_childhistory_filterTitle=Past N Days
-view_resource_monitor_availability_loadFailed=Failed to load availability history~
-view_resource_monitor_graphs_noneAvailable=No graphs available~
-view_resource_monitor_graphs_loadFailed=Failed to load graph data~
-view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
-view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
-view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
-view_resource_monitor_table_min=Minimum
-view_resource_monitor_table_max=Maximum
-view_resource_monitor_table_avg=Average
-view_resource_monitor_table_last=Last
-view_resource_monitor_table_alerts=Alerts
-view_resource_monitor_detailed_graph_label=Detailed Graph~
-view_resource_monitor_calltime_title=Call Time Data~
-view_resource_monitor_calltime_destination=Call Destination~
-view_resource_monitor_calltime_count=Count~
-view_resource_monitor_calltime_minimum=Minimum~
-view_resource_monitor_calltime_average=Average~
-view_resource_monitor_calltime_maximum=Maximum~
-view_resource_monitor_calltime_total=Total~
-view_resource_monitor_calltime_loadFailed=Could not load call time data~
-view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
-view_resource_monitor_calltime_editFailed=Call time data can not be edited~
-view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
-view_resource_title_tagUpdateFailed=Failed to update resource tags~
-view_resource_title_component_errors_tooltip=Shows managed component errors. Click for
details~
-view_tree_common_loadFailed_generic=Failed to load data for tree~
-view_tree_common_loadFailed_root=Failed to load root for tree~
-view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
-view_tree_common_loadFailed_children=Failed to load children for node~
-view_tree_common_createFailed_autoCluster=Failed to create or update autocluster backing
group
-view_tree_common_loadFailed_group=Failed to load group with id [{0}]
-view_tree_common_loadFailed_groupTree=Failed to load group tree
-view_tree_common_loadFailed_selection=Failed to select this node~
-view_tree_common_loadFailed_node=Failed to load data for this node~
-view_tree_common_loadFailed_create=Failed to create view for this node~
-view_tree_common_loadFailed_update=Failed to update view for this node~
-view_tree_common_contextMenu_loadFail_children=Failed to load platform manual add
children
-view_tree_common_contextMenu_loadFail_dashboards=Failed to load user dashboards
-view_tree_common_contextMenu_loadFail_group=Failed to load group for context menu
-view_tree_common_contextMenu_type_name_label=Type: {0}
-view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
-view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
-view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource
Configuration~
-view_tree_common_contextMenu_operations=Operations~
-view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running
operations~
-view_tree_common_contextMenu_measurements=Measurements~
-view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
-view_tree_common_contextMenu_resourceGraph=Resource Metric Graph
-view_tree_common_contextMenu_groupGraph=Group Metric Graph
-view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard
[{0}]~
-view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
-view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
-view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual
add children~
-view_tree_group_error_updateAutoCluster=Failed to create or update autocluster backing
group. key: [{0}]
-view_tabs_common_activity=Activity
-view_tabs_common_agent=Agent
-view_tabs_common_summary=Summary~
-view_tabs_common_overview=Overview~
-view_tabs_common_dashboard=Dashboard~
-view_tabs_common_timeline=Timeline~
-view_tabs_common_monitoring=Monitoring~
-view_tabs_common_graphs=Graphs~
-view_tabs_common_tables=Tables~
-view_tabs_common_traits=Traits~
-view_tabs_common_availability=Availability~
-view_tabs_common_schedules=Schedules~
-view_tabs_common_calltime=Calltime~
-view_tabs_common_inventory=Inventory~
-view_tabs_common_groups=Groups~
-view_tabs_common_members=Members~
-view_tabs_common_group_members=Group Members
-view_tabs_common_group_membership=Group Membership~
-view_tabs_common_child_resources=Child Resources~
-view_tabs_common_child_history=Child History~
-view_tabs_common_connectionSettings=Connection Settings~
-view_tabs_common_connectionSettingsHistory=Connection Settings History~
-view_tabs_common_operations=Operations~
-view_tabs_common_schedule=Schedule
-view_tabs_common_history=History~
-view_tabs_common_alerts=Alerts~
-view_tabs_common_definitions=Definitions~
-view_tabs_common_current=Current~
-view_tabs_common_events=Events~
-view_tabs_common_configuration=Configuration~
-view_tabs_common_content=Content~
-view_tabs_common_deployed=Deployed~
-view_tabs_common_new=New~
-view_tabs_common_subscriptions=Subscriptions~
-view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
-view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
-view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
-view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
-view_titleBar_common_clickToAddFav=Click to add this as a favorite~
-view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
-view_titleBar_common_addedFav=You have added [{0}] as a favorite~
-view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
-view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
-view_titleBar_group_failInfo=Failed to get general info on group [{0}] with ID [{1}]
-view_titleBar_group_summary_collapsedTooltip=Click to show more details for this group
-view_titleBar_group_summary_expandedTooltip=Click to hide details for this group
-view_dynagroup_expressionSet=Expression Set~
-view_dynagroup_recalculationInterval=Recalculation Interval~
-view_dynagroup_lastCalculationTime=Last Calculation Time~
-view_dynagroup_nextCalculationTime=Next Calculation Time~
-view_dynagroup_definitionCreated=You have successfully created a group definition named
[{0}]~
-view_dynagroup_definitionLoadFailure=Failed to load group definitions~
-view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
-view_dynagroup_saveSuccessful=You have successfully saved the group definition named
[{0}]~
-view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
-view_dynagroup_singleSaveFailure=An error occurred - there should have been one created,
but instead there were [{0}] created~
-view_dynagroup_saveAndRecalculate=Save & Recalculate~
-view_dynagroup_recalculate=Recalculate~
-view_dynagroup_recalcSuccessful=You have successfully recalculated this group
definition~
-view_dynagroup_recalcFailure=Failed to recalculated this group definition~
-view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group
definitions~
-view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group
definitions~
-view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group
definitions~
-view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
-view_dynagroup_children=DynaGroup Children~
-view_dynagroup_newGroupDefinition=New Group Definition~
-view_dynagroup_editing=Editing [{0}]~
-view_dynagroup_expression=Expression~
-view_dynagroup_recursive=Recursive~
-view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
-view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
-view_dynagroup_permDenied=You do not have permission to view group definitions~
-view_dynagroup_definitions=DynaGroup Definitions~
-view_dynagroup_template_customExpression=Custom Expression...
-view_dynagroup_template_jbossas4_clusters=JBossAS 4 - Clusters
-view_dynagroup_template_jbossas5_clusters=JBossAS 5/6 - Clusters
-view_dynagroup_template_jbossas4_earClusters=JBossAS 4 - Clustered EARs
-view_dynagroup_template_jbossas4_uniqueVersions=JBossAS 4 - Unique versions
-view_dynagroup_template_platforms=Platform resources in inventory
-view_dynagroup_template_uniqueResourceTypes=Unique resource types in inventory
-view_dynagroup_template_jbossas4_hostingApp=JBossAS 4 - All hosting any version of
"my" app
-view_dynagroup_template_jbossas4_nonsecured=JBossAS 4 - All non-secured
-view_dynagroup_template_downedResources=All resources currently down
-view_dynagroup_mixed=Mixed
-view_dynagroup_compatible=Compatible
-view_dynagroup_expressionBuilderIconTooltip=Expression Builder...
-view_dynagroup_exprBuilder_title=Expression Builder
-view_dynagroup_exprBuilder_expression=Expression
-view_dynagroup_exprBuilder_expression_tooltip=This is the full expression that is
represented by the selections in the form below. This text will be added to your group
definition expression text when you click the "Add Expression" button.
-view_dynagroup_exprBuilder_addExpression=Add Expression
-view_dynagroup_exprBuilder_value_tooltip=The string value for the expression to query
-view_dynagroup_exprBuilder_comparisonType=Comparison Type
-view_dynagroup_exprBuilder_comparisonType_tooltip=Comparison Type
-view_dynagroup_exprBuilder_unset=Unset
-view_dynagroup_exprBuilder_unset_tooltip=Unset will find all of the values that have a
null value in the database. This is not possible using the "=" operator because
of how databases store and query data.
-view_dynagroup_exprBuilder_propertyName=Property Name
-view_dynagroup_exprBuilder_propertyName_tooltip=The name of the property to query. This
is defined by the expression type as well as the resource type.
-view_dynagroup_exprBuilder_resourceType=Resource Type
-view_dynagroup_exprBuilder_resourceType_tooltip=The type of resource
-view_dynagroup_exprBuilder_definingPlugin=Defining Plugin
-view_dynagroup_exprBuilder_definingPlugin_tooltip=The plugin to search
-view_dynagroup_exprBuilder_expressionType=Expression Type
-view_dynagroup_exprBuilder_expressionType_tooltip=The type of property this expression
switches on:<br/> \
-<b>Resource</b>: A resource property such as its name or version<br/>
\
-<b>Resource Type</b>: Search for resources of a specific type<br/> \
-<b>Resource Category</b>: Search for resources by category: platform, server,
service<br/> \
-<b>Trait</b>: Resources that have selected values for a monitored
trait<br/> \
-<b>Plugin Configuration</b>: Search by the plugin component configuration
setting of the component<br/> \
-<b>Resource Configuration</b>: Search by the configuration setting of the
managed resource
-view_dynagroup_exprBuilder_resource=Resource
-view_dynagroup_exprBuilder_resource_tooltip=Choose the level of the resource you wish to
select. For example, select "parent" will find resources whose parent resource
matches the rest of the expression.
-view_dynagroup_exprBuilder_groupBy=Group by
-view_dynagroup_exprBuilder_groupBy_tooltip=GroupBy will cause the system to pivot on the
values from the entered expressions creating a separate group for each value. For example,
GroupBy on the cluster name to create a group for each cluster with all cluster members in
it.
-view_dynagroup_exprBuilder_resource_resource=Resource
-view_dynagroup_exprBuilder_resource_child=Child
-view_dynagroup_exprBuilder_resource_parent=Parent
-view_dynagroup_exprBuilder_resource_grandparent=Grandparent
-view_dynagroup_exprBuilder_resource_greatGrandparent=GreatGrandparent
-view_dynagroup_exprBuilder_resource_greatGreatGrandparent=GreatGreatGrandparent
-view_dynagroup_exprBuilder_comparisonType_equals=equals
-view_dynagroup_exprBuilder_comparisonType_startsWith=starts with
-view_dynagroup_exprBuilder_comparisonType_endsWith=ends with
-view_dynagroup_exprBuilder_comparisonType_contains=contains
-view_dynagroup_exprBuilder_expressionType_resource=Resource
-view_dynagroup_exprBuilder_expressionType_resourceType=Resource Type
-view_dynagroup_exprBuilder_expressionType_resourceCategory=Resource Category
-view_dynagroup_exprBuilder_expressionType_trait=Trait
-view_dynagroup_exprBuilder_expressionType_pluginConfig=Plugin Configuration
-view_dynagroup_exprBuilder_expressionType_resourceConfig=Resource Configuration
-view_dynagroup_exprBuilder_pluginLoadFailure=Cannot get the list of plugins
-view_dynagroup_exprBuilder_resTypeLoadFailure=Cannot get list of resource types for
plugin [{0}]
-view_dynagroup_exprBuilder_propLoadFailure=Cannot get list of properties
-view_dynagroup_exprBuilder_noResourceTypes=--No resource types--
-view_dynagroup_exprBuilder_noProperties=--No properties--
-view_dynagroup_exprBuilder_noPlugins=--No plugins--
-
-view_group_detail_failLoad=Failed to load group for group with ID [{0}]
-view_group_detail_failLoadComp=Failed to load group composite for group with ID [{0}]
-view_group_detail_recursiveChange=You successfully changed the recursive setting for
group [{0}]
-view_group_detail_failRecursiveChange=Failed to update the recursive setting for group
[{0}]
-view_group_inventory_activity_no_recent_metrics=This group has no recent metrics
-view_group_membership_failFetch=Failed to fetch Resource Group
-view_group_membership_saveFailure=Failed to update membership of group [{0}]~
-view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
-view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
-view_group_resConfig_edit_loadFail=Failed to retrieve member Resource configurations for
[{0}]
-view_group_resConfig_edit_noperm=You do not have permission to edit this group
configuration~
-view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been
initiated~
-view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been
initiated for the [{0}] compatible group named [{1}]~
-view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for
[{0}] compatible group named [{1}]~
-view_group_resConfig_edit_valid=All configuration properties have valid values, so the
configuration can now be saved~
-view_group_resConfig_edit_invalid=The following configuration properties have invalid
values and must be corrected before the configuration can be saved: [{0}]~
-
-view_group_resConfig_view_noperm=You do not have permissions to see the resource
configuration settings
-view_group_resConfig_view_groupProperties=Group Properties
-view_group_resConfig_table_title=Group Resource Configuration History
-view_group_resConfig_table_statusDetails=Status Details
-view_group_resConfig_table_viewSettings=View Settings
-view_group_resConfig_table_viewMemberHistory=View Member History
-view_group_resConfig_table_msg1=View Member History for status of each individual
resource
-view_group_resConfig_table_failFetch=Failed to get group resource config history
-view_group_resConfig_table_deleteSuccessful=You have deleted [{0}] history items
-view_group_resConfig_table_deleteFailure=Failed to delete group resource config history
-view_group_resConfig_table_statusSuccess=This group configuration update was successful
-view_group_resConfig_table_statusInprogress=This group configuration update is still in
progress
-view_group_resConfig_table_statusNochange=No changes were made to this group
configuration
-view_group_resConfig_table_statusFailure=This group configuration update failed
-view_group_resConfig_table_clickStatusIcon=Click the status icon for full details
-view_group_resConfig_members_title=Group Resource Configuration Member Histories
-view_group_resConfig_members_fetchFailure=Failed to get resource config update history
for members of group [{0}]
-view_group_resConfig_members_fetchFailureConfig=Failed to retrieve member resource
configuration settings for [{0}]
-view_group_resConfig_members_fetchFailureConfigInProgress=A group resource configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
-view_group_resConfig_members_statusDetails=Status Details
-view_group_resConfig_members_statusSuccess=This configuration update was successful
-view_group_resConfig_members_statusInprogress=This configuration update is still in
progress
-view_group_resConfig_members_statusNochange=No changes were made to this configuration
-view_group_resConfig_members_statusFailure=This configuration update failed for an
unknown reason
-
-view_group_pluginConfig_view_noperm=You do not have permissions to see the connection
settings~
-view_group_pluginConfig_view_groupProperties=Group Properties~
-view_group_pluginConfig_table_failFetch=Failed to get group plugin config history
-view_group_pluginConfig_table_title=Group Connection Settings History~
-view_group_pluginConfig_table_statusDetails=Status Details~
-view_group_pluginConfig_table_viewSettings=View Settings~
-view_group_pluginConfig_table_viewMemberHistory=View Member History~
-view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
-view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config
history~
-view_group_pluginConfig_table_msg1=View Member History for status of each individual
resource~
-view_group_pluginConfig_table_statusSuccess=This group configuration update was
successful~
-view_group_pluginConfig_table_statusInprogress=This group configuration update is still
in progress~
-view_group_pluginConfig_table_statusNochange=No changes were made to this group
configuration~
-view_group_pluginConfig_table_statusFailure=This group configuration update failed~
-view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
-view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
-view_group_pluginConfig_members_statusDetails=Status Details~
-view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
-view_group_pluginConfig_members_statusInprogress=This configuration update is still in
progress~
-view_group_pluginConfig_members_statusNochange=No changes were made to this
configuration~
-view_group_pluginConfig_members_statusFailure=This configuration update failed for an
unknown reason~
-view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history
for members of group [{0}]~
-view_group_pluginConfig_members_fetchFailureConn=Failed to retrieve member connection
settings for [{0}]
-view_group_pluginConfig_members_fetchFailureConnInProgress=A group plugin configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
-view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
-view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group
members~
-view_group_pluginConfig_edit_noperm=You do not have permission to edit this group
connection settings~
-view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates
have been initiated~
-view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have
been initiated for the [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting
update for [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_valid=All connection setting properties have valid values,
so the connection settings can now be saved~
-view_group_pluginConfig_edit_invalid=The following connection setting properties have
invalid values and must be corrected before the connection settings can be saved: [{0}]~
-view_group_meas_schedules_title=Group Metric Collection Schedules~
-view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with
ID [{0}] - could not change from [{1}] to [{2}]~
-view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group
with ID [{0}] from [{1}] to [{2}]~
-view_group_summary_memberType=Member Type~
-view_group_summary_memberCount=Member Count~
-view_group_summary_dynamic=Dynamic~
-view_group_summary_recursive=Recursive~
-view_group_summary_groupDefinition=Group Definition~
-view_group_summary_mixed=Mixed~
-view_group_summary_compatible=Compatible
-view_group_summary_descUpdateFailure=Failed to change the description of the resource
group with ID [{0}]~
-view_group_summary_descUpdateSuccessful=You have changed the description of this resource
group~
-view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and
therefore are not editable~
-
-# Connection Settings Details
-#------------------------------------------
-view_connectionSettingsDetails_noPermission=You do not have permission to edit this
Resource''s connection settings.~
-view_connectionSettingsDetails_error_updateFailure=Failed to update connection
settings.~
-view_connectionSettingsDetails_messageConcise_updateSuccess=Connection settings
updated.~
-view_connectionSettingsDetails_messageDetailed_updateSuccess=Connection settings updated
for Resource [{0}].~
-view_connectionSettingsDetails_allPropertiesValid=All connection settings have valid
values, so the settings can now be saved.~
-view_connectionSettingsDetails_somePropertiesInvalid=The following connection settings
have invalid values: {0}. The values must be corrected before the settings can be saved.~
-
-# Resource Resource Groups
-#-----------------------------------------
-view_resourceResourceGroupList_error_fetchFailure=Failed to fetch Resource''s
groups.~
-view_resourceResourceGroupList_error_updateFailure=Failed to update assigned Resource
groups.~
-view_resourceResourceGroupList_message_updateSuccess=Group membership updated for [{0}].
-
-# Configuration Details
-#-------------------------------
-view_configurationDetails_noPermission=You do not have permission to edit this
Resource''s configuration.~
-view_configurationDetails_error_updateFailure=Failed to update configuration.~
-view_configurationDetails_messageConcise=Configuration updated - current version is
{0}.~
-view_configurationDetails_messageDetailed=Configuration updated to version {0} for
Resource [{1}].
-view_configurationDetails_allPropertiesValid=All configuration properties have valid
values, so the configuration can now be saved.~
-view_configurationDetails_somePropertiesInvalid=The following configuration properties
have invalid values: {0}. The values must be corrected before the configuration can be
saved.~
-view_configurationDetails_configNotUpdatedDueToNoChange=Configuration was not updated,
since the new configuration is equivalent to the current configuration.
-
-# Resource Configuration History List
-#-------------------------------
-view_configurationHistoryList_title=Configuration History~
-
-# Abstract Configuration History List
-#-------------------------------
-view_configurationHistoryList_rollback=Rollback
-view_configurationHistoryList_rollback_success=You successfully rolled back the
configuration to the selected past configuration.
-view_configurationHistoryList_rollback_failure=Failed to rollback the configuration. The
original configuration is still in effect.
-view_configurationHistoryList_delete_success=You successfully deleted the selected
configuration history items.
-view_configurationHistoryList_delete_failure=Failed to delete the configuration history
items.
-view_configurationHistoryList_cannotDeleteGroupItems=One or more selected configuration
history items are part of a group configuration update. \
-You must purge that parent group history item before you can delete its individual
resource history items.
-view_configurationHistoryList_cannotDeleteCurrent=One of the selected history items
represents the current configuration - you cannot delete it.
-view_configurationHistoryList_table_statusSuccess=This configuration update was
successful
-view_configurationHistoryList_table_statusInprogress=This configuration update is still
in progress
-view_configurationHistoryList_table_statusNochange=No changes were made to this
configuration
-view_configurationHistoryList_table_statusFailure=This configuration update failed
-view_configurationHistoryList_table_clickStatusIcon=Click the status icon for full
details
-
-# Configuration History Details
-#------------------------------------------
-view_configurationHistoryDetails_error_loadFailure=Unable to load configuration
history.~
-
-
-# Operation Schedule List
-#------------------------
-xxx =
-
-# Operation Schedule Details
-#---------------------------
-view_operationScheduleDetails_operationSchedule=Operation Schedule
-view_operationScheduleDetails_field_description=Description
-view_operationScheduleDetails_field_parameters=Parameters
-view_operationScheduleDetails_field_timeout=Timeout
-view_operationScheduleDetails_fieldHelp_timeout=a time duration - if specified, if the
duration elapses before a scheduled operation execution has completed, the RHQ Server will
timeout the operation and consider it to have failed; note, it is usually not possible to
abort the underlying managed resource operation if it was already initiated
-view_operationScheduleDetails_fieldHelp_description=an optional description of this
scheduled operation (e.g. nightly maintenance app server restart)
-view_operationScheduleDetails_fieldDefault_description=Select an operation to see its
description.
-view_operationScheduleDetails_fieldDefault_parameters=Select an operation to see its
parameters.
-view_operationScheduleDetails_noParameters=This operation does not take any parameters.
-view_operationScheduleDetails_enterParametersBelow=Enter parameters below...
-
-view_group_operationScheduleDetails_failedToLoadMembers=Failed to load group member
Resources.
-view_group_operationScheduleDetails_field_execute=Execute
-view_group_operationScheduleDetails_value_parallel=in parallel
-view_group_operationScheduleDetails_value_sequential=in the order specified below (drag
and drop member Resources to change order)
-view_group_operationScheduleDetails_field_haltOnFailure=Halt on Failure?
-view_group_operationScheduleDetails_memberResource=Member Resource
-
-
-# Operation History List
-#-----------------------
-view_operationHistoryList_title=Operation History~
-view_operationHistoryList_button_runOperation=Run Operation~
-view_operationHistoryList_button_forceDelete=Force Delete
-view_operationHistoryList_notYetStarted=not yet started
-
-# Operation History Details
-#--------------------------
-view_operationHistoryDetails_error_fetchFailure=Failure loading operation history.~
-view_operationHistoryDetails_operation=Operation
-view_operationHistoryDetails_dateSubmitted=Date Submitted
-view_operationHistoryDetails_dateCompleted=Date Completed
-view_operationHistoryDetails_requestor=Requestor
-view_operationHistoryDetails_status=Status
-view_operationHistoryDetails_parameters=Parameters
-view_operationHistoryDetails_results=Results
-view_operationHistoryDetails_noResults=This operation does not return any results.
-
-
-# Summary Overview
-#-----------------------------
-view_summaryOverview_header_detectedErrors=Detected Errors~
-view_summaryOverview_tooltip_detectedErrors=Click on the rows to see the error details.~
-view_summaryOverview_title_errorDetailsWindow=Error Details~
-
-# Summary Overview Form
-#-------------------------------------
-view_summaryOverviewForm_field_type=Type~
-view_summaryOverviewForm_field_name=Name~
-view_summaryOverviewForm_field_description=Description~
-view_summaryOverviewForm_field_location=Location~
-view_summaryOverviewForm_field_version=Version~
-view_summaryOverviewForm_error_traitsLoadFailure=Failed to load traits for {0}.~
-view_summaryOverviewForm_label_plugin=Plugin:
-view_summaryOverviewForm_label_type=Type:
-view_summaryOverviewForm_header_summary=Summary~
-view_summaryOverviewForm_error_nameChangeFailure=Failed to change name of Resource with
id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_nameChangeSuccess=Name of Resource with id {0} was
changed from [{1}] to [{2}].~
-view_summaryOverviewForm_error_descriptionChangeFailure=Failed to change description of
Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_descriptionChangeSuccess=Description of Resource with id
{0} was changed from [{1}] to [{2}].~
-view_summaryOverviewForm_error_locationChangeFailure=Failed to change location of
Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_locationChangeSuccess=Location of Resource with id {0}
was changed from [{1}] to [{2}].~
-
-# Summary Dashboard
-#-----------------------------
-view_summaryDashboard_resetConfirm=Reset to default summary dashboard (lose local
changes)?
-
-# Group Inventory>Members subtab
-#-----------------------------------------
-view_groupInventoryMembers_button_updateMembership=Update Membership...
-view_groupInventoryMembers_title_updateMembership=Update Membership
-
-
-#==================== Reports ======================
-
-view_reportsTop_title=Relat\u00F3rios~
-view_reportsTop_description=This section provides access to global reports.~
-view_reports_platforms=Utiliza\u00E7\u00E3o de Mem\u00F3ria e CPU~
-view_reports_subsystems=Subsistemas~
-view_reports_alertDefinitions=Defini\u00E7\u00E3o de Alertas~
-
-view_measurementOob_title=M\u00E9tricas Suspeitas~
-
-view_tagCloud_title=Nuvem de Tags~
-view_tagCloud_error_fetchFailure=Falha ao carregar etiquetas (tags).~
-view_tagCloud_error_tagUsedCount=Etiqueta (tag) usada {0} vezes.~
-view_tagCloud_deleteTag=Delete Tag
-view_tagCloud_deleteTagFailure=Failed to delete the tag [{0}]
-view_tagCloud_deleteTagSuccess=You successfully deleted the tag [{0}]
-
-view_reports_inventorySummary_failFetch=Failed to get inventory summary
-
-view_taggedResources_title=Recursos Etiquetados~
-
-view_reports_alertDefinitions_parentHover=Click to go to the parent alert definition
-view_reports_alertDefinitions_resTypeLoadError=Cannot get the template resource type -
unable to view the alert template.
-
-#==================== Help ======================
-
-view_helpTop_description=This section provides access to documentation, tutorials,
version, and other helpful information.
-view_help_section_product=Product
-view_help_section_product_about=About
-
-
-#===================== Test =======================
-view_testTop_title=Teste~
-view_testTop_description=Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para
realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.~
-
-#=================== Top Level =====================
-
-# About Box
-#----------
-view_aboutBox_allRightsReserved=Todos os Direitos Reservados.~
-view_aboutBox_buildNumber=N\u00FAmero do Build\:~
-view_aboutBox_failedToLoad=Falha ao carregar informa\u00E7oes do produto.~
-view_aboutBox_homepage=P\u00E1gina Inicial~
-view_aboutBox_jbossByRedHat=JBoss by Red Hat~
-view_aboutBox_title=Sobre {0}~
-view_aboutBox_version=Vers\u00E3o\:~
-
-# CoreGUI
-#--------------
-view_core_error_1=Falha ao perquisar novos alertas~
-#view_core_loggedInAs = Logged in as {0}
-view_core_loggedOut=Logged out~
-view_core_recentAlerts=[{0}] alertas recentes~
-view_core_noRecentAlerts=There are no recent alerts to report
-view_core_uncaught=Exce\u00E7\u00E3o n\u00E3o capturada~
-
-# Login
-#--------------
-view_login_invalidEmail=Endere\u00E7o de e-mail inv\u00E1lido~
-view_login_login=Login~
-view_login_logout=Logout~
-view_login_noBackend=Fonte de Dados indispon\u00EDvel.~
-view_login_noLdap=Note: Optional retrieval of ldap details unsuccessful. Manual entry is
required.~
-view_login_noUser=Usu\u00E1rio ou senha inv\u00E1lidos.~
-view_login_prompt=Favor efetuar Login~
-view_login_registerLater=(Logout - Concluir registro mais tarde.)~
-view_login_registerLdapSuccess=Novo usu\u00E1rios do LDAP registrado com sucesso.~
-view_login_registerUser=Registrar Usu\u00E1rio~
-view_login_welcome=Bem Vindo~
-view_login_welcomeMsg=Seja Bem Vindo ao JBoss ON\! <br/><br/> Informe ou
altere os seguintes campos para completar o processo de registro.<br/> Clique em
"OK" para acessar o sistema.<br/><br/>~
-
-# Menu Bar
-#--------------
-view_menuBar_logout=Logout~
-
-# Search Bar, GUI
-#-----------------
-view_searchBar_resources=Recursos~
-view_searchBar_resourceGroups=Grupos de Recursos~
-# TODO: i18n pluralization
-view_searchBar_welcomeMessage=procurar por {0}s~
-view_searchBar_defaultPattern=definir nome para o padr\u00E3o~
-view_searchBar_error_selectSavedSearch=''Erro ao selecionar a
pesquisa''~
-view_searchBar_query=Query~
-
-view_searchGUI_loginStatus=Imposs\u00EDvel determinar o status do login, verifique o
status do servidor~
-
-# Message Center
-#--------------------------
-view_messageCenter_messageTitle=Centro de Mensagens~
-view_messageCenter_noRecentMessages=N\u00E3o existem Mensagens Recentes~
-view_messageCenter_maxMessages=Max Messages
-view_messageCenter_lastNMessages=Last {0} Messages
-view_messageCenter_clearAllMessages=Clear All Messages
-view_messageCenter_messageTime=Tempo~
-view_messageCenter_messageSeverity=Severidade~
-view_messageCenter_messageDetail=Detalhe~
-view_messageCenter_stackTraceFollows=--- STACK TRACE FOLLOWS ---
-view_messageCenter_messageBarShowDetails=Show Details
-common_title_favorites=Favoritos
-common_title_summary_counts=Sum\u00E1rio de Contagem
-dataSource_traits_group_field_memberResource=Recurso Membro
-
-
-# Problem Resources
-#------------------------------
-dataSource_problemResources_field_resource=Recurso
-dataSource_problemResources_field_location=Local
-
-# Configuration History
-#-------------------------------
-dataSource_configurationHistory_field_id=ID
-dataSource_configurationHistory_field_resource=Recurso
-dataSource_configurationHistory_field_createdTime=Criado
-dataSource_configurationHistory_field_status=Status
-dataSource_configurationHistory_field_subject=Assunto
-dataSource_resourceErrors_field_detail=Mensagem detalhada
-view_adminConfig_license=Licen\u00E7a
-view_adminRoles_roleExists=O perfil com nome [{0}] j\u00E1 existe.
-view_alerts_field_ack_status_empty=Ainda n\u00E3o verificado
-view_alerts_field_ack_status_filled={0} verificado em {1}
-view_alerts_field_resource=Recurso
-view_alert_details_breadcrumb=Detalhes
-TODO=PAREI AQUI\!\!\!
-view_alert_common_tab_notifications_all_emails=Todos os Emails
-view_alert_common_tab_notifications_bad_emails=Emails recusados
-view_measureRange_day=1 Dia
-view_measureRange_days={0} Dias
-view_measureRange_hour=1 Hora
-view_measureRange_hours={0} Horas
-view_measureRange_minutes={0} Minutos
-view_measureRange_range=Faixa
-view_tags_title=Tags:~
-view_upload_tooltip_1=Select a file to upload, then click Upload or Next~
-# // dup in common
-view_dashboardsManager_inventory_title=Inventory Summary~
-view_dashboardsManager_mashup_title=RHQ News~
-view_dashboardsManager_message_title=Welcome To RHQ~
-view_dashboardsManager_tagcloud_title=Tag Cloud~
-view_portlet_autodiscovery_config_platform_selection=Number of platforms to display~
-view_portlet_autodiscovery_help_msg=This portlet offers the ability to import newly
discovered resources into the inventory for monitoring and management or to ignore them
from further action.~
-view_portlet_autodiscovery_title=Discovery Queue~
-view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
-view_portlet_favoriteResources_title=Favorite Resources~
-view_portlet_generic_help=No help available for this portlet~
-view_portlet_generic_unconfigured=No settings available for this portlet~
-view_portlet_graph_configure_title=Graph Config~
-view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
-view_portlet_graph_help_msg=This Portlet supports the graphing of a resource metric.~
-view_portlet_graph_help_title=Graph Portlet~
-view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings
button to configure.~
-view_portlet_graph_title=Resource Graph~
-view_portlet_mashup_config_title=MashupPorlet Configuration~
-view_portlet_mashup_config_title_desc=The configuration settings for the mashup
portlet.~
-view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an
iframe on the dashboard.~
-view_portlet_mashup_unconfigured=Page address not yet configured, click the settings
button to setup this portlet.~
-view_portlet_message_config_title=MessagePortlet Configuration~
-view_portlet_message_config_title_desc=The configuration settings for the message
portlet.~
-view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
-view_portlet_message_unconfigured=Message not yet configured, click the settings button
to setup this portlet.~
-view_portlet_operations_config_title=OperationsPortlet Configuration~
-view_portlet_operations_config_title_desc=The configuration settings for the Operations
portlet.~
-view_portlet_operations_help_msg=This portlet displays both operations that have occurred
and are scheduled to occur.~
-view_portlet_platform_help_msg=This portlet displays information about platforms in
inventory.~
-view_portlet_platform_title=Platforms Summary~
-view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources
to display.~
-view_portlet_problem_resources_config_display_range=Show problem resources going back
this many hours.~
-view_portlet_problem_resources_config_display_range2=From {0} to {1}~
-view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
-view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
-view_portlet_problem_resources_config_title_desc=The configuration settings for the
Problem resources portlet.~
-view_portlet_problem_resources_help=This portlet displays resources that have reported
alerts or Down availability.~
-view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
-view_portlet_recentAlerts_help_msg=Displays recent alerts fired on resources visible to
the current user login.~
-# // dup in common
-view_portlet_recentAlerts_title=Recent Alerts~
-view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
-view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently
been imported into the inventory.~
-view_portlet_recentlyAdded_title=Recently Added Portlet~
-view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible
to the current user.~
-view_portlet_tagCloud_title=TagCloud~
-view_inventory_cannotGetGlobalPerms=Could not determine global permissions - assuming
none.~
-view_inventory_downServers=Down Servers~
-view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
-view_tree_common_contextMenu_chart=Chart~
-view_tabs_common_scheduled=Scheduled~
-view_dynagroup_permUnknown=Could not determine if you have the proper permissions -
access is denied~
-view_configurationHistoryList_itemNamePlural=configuration history items
-
-# Configuration History Details
-#------------------------------------------
-view_configurationHistoryDetails_dialogTitle=Configuration Details~
-
-# Operation Create Wizard
-#-------------------------------------
-view_operationCreateWizard_title=Operation Wizard~
-view_operationCreateWizard_header=Execute {0} on {1}~
-view_operationCreateWizard_button_execute=Execute~
-view_operationCreateWizard_button_executeImmediately=Execute Immediately~
-view_operationCreateWizard_error_scheduleOperationFailure=Failed to schedule operation
execution.~
-view_operationCreateWizard_message_scheduleOperationSuccess=Schedule operation [{0}] on
Resource [{1}] with cron string [{2}].~
-view_operationCreateWizard_parametersStep_name=Operation Parameters~
-view_operationCreateWizard_parametersStep_noParameters=This operation does not take any
parameters.~
-view_operationCreateWizard_schedulingStep_name=Schedule~
-view_operationCreateWizard_schedulingStep_label_start=Start~
-view_operationCreateWizard_schedulingStep_label_schedule=Schedule~
-view_operationCreateWizard_schedulingStep_label_recurrence=Recurrence~
-view_operationCreateWizard_schedulingStep_label_runAt=Run At~
-view_operationCreateWizard_schedulingStep_label_nMinutes=n Minutes~
-view_operationCreateWizard_schedulingStep_label_hourly=Hourly~
-view_operationCreateWizard_schedulingStep_label_daily=Daily~
-view_operationCreateWizard_schedulingStep_label_weekly=Weekly~
-view_operationCreateWizard_schedulingStep_label_monthly=Monthly~
-view_operationCreateWizard_schedulingStep_label_timePeriod=Time Period~
-view_operationCreateWizard_schedulingStep_label_startDate=Start Date~
-view_operationCreateWizard_schedulingStep_label_recurrenceEnd=Recurrence End~
-view_operationCreateWizard_schedulingStep_label_endDate=End Date~
-view_operationCreateWizard_schedulingStep_label_willExecuteImmediately=Will execute
immediately~
-view_operationCreateWizard_schedulingStep_label_onceAt=Once At~
-view_operationCreateWizard_schedulingStep_label_date=Date~
-view_operationCreateWizard_schedulingStep_label_time=Time~
-view_operationCreateWizard_schedulingStep_label_everyNMinutes=Every n Minutes~
-view_operationCreateWizard_schedulingStep_label_minuteInterval=Minute Interval~
-view_operationCreateWizard_schedulingStep_label_hourlyAt=Hourly At~
-view_operationCreateWizard_schedulingStep_label_minuteOfHour=Minute of Hour~
-view_operationCreateWizard_schedulingStep_label_dailyAt=Daily At~
-view_operationCreateWizard_schedulingStep_label_timeOfDay=Time of Day~
-view_operationCreateWizard_schedulingStep_label_weeklyOn=Weekly On~
-view_operationCreateWizard_schedulingStep_label_dayOfWeek=Day of Week~
-view_operationCreateWizard_schedulingStep_label_monthlyOn=Monthly On~
-view_operationCreateWizard_schedulingStep_label_dayOfMonth=Day of Month~
-view_summaryOverviewForm_field_parent=Parent~
-view_core_loggedInAs=Logado como {0}~
-
-
-# Menu Bar
-#--------------
-view_menuBar_help=Ajuda~
-
-# Message Center
-#--------------------------
-view_messageCenter_button_messages=Mensagens~
commit 2f899cdbf7ceb8ff749edda600a6db0a514a1132
Author: Rafael Torres Coelho Soares <rsoares(a)redhat.com>
Date: Mon May 23 11:12:39 2011 +0200
First batch of Brasil Portuguese (pt_BR) translations
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
new file mode 100755
index 0000000..65514b0
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt_BR.properties
@@ -0,0 +1,2315 @@
+#
+# RHQ GUI i18n Messages - pt-BR
+###################################
+
+#************************************** SHARED ****************************************
+
+#=================== Common =====================
+
+#
+# Build Info
+#
+common_buildInfo_gwtVersion=${gwt.version}
+
+# Button Labels
+#--------------
+common_button_ack=Confirmar
+common_button_ack_all=Confirmar Todos
+common_button_add=Adicionar
+common_button_advanced=Avan\u00E7ado...
+common_button_apply=Aplicar
+common_button_cancel=Cancelar
+common_button_close=Fechar
+common_button_compare=Comparar
+common_button_create_child=Criar filho
+common_button_delete=Excluir
+common_button_delete_all=Excluir Todos
+common_button_disable=Desabilitar
+common_button_edit=Editar
+common_button_enable=Habilitar
+common_button_finish=Finalizar
+common_button_import=Importar
+common_button_new=Novo
+common_button_next=Pr\u00F3ximo
+common_button_ok=OK
+common_button_previous=Anterior
+common_button_purgeAll=Purge All
+common_button_refresh=Refresh
+common_button_reset=Limpar
+common_button_save=Salvar
+common_button_schedule=Schedule
+common_button_search=Procurar
+common_button_set=Set
+common_button_showDetails=Mostrar Detalhes...
+common_button_uninventory=Remover do Invent\u00E1rio
+
+# Common Labels
+#------------------------
+common_label_ago=ago
+common_label_all=TODOS
+common_label_all_resources=todos os recursos
+common_label_day=dia
+common_label_days=dias
+common_label_hour=hora
+common_label_hours=horas
+common_label_item=item
+common_label_items=itens
+common_label_milliseconds=milisegundos
+common_label_minutes=minutos
+common_label_month=m\u00EAs
+common_label_none=nenhum
+common_label_role=perfil
+common_label_roles=perfis
+common_label_scheduled_operations=opera\u00E7\u00F5es agendadas
+common_label_seconds=segundos
+common_label_selected_resources=recursos selecionados
+common_label_unlimited=ilimitado
+common_label_user=usu\u00E1rio
+common_label_users=usu\u00E1rios
+common_label_week=semana
+common_label_weeks=semanas
+common_label_yesterday=Yesterday
+
+# Common Units
+#-------------
+common_unit_times=times
+common_unit_milliseconds=milliseconds
+common_unit_seconds=seconds
+common_unit_minutes=minutes
+common_unit_hours=hours
+common_unit_days=days
+common_unit_weeks=weeks
+common_unit_months=months
+common_unit_years=years
+
+# Common Severities
+#------------------
+common_severity_debug=Debug
+common_severity_info=Info
+common_severity_warn=Warn
+common_severity_error=Error
+common_severity_fatal=Fatal
+
+# Common Titles
+#--------------
+common_title_address=Endere\u00E7o
+common_title_add_column=Adicionar Coluna
+common_title_add_graph_to_view=Add Graph to Monitor View
+common_title_add_portlet=Adicionar Portlet
+common_title_alert_range=S\u00E9rie de Alertas
+common_title_ancestry=Ancestry
+common_title_availability=Disponibilidade
+common_title_average_metrics=M\u00E9tricas da m\u00E9dia por Minuto
+common_title_available_resources=Recursos Dispon\u00EDveis
+common_title_background=Background
+common_title_bundle=Bundle
+common_title_bundles=Bundles
+common_title_category=Categoria
+common_title_change_refresh_time=Refresh Interval
+common_title_columns=Colunas
+common_title_configuration=Configura\u00E7\u00E3o
+common_title_compare_metrics=Compare Metrics
+common_title_compatibleGroups=Grupos Compat\u00EDveis
+common_title_compatibleGroups_total=Total de Grupos Compat\u00EDveis
+common_title_component_errors=Componentes com erro
+common_title_config_update_status=Update Status
+common_title_count=Count
+common_title_custom=Personalizado
+common_title_dashboard_name=Nome do Painel de Controle
+common_title_dateCreated=Data de Cria\u00E7\u00E3o
+common_title_dateRange=Date Range
+common_title_default=Padr\u00E3o
+common_title_description=Descri\u00E7\u00E3o
+common_title_details=Detalhes
+common_title_display=Display
+common_title_display_name=Nome do Display
+common_title_duration=Dura\u00E7\u00E3o
+common_title_edit_mode=Modo Edi\u00E7\u00E3o
+common_title_enabled=Habilitado?
+common_title_end=Fim
+common_title_error=Error
+common_title_generalProp=Propriedades Gerais
+common_title_group=Group
+common_title_groups=Groups
+common_title_group_def_total=Total de Defini\u00E7\u00E3o de Grupos
+common_title_group_member_health=Group Member Health
+common_title_icon=\u00EDcone
+common_title_id=ID
+common_title_id_parent=ID do Recurso pai
+common_title_info=Info
+common_title_help=Help
+common_title_host=Host
+common_title_inventory=Invent\u00E1rio
+common_title_inventorySummary=Sum\u00E1rio do Invent\u00E1rio
+common_title_lastUpdated=\u00DAltima Atualiza\u00E7\u00E3o
+common_title_lastUpdatedBy=\u00DAltima Atualiza\u00E7\u00E3o feita por
+common_title_ldapGroups=LDAP Groups
+common_title_mashup=Mashup
+common_title_members_reporting=Members Reporting
+common_title_message=Mensagem
+common_title_metric=M\u00E9trica
+common_title_metric_chart=Metric Chart
+common_title_mixedGroups=Grupos Mistos
+common_title_mixedGroups_total=Total de Grupos Mistos
+common_title_name=Nome
+common_title_new_dashboard=Novo Painel de Controle
+common_title_numeric_metrics=Numeric Metrics
+common_title_numeric_type=Tipo Num\u00E9rico
+common_title_operation_status=Operation Status
+common_title_operations=Opera\u00E7\u00F5es
+common_title_operations_range=S\u00E9rie de Opera\u00E7\u00F5es
+common_title_over=Execesso
+common_title_password=Senha
+common_title_path=Path
+common_title_permissions=Permissions
+common_title_platform=Plataforma
+common_title_platform_total=Total de Plataformas
+common_title_plugin=Plugin
+common_title_port=Porta
+common_title_providers=Provedores
+common_title_recent_alerts=Alertas Recentes
+common_title_recent_bundle_deployments=Recent Bundle Deployments
+common_title_recent_configuration_updates=Recent Configuration Updates
+common_title_recent_event_counts=Recent Event Counts
+common_title_recent_measurements=Recent Measurements
+common_title_recent_oob_metrics=Recent Out of Bound metrics
+common_title_recent_operations=Opera\u00E7\u00F5es Recentes
+common_title_recent_pkg_history=Recent Package History
+common_title_recently_added=Recursos Adicionados Recentemente
+common_title_remove_column=Remover Coluna
+common_title_repositories=Reposit\u00F3rios
+common_title_resource=Recursos
+common_title_resources=Resources
+common_title_resource_group=Grupo de Recursos
+common_title_resourceGroups=Resource Groups
+common_title_resource_inventory=Invent\u00E1rio de Recursos
+common_title_resource_id=ID do Recurso
+common_title_resource_name=Nome do Recurso
+common_title_resource_key=Resource Key
+common_title_resource_type=Resource Type
+common_title_results_count=Results Count
+common_title_results_count_tooltip=Displays this number of results
+common_title_role=Role
+common_title_roles=Roles
+common_title_search=Procurar
+common_title_scheduled_operations=Opera\u00E7\u00F5es Agendadas
+common_title_selected_resources=Recursos Selecionados
+common_title_server=Server
+common_title_server_total=Total de Servidores
+common_title_service=Service
+common_title_service_total=Total de Servi\u00E7os
+common_title_settings=Configura\u00E7\u00F5es
+common_title_show=Visualizar
+common_title_show_more=Visualizar mais...
+common_title_sort_order=Sort Order
+common_title_sort_order_tooltip=Sets sort order for results.
+common_title_start=Iniciar
+common_title_status=Status
+common_title_stop=Stop
+common_title_summary=Sum\u00E1rio
+common_title_tag_cloud=Nuvem de Tags
+common_title_the=O
+common_title_timestamp=Data/Hora
+common_title_total=Total
+common_title_type=Tipo
+common_title_units=Unidades
+common_title_user=Usu\u00E1rio
+common_title_users=Users
+common_title_value=Valor
+common_title_version=Vers\u00E3o
+common_title_view_mode=Modo vis\u00E3o
+common_title_web_address=Endere\u00E7o Web
+common_title_welcome=Bem Vindo
+
+# Common Messages
+#--------------
+common_msg_areYouSure=Tem certeza?
+common_msg_changeAutoDetected=Change auto-detected
+common_msg_deleteConfirm=Tem certeza de que deseja excluir o \# selecionado {0}?
+common_msg_emphasizedNotePrefix=NOTA\:
+common_msg_loading=Carregando...
+common_msg_noItemsToShow=N\u00E3o existem itens para apresentar
+common_msg_notYetImplemented=Not Yet Implemented
+common_msg_see_more=see more...
+common_msg_step_x_of_y=Step {0} of {1}
+common_msg_asyncTimeout={0}. This occurred because the server is taking a long time to
complete this request. \
+Please be aware that the server may still be processing your request and it may complete
shortly. \
+You can check the server logs to see if any abnormal errors occurred.
+
+# Common Values
+#--------------
+common_val_for=para
+common_val_no=N\u00E3o
+common_val_no_lower=n\u00E3o
+common_val_yes=Sim
+common_val_yes_lower=sim
+common_val_never=Nunca
+common_val_na=N/A
+common_val_none=Nenhum
+
+# Common Statuses
+common_status_canceled=Canceled
+common_status_deferred=Deferred
+common_status_failed=Failed
+common_status_inprogress=In Progress
+common_status_nochange=No Change
+common_status_success=Success
+common_status_unknown=Unknown
+common_status_timedOut=Timed Out
+common_status_partial=Partial
+
+# 1st, 2nd, 3rd, 4th, etc.
+common_val_n1st={0}st
+common_val_n2nd={0}nd
+common_val_n3rd={0}rd
+common_val_nth={0}th
+
+# Common Alert Priorities
+#------------------------
+common_alert_high=High
+common_alert_medium=Medium
+common_alert_low=Low
+
+# Common Calendar
+#--------------
+common_calendar_january_short=jan
+common_calendar_february_short=fev
+common_calendar_march_short=mar
+common_calendar_april_short=abr
+common_calendar_may_short=mai
+common_calendar_june_short=jun
+common_calendar_july_short=jul
+common_calendar_august_short=ago
+common_calendar_september_short=set
+common_calendar_october_short=out
+common_calendar_november_short=nov
+common_calendar_december_short=dez
+
+
+#=================== Widgets =====================
+
+# Favorites
+#--------------
+favorites=Favorites
+favorites_resources=Favorite Resources
+favorites_groups=Favorite Groups
+favorites_recentlyViewed=Recently Viewed
+
+# Record Editor
+#--------------
+widget_recordEditor_title_view=Visualizar {0} [{1}]
+widget_recordEditor_title_edit=Editar {0} [{1}]
+widget_recordEditor_title_new=Criar Novo {0}
+# // dup in common
+widget_recordEditor_label_loading=Carregar...
+widget_recordEditor_error_invalidViewPath=Caminho inv\u00E1lido\: [{0}]
+widget_recordEditor_error_noRecords=Nenhum registro encontrado - era esperado exatamente
um.
+widget_recordEditor_error_multipleRecords=Foram encontrados v\u00E1rios registros - era
esperado apenas um.
+widget_recordEditor_info_recordCreatedConcise={0} criado.
+widget_recordEditor_info_recordCreatedDetailed={0} [{1}] criado.
+widget_recordEditor_info_recordUpdatedConcise={0} atualizado.
+widget_recordEditor_info_recordUpdatedDetailed={0} [{1}] atualizado.
+widget_recordEditor_info_recordsDeletedConcise={0} {1} exclu\u00EDdo.
+widget_recordEditor_info_recordsDeletedDetailed={0} {1} exclu\u00EDdo\: {2}.
+widget_recordEditor_error_operation=Operation failed. An error occurred
+widget_recordEditor_error_operationInvalidValues=Operation failed - one or more fields
have invalid values
+widget_recordEditor_error_unsupportedOperationType=Tipo de opera\u00E7\u00E3o n\u00E3o
suportada\: [{0}]
+widget_recordEditor_error_permissionCreate=You do not have the permissions required to
create a new [{0}]
+widget_recordEditor_warn_validation=One or more fields have invalid values. This [{0}]
cannot be saved until these values are corrected
+
+# Resource Selector/Picker
+#--------------------------------
+widget_resourceSelector_selectResource=Selecionar um Recurso
+widget_resourceSelector_pleaseSelectResource=Favor selecionar um recurso
+widget_resourceSelector_selectMultipleResources=Selecionar Recursos
+widget_resourceSelector_pleaseSelectMultipleResource=Favor selecionar um ou mais
recursos
+widget_resourceSelector_groupCategory=Categoria do Grupo
+
+# Resource Factory Wizard
+#--------------------------------
+widget_resourceFactoryWizard_uploadInProgress=Upload em andamento... Esse processo pode
demorar alguns minutos para ser finalizado em caso de arquivos muito grandes.
+widget_resourceFactoryWizard_uploadFileStepName=Upload do Arquivo do Recurso
+widget_resourceFactoryWizard_uploadFailure=Falha ao realizar o upload do arquivo
+widget_resourceFactoryWizard_editConfigStepName=Editar Configura\u00E7\u00E3o
+widget_resourceFactoryWizard_editConfigStep_nothingToDo=There is no configuration that
you need to define for this resource.
+widget_resourceFactoryWizard_infoStepName=Informa\u00E7\u00E3o do Recurso
+widget_resourceFactoryWizard_infoStep_loadFail=Failed to get available Architectures
+widget_resourceFactoryWizard_namePrompt=Novo Nome do Recurso
+widget_resourceFactoryWizard_templatePrompt=Modelo de Propriedades para Conex\u00E3o
+widget_resourceFactoryWizard_contentTemplatePrompt=Modelos de Configura\u00E7\u00E3o do
Tempo de Deploy
+widget_resourceFactoryWizard_configTemplatePrompt=Modelo de Configura\u00E7\u00E3o de
Recurso
+widget_resourceFactoryWizard_archPrompt=Arquitetura do Pacote
+widget_resourceFactoryWizard_versionPrompt=Vers\u00E3o do Pacote
+widget_resourceFactoryWizard_importWizardWindowTitle=Assistente para Importa\u00E7\u00E3o
de Recurso
+widget_resourceFactoryWizard_importWizardTitle=Importar Recursos do Tipo [{0}]
+widget_resourceFactoryWizard_importFailure=Falha ao importar recursos manualmente
+widget_resourceFactoryWizard_importSubmitted=Uma requisi\u00E7\u00E3o para importar um
novo recurso do tipo [{0}] foi submetida
+widget_resourceFactoryWizard_createWizardWindowTitle=Assistente para Cria\u00E7\u00E3o de
Recurso
+widget_resourceFactoryWizard_createWizardTitle=Criar novo recurso do tipo [{0}]
+widget_resourceFactoryWizard_execute1=Falha ao criar novo recurso - vers\u00E3o do pacote
inexistente
+widget_resourceFactoryWizard_execute2=Falha ao criar novo recurso
+widget_resourceFactoryWizard_createSubmitType=A requisi\u00E7\u00E3o para
cria\u00E7\u00E3o de um recurso do tipo [{0}] foi submetida com sucesso.
+widget_resourceFactoryWizard_createSubmit=A requisi\u00E7\u00E3o para cria\u00E7\u00E3o
de um recurso com nome [{0}] foi submetida com sucesso.
+widget_resourceFactoryWizard_failedToGetType=Falha ao recuperar o tipo de pacote para o
novo recurso
+widget_resourceFactoryWizard_failedToDeleteVersion=Falha ao excluir a vers\u00E3o do
pacote durante o cancelamento da cria\u00E7\u00E3o do recurso
+
+widget_typeCache_loadFail=Failed to load resource type metadata
+
+widget_typeTree_badTemplateType=Invalid URL. Unknown template type [{0}]
+widget_typeTree_badTypeId=Invalid URL. Bad resource type ID [{0}]
+widget_typeTree_loadFail=Failed to load resource types
+
+# Color Picker
+#--------------
+widget_colorPicker_tooltip=Click to select a new color
+
+# Job Trigger Editor
+#--------------------
+widget_jobTriggerEditor_field_mode=Schedule using
+widget_jobTriggerEditor_value_calendar=Calendar
+widget_jobTriggerEditor_value_cronExpression=Cron Expression
+widget_jobTriggerEditor_value_now=Now
+widget_jobTriggerEditor_value_nowAndRepeat=Now & Repeat
+widget_jobTriggerEditor_value_later=Later
+widget_jobTriggerEditor_value_laterAndRepeat=Later & Repeat
+widget_jobTriggerEditor_field_cronExpression=Cron Expression
+widget_jobTriggerEditor_tab_format=Format
+widget_jobTriggerEditor_tab_examples=Examples
+widget_jobTriggerEditor_field_repeatInterval_now=Run now and every
+widget_jobTriggerEditor_field_repeatInterval_later=Repeat every
+widget_jobTriggerEditor_fieldHelp_repeatInterval=how often the operation should be
executed
+widget_jobTriggerEditor_value_for=For
+widget_jobTriggerEditor_value_until=Until
+widget_jobTriggerEditor_value_indefinitely=Indefinitely
+widget_jobTriggerEditor_fieldHelp_repeatDuration=keep running this operation this many
times or until this amount of time has elapsed
+widget_jobTriggerEditor_field_startType=Run
+widget_jobTriggerEditor_value_on=on
+widget_jobTriggerEditor_value_in=in
+widget_jobTriggerEditor_fieldHelp_startDelay=start executing the operation after this
amount of time has elapsed
+widget_jobTriggerEditor_message_startTimeMustBeInFuture=Start time must be in the
future.
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime=End time must be after start
time.
+widget_jobTriggerEditor_message_endTimeMustBeInFuture=End time must be in the future.
+
+# Duration Item
+#---------------
+widget_durationItem_inputUnitLessThanTargetUnit=Input unit is less than target unit.
+widget_durationItem_unitTypeNotSupported=Unit type [{0}] is not supported by this
DurationItem.
+
+
+#===================== Utils ======================
+
+# Ancestry
+#-------------------------------------------------
+util_ancestry_parentAncestry=Parent Ancestry for:
+
+# Disambiguation Report Decorator
+#-------------------------------------------------
+util_disambiguationReportDecorator_pluginSuffix=({0} plugin)
+
+# Monitoring Request Callback
+#------------------------------------------
+util_monitoringRequestCallback_error_checkServerStatusFailure=Imposs\u00EDvel verificar o
status do login - verifique o estatdo do Servidor.
+
+# RPC Manager
+#----------------------
+util_rpcManager_activeRequests={0} Requisi\u00E7\u00F5es ativas
+
+# User Permissions Manager
+#--------------------------
+util_userPerm_loadFailGlobal=Falha ao carregar permiss\u00F5es globais - nenhuma
permiss\u00E3o concedida.
+util_userPerm_loadFailGroup=Falha ao carregar suas permiss\u00F5es para o Grupo de
Recursos com id [{0}] - nenhum permiss\u00E3o concedida.
+util_userPerm_loadFailResource=Falha ao carregar suas permiss\u00F5es para o Recurso com
id [{0}] - nenhuma permiss\u00E3o concedida.
+
+# User Session Manager
+#--------------------------
+util_userSession_loadFailSubject=UserSessionManager\: Falha ao carregar a credencial do
usu\u00E1rio
+util_userSession_logoutFail=Falha durante o logout.
+
+# Error Handler
+#--------------------
+util_errorHandler_nullException=Exce\u00E7\u00E3o nula
+
+# Widgets Field
+#---------------------
+util_widgetsField_unlimited=Ilimitado
+
+
+#================== DataSources ====================
+
+# RPC (abstract)
+#-----------------------
+dataSource_bundle_loadFailed=Failed to load Bundle data
+
+
+# RPC (abstract)
+#-----------------------
+dataSource_rpc_error_transformRequestFailure=Ocorreu uma falha na fonte de dados durante
o processamento da requisi\u00E7\u00E3o {0}.
+dataSource_rpc_error_unsupportedArrayFilterType=Sem suporte para passing de array filters
do tipo {0}.
+dataSource_rpc_error_unsupportedEnumType=Favor adicionar um trecho de c\u00F3digo
apropriado para a enum {0} para RPCDataSource.getEnumArray(Class)
+dataSource_rpc_yes=sim
+dataSource_rpc_no=n\u00E3o
+
+# ContentRepositoryTree
+#------
+dataSource_ContentRepoTree_error_load=Erro ao carregar os reposit\u00F3rios
+dataSource_ContentRepoTree_field_parentId=Parent ID
+
+
+# Users
+#------
+###### dup in common
+dataSource_users_field_id=ID
+dataSource_users_field_name=Nome do Usu\u00E1rio
+dataSource_users_field_ldap=LDAP Login?
+dataSource_users_field_password=Senha
+dataSource_users_field_passwordVerify=Verifique a Senha
+dataSource_users_field_firstName=Primeiro Nome
+dataSource_users_field_lastName=\u00DAltimo Nome
+dataSource_users_field_emailAddress=Endere\u00E7o de Email
+dataSource_users_field_phoneNumber=N\u00FAmero de Telefone
+dataSource_users_field_department=Departamento
+dataSource_users_field_factive=Login Habilitado?
+dataSource_users_delete=Deleted user [{0}]
+dataSource_users_deleteFailed=Failed to delete user [{0}]
+dataSource_users_passwordsDoNotMatch=Passwords do not match.
+dataSource_users_invalidEmailAddress=Invalid email address.
+
+# Roles
+#------
+datasource_roles_field_resourceGroups=Resource Groups
+datasource_roles_field_permissions=Permissions
+datasource_roles_field_subjects=Subjects
+datasource_roles_field_ldapGroups=LDAP Groups
+
+# Platforms
+#-----------
+dataSource_platforms_field_cpu=CPU
+dataSource_platforms_field_memory=Mem\u00F3ria
+dataSource_platforms_field_swap=Swap
+
+# Traits
+#------
+dataSource_traits_failFetch=Failed to fetch traits for criteria [{0}].
+dataSource_traits_field_primaryKey=Chave Prim\u00E1ria
+dataSource_traits_field_definitionID=Definition ID
+dataSource_traits_field_lastChanged=\u00DAltima Altera\u00E7\u00E3o
+dataSource_traits_field_trait=Propriedade
+dataSource_traits_group_field_groupId=ID de Grupo
+
+# Measurement OOBs
+#---------------------------------
+dataSource_measurementOob_field_scheduleName=M\u00E9trica
+dataSource_measurementOob_field_resourceName=Recurso
+dataSource_measurementOob_field_parentName=Pai
+dataSource_measurementOob_field_formattedBaseband=Faixa
+dataSource_measurementOob_field_formattedOutlier=Fora de s\u00E9rie
+dataSource_measurementOob_field_factor=Fator fora da faixa (%)
+dataSource_measurementOob_error_fetchFailure=Falha ao carregar informa\u00E7\u00F5es das
m\u00E9tricas OOB
+
+# Measurements
+#----------------------
+dataSource_definitions_loadFailed=Falha ao carregar defini\u00E7\u00E3o de m\u00E9tricas
+dataSource_schedules_loadFailed=Falha ao carregar agendamento de m\u00E9tricas
+dataSource_schedules_loadFailedCriteria=Failed to load metric schedules for criteria
[{0}]
+dataSource_schedules_loadFailedContext=Failed to load metric schedules for context [{0}]
+dataSource_schedules_field_resourceGroupId=ID de Grupo
+
+dataSource_schedules_enableFailure_resource=Falha ao habilitar a coleta de m\u00E9tricas
de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
+dataSource_schedules_enableFailure_group=Falha ao habilitar a coleta de m\u00E9tricas de
[{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
+
+dataSource_schedules_enableSuccessful_concise=Voce habilitou a coleta de m\u00E9tricas de
[{0}]
+dataSource_schedules_enableSuccessful_full_resource=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\:
[{2}]
+dataSource_schedules_enableSuccessful_full_group=Voc\u00EA habilitou a coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas
foram\: [{2}]
+
+dataSource_schedules_disableFailure_resource=Falha ao desabilitar a coleta de
m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas eram\: [{2}]
+dataSource_schedules_disableFailure_group=Falha ao desabilitar a coleta de m\u00E9tricas
de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas eram\: [{2}]
+
+dataSource_schedules_disableSuccessful_concise=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de [{0}]
+dataSource_schedules_disableSuccessful_full_resource=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas
s\u00E3o\: [{2}]
+dataSource_schedules_disableSuccessful_full_group=Voc\u00EA desabilitou a coleta de
m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas
desabilitadas s\u00E3o\: [{2}]
+
+dataSource_schedules_updateFailure_resource=Falha ao configurar o intervalo para coleta
de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. M\u00E9tricas\: [{2}]. O intervalo
de coleta seria de [{3}] segundos.
+dataSource_schedules_updateFailure_group=Falha ao configurar o intervalo para coleta de
m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. M\u00E9tricas\: [{2}]. O
intervalo de coleta seria de [{3}] segundos.
+
+dataSource_schedules_updateSuccessful_concise=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}]
+dataSource_schedules_updateSuccessful_full_resource=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o recurso com ID [{2}].
M\u00E9tricas atualizadas\: [{3}]
+dataSource_schedules_updateSuccessful_full_group=Um novo intervalo de coleta de [{0}]
segundos foi configurado para m\u00E9tricas de [{1}] para o grupo de recursos com ID
[{2}]. M\u00E9tricas atualizadas\: [{3}]
+
+# Resources
+#-----------------------
+dataSource_resources_field_location=Location
+dataSource_resources_field_key=Key
+dataSource_resources_field_discoveryTime=Discovery Time
+dataSource_resources_field_importTime=Import Time
+dataSource_resources_field_lastModifiedTime=Last Modified Time
+dataSource_resources_field_lastModifier=Last Modifier
+
+# Resource Groups
+#-----------------------
+dataSource_resourceGroups_loadFailed=Failed to load Resource Groups
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_alerts=Alertas
+dataSource_problemResources_field_available=Disponibilidade Atual
+dataSource_problemResources_error_fetchFailure=Falha com carregar Recursos com
alertas/indisponibilidade.
+
+# Recent Operations
+#----------------------------
+dataSource_recentOperations_field_resource=Recurso
+dataSource_recentOperations_field_location=Localiza\u00E7\u00E3o
+dataSource_recentOperations_field_operation=Opera\u00E7\u00E3o
+dataSource_recentOperations_field_time=Data/Hora
+dataSource_recentOperations_field_status=Status
+dataSource_recentOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es finalizadas recentemente.
+
+# Scheduled Operations (ResourceOperationScheduleComposites)
+#------------------------------------------------------------
+dataSource_scheduledOperations_field_resource=Recurso
+dataSource_scheduledOperations_field_location=Localiza\u00E7\u00E3o
+dataSource_scheduledOperations_field_operation=Opera\u00E7\u00E3o
+dataSource_scheduledOperations_field_time=Data/Hora
+dataSource_scheduledOperations_error_fetchFailure=Falha ao carregar a lista de
opera\u00E7\u00F5es agendadas
+
+# Operation Schedules
+#--------------------
+dataSource_operationSchedule_field_id=Schedule ID
+dataSource_operationSchedule_field_operationName=Operation
+dataSource_operationSchedule_field_operationDisplayName=Operation
+dataSource_operationSchedule_field_subject=Owner
+dataSource_operationSchedule_field_description=Notes
+dataSource_operationSchedule_field_nextFireTime=Next Execution
+dataSource_operationSchedule_field_timeout=Timeout (in seconds)
+
+# Operation Histories
+#--------------------
+dataSource_operationHistory_field_operationName=Operation Name
+dataSource_operationHistory_field_createdTime=Created Time
+dataSource_operationHistory_field_startedTime=Started Time
+dataSource_operationHistory_field_subject=Requester
+dataSource_operationHistory_error_fetchFailure=Falha ao carregar o hist\u00F3rico de
opera\u00E7\u00F5es.
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_dateSubmitted=Date Submitted
+dataSource_configurationHistory_dateCompleted=Date Completed
+dataSource_configurationHistory_updateType=Update Type
+dataSource_configurationHistory_updateType_individual=Individual
+dataSource_configurationHistory_updateType_group=Group
+dataSource_configurationHistory_currentConfig=This is the current configuration
+dataSource_configurationHistory_clickToSeeError=Double click to see error message...
+dataSource_configurationHistory_error_fetchFailure=N\u00E3o foi poss\u00EDvel carregar o
hist\u00F3rico de configura\u00E7\u00E3o.
+
+# Resource Errors
+#-------------------------
+dataSource_resourceErrors_field_summary=Sum\u00E1rio
+dataSource_resourceErrors_field_errorType=Tipo de Erro
+dataSource_resourceErrors_field_timeOccured=Tempo
+dataSource_resourceErrors_error_fetchFailure=Falha ao procurar por erros para o Recurso
com ID [{0}].
+dataSource_resourceErrors_clickStatusIcon=Click the icon for more details
+dataSource_resourceErrors_deleteSuccess=You have successfully deleted [{0}] resource
error messages.
+dataSource_resourceErrors_deleteFailure=Failed to delete resource errors
+
+# Template Schedules
+#-------------------------
+datasource_templateSchedules_disabled=Disabled collection of selected metric [{0}].
+datasource_templateSchedules_disabled_detailed=Disabled collection of metric [{0}] [{1}]
by default for ResourceType with id [{2}].
+datasource_templateSchedules_disabled_failed=Failed to disable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled=Enabled collection of selected metric [{0}].
+datasource_templateSchedules_enabled_detailed=Enabled collection of metric [{0}] [{1}] by
default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled_failed=Failed to enable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_updated=Updated collection intervals of selected metric
[{0}].
+datasource_templateSchedules_updated_detail=Collection interval for metric [{0}] [{1}] by
default for ResourceType with id [{2}] set to [{3}] seconds.
+datasource_templateSchedules_updated_failed=Failed to set collection interval to [{0}]
seconds for metric [{1}] [{2}] by default for ResourceType with id [{3}].
+
+
+#********************************** VIEW-SPECIFIC *************************************
+
+#================= Administration ==================
+
+view_admin_administration=Administra\u00E7\u00E3o
+view_admin_landing=Nesta se\u00E7\u00E3o \u00E9 poss\u00EDvel administrar propriedades
globais do RHQ. Isso inclui configura\u00E7\u00F5es de Seguran\u00E7a, Plugins, e
gerenciamento de servidores RHQ e agentes.
+view_admin_configuration=Configura\u00E7\u00E3o
+view_admin_security=Seguran\u00E7a
+view_admin_topology=Topologia
+view_admin_content=Content
+
+view_adminSecurity_users=Usu\u00E1rios
+view_adminSecurity_roles=Perfis
+
+view_adminTopology_affinityGroups=Grupos de Afinidade
+view_adminTopology_agents=Agentes
+view_adminTopology_partitionEvents=Eventos na Parti\u00E7\u00E3o
+view_adminTopology_remoteAgentInstall=Instala\u00E7\u00E3o Remota de Agentes
+view_adminTopology_servers=Servidores
+
+view_adminConfig_downloads=Downloads
+view_adminConfig_plugins=Plugins
+view_adminConfig_systemSettings=Propriedades de Sistema
+view_adminConfig_templates=Modelos
+
+view_adminContent_contentSources=Content Sources
+view_adminContent_repositories=Repositories
+
+# Administration/Templates
+#--------------------------------
+
+view_adminTemplates_platforms=Platforms
+view_adminTemplates_platformServices=Platform Services
+view_adminTemplates_servers=Servers
+view_adminTemplates_enabledAlertTemplates=Enabled Alert Templates
+view_adminTemplates_disabledAlertTemplates=Disabled Alert Templates
+view_adminTemplates_enabledMetricTemplates=Enabled Metric Templates
+view_adminTemplates_disabledMetricTemplates=Disabled Metric Templates
+view_adminTemplates_editAlertTemplate=Edit Alert Template
+view_adminTemplates_editMetricTemplate=Edit Metric Template
+view_adminTemplates_prompt_enabledAlertTemplates=Number of alert templates that are
enabled on this resource type
+view_adminTemplates_prompt_disabledAlertTemplates=Number of alert templates that are
created but disabled on this resource type
+view_adminTemplates_prompt_enabledMetricTemplates=Number of metric schedules that are
enabled by default on this resource type
+view_adminTemplates_prompt_disabledMetricTemplates=Number of metric schedules that are
disabled by default on this resource type
+
+# Administration/Security/Users
+#--------------------------------
+view_adminUsersList_dataTypeName=usu\u00E1rio
+view_adminUsersList_dataTypeNamePlural=usu\u00E1rios
+
+# Administration/Security/Users/#
+#--------------------------------
+view_adminUsersDetails_dataTypeName=usu\u00E1rio
+
+# Administration/Security/Roles/#
+#--------------------------------
+view_adminRoles_assignedGroups=Grupos de Recursos Associados
+view_adminRoles_assignedSubjects=Perfis Associados
+view_adminRoles_failLdap=Falha ao determinar se o LDAP foi configurado - assumindo como
LDAP n\u00E3o configurado.
+view_adminRoles_failLdapGroups=Falha ao recuperar os grupos dispon\u00EDveis no LDAP -
assumindo como LDAP sem grupos.
+view_adminRoles_failLdapGroupsRole=Falha ao carregar grupos do LDAP dispon\u00EDveis para
o perfil.
+view_adminRoles_failRoles=Falha ao recuperar perfis.
+view_adminRoles_globalPerms=Permiss\u00F5es Globais
+view_adminRoles_ldapGroups=Grupos LDAP
+view_adminRoles_ldapGroupsReadOnly=Informa\u00E7\u00F5es do grupo LDAP com
permiss\u00F5es apenas de leitura
+view_adminRoles_noItems=Sem itens para apresentar
+view_adminRoles_noLdap=A integra\u00E7\u00E3o com o LDAP ainda n\u00E3o foi configurada.
Para configurar o LDAP acesse <a {0}>{1}</a>.
+view_adminRoles_perms=Permiss\u00F5es
+view_adminRoles_resourcePerms=Permiss\u00F5es do Recurso
+view_adminRoles_roleAdded=Perfil [{0}] adicionado.
+view_adminRoles_roleDeleteFailed=Falha ao excluir o perfil [{0}].
+view_adminRoles_roleDeleted=Perfil [{0}] exclu\u00EDdo.
+view_adminRoles_roleUpdateFailed=Falha ao atualizar o perfil [{0}].
+view_adminRoles_roleUpdated=Perfil [{0}] atualizado.
+view_adminRoles_permissions_globalPermissions=Global Permissions
+view_adminRoles_permissions_resourcePermissions=Resource Permissions
+view_adminRoles_permissions_readAccessImplied=Read access for the {0} permission is
implied and cannot be disabled.
+view_adminRoles_permissions_isAuthorized=Authorized?
+view_adminRoles_permissions_isRead=Read?
+view_adminRoles_permissions_isWrite=Write?
+view_adminRoles_permissions_read=Read:
+view_adminRoles_permissions_write=Write:
+view_adminRoles_permissions_perm_manageSecurity=Manage Security
+view_adminRoles_permissions_permDesc_manageSecurity=can create, update, or delete users
and roles (viewing is implied for everyone)
+view_adminRoles_permissions_perm_manageInventory=Manage Inventory
+view_adminRoles_permissions_permDesc_manageInventory=has all Resource permissions, as
described below, for all Resources; can create, update, and delete groups; and can import
auto-discovered or manually discovered Resources
+view_adminRoles_permissions_perm_manageSettings=Manage Settings
+view_adminRoles_permissions_permDesc_manageSettings=can modify the RHQ Server
configuration and perform any Server-related functionality
+view_adminRoles_permissions_perm_manageBundles=Manage Bundles
+view_adminRoles_permissions_permDesc_manageBundles=can create, update, or delete
provisioning bundles (viewing is implied for everyone)
+view_adminRoles_permissions_perm_manageRepositories=Manage Repositories
+view_adminRoles_permissions_permDesc_manageRepositories=can create, update, or delete
repositories of any user (everyone can create their own repositories), can associate
content sources to repositories.
+view_adminRoles_permissions_perm_inventory=Inventory
+view_adminRoles_permissions_permReadDesc_inventory=(IMPLIED) view Resource properties
(name, description, version, etc.), connection settings, and connection settings history
+view_adminRoles_permissions_permWriteDesc_inventory=update Resource name, version,
description, and connection settings; delete connection settings history items
+view_adminRoles_permissions_perm_manageMeasurements=Manage Measurements
+view_adminRoles_permissions_permReadDesc_manageMeasurements=(IMPLIED) view metric data
and collection schedules
+view_adminRoles_permissions_permWriteDesc_manageMeasurements=update metric collection
schedules
+view_adminRoles_permissions_perm_manageAlerts=Manage Alerts
+view_adminRoles_permissions_permReadDesc_manageAlerts=(IMPLIED) view alert definitions
and alert history
+view_adminRoles_permissions_permWriteDesc_manageAlerts=create, update, and delete alert
definitions; acknowledge and delete alert history items
+view_adminRoles_permissions_perm_configure=Configure
+view_adminRoles_permissions_permReadDesc_configure=view Resource configuration and
Resource configuration revision history
+view_adminRoles_permissions_permWriteDesc_configure=update Resource configuration; delete
Resource configuration revision history items
+view_adminRoles_permissions_perm_control=Control
+view_adminRoles_permissions_permReadDesc_control=(IMPLIED) view available operations and
operation execution history
+view_adminRoles_permissions_permWriteDesc_control=execute operations; delete operation
execution history items
+view_adminRoles_permissions_perm_manageEvents=Manage Events
+view_adminRoles_permissions_permReadDesc_manageEvents=(IMPLIED) view events
+view_adminRoles_permissions_permWriteDesc_manageEvents=delete events
+view_adminRoles_permissions_perm_manageContent=Manage Content
+view_adminRoles_permissions_permReadDesc_manageContent=(IMPLIED) view installed and
available packages; view package installation history
+view_adminRoles_permissions_permWriteDesc_manageContent=subscribe to content sources;
install and uninstall packages
+view_adminRoles_permissions_perm_createChildResources=Create Child Resources
+view_adminRoles_permissions_permReadDesc_createChildResources=(IMPLIED) view child
Resource creation history
+view_adminRoles_permissions_permWriteDesc_createChildResources=create new child Resources
(for child Resources of types that are creatable)
+view_adminRoles_permissions_perm_deleteChildResources=Delete Child Resources
+view_adminRoles_permissions_permReadDesc_deleteChildResources=(IMPLIED) view child
Resource deletion history
+view_adminRoles_permissions_permWriteDesc_deleteChildResources=uninventory resources;
delete Resources (for Resources of types that are deletable)
+view_adminRoles_permissions_autoselecting_manageSecurity_implied=Autoselected unselected
permissions, since MANAGE_SECURITY implies all other permissions...
+view_adminRoles_permissions_autoselecting_manageInventory_implied=Autoselected unselected
Resource permissions, since MANAGE_INVENTORY implies all Resource permissions...
+view_adminRoles_permissions_autoselecting_configureWrite_implied=Autoselected
CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
+view_adminRoles_permissions_autoselecting_configureRead_implied=Autodeselected
CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
+view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection={0} permission
cannot be deselected, unless the Manage Security permission, which implies all other
permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection={0}
permission cannot be deselected, unless Manage Inventory, which implies all Resource
permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToCorrespondingWritePermSelection={0}
read permission cannot be deselected, unless the {0} write permission, which implies the
read permission, is deselected first.
+
+# Administration/Topology/RemoteAgentInstall/#
+#--------------------------------
+view_remoteAgentInstall_agentStatus=Status do Agente
+view_remoteAgentInstall_agentStatusDefault=-Pressione o Bot\u00E3o Atualizar Status-
+view_remoteAgentInstall_connInfo=Informa\u00E7\u00E3o de Conex\u00E3o
+view_remoteAgentInstall_buttonFindAgent=Procurar Agente
+view_remoteAgentInstall_error_1=Ocorreu um erro ao tentar localizar o caminho de
instala\u00E7\u00E3o do agente
+view_remoteAgentInstall_error_2=N\u00E3o foi poss\u00EDvel encontrar uma
instala\u00E7\u00E3o do agente nos locais comuns
+view_remoteAgentInstall_error_3=N\u00E3o foi poss\u00EDvel encontar a
instala\u00E7\u00E3o do agente em [{0}]
+view_remoteAgentInstall_error_4=Falha ao instalar o agente
+view_remoteAgentInstall_error_5=Falha a iniciar o agente
+view_remoteAgentInstall_error_6=Falha ao parar o agente
+
+view_remoteAgentInstall_installAgent=Instalar Agente
+view_remoteAgentInstall_installInfo=Informa\u00E7\u00E3o sobre a instala\u00E7\u00E3o do
Agente
+view_remoteAgentInstall_installPath=Caminho de Instala\u00E7\u00E3o do Agente
+view_remoteAgentInstall_owner=Propriet\u00E1rio
+view_remoteAgentInstall_promptInstallPath=Onde o agente est\u00E1 ou ser\u00E1 instalado.
Caso n\u00E3o tenha certeza onde o agente est\u00E1 instalado, informe um diret\u00F3rio
pai e clique em ''Procurar Agente'' para encontrar o agente. Caso informe
um diret\u00F3rio vazio, a busca pelo agente ser\u00E1 realizada em locais de
instala\u00E7\u00E3o comuns.
+view_remoteAgentInstall_promptHost=O host onde o agente est\u00E1 ou ser\u00E1 instalado
+view_remoteAgentInstall_promptPassword=Credenciais usadas para autentica\u00E7\u00E3o do
usu\u00E1rio no host via SSH
+view_remoteAgentInstall_promptPort=Porta onde o servidor SSH escuta. Se n\u00E3o
especificada, o padr\u00E3o \u00E9 22
+view_remoteAgentInstall_promptUser=Nome do usu\u00E1rio informado nas credenciais
passadas ao host via SSH
+view_remoteAgentInstall_result=Resultado
+view_remoteAgentInstall_resultCode=ResultCode
+view_remoteAgentInstall_startAgent=Iniciar Agente
+view_remoteAgentInstall_startAgentResults=resultado da inicializa\u00E7\u00E3o do
Agente\: [{0}]
+view_remoteAgentInstall_step=Step
+view_remoteAgentInstall_stopAgent=Parar Agente
+view_remoteAgentInstall_stopAgentResults=resultado do encerramento do Agente\: [{0}]
+view_remoteAgentInstall_success=Instala\u00E7\u00E3o do Agente finalizada
+view_remoteAgentInstall_updateStatus=Status da Atualiza\u00E7\u00E3o
+
+# Administration/SystemSettings
+#------------------------------
+view_admin_systemSettings_cannotLoadSettings=Cannot obtain the current system settings
+view_admin_systemSettings_savedSettings=You successfully saved the system properties
+view_admin_systemSettings_saveFailure=Failed to save the system settings
+view_admin_systemSettings_fixBeforeSaving=Please fix the invalid values before saving
+view_admin_systemSettings_group_general=General Configuration Properties
+view_admin_systemSettings_group_dataMgr=Data Manager Configuration Properties
+view_admin_systemSettings_group_baseline=Automatic Baseline Configuration Properties
+view_admin_systemSettings_group_ldap=LDAP Configuration Properties
+view_admin_systemSettings_cannotLoadServerDetails=Cannot load server details
+view_admin_systemSettings_serverDetails=Server Details
+view_admin_systemSettings_serverDetails_buildNumber=Build Number
+view_admin_systemSettings_serverDetails_tz=Server Time Zone
+view_admin_systemSettings_serverDetails_time=Server Local Time
+view_admin_systemSettings_serverDetails_installDir=Server Installation Directory
+view_admin_systemSettings_serverDetails_dbUrl=Database Connection URL
+view_admin_systemSettings_serverDetails_dbName=Database Product Name
+view_admin_systemSettings_serverDetails_dbVersion=Database Product Version
+view_admin_systemSettings_serverDetails_dbDriverName=Database Driver Name
+view_admin_systemSettings_serverDetails_dbDriverVersion=Database Driver Version
+view_admin_systemSettings_serverDetails_currentTable=Current Measurement Raw Table
+view_admin_systemSettings_serverDetails_nextRotation=Next Measurement Table Rotation
+view_admin_systemSettings_BaseURL_name=GUI Console URL
+view_admin_systemSettings_BaseURL_desc=A URL to the server GUI, used mainly within alert
email notifications.
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_name=Agent Max Quiet Time Allowed
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_desc=If this amount of time passes
without hearing from an agent, that quiet agent will be considered down. This value is
specified in minutes.
+view_admin_systemSettings_EnableAgentAutoUpdate_name=Enable Agent Auto-Updates
+view_admin_systemSettings_EnableAgentAutoUpdate_desc=Determines if the server will allow
agents to auto-update themselves. You will not be able to download agent distributions
from the server if this is disabled.
+view_admin_systemSettings_EnableDebugMode_name=Enable Debug Mode
+view_admin_systemSettings_EnableDebugMode_desc=If enabled, the server will enter debug
mode.
+view_admin_systemSettings_EnableExperimentalFeatures_name=Enable Experimental Features
+view_admin_systemSettings_EnableExperimentalFeatures_desc=If enabled, any experimental
features that exist in the current product will be available.
+view_admin_systemSettings_DataMaintenance_name=Database Maintenance Period
+view_admin_systemSettings_DataMaintenance_desc=How often database maintenance is
performed (for example, vacuuming if using Postgres). This is specified in hours.
+view_admin_systemSettings_AvailabilityPurge_name=Delete Availability Data Older Than
+view_admin_systemSettings_AvailabilityPurge_desc=How old availability data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_AlertPurge_name=Delete Alerts Older Than
+view_admin_systemSettings_AlertPurge_desc=How old alert history items must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_TraitPurge_name=Delete Measurement Traits Older Than
+view_admin_systemSettings_TraitPurge_desc=How old measurement trait data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_RtDataPurge_name=Delete Response Time Data Older Than
+view_admin_systemSettings_RtDataPurge_desc=How old response time data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_EventPurge_name=Delete Events Older Than
+view_admin_systemSettings_EventPurge_desc=How old event data must be before being purged
from the database. This is specified in days.
+view_admin_systemSettings_DataReindex_name=Reindex Data Tables Nightly
+view_admin_systemSettings_DataReindex_desc=If enabled, certain database tables will be
re-indexed periodically.
+view_admin_systemSettings_BaselineFrequency_name=Baseline Calculation Frequency
+view_admin_systemSettings_BaselineFrequency_desc=The frequency which the auto-calculation
of baselines will be performed. If 0, baseline auto-calculation is disabled. This is
specified in days.
+view_admin_systemSettings_BaselineDataSet_name=Baseline Dataset
+view_admin_systemSettings_BaselineDataSet_desc=The amount of past measurement data that
is used to determine a baseline. This is specified in days.
+view_admin_systemSettings_JAASProvider_name=Enable LDAP
+view_admin_systemSettings_JAASProvider_desc=Should LDAP be used to determine user
identity?
+view_admin_systemSettings_LDAPUrl_name=LDAP URL
+view_admin_systemSettings_LDAPUrl_desc=URL to the LDAP Server
+view_admin_systemSettings_LDAPProtocol_name=SSL
+view_admin_systemSettings_LDAPProtocol_desc=Should communication with the LDAP server be
done over SSL?
+view_admin_systemSettings_LDAPLoginProperty_name=Login Property
+view_admin_systemSettings_LDAPLoginProperty_desc=The LDAP property that contains the user
name. Defaults to "cn". If multiple matches are found, the first entry found is
used.
+view_admin_systemSettings_LDAPFilter_name=Search Filter
+view_admin_systemSettings_LDAPFilter_desc=Any additional filters to apply when doing the
LDAP search. This is useful if the population to authenticate can be identified via a
given LDAP property, e.g. RHQUser=true
+view_admin_systemSettings_LDAPGroupFilter_name=Group Search Filter
+view_admin_systemSettings_LDAPGroupFilter_desc=LDAP search filter that must return all
LDAP groups available for authorization. This is used for LDAP group authorization.
+view_admin_systemSettings_LDAPGroupMember_name=Group Member Filter
+view_admin_systemSettings_LDAPGroupMember_desc=LDAP search filter that is used in
conjunction with the group search filter to determine user authorization. This is used for
LDAP group authorization.
+view_admin_systemSettings_LDAPBaseDN_name=Search Base
+view_admin_systemSettings_LDAPBaseDN_desc=The base of the directory tree to search for
usernames and passwords while authenticating users, e.g. ou=People,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindDN_name=Username
+view_admin_systemSettings_LDAPBindDN_desc=The username to connect to the LDAP server when
querying the LDAP user database. This is typically the full LDAP distinguished name (DN)
of a manager user, e.g. cn=Manager,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindPW_name=Password
+view_admin_systemSettings_LDAPBindPW_desc=The credentials of the user used to connect to
the LDAP server when querying the LDAP user database.
+
+# Administration/Downloads
+#------------------------------
+view_admin_downloads_agentDownload=Agent Download
+view_admin_downloads_cliDownload=Command Line Client Download
+view_admin_downloads_bundleDownload=Bundle Deployer Download
+view_admin_downloads_connectorsDownload=Connectors Download
+
+view_admin_downloads_agent_loadError=Cannot get agent version info
+view_admin_downloads_agent_version=Agent Version
+view_admin_downloads_agent_buildNumber=Agent Build
+view_admin_downloads_agent_md5=Agent MD5
+view_admin_downloads_agent_link_label=Link
+view_admin_downloads_agent_link_value=Download Agent {0} ({1})
+view_admin_downloads_agent_help=<p> \
+ This is the RHQ Agent Update Binary jar file. The purpose of this \
+ jar file is to allow you to install a fresh agent on a machine \
+ where an agent does not yet exist and to allow you to update \
+ an agent that is already installed on a machine. \
+ For more details, run this agent download jar with the --help command line
option:<br/> \
+ <b>java -jar <agent-download.jar> --help</b> \
+ </p> \
+ <h3>Agent Install</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --install[=<new agent
directory>]</b><br/> \
+ This command will install a new agent. If you do not specify the new agent
directory, the default will be "." \
+ </p> \
+ <h3>Agent Update</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --update[=<old agent
home>]</b><br/> \
+ This will update an existing agent that was already installed. \
+ If you do not specify the directory where the old, existing agent was installed, it
will assumed to be "rhq-agent". \
+ </p>
+
+view_admin_downloads_cli_loadError=Cannot get CLI version info
+view_admin_downloads_cli_version=CLI Version
+view_admin_downloads_cli_buildNumber=CLI Build
+view_admin_downloads_cli_md5=CLI MD5
+view_admin_downloads_cli_link_label=Link
+view_admin_downloads_cli_link_value=Download CLI {0} ({1})
+view_admin_downloads_cli_help=<p> \
+ This is the Command Line Client tool, otherwise known as the CLI. \
+ It is a standalone tool that runs from within a console and provides a \
+ command line interface to the RHQ Server. You can invoke commands via the CLI \
+ as well as run scripts to perform automated tasks. See the documentation for \
+ more information on how to install and use the CLI. \
+ </p>
+
+view_admin_downloads_bundle_loadError=Cannot get bundle deployer info
+view_admin_downloads_bundle_link_label=Link
+view_admin_downloads_bundle_link_value=Download Bundle Deployer {0}
+view_admin_downloads_bundle_help=<p> \
+ This is the Bundle Deployer tool. It is for use by developers and packagers of RHQ
bundles. \
+ This standalone tool allows you to test your bundles and their recipes from a console.
\
+ </p>
+
+view_admin_downloads_connectors_loadError=Cannot get connectors info
+view_admin_downloads_connectors_none=No connectors are available for download
+view_admin_downloads_connectors_help=Connectors are software that is needed in order for
some products to be manageable by RHQ. You install connectors into some managed products
so RHQ agents can talk to them. See the documentation for more information.
+
+# Measurement Templates view
+view_admin_measTemplates_title=Template Metric Collection Schedules
+view_admin_measTemplates_updateExisting_title=Update Existing Schedules
+view_admin_measTemplates_updateExisting_tooltip=Check this box to update the collection
schedules for the selected metrics on all existing resources of this type. If this is not
checked, the template schedules will only be applied to new resources of this type that
are added to inventory in the future.
+
+#==================== Alerts ======================
+view_alerts_table_title_group=Hist\u00F3rico de Alertas do Grupo
+view_alerts_table_title_resource=Hist\u00F3rico de Alertas do Recurso
+view_alerts_table_filter_priority=Filtro de Prioridade
+view_alerts_field_created_time=Data de Cria\u00E7\u00E3o
+view_alerts_field_modified_time=Data de Altera\u00E7\u00E3o
+view_alerts_field_enabled=Habilitado
+view_alerts_field_ack_time=Data de Verifica\u00E7\u00E3o
+view_alerts_field_ack_subject=Assunto da Verifica\u00E7\u00E3o
+view_alerts_field_ack_status=Status
+view_alerts_field_ack_status_noAck=No Ack
+view_alerts_field_ack_status_noAckHover=Not yet Acknowledged
+view_alerts_field_ack_status_ack=Ack ({0})
+view_alerts_field_ack_status_ackHover=Acknowledged by {0} at {1}
+view_alerts_field_name=Nome
+view_alerts_field_condition_text=Condi\u00E7\u00E3o
+view_alerts_field_condition_text_none=Sem condi\u00E7\u00F5es
+view_alerts_field_condition_text_many=M\u00FAltiplas condi\u00E7\u00F5es
+view_alerts_field_condition_value=Valor da Condi\u00E7\u00E3o
+view_alerts_field_priority=Prioridade
+view_alerts_field_parent=Pai
+view_alerts_field_protected=Protegido
+view_alerts_field_protected_tooltip=Se verdadeiro, esta defini\u00E7\u00E3o \u00E9
protegida de altera\u00E7\u00F5es feitas na defini\u00E7\u00E3o pai, ou seja,
altera\u00E7\u00F5es realizadas no pai n\u00E3o sobrescrevem esta defini\u00E7\u00E3o.
+view_alerts_loadFailed=Falha ao carregar dados dos alertas
+view_alerts_delete_confirm=Excluir o(s) alerta(s) selecionado(s)?
+view_alerts_delete_confirm_all=Excluir todos os alertas?
+view_alerts_delete_success=Alertas {0} exclu\u00EDdos com sucesso
+view_alerts_delete_failure=Falha ao excluir alertas com os seguintes IDs\: {0}
+view_alerts_delete_failure_all=N\u00E3o foi poss\u00EDvel excluir os alertas
+view_alerts_ack_confirm=Confirma o(s) alerta(s) selecionado(s)?
+view_alerts_ack_confirm_all=Confirma todos os alertas?
+view_alerts_ack_success=Alertas {0} confirmados com sucesso
+view_alerts_ack_failure=Falha ao confirmar alertas com os seguintes IDs\: {0}
+view_alerts_ack_failure_all=N\u00E3o foi poss\u00EDvel confirmar todos os alertas
+view_alert_details_loadFailed=Falha ao recuperar detalhes do alerta
+view_alert_details_field_ack_by=Verificado por
+view_alert_details_field_ack_at=Verificado em
+view_alert_details_field_recovery_info=Informa\u00E7\u00E3o de Recupera\u00E7\u00E3o
+view_alert_definition_for_type=Visualizar Template
+view_alert_definition_for_group=Visualizar Defini\u00E7\u00E3o de Grupo
+view_alert_definitions_table_title_group=Defini\u00E7\u00F5es de Alertas para Grupo
+view_alert_definitions_table_title_resource=Defini\u00E7\u00F5es de Alerta para Recurso
+view_alert_definitions_loadFailed=Falha ao obter a defini\u00E7\u00E3o do alerta
+view_alert_definitions_loadFailed_single=Falha ao obter a defini\u00E7\u00E3o do alerta
com ID {0}
+view_alert_definitions_enable_confirm=Habilitar a(s) defini\u00E7\u00E3o(\u00F5es) para o
alerta selecionado?
+view_alert_definitions_enable_success=Defini\u00E7\u00F5es do alerta {0} habilitados com
sucesso
+view_alert_definitions_enable_failure=Falha ao habilitar defini\u00E7\u00F5es para o
alerta selecionado
+view_alert_definitions_disable_confirm=Desabilitar as defini\u00E7\u00F5es para o alerta
selecionado?
+view_alert_definitions_disable_success=Defini\u00E7\u00F5es do alerta {0} desabilitadas
com sucesso
+view_alert_definitions_disable_failure=Falha ao desabilitar defini\u00E7\u00F5es para o
alerta selecionado
+view_alert_definitions_delete_confirm=Excluir defini\u00E7\u00F5es para o alerta
selecionado?
+view_alert_definitions_delete_success=Defini\u00E7\u00F5es do alerta {0} exclu\u00EDdas
com sucesso
+view_alert_definitions_delete_failure=Falha aos excluir as defini\u00E7\u00F5es do alerta
selecionado
+view_alert_definitions_create_success=Defini\u00E7\u00E3o do alerta criada com sucesso
+view_alert_definitions_create_failure=Falha na cria\u00E7\u00E3o da defini\u00E7\u00E3o
do alerta
+view_alert_definitions_update_success=Defini\u00E7\u00E3o do alerta atualizada com
sucesso
+view_alert_definitions_update_failure=Falha ao atualizar a defini\u00E7\u00E3o do alerta
+view_alert_definition_condition_editor_option_label=Tipo de Condi\u00E7\u00E3o
+view_alert_definition_condition_editor_option_availability=Mudan\u00E7a de
Disponibilidade
+view_alert_definition_condition_editor_option_metric_threshold=Threshold (valor absoluto)
da M\u00E9trica
+view_alert_definition_condition_editor_option_metric_baseline=Threshold base da
M\u00E9trica
+view_alert_definition_condition_editor_option_metric_change=Mudan\u00E7a no valor da
M\u00E9trica
+view_alert_definition_condition_editor_option_metric_calltime_threshold=Tempo limite da
chamada
+view_alert_definition_condition_editor_option_metric_calltime_change=Mudan\u00E7a no
tempo de chamada
+view_alert_definition_condition_editor_option_metric_trait_change=Mudan\u00E7a de
Carcter\u00EDstica
+view_alert_definition_condition_editor_option_operation=Execu\u00E7\u00E3o de
Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_option_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
+view_alert_definition_condition_editor_option_event=Detec\u00E7\u00E3o de Evento
+view_alert_definition_condition_editor_avilability_tooltip=Especifica a mudan\u00E7a de
estado na disponibilidade do recurso que ir\u00E1 disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_avilability_value=Disponibilidade
+view_alert_definition_condition_editor_avilability_option_up=DISPON\u00CDVEL
+view_alert_definition_condition_editor_avilability_option_down=INDISPON\u00CDVEL
+view_alert_definition_condition_editor_metric_common_definition_not_found=Deve existir
uma defini\u00E7\u00E3o para a m\u00E9trica - algo est\u00E1 incorreto
+view_alert_definition_condition_editor_metric_threshold_tooltip=Especifica um threshold
que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser
absoluto e com uma unidade de medida opcional.
+view_alert_definition_condition_editor_metric_threshold_name=M\u00E9trica
+view_alert_definition_condition_editor_metric_threshold_value=Valor da M\u00E9trica
+view_alert_definition_condition_editor_metric_threshold_value_tooltip=Limiar (threshold)
da m\u00E9trica utilizado na compara\u00E7\u00E3o como condi\u00E7\u00E3o de disparo.
+view_alert_definition_condition_editor_metric_threshold_comparator=Mecanismo de
Compara\u00E7\u00E3o
+view_alert_definition_condition_editor_metric_threshold_comparator_less=Menor que
+view_alert_definition_condition_editor_metric_threshold_comparator_equal=Igual \u00E0
+view_alert_definition_condition_editor_metric_threshold_comparator_greater=Maior que
+view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=Como a
m\u00E9trica coletada deve ser comparada ao threshold estabelecido
+view_alert_definition_condition_editor_metric_baseline_tooltip=Especifica a linha de base
que, quando violada, dispara a condi\u00E7\u00E3o. O valor especificado \u00E9 o
percentual do valor da linha de base informado.
+view_alert_definition_condition_editor_metric_baseline_percentage=Percentual da linha de
base
+view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=Valor da
m\u00E9trica coletada usada para disparo da condi\u00E7\u00E3o quando comparado ao valor
da linha de base selecionada
+view_alert_definition_condition_editor_metric_baseline_value=Linha de base
(<i>baseline</i>)
+view_alert_definition_condition_editor_metric_change_tooltip=Especifica a m\u00E9trica
cujo valor deve ser alterado para disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Especifica um
tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O
valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9
necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\:
m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
+view_alert_definition_condition_editor_metric_calltime_common_name=M\u00E9trica do tempo
de chamada
+view_alert_definition_condition_editor_metric_calltime_common_limit=Tempo limite da
chamada
+view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=Tempo de
chamada limite a ser comparado com o valor informado
+view_alert_definition_condition_editor_metric_calltime_common_regex=Express\u00E3o
Regular
+view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=Se
especificada, essa \u00E9 a express\u00E3o regular a ser satisfeita pela chamada para
disparar a condi\u00E7\u00E3o.
+view_alert_definition_condition_editor_metric_calltime_common_comparator=Compara\u00E7\u00E3o
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Redu\u00E7\u00F5es
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Ganhos
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Mudan\u00E7as
+view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=Como o
valor do tempo de chamada deve ser comparado ao valor limite
+view_alert_definition_condition_editor_metric_calltime_threshold_value=Valor do tempo de
chamada
+view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=O valor do
limiar (<i>threshold</i>) da m\u00E9trica usado para disparar a
condi\u00E7\u00E3o quando comparado ao mecanismo de compara\u00E7\u00E3o escolhido.
+view_alert_definition_condition_editor_metric_calltime_change_tooltip=Especifica o valor
do tempo de chamada que, quanto alterado, dispara a condi\u00E7\u00E3o. \u00C9
necess\u00E1rio especificar o tempo limite para a chamada (m\u00EDnimo, m\u00E1ximo ou
m\u00E9dio) e o percental de mudan\u00E7a que deve ocorrer.
+view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentual de
Mudan\u00E7a
+view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=Valor do
tempo de chamada coletado usado para disparar a condi\u00E7\u00E3o quando diferir do
percentual do valor limite do tempo de chamada definido.
+view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait
whose value must change to trigger the condition.
+view_alert_definition_condition_editor_metric_trait_change_value=Caracter\u00EDstica
+view_alert_definition_condition_editor_operation_tooltip=Define o resultado esperado
quando a opera\u00E7\u00E3o selecionada for executada para dispararo da
confi\u00E7\u00E3o.
+view_alert_definition_condition_editor_operation_value=Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_operation_status=Status da Opera\u00E7\u00E3o
+view_alert_definition_condition_editor_operation_status_inprogress=Em andamento
+view_alert_definition_condition_editor_operation_status_success=Sucesso
+view_alert_definition_condition_editor_operation_status_failure=Falha
+view_alert_definition_condition_editor_operation_status_canceled=Cancelada
+view_alert_definition_condition_editor_resource_configuration_tooltip=Essa
condi\u00E7\u00E3o \u00E9 disparada quando a configura\u00E7\u00E3o do recurso for
alterada.
+view_alert_definition_condition_editor_event_tooltip=Define a severeidade do evento para
disparar a condi\u00E7\u00E3o. Caso seja definida uma express\u00E3o regular, a
condi\u00E7\u00E3o somente ser\u00E1 disparada se o evento satisfazer a express\u00E3o.
+view_alert_definition_condition_editor_event_severity=Severidade do Evento
+view_alert_definition_condition_editor_event_severity_debug=Debug
+view_alert_definition_condition_editor_event_severity_info=Info
+view_alert_definition_condition_editor_event_severity_warn=Warn
+view_alert_definition_condition_editor_event_severity_error=Error
+view_alert_definition_condition_editor_event_severity_fatal=Fatal
+view_alert_definition_condition_editor_event_regex=Express\u00E3o Regular
+view_alert_definition_condition_editor_event_regex_tooltip=Se definida, a
condi\u00E7\u00E3o somente ser\u00E1 disparada caso o evento satisfa\u00E7a a
express\u00E3o.
+view_alert_definition_condition_editor_common_min=M\u00EDnimo
+view_alert_definition_condition_editor_common_avg=M\u00E9dio
+view_alert_definition_condition_editor_common_max=M\u00E1ximo
+view_alert_definition_condition_editor_delete_confirm=Delete the selected alert
condition(s)?
+view_alert_definition_notification_editor_title_add=Adicionar Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_title_edit=Editar Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_sender=Remetente da Notifica\u00E7\u00E3o
+view_alert_definition_notification_editor_none_available=Remetentes n\u00E3o
dispon\u00EDveis
+view_alert_definition_notification_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel obter
remetentes
+view_alert_definition_notification_editor_loadFailed_single=N\u00E3o \u00E9 poss\u00EDvel
obter a configura\u00E7\u00E3o do remetente
+view_alert_definition_notification_editor_saveFailed=N\u00E3o foi poss\u00EDvel salvar a
configura\u00E7\u00E3o
+view_alert_definition_notification_editor_field_sender=Remetente
+view_alert_definition_notification_editor_field_configuration=Configura\u00E7\u00E3o
+view_alert_definition_notification_editor_field_configuration_not_loaded=Desconhecido
+view_alert_definition_notification_editor_field_configuration_loadFailed=Falha ao obter a
configura\u00E7\u00E3o
+view_alert_definition_notification_editor_delete_confirm=Tem certeza de que deseja
excluir as notifica\u00E7\u00F5es selecionadas?
+view_alert_definition_notification_operation_editor_mode_title=Modo de Sele\u00E7\u00E3o
do Recurso
+view_alert_definition_notification_operation_editor_mode_this=Este Recurso
+view_alert_definition_notification_operation_editor_mode_specific=Recurso
Espec\u00EDfico
+view_alert_definition_notification_operation_editor_mode_relative=Recurso parente
+view_alert_definition_notification_operation_editor_mode_unknown=OP\u00C7\u00C3O
INV\u00C1LIDA - BUG\!
+view_alert_definition_notification_operation_editor_common_operation=Opera\u00E7\u00E3o
+view_alert_definition_notification_operation_editor_specific_resource=Recurso
+view_alert_definition_notification_operation_editor_specific_pick_button=Selecionar
+view_alert_definition_notification_operation_editor_specific_pick_text=Selecione um
recurso...
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Favor
selecionar um recurso
+view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Selecione
um recurso que possua um ou mais opera\u00E7\u00F5es
+view_alert_definition_notification_operation_editor_relative_ancestor=Iniciar a busca a
partir de
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Selecione o
topo da hierarquia para buscar a \u00E1rvore de descendentes para Filtro por Tipo
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter a ascend\u00EAncia do tipo
+view_alert_definition_notification_operation_editor_relative_ancestor_root=Tipo do
Ancestral Raiz
+view_alert_definition_notification_operation_editor_relative_descendant=Ent\u00E3o
procure por
+view_alert_definition_notification_operation_editor_relative_descendant_tooltip=Tipo do
recurso a ser procurado a baixo do tipo raiz definido na sele\u00E7\u00E3o 'Inicia a
Pesquesa a partir de'.
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=Um
nome especifico para identificar unicamente um recurso quando existir mais de um do mesmo
tipo. Isso \u00E9 opcional, se definido, sempre ser\u00E1 um recurso do tipo slecionda na
hierarquia.
+view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=N\u00E3o
\u00E9 poss\u00EDvel obter os tipos de descendentes
+view_alert_definition_notification_operation_editor_operations_loadFailed=Falha ao
carregar a lista de opera\u00E7\u00F5es dispon\u00EDveis
+view_alert_definition_notification_operation_editor_operations_no_parameters=Esta
opera\u00E7\u00E3o n\u00E3o recebe par\u00E2metros
+view_alert_definition_notification_role_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os perfis atuais - iniciando vazio
+view_alert_definition_notification_role_editor_restoreFailed=N\u00E3o \u00E9
poss\u00EDvel usar os perfis atuais - iniciando vazio
+view_alert_definition_notification_role_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os perfis selecionados
+view_alert_definition_notification_user_editor_loadFailed=N\u00E3o \u00E9 poss\u00EDvel
determinar os usu\u00E1rios atuais - iniciando vazio
+view_alert_definition_notification_user_editor_restoreFailed=N\u00E3o foi poss\u00EDvel
usar os usu\u00E1rios atuais - iniciando vazio
+view_alert_definition_notification_user_editor_saveFailed=N\u00E3o foi poss\u00EDvel
salvar os usu\u00E1rios seleciondados
+view_alert_definition_notification_cliScript_editor_repository=Repository
+view_alert_definition_notification_cliScript_editor_script=Script
+view_alert_definition_notification_cliScript_editor_whichUser=User To Run The Script As
+view_alert_definition_notification_cliScript_editor_thisUser=Myself
+view_alert_definition_notification_cliScript_editor_anotherUser=Another User
+view_alert_definition_notification_cliScript_editor_verifyAuthentication=Verify
+view_alert_definition_notification_cliScript_editor_loadFailed=Loading the CLI
Notification Editor Failed.
+view_alert_definition_notification_cliScript_editor_selectRepoFirst=Select a repository
first.
+view_alert_definition_notification_cliScript_editor_existingScript=Existing Script
+view_alert_definition_notification_cliScript_editor_uploadNewScript=Upload New Script
+view_alert_definition_notification_cliScript_editor_newScriptVersion=Version
+view_alert_definition_notification_cliScript_editor_selectRepo=Select the repository
where the script should reside
+view_alert_definition_recovery_editor_disable_when_fired=Desabilitar quando disparado
+view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indica se este alerta
deve ser desabilitado ap\u00F3s ser disparado. Uma vez desabilitado, o alerta pode ser
reativado manualmente ou um alerta de recupera\u00E7\u00E3o pode ser definido para
reativ\u00E1-lo automaticamente. If this alert is a recovery alert itself, this setting
cannot be turned on.
+view_alert_definition_recovery_editor_recovery_alert=Alerta de Recupera\u00E7\u00E3o
+view_alert_definition_recovery_editor_recovery_alert_tooltip=O Alerta a ser recuperado
(reativado) ap\u00F3s o disparo deste alerta. N\u00E3o selecione um alerta aqui caso
n\u00E3o esteja definindo um alerta de recupera\u00E7\u00E3o.
+view_alert_definition_recovery_editor_loadFailed=N\u00E3o foi poss\u00EDvel construir o
menu de recupera\u00E7\u00E3o
+view_alert_definition_recovery_editor_none_available=Nenhum
+view_alert_common_tab_general=Propriedades Gerais
+view_alert_common_tab_conditions=Condi\u00E7\u00F5es
+view_alert_common_tab_conditions_modal_title=Adicionar nova condi\u00E7\u00E3o.
+view_alert_common_tab_conditions_expression=Disparar alerta quando
+view_alert_common_tab_conditions_expression_tooltip=Determina se QUALQUER UMA ou TODAS as
condi\u00E7\u00F5es devem ser satisfeitas para que todo o conjunto de condi\u00E7\u00F5es
seja considerado verdadeiro.
+view_alert_common_tab_conditions_text=Condi\u00E7\u00E3o
+view_alert_common_tab_conditions_value=Valor
+view_alert_common_tab_conditions_type_availability=Mudan\u00E7a na Disponibilidade
+view_alert_common_tab_conditions_type_availability_down=Indispon\u00EDvel
+view_alert_common_tab_conditions_type_availability_up=Dispon\u00EDvel
+view_alert_common_tab_conditions_type_metric_threshold=Valor da M\u00E9trica excede o
limiar (threshold)
+view_alert_common_tab_conditions_type_metric_calltime_threshold=Tempo de chamada excede o
limiar (threshold)
+view_alert_common_tab_conditions_type_metric_calltime_destination=com o destino da
chamada correspondente
+view_alert_common_tab_conditions_type_metric_calltime_change=Mudan\u00E7a no tempo de
chamada
+view_alert_common_tab_conditions_type_metric_calltime_change_verb=ao menos
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Aumento
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Redu\u00E7\u00E3o
+view_alert_common_tab_conditions_type_metric_calltime_delta_other=Mudan\u00E7a
+view_alert_common_tab_conditions_type_metric_baseline=Valor da m\u00E9trica excede a
linha de base (baseline)
+view_alert_common_tab_conditions_type_metric_baseline_verb=de
+view_alert_common_tab_conditions_type_metric_change=Mudan\u00E7a no valor da
m\u00E9trica
+view_alert_common_tab_conditions_type_metric_trait_change=Mudan\u00E7a de
Carater\u00EDstica
+view_alert_common_tab_conditions_type_operation=Execu\u00E7\u00E3o de Opera\u00E7\u00E3o
+view_alert_common_tab_conditions_type_operation_status=resultado com status
+view_alert_common_tab_conditions_type_resource_configuration=Mudan\u00E7a na
Configura\u00E7\u00E3o do Recurso
+view_alert_common_tab_conditions_type_event=Detec\u00E7\u00E3o de Envento
+view_alert_common_tab_conditions_type_event_matching=combinando com o evento de origem
+view_alert_common_tab_conditions_recovery_enabled=''{0}'' disparado para
ser reativado.
+view_alert_common_tab_conditions_recovery_disabled=Este alerta desativou a sua
defini\u00E7\u00E3o.
+view_alert_common_tab_notifications=Notifica\u00E7\u00F5es
+view_alert_common_tab_notifications_sender=Remetente
+view_alert_common_tab_notifications_status=Status
+view_alert_common_tab_notifications_message=Mensagem
+view_alert_common_tab_dampening=Sensibilidade
+view_alert_common_tab_dampening_category_none=N\u00E3o definido
+view_alert_common_tab_dampening_category_none_tooltip=Sensibilidade desabilitada. Cada
vez que o conjunto de condi\u00E7\u00F5es for satisfeito, um alerta ser\u00E1 disparado.
+view_alert_common_tab_dampening_category_consecutive_count=Consecutivos
+view_alert_common_tab_dampening_category_consecutive_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias consecutivas em que o conjunto de condi\u00E7\u1E4Des
for satisfeito.
+view_alert_common_tab_dampening_category_partial_count=\u00DAltimas N
verifica\u00E7\u00F5es
+view_alert_common_tab_dampening_category_partial_count_tooltip=Um alerta \u00E9 disparado
a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9 satisfeito
durante as \u00FAltimas N verifica\u00E7\u00F5es.
+view_alert_common_tab_dampening_category_duration_count=Per\u00EDodo de Tempo
+view_alert_common_tab_dampening_category_duration_count_tooltip=Um alerta \u00E9
disparado a cada X ocorr\u00EAncias em que o conjunto de condi\u00E7\u00F5es \u00E9
satisfeito dentro de um dado per\u00EDodo de tempo.
+view_alert_common_tab_dampening_consecutive_occurrences_label=Ocorr\u00EAcias
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=O n\u00FAmero de
vezes que o conjunto de condi\u00E7\u00F5es deve ser satisfeito antes do alerta ser
disparado.
+view_alert_common_tab_dampening_partial_occurrences_label=Ocorr\u00EAncias
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante as \u00FAltimas N
verifica\u00E7\u00F5es antes do alerta ser disparado.
+view_alert_common_tab_dampening_partial_evalatuions_label=Verifica\u00E7\u00F5es
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=O total de vezes que o
conjunto de condi\u00E7\u00F5es ser\u00E1 testado para certificar-se de que o n\u00FAmero
de ocorr\u00EAncias definido foi satisfeito.
+view_alert_common_tab_dampening_duration_occurrences_label=Ocorr\u00EAncias
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip=O n\u00FAmero de vezes
que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante o per\u00EDodo de tempo
definido antes do alerta ser disparado.
+view_alert_common_tab_dampening_duration_period_label=Per\u00EDodo de Tempo
+view_alert_common_tab_dampening_duration_period_label_tooltip=Espa\u00E7o de tempo em que
o conjunto de condi\u00E7\u00F5es ser\u00E1 testado para verificar se o n\u00FAmero de
ocorr\u00EAncias definido \u00E9 satisfeito.
+view_alert_common_tab_recovery=Recupera\u00E7\u00E3o~
+view_alert_common_tab_invalid_condition_category=Categoria de condi\u00E7\u00E3o
inv\u00E1lida - favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_dampening_category=Categora de sensibilidade inv\u00E1lida
- favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_time_units=Unidade de tempo inv\u00E1lida - favor reportar
como um bug\: {0}
+
+# Auto Discovery Queue
+#----------------------------
+view_autoDiscoveryQ_title=Fila de Autodescoberta
+view_autoDiscoveryQ_import=Importar
+view_autoDiscoveryQ_ignore=Ignorar
+view_autoDiscoveryQ_ignored=Ignorado
+view_autoDiscoveryQ_unignore=N\u00E3o ignorar
+view_autoDiscoveryQ_committed=Committed
+view_autoDiscoveryQ_deleted=Deleted
+view_autoDiscoveryQ_uninventoried=Uninventoried
+view_autoDiscoveryQ_new=Novo
+view_autoDiscoveryQ_newAndIgnored=Novo e Ignorado
+view_autoDiscoveryQ_importFailure=Falha ao importar recursos
+view_autoDiscoveryQ_importSuccessful=Os recursos selecionados foram importados com
sucesso.
+view_autoDiscoveryQ_ignoreFailure=Falha ao ignorar recursos.
+view_autoDiscoveryQ_ignoreSuccessful=Os recursos selecionados foram ignorados com
sucesso.
+view_autoDiscoveryQ_unignoreFailure=Falha ao reimportar os recursos
+view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected
resources.~
+view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See
Administrator to change)~
+view_autoDiscoveryQ_noItems=N\u00E3o h\u00E1 itens a serem mostrados
+view_autoDiscoveryQ_field_parentId=ID Pai
+view_autoDiscoveryQ_field_name=Nome do Recurso
+view_autoDiscoveryQ_field_key=Chave do Recurso
+view_autoDiscoveryQ_field_discoveryTime=Data e Hora da Descoberta
+view_autoDiscoveryQ_field_inventoryStatus=Status do Invet\u00E1rio
+view_autoDiscoveryQ_loadFailure=Falha ao carregar a fila de descoberta do
invent\u00E1rio
+view_autoDiscoveryQ_showStatus=Show
+view_autoDiscoveryQ_confirmSelect=Also select the platform children?
+
+#==================== Bundles ======================
+
+# some common bundle terms
+view_bundle_bundle=Bundle~
+view_bundle_bundles=Bundles~
+view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_bundleDeployment=Bundle Deployment~
+view_bundle_bundleDeployments=Bundle Deployments~
+view_bundle_bundleFiles=Bundle Files~
+view_bundle_bundleType=Bundle Type~
+view_bundle_bundleVersion=Bundle Version~
+view_bundle_bundleVersions=Bundle Versions~
+view_bundle_deploy=Deploy~
+view_bundle_deployed=Deployed~
+view_bundle_deployDir=Deploy Directory~
+view_bundle_deployments=Deployments~
+view_bundle_destinations=Destinations~
+view_bundle_files=Files~
+view_bundle_latestVersion=Latest Version~
+view_bundle_recipe=Recipe~
+view_bundle_revert=Revert~
+view_bundle_purge=Purge
+view_bundle_versions=Versions~
+view_bundle_deleteConfirm=Are you sure you want to delete this bundle? All versions,
destinations and deployments for this bundle will also be deleted.
+
+# individual bundle views/wizards
+view_bundle_fileListView_fileSize=File Size~
+view_bundle_fileListView_md5=MD5
+view_bundle_fileListView_sha256=SHA256
+view_bundle_fileListView_loadFailure=Failed to load bundle file data~
+view_bundle_version_backToBundle=Back to Bundle~
+view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
+view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the
bundle version tags~
+view_bundle_version_deleteConfirm=Are you sure you want to delete this bundle version?
+view_bundle_version_deleteFailure=Failed to delete the bundle version [{0}]
+view_bundle_version_deleteSuccessful=You successfully deleted the bundle version [{0}]
+view_bundle_version_loadFailure=Failed to load bundle version~
+view_bundle_tree_loadFailure=Failed to load bundle data~
+view_bundle_revertWizard_title=Bundle Revert~
+view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
+view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
+view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
+view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
+view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}~
+view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)~
+view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment
name~
+view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
+view_bundle_revertWizard_confirmStep_noLiveDeployment_concise=No live deployment was
found for the destination
+view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for
the destination [{0}]~
+view_bundle_revertWizard_confirmStep_noPriorDeployment_concise=The live deployment cannot
be reverted because there is no prior deployment
+view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot
be reverted because there is no prior deployment for the destination [{1}]~
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live
deployment; cannot revert~
+view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
+view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
+view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous
Deployment. Click "Next" to continue...~
+view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
+view_bundle_revertWizard_revertStep_reverting=Reverting...~
+view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert
deployment!~
+view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to
revert the bundle deployment [{0}] from resource group [{1}]~
+view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert
deployment!~
+view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
+view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
+view_bundle_list_versionsCount=Versions Count~
+view_bundle_list_destinationsCount=Destinations Count~
+view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version
data~
+view_bundleVersion_loadFailure=Failed to load bundle version data~
+view_bundle_list_backToAll=Back to All Bundles~
+view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
+view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
+view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
+view_bundle_list_deletesFailure=Failed to delete the bundles
+view_bundle_list_deletesSuccessful=You successfully deleted the bundles
+view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
+view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
+view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
+view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
+view_bundle_list_error3=Failed to load bundle~
+view_bundle_dest_group=Group~
+view_bundle_dest_created=Created~
+view_bundle_dest_deployDir=Deploy Directory~
+view_bundle_dest_lastDeployedVersion=Last Deployed Version~
+view_bundle_dest_lastDeploymentDate=Last Deployment Date~
+view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
+view_bundle_dest_loadFailure=Failed to load bundle destinations~
+view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed
version information~
+view_bundle_dest_backToBundle=Back to Bundle~
+view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
+view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination
tags~
+view_bundle_dest_purgeConfirm=This will purge the bundle content from all remote
machines. Are you sure you want to do this?
+view_bundle_dest_purgeFailure=Failed to purge the bundle destination [{0}] from some or
all of the remote machines.
+view_bundle_dest_purgeSuccessful=You successfully purged the bundle destination [{0}]
from all of the remote machines.
+view_bundle_dest_revertConfirm=This will revert all remote machines back to the previous
bundle deployment. Are you sure you want to do this?
+view_bundle_dest_deleteConfirm=Are you sure you want to delete this bundle destination?
This only deletes it from the database; all bundle content that was deployed to this
destination on remote machines will remain.
+view_bundle_dest_deleteFailure=Failed to delete the bundle destination [{0}]
+view_bundle_dest_deleteSuccessful=You successfully deleted the bundle destination [{0}]
+view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
+view_bundle_deploy_name=Deployment Name~
+view_bundle_deploy_time=Deployment Time~
+view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
+view_bundle_deploy_action=Action~
+view_bundle_deploy_installDetails=Install Details~
+view_bundle_deploy_backButton=Back to Destination~
+view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
+view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle
deployment tags~
+view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
+view_bundle_deploy_selectARow=Select a row to show installation details~
+view_bundle_deploy_operatingSystem=Operating System~
+view_bundle_deploy_loadFailure=Failed to load bundle deployment~
+view_bundle_deploy_loadBundleFailure=Failed to find bundle~
+view_bundle_deploy_deployedBy=Deployed By
+view_bundle_deploy_clickForError=Click the icon for the error message
+view_bundle_deploy_deleteConfirm=Are you sure you want to delete this bundle deployment?
+view_bundle_deploy_deleteFailure=Failed to delete the bundle deployment [{0}]
+view_bundle_deploy_deleteSuccessful=You successfully deleted the bundle deployment [{0}]
+view_bundle_createWizard_title=Create Bundle~
+view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
+view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}],
version=[{1}]~
+view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle
[{0}], version=[{1}] - the bundle may still exist in the database~
+view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must
deploy a valid plugin that supports bundle deployments~
+view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
+view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from
server~
+view_bundle_createWizard_enterUrl=Please enter a valid URL where the bundle distribution
file can be downloaded from
+view_bundle_createWizard_enterRecipe=Please supply a valid recipe
+view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several
minutes for large files~
+view_bundle_createWizard_uploadStepName=Provide a Bundle Distribution~
+view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded
for this bundle~
+view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
+view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution
file~
+view_bundle_createWizard_bundleDistro=Bundle Distribution~
+view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a
bundle!
+view_bundle_createWizard_urlOption=URL~
+view_bundle_createWizard_uploadOption=Upload~
+view_bundle_createWizard_recipeOption=Recipe~
+view_bundle_createWizard_provideBundleDistro=Provide a Bundle Distribution
+view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
+view_bundle_createWizard_createFailure=Failed to create the bundle~
+view_bundle_createWizard_createSuccessful=You have successfully created a bundle named
[{0}] with a version of [{1}]~
+
+view_bundle_deployWizard_deploying=Deploying...~
+view_bundle_deployWizard_deployStep=Deploy Bundle to Destination Platforms~
+view_bundle_deployWizard_deploymentCreated=Created Deployment...~
+view_bundle_deployWizard_deploymentCreatedDetail=Created deployment [{0}] description
[{1}]~
+view_bundle_deployWizard_deploymentCreatedDetail_concise=You have created the deployment
[{0}]
+view_bundle_deployWizard_destinationCreatedDetail=Created destination [{0}] description
[{1}]~
+view_bundle_deployWizard_destinationCreatedDetail_concise=You have created the
destination [{0}]
+view_bundle_deployWizard_deploymentScheduled=Bundle Deployment Scheduled!~
+view_bundle_deployWizard_deploymentScheduledDetail=Scheduled bundle deployment [{0}]
destination group [{1}]~
+view_bundle_deployWizard_deploymentScheduledDetail_concise=You have scheduled the bundle
deployment
+view_bundle_deployWizard_error_1=Failed to delete new deployment on Cancel:
+view_bundle_deployWizard_error_2=Failed to delete new destination on Cancel:
+view_bundle_deployWizard_error_3=Failed to Schedule Deployment!~
+view_bundle_deployWizard_error_4=Failed to schedule deployment: {0}~
+view_bundle_deployWizard_error_5=Failed to Create Deployment!~
+view_bundle_deployWizard_error_6=Failed to create deployment: {0}~
+view_bundle_deployWizard_error_7=Failed to get deployment name.~
+view_bundle_deployWizard_error_8=You must select a valid resource group from the drop
down~
+view_bundle_deployWizard_error_9=Failed to delete new destination in nextPage:~
+view_bundle_deployWizard_error_10=Failed to create destination, it may already exist.
(Note, for an existing destination deploy from the Destination view)~
+view_bundle_deployWizard_error_11=Failed to find defined deployments.~
+view_bundle_deployWizard_error_12=Failed to find defined bundles.~
+view_bundle_deployWizard_getConfigStep=Set Deployment Configuration~
+view_bundle_deployWizard_getConfigSkip=No configuration needed for this bundle version.~
+view_bundle_deployWizard_getDestStep=New Destination~
+view_bundle_deployWizard_getDest_name=Destination Name~
+view_bundle_deployWizard_getDest_desc=Destination Description~
+view_bundle_deployWizard_getDest_deployDir=Root Deployment Directory (on destination
platforms)~
+view_bundle_deployWizard_getInfoStep=Provide Deployment Information~
+view_bundle_deployWizard_getInfo_clean=Clean Deployment? (wipe deploy directory on
destination platform)~
+view_bundle_deployWizard_getInfo_deploymentDesc=Deployment Description~
+view_bundle_deployWizard_getInfo_deploymentName=Deployment Name~
+view_bundle_deployWizard_getOptionsStep=Deploy Options~
+view_bundle_deployWizard_getOptions_deployLater=Deploy Later~
+view_bundle_deployWizard_getOptions_deployNow=Deploy Now~
+view_bundle_deployWizard_getOptions_deployTime=Deployment Time~
+view_bundle_deployWizard_selectBundleStep=Select Deployment Bundle~
+view_bundle_deployWizard_selectBundle_single=Select only a single bundle for
deployment.~
+view_bundle_deployWizard_selectVersionStep=Select Deployment Bundle Version~
+view_bundle_deployWizard_selectVersion_latest=Latest Version [{0}]~
+view_bundle_deployWizard_selectVersion_live=Live Version [{0}]~
+view_bundle_deployWizard_selectVersion_select=Select Version from List:~
+view_bundle_deployWizard_title=Bundle Deployment Wizard~
+
+# =================== Measurement Views =====================
+
+view_measureTable_chartMetricValues=Chart Selected Metrics
+view_measureTable_getLive=Get Live Value
+view_measureTable_getLive_failure=Cannot get live values for those metrics. Make sure the
agent is running and the managed resource is up.
+view_measureTable_live_title=Live Data
+
+# =================== Components =====================
+
+view_configCompare_comparingConfigs=Comparando Configura\u00E7\u00F5es
+view_configCompare_configCompare=Compara\u00E7\u00E3o de Configura\u00E7\u00F5es
+
+view_configEdit_addItem=Adicionar Item \u00E0 Lista
+view_configEdit_confirm_1=Tem certeza de que deseja excluir as propriedades
selecionadas?
+view_configEdit_confirm_2=Tem certeza de que deseja excluir esta linha?
+view_configEdit_confirm_3=Tem certeza de que deseja excluir [{0}] selecionado [{1}]?
+view_configEdit_viewRow=View Row
+view_configEdit_editRow=Editar Linha de Configura\u00E7\u00E3o
+view_configEdit_enterPropName=Informe o nome da propriedade a ser adicionada.
+view_configEdit_error_1=Este recurso n\u00E3o suporta Configura\u00E7\u00E3o.
+view_configEdit_error_2=Este recurso n\u00E3o possui suporte \u00E0 propriedades de
conex\u00E3o.
+view_configEdit_error_3=N\u00E3o f\u00F3 poss\u00EDvel adicionar a propriedade com nome
[{0}]. Nome de propriedade j\u00E1 utilizada neste conjunto.
+view_configEdit_files=Arquivos
+view_configEdit_hideAll=Ocultar todos
+view_configEdit_jumpToSection=Ir direto para a Sele\u00E7\u00E3o
+view_configEdit_msg_1=Propriedade [{0}] adicionada ao conjunto.
+view_configEdit_msg_2=Propriedades removidas do conjunto.
+view_configEdit_msg_3=[{0} {1}] removido da lista.
+view_configEdit_msg_4=Item adicionado \u00E0 lista.
+view_configEdit_properties=Propriedades
+view_configEdit_tooltip_1=Remove os itens selecionados da lista.
+view_configEdit_tooltip_2=Adiciona um item \u00E0 lista.
+
+view_groupConfigEdit_member=Membro
+view_groupConfigEdit_noListProps=Lista de propriedades n\u00E3o suportada atualmente para
configura\u00E7\u00F5es em grupo.
+view_groupConfigEdit_tooltip_1=Valores dos membros diferem - clique no \u00EDcone para
edit\u00E1-los.
+view_groupConfigEdit_setAll=Atribuir todos os valores \u00E0\:
+view_groupConfigEdit_unset=Remover atribui\u00E7\u00E3o
+view_groupConfigEdit_valsDiff=valores dos membros diferem
+view_groupConfigEdit_valsDiffForProp=Valores dos membros para a Propriedade [{0}]
+
+view_leftNav_unknownPage=P\u00E1gina desconhecida [{0}] para a se\u00E7\u00E3o [{1}] -
URL inv\u00E1lida.
+
+view_measure_nan=--dados indispon\u00EDveis--
+
+# Measurement Range Selector
+view_measureRange_last=\u00DAltimo
+view_measureRange_start=Time Range - Start
+view_measureRange_simple=Simples...
+
+view_selector_assigned=Associado {0}
+view_selector_available=Dispon\u00EDvel {0}
+
+view_subTab_error_disabled=N\u00E3o \u00E9 poss\u00EDvel selecionar uma subTab
desabilidada [{0}].
+
+view_table_drawFail=Failed to draw Table [{0}].
+view_table_matchingRows=Matching Rows: {0} (selected: {1})
+view_table_totalRows=Total de Linhas\: {0} (selecionada\: {1})
+view_tableSection_backButton=Voltar \u00E0 Lista
+view_tableSection_error_noId=Table [{0}] record is missing 'id' attribute -
please report this bug.~
+view_tableSection_error_badId=Can not show detail for [{0}]. Illegal 'id': [{1}].
Please report this bug~
+
+view_tags_tags=Tags~
+view_tags_error_1=Failed to load Tags~
+view_tags_tooltip_1=Click to remove this Tag~
+view_tags_tooltip_2=Click to edit Tags~
+view_tags_tooltip_3=Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g.
it:env=QA, or owner=John)
+
+# File Upload (various)
+view_upload_alreadyUploaded=File has already been uploaded~
+view_upload_bundleDistFile=Distribution File~
+view_upload_error_bundleDistFile=Error uploading Bundle Distribution File~
+view_upload_error_file=Error uploading file~
+view_upload_error_fileName=Error uploading file [{0}]~
+view_upload_error_fileName_2=Error uploading file [{0}], check for invalid file path.~
+view_upload_error_packageVersionFile=Error uploading Package Version File~
+view_upload_error_results=Error uploading file, unexpected results: [{0}]~
+view_upload_inProgress=Can not submit, upload is currently in progress~
+view_upload_prompt_1=[{0}] File to Upload~
+view_upload_prompt_2=File to Upload~
+view_upload_tooltip_1a=Select a file to upload, then click Upload or Next
+view_upload_tooltip_1b=Select a file to upload, then click Next
+view_upload_tooltip_2=File upload had previously failed~
+view_upload_success=File successfully uploaded~
+view_upload_upload=Upload~
+view_upload_uploadFile=UploadFile~
+
+# Group Create Wizard
+view_groupCreateWizard_membersStepName=Select Members~
+view_groupCreateWizard_createStepName=Group Settings~
+view_groupCreateWizard_createStep_recursive=Recursive~
+view_groupCreateWizard_title=Create Group~
+view_groupCreateWizard_windowTitle=Create Group~
+view_groupCreateWizard_createFailure=Failed to create the resource group~
+view_groupCreateWizard_createSuccessful_concise=You have created a new resource group.
[<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group
with the name [{1}] that contains [{2}] member resources~
+
+# Resource Type / Plugin View/Datasources
+view_type_resourceTypes=Resource Types~
+view_type_parentId=Parent ID~
+view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+
+# Tabs
+view_tabs_invalidSubTab=Invalid subtab: {0}
+view_tabs_invalidTab=Invalid tab: {0}
+
+# Group Tree
+group_tree_partialClusterTooltip={0} out of {1} group members have a
''{2}'' resource
+
+#=================== Dashboard =====================
+view_dashboard_favorites_error1=Failed to load favorite Resources.~
+view_dashboardManager_error=Failed to save dashboard to server~
+view_dashboardManager_saved=Saved dashboard {0} to server~
+view_dashboardManager_success=Saved dashboard~
+view_dashboardManager_deleteFail=Failed to delete dashboard.
+view_dashboardManager_deleted=Successfully deleted dashboard {0}~
+view_dashboards_title=Dashboard~
+view_dashboards_confirm1=Are you sure you want to delete~
+view_dashboards_portlets_refresh_fail1=Failed to update interval for portlets that
auto-refresh
+view_dashboards_portlets_refresh_fail2=Failed to disable reload for portlets that
auto-refresh
+view_dashboards_portlets_refresh_none=No Refresh
+view_dashboards_portlets_refresh_one_min=1 minute
+view_dashboards_portlets_refresh_multiple_min={0} minutes
+view_dashboards_portlets_refresh_success1=Updated interval for portlets that
auto-refresh
+view_dashboards_portlets_refresh_success2=Stopping reload for portlets that auto-refresh
+view_dashboardsManager_error1=Failed to add new dashboard~
+view_dashboardsManager_message_title_details=<h1>Welcome to
RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems
management suite that provides extensible and integrated systems management for multiple
products and platforms across a set of core features. The project is designed with layered
modules that provide a flexible architecture for deployment. It delivers a core user
interface that delivers audited and historical management across an entire enterprise. A
Server/Agent architecture provides remote management and plugins implement all specific
support for managed products.</p>\n <p>This default dashboard can be edited by
clicking the (edit mode) button above.</p>~
+
+view_portlet_factory_invalidPortlet=This is an obsolete portlet that is no longer valid.
Please delete it.
+
+view_portlet_defaultName_autodiscovery=Discovery Queue
+view_portlet_defaultName_favoriteResources=Favorite Resources
+view_portlet_defaultName_resourceMetric=Resource Metric Graph
+view_portlet_defaultName_groupMetric=Resource Group Metric Graph
+view_portlet_defaultName_inventorySummary=Inventory Summary
+view_portlet_defaultName_mashup=Mashup
+view_portlet_defaultName_message=Message
+view_portlet_defaultName_operations=Recent Operations
+view_portlet_defaultName_platformSummary=Platform Utilization
+view_portlet_defaultName_problemResources=Alerted or Unavailable Resources
+view_portlet_defaultName_recentAlerts=Recent Alerts
+view_portlet_defaultName_recentlyAddedResources=Recently Added Resources
+view_portlet_defaultName_tagCloud=Tag Count
+
+view_portlet_defaultName_group_alerts=Group: Alerts
+view_portlet_defaultName_group_bundles=Group: Bundle Deployments
+view_portlet_defaultName_group_config_updates=Group: Configuration Updates
+view_portlet_defaultName_group_events=Group: Event Counts
+view_portlet_defaultName_group_metrics=Group: Metrics
+view_portlet_defaultName_group_oobs=Group: OOB Conditions
+view_portlet_defaultName_group_operations=Group: Operations
+view_portlet_defaultName_group_pkg_hisory=Group: Package History
+view_portlet_defaultName_resource_alerts=Resource: Alerts
+view_portlet_defaultName_resource_bundles=Resource: Bundle Deployments
+view_portlet_defaultName_resource_config_updates=Resource: Configuration Updates
+view_portlet_defaultName_resource_events=Resource: Event Counts
+view_portlet_defaultName_resource_metrics=Resource: Measurements
+view_portlet_defaultName_resource_oobs=Resource: OOB Metrics
+view_portlet_defaultName_resource_operations=Resource: Operations
+view_portlet_defaultName_resource_pkg_hisory=Resource: Package History
+
+view_portlet_help_autodiscovery=This portlet allows import or ignore of newly discovered
resources. Imported resources are added to inventory for monitoring and management.
Ignored resources are not imported and are hidden from view unless explicitly unignored.
+view_portlet_help_bundle_deps=This portlet shows relevant bundle deployments based on
display criteria configured.
+view_portlet_help_config_updates=This portlet displays recent configuration changes
consistent with configuration settings.
+view_portlet_help_eventcounts=This portlet displays Event counts consistent with display
criteria configured.
+view_portlet_help_favoriteResources=This portlet displays the current user''s
favorite resources.
+view_portlet_help_graph=This portlet displays the resource metric graph.
+view_portlet_help_inventorySummary=This portlet displays a short summary of the current
user''s viewable inventory and metric collection rate.
+view_portlet_help_mashup=This portlet displays the returned content of a remote HTTP
request (via an iframe).
+view_portlet_help_metrics=This portlet graphs relevant recent metric data based on
display criteria configured.
+view_portlet_help_message=This portlet displays a static HTML message. The
<i>message</i> property must be configured.
+view_portlet_help_oobs=This portlet displays OOB(Out of Bound) metric conditions.
+view_portlet_help_operations=This portlet displays the most recently executed operations
for the current user''s inventory.
+view_portlet_help_scheduledOperations=This portlet displays the next scheduled operations
for the current user''s inventory.
+view_portlet_help_operations_criteria=This portlet displays Operations consistent with
display criteria configured.
+view_portlet_help_pkg_history=This portlet shows relevant package history based on
display criteria configured.
+view_portlet_help_platformSummary=This portlet displays utilization data (such as current
CPU and memory usage) for platform resources that are accessible by the current user.
+view_portlet_help_problemResources=This portlet displays the current user''s
alerted or unavailable resources.
+view_portlet_help_recentAlerts=This portlet displays alerts recently fired on the current
user''s viewable inventory.
+view_portlet_help_recentlyAdded=This portlet displays resources that have recently been
imported into inventory.
+view_portlet_help_tagCloud=This portlet displays the relative tag counts for the current
user''s inventory.
+view_portlet_help_none=There is no help available for this portlet.
+
+view_portlet_configure_needed=Click the Settings button to configure this portlet.
+view_portlet_configure_notNeeded=Configuration is not necessary for this portlet.
+view_portlet_configure_definitionTitle=Portlet Configuration
+view_portlet_configure_definitionDesc=The configuration settings for the portlet.
+
+view_portlet_autodiscovery_setting_platforms=discovered platforms
+
+view_portlet_graph_configure_resource_graph=The resource to graph~
+view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
+
+view_portlet_inventory_error1=Failed to retrieve inventory summary~
+view_portlet_inventory_tooltip_expand=Click to show more details for this resource.
+view_portlet_inventory_tooltip_collapse=Click to hide details for this resource.
+
+view_portlet_message_title=Message~
+
+view_portlet_operations_config_completed_maximum=Maximum number of Completed operations
to display.~
+view_portlet_operations_config_completed_enable=Whether to enable completed operations
results grouping for dashboard.~
+view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations
results grouping for dashboard.~
+view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations
to display.~
+view_portlet_operations_config_completed=completed operations~
+view_portlet_operations_config_show_last=show Last~
+view_portlet_operations_config_show_next=show Next~
+view_portlet_operations_disabled=(Results currently disabled. Change settings to enable
results.~
+
+view_portlet_platform_platform_error_1=Failed to load platform metrics~
+view_portlet_platform_type_error_1=Could not load type data~
+
+view_portlet_problemResources_config_display_maximum=Maximum number of Problem resources
to display.
+view_portlet_problemResources_config_display_range=Show problem resources going back this
many hours.
+view_portlet_problemResources_config_display_range2=From {0} to {1}
+view_portlet_problemResources_maxDisplaySetting=maximum resources.
+
+view_portlet_recentAlerts_config_members=Select Members~
+view_portlet_recentAlerts_config_priority_label=priority Alerts,~
+view_portlet_recentAlerts_config_when=within the past~
+view_portlet_recentAlerts_fail_msg=Failed to load resources assigned for alert
filtering.
+
+view_portlet_recentlyAdded_setting_addedPlatforms=recently added platforms
+view_portlet_recentlyAdded_error1=Failed to load recently added resources~
+view_portlet_results_empty=No results found using specified criteria.
+
+# =================== Inventory =====================
+view_inventory_adq=Discovery Queue~
+view_inventory_sectionHelp=From this section, newly discovered Resources, inventoried
Resources, and Groups can be viewed and managed.~
+view_inventory_problemGroups=Problem Groups~
+view_inventory_collectionInterval=Collection Interval~
+view_inventory_mixed=mixed~
+view_inventory_unavailableServers=Unavailable Servers
+view_inventory_groups=Groups~
+view_inventory_allGroups=All Groups~
+view_inventory_allResources=All Resources~
+view_inventory_platforms=Platforms~
+view_inventory_servers=Servers~
+view_inventory_services=Services~
+view_inventory_summary_agent_error1=Failed to locate agent managing resource id~
+view_inventory_summary_agent_error2=Failed to ping agent managing resource id~
+view_inventory_summary_agent_error3=You do not have permission to view details for this
Agent.
+view_inventory_summary_agent_fullEnpoint=Full Endpoint~
+view_inventory_summary_agent_fullEnpoint_err1=!No remote endpoint associated with this
resource!~
+view_inventory_summary_agent_last_title=Last Received Availability Report~
+view_inventory_summary_agent_status_title=Agent Communications Status~
+view_inventory_summary_agent_title=Agent Managing this Resource~
+view_inventory_dynagroupDefs=Dynagroup Definitions~
+view_metric_traits=Traits~
+view_metric_viewTraitHistory=Value History for Trait [{0}]~
+view_inventory_eventHistory_groupEventHistory=Group Event History~
+view_inventory_eventHistory_resourceEventHistory=Resource Event History~
+view_inventory_eventHistory_sourceFilter=Source Filter~
+view_inventory_eventHistory_detailsFilter=Details Filter~
+view_inventory_eventHistory_severityFilter=Severity Filter~
+view_inventory_eventHistory_timestamp=Timestamp~
+view_inventory_eventHistory_severity=Severity~
+view_inventory_eventHistory_details=Details~
+view_inventory_eventHistory_sourceLocation=Source Location~
+view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events
for [{1}]~
+view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
+view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for
[{1}]~
+view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
+view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
+view_inventory_groups_resourceGroups=Resource Groups~
+view_inventory_groups_children=Children~
+view_inventory_groups_descendants=Descendants~
+view_inventory_groups_deleteSuccessful=You have successfully deleted the selected
resource groups~
+view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
+view_inventory_groups_loadFailed=Failed to load group composite data~
+view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not
accessible~
+view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected
resources?~
+view_inventory_resources_deleteSuccessful=You have successfully deleted the selected
resources~
+view_inventory_resources_deleteFailed=Failed to delete the selected resources~
+view_inventory_resources_uninventoryConfirm=Are you sure you want to uninventory the
selected resources? Note that if a selected resource still exists, then it will get
rediscovered during its agent''s next discovery scan.
+view_inventory_resources_uninventorySuccessful=You have successfully uninventoried the
selected resources
+view_inventory_resources_uninventoryFailed=Failed to uninventory the selected resources
+view_inventory_resources_loadFailed=Failed to load resource composite data~
+view_inventory_resources_title=Member Resources~
+view_inventory_resources_title_children=Child Resources~
+view_inventory_resources_title_members=Member Resources~
+view_resource_inventory_activity_changed_by=Changed by
+view_resource_inventory_activity_criteria_no_recent_events=No event counts based off
display criteria.
+view_resource_inventory_activity_no_recent_alerts=No recent alerts
+view_resource_inventory_activity_no_recent_bundle_deploy=No recent bundle deployments
+view_resource_inventory_activity_no_recent_config_history=No configuration change
history
+view_resource_inventory_activity_no_recent_events=No events in the last 24 hours
+view_resource_inventory_activity_no_recent_metrics=This resource has no recent metrics
+view_resource_inventory_activity_no_recent_oob=No OOB conditions found
+view_resource_inventory_activity_no_recent_operations=No recent operation history
+view_resource_inventory_activity_no_recent_pkg_history=No recent package history
+view_resource_inventory_childhistory_createdChild=Created Child
+view_resource_inventory_childhistory_deletedChild=Deleted Child
+view_resource_inventory_childhistory_status_invalidArtifact=Invalid Artifact
+view_resource_inventory_childhistory_status_invalidConfig=Invalid Configuration
+view_resource_inventory_childhistory_filterTitle=Past N Days
+view_resource_monitor_availability_loadFailed=Failed to load availability history~
+view_resource_monitor_graphs_noneAvailable=No graphs available~
+view_resource_monitor_graphs_loadFailed=Failed to load graph data~
+view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
+view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
+view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
+view_resource_monitor_table_min=Minimum
+view_resource_monitor_table_max=Maximum
+view_resource_monitor_table_avg=Average
+view_resource_monitor_table_last=Last
+view_resource_monitor_table_alerts=Alerts
+view_resource_monitor_detailed_graph_label=Detailed Graph~
+view_resource_monitor_calltime_title=Call Time Data~
+view_resource_monitor_calltime_destination=Call Destination~
+view_resource_monitor_calltime_count=Count~
+view_resource_monitor_calltime_minimum=Minimum~
+view_resource_monitor_calltime_average=Average~
+view_resource_monitor_calltime_maximum=Maximum~
+view_resource_monitor_calltime_total=Total~
+view_resource_monitor_calltime_loadFailed=Could not load call time data~
+view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
+view_resource_monitor_calltime_editFailed=Call time data can not be edited~
+view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+view_resource_title_tagUpdateFailed=Failed to update resource tags~
+view_resource_title_component_errors_tooltip=Shows managed component errors. Click for
details~
+view_tree_common_loadFailed_generic=Failed to load data for tree~
+view_tree_common_loadFailed_root=Failed to load root for tree~
+view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
+view_tree_common_loadFailed_children=Failed to load children for node~
+view_tree_common_createFailed_autoCluster=Failed to create or update autocluster backing
group
+view_tree_common_loadFailed_group=Failed to load group with id [{0}]
+view_tree_common_loadFailed_groupTree=Failed to load group tree
+view_tree_common_loadFailed_selection=Failed to select this node~
+view_tree_common_loadFailed_node=Failed to load data for this node~
+view_tree_common_loadFailed_create=Failed to create view for this node~
+view_tree_common_loadFailed_update=Failed to update view for this node~
+view_tree_common_contextMenu_loadFail_children=Failed to load platform manual add
children
+view_tree_common_contextMenu_loadFail_dashboards=Failed to load user dashboards
+view_tree_common_contextMenu_loadFail_group=Failed to load group for context menu
+view_tree_common_contextMenu_type_name_label=Type: {0}
+view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
+view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
+view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource
Configuration~
+view_tree_common_contextMenu_operations=Operations~
+view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running
operations~
+view_tree_common_contextMenu_measurements=Measurements~
+view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+view_tree_common_contextMenu_resourceGraph=Resource Metric Graph
+view_tree_common_contextMenu_groupGraph=Group Metric Graph
+view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard
[{0}]~
+view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
+view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
+view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual
add children~
+view_tree_group_error_updateAutoCluster=Failed to create or update autocluster backing
group. key: [{0}]
+view_tabs_common_activity=Activity
+view_tabs_common_agent=Agent
+view_tabs_common_summary=Summary~
+view_tabs_common_overview=Overview~
+view_tabs_common_dashboard=Dashboard~
+view_tabs_common_timeline=Timeline~
+view_tabs_common_monitoring=Monitoring~
+view_tabs_common_graphs=Graphs~
+view_tabs_common_tables=Tables~
+view_tabs_common_traits=Traits~
+view_tabs_common_availability=Availability~
+view_tabs_common_schedules=Schedules~
+view_tabs_common_calltime=Calltime~
+view_tabs_common_inventory=Inventory~
+view_tabs_common_groups=Groups~
+view_tabs_common_members=Members~
+view_tabs_common_group_members=Group Members
+view_tabs_common_group_membership=Group Membership~
+view_tabs_common_child_resources=Child Resources~
+view_tabs_common_child_history=Child History~
+view_tabs_common_connectionSettings=Connection Settings~
+view_tabs_common_connectionSettingsHistory=Connection Settings History~
+view_tabs_common_operations=Operations~
+view_tabs_common_schedule=Schedule
+view_tabs_common_history=History~
+view_tabs_common_alerts=Alerts~
+view_tabs_common_definitions=Definitions~
+view_tabs_common_current=Current~
+view_tabs_common_events=Events~
+view_tabs_common_configuration=Configuration~
+view_tabs_common_content=Content~
+view_tabs_common_deployed=Deployed~
+view_tabs_common_new=New~
+view_tabs_common_subscriptions=Subscriptions~
+view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
+view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
+view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
+view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
+view_titleBar_common_clickToAddFav=Click to add this as a favorite~
+view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
+view_titleBar_common_addedFav=You have added [{0}] as a favorite~
+view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
+view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
+view_titleBar_group_failInfo=Failed to get general info on group [{0}] with ID [{1}]
+view_titleBar_group_summary_collapsedTooltip=Click to show more details for this group
+view_titleBar_group_summary_expandedTooltip=Click to hide details for this group
+view_dynagroup_expressionSet=Expression Set~
+view_dynagroup_recalculationInterval=Recalculation Interval~
+view_dynagroup_lastCalculationTime=Last Calculation Time~
+view_dynagroup_nextCalculationTime=Next Calculation Time~
+view_dynagroup_definitionCreated=You have successfully created a group definition named
[{0}]~
+view_dynagroup_definitionLoadFailure=Failed to load group definitions~
+view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
+view_dynagroup_saveSuccessful=You have successfully saved the group definition named
[{0}]~
+view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
+view_dynagroup_singleSaveFailure=An error occurred - there should have been one created,
but instead there were [{0}] created~
+view_dynagroup_saveAndRecalculate=Save & Recalculate~
+view_dynagroup_recalculate=Recalculate~
+view_dynagroup_recalcSuccessful=You have successfully recalculated this group
definition~
+view_dynagroup_recalcFailure=Failed to recalculated this group definition~
+view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group
definitions~
+view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group
definitions~
+view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group
definitions~
+view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
+view_dynagroup_children=DynaGroup Children~
+view_dynagroup_newGroupDefinition=New Group Definition~
+view_dynagroup_editing=Editing [{0}]~
+view_dynagroup_expression=Expression~
+view_dynagroup_recursive=Recursive~
+view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
+view_dynagroup_permDenied=You do not have permission to view group definitions~
+view_dynagroup_definitions=DynaGroup Definitions~
+view_dynagroup_template_customExpression=Custom Expression...
+view_dynagroup_template_jbossas4_clusters=JBossAS 4 - Clusters
+view_dynagroup_template_jbossas5_clusters=JBossAS 5/6 - Clusters
+view_dynagroup_template_jbossas4_earClusters=JBossAS 4 - Clustered EARs
+view_dynagroup_template_jbossas4_uniqueVersions=JBossAS 4 - Unique versions
+view_dynagroup_template_platforms=Platform resources in inventory
+view_dynagroup_template_uniqueResourceTypes=Unique resource types in inventory
+view_dynagroup_template_jbossas4_hostingApp=JBossAS 4 - All hosting any version of
"my" app
+view_dynagroup_template_jbossas4_nonsecured=JBossAS 4 - All non-secured
+view_dynagroup_template_downedResources=All resources currently down
+view_dynagroup_mixed=Mixed
+view_dynagroup_compatible=Compatible
+view_dynagroup_expressionBuilderIconTooltip=Expression Builder...
+view_dynagroup_exprBuilder_title=Expression Builder
+view_dynagroup_exprBuilder_expression=Expression
+view_dynagroup_exprBuilder_expression_tooltip=This is the full expression that is
represented by the selections in the form below. This text will be added to your group
definition expression text when you click the "Add Expression" button.
+view_dynagroup_exprBuilder_addExpression=Add Expression
+view_dynagroup_exprBuilder_value_tooltip=The string value for the expression to query
+view_dynagroup_exprBuilder_comparisonType=Comparison Type
+view_dynagroup_exprBuilder_comparisonType_tooltip=Comparison Type
+view_dynagroup_exprBuilder_unset=Unset
+view_dynagroup_exprBuilder_unset_tooltip=Unset will find all of the values that have a
null value in the database. This is not possible using the "=" operator because
of how databases store and query data.
+view_dynagroup_exprBuilder_propertyName=Property Name
+view_dynagroup_exprBuilder_propertyName_tooltip=The name of the property to query. This
is defined by the expression type as well as the resource type.
+view_dynagroup_exprBuilder_resourceType=Resource Type
+view_dynagroup_exprBuilder_resourceType_tooltip=The type of resource
+view_dynagroup_exprBuilder_definingPlugin=Defining Plugin
+view_dynagroup_exprBuilder_definingPlugin_tooltip=The plugin to search
+view_dynagroup_exprBuilder_expressionType=Expression Type
+view_dynagroup_exprBuilder_expressionType_tooltip=The type of property this expression
switches on:<br/> \
+<b>Resource</b>: A resource property such as its name or version<br/>
\
+<b>Resource Type</b>: Search for resources of a specific type<br/> \
+<b>Resource Category</b>: Search for resources by category: platform, server,
service<br/> \
+<b>Trait</b>: Resources that have selected values for a monitored
trait<br/> \
+<b>Plugin Configuration</b>: Search by the plugin component configuration
setting of the component<br/> \
+<b>Resource Configuration</b>: Search by the configuration setting of the
managed resource
+view_dynagroup_exprBuilder_resource=Resource
+view_dynagroup_exprBuilder_resource_tooltip=Choose the level of the resource you wish to
select. For example, select "parent" will find resources whose parent resource
matches the rest of the expression.
+view_dynagroup_exprBuilder_groupBy=Group by
+view_dynagroup_exprBuilder_groupBy_tooltip=GroupBy will cause the system to pivot on the
values from the entered expressions creating a separate group for each value. For example,
GroupBy on the cluster name to create a group for each cluster with all cluster members in
it.
+view_dynagroup_exprBuilder_resource_resource=Resource
+view_dynagroup_exprBuilder_resource_child=Child
+view_dynagroup_exprBuilder_resource_parent=Parent
+view_dynagroup_exprBuilder_resource_grandparent=Grandparent
+view_dynagroup_exprBuilder_resource_greatGrandparent=GreatGrandparent
+view_dynagroup_exprBuilder_resource_greatGreatGrandparent=GreatGreatGrandparent
+view_dynagroup_exprBuilder_comparisonType_equals=equals
+view_dynagroup_exprBuilder_comparisonType_startsWith=starts with
+view_dynagroup_exprBuilder_comparisonType_endsWith=ends with
+view_dynagroup_exprBuilder_comparisonType_contains=contains
+view_dynagroup_exprBuilder_expressionType_resource=Resource
+view_dynagroup_exprBuilder_expressionType_resourceType=Resource Type
+view_dynagroup_exprBuilder_expressionType_resourceCategory=Resource Category
+view_dynagroup_exprBuilder_expressionType_trait=Trait
+view_dynagroup_exprBuilder_expressionType_pluginConfig=Plugin Configuration
+view_dynagroup_exprBuilder_expressionType_resourceConfig=Resource Configuration
+view_dynagroup_exprBuilder_pluginLoadFailure=Cannot get the list of plugins
+view_dynagroup_exprBuilder_resTypeLoadFailure=Cannot get list of resource types for
plugin [{0}]
+view_dynagroup_exprBuilder_propLoadFailure=Cannot get list of properties
+view_dynagroup_exprBuilder_noResourceTypes=--No resource types--
+view_dynagroup_exprBuilder_noProperties=--No properties--
+view_dynagroup_exprBuilder_noPlugins=--No plugins--
+
+view_group_detail_failLoad=Failed to load group for group with ID [{0}]
+view_group_detail_failLoadComp=Failed to load group composite for group with ID [{0}]
+view_group_detail_recursiveChange=You successfully changed the recursive setting for
group [{0}]
+view_group_detail_failRecursiveChange=Failed to update the recursive setting for group
[{0}]
+view_group_inventory_activity_no_recent_metrics=This group has no recent metrics
+view_group_membership_failFetch=Failed to fetch Resource Group
+view_group_membership_saveFailure=Failed to update membership of group [{0}]~
+view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
+view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
+view_group_resConfig_edit_loadFail=Failed to retrieve member Resource configurations for
[{0}]
+view_group_resConfig_edit_noperm=You do not have permission to edit this group
configuration~
+view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been
initiated~
+view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been
initiated for the [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for
[{0}] compatible group named [{1}]~
+view_group_resConfig_edit_valid=All configuration properties have valid values, so the
configuration can now be saved~
+view_group_resConfig_edit_invalid=The following configuration properties have invalid
values and must be corrected before the configuration can be saved: [{0}]~
+
+view_group_resConfig_view_noperm=You do not have permissions to see the resource
configuration settings
+view_group_resConfig_view_groupProperties=Group Properties
+view_group_resConfig_table_title=Group Resource Configuration History
+view_group_resConfig_table_statusDetails=Status Details
+view_group_resConfig_table_viewSettings=View Settings
+view_group_resConfig_table_viewMemberHistory=View Member History
+view_group_resConfig_table_msg1=View Member History for status of each individual
resource
+view_group_resConfig_table_failFetch=Failed to get group resource config history
+view_group_resConfig_table_deleteSuccessful=You have deleted [{0}] history items
+view_group_resConfig_table_deleteFailure=Failed to delete group resource config history
+view_group_resConfig_table_statusSuccess=This group configuration update was successful
+view_group_resConfig_table_statusInprogress=This group configuration update is still in
progress
+view_group_resConfig_table_statusNochange=No changes were made to this group
configuration
+view_group_resConfig_table_statusFailure=This group configuration update failed
+view_group_resConfig_table_clickStatusIcon=Click the status icon for full details
+view_group_resConfig_members_title=Group Resource Configuration Member Histories
+view_group_resConfig_members_fetchFailure=Failed to get resource config update history
for members of group [{0}]
+view_group_resConfig_members_fetchFailureConfig=Failed to retrieve member resource
configuration settings for [{0}]
+view_group_resConfig_members_fetchFailureConfigInProgress=A group resource configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
+view_group_resConfig_members_statusDetails=Status Details
+view_group_resConfig_members_statusSuccess=This configuration update was successful
+view_group_resConfig_members_statusInprogress=This configuration update is still in
progress
+view_group_resConfig_members_statusNochange=No changes were made to this configuration
+view_group_resConfig_members_statusFailure=This configuration update failed for an
unknown reason
+
+view_group_pluginConfig_view_noperm=You do not have permissions to see the connection
settings~
+view_group_pluginConfig_view_groupProperties=Group Properties~
+view_group_pluginConfig_table_failFetch=Failed to get group plugin config history
+view_group_pluginConfig_table_title=Group Connection Settings History~
+view_group_pluginConfig_table_statusDetails=Status Details~
+view_group_pluginConfig_table_viewSettings=View Settings~
+view_group_pluginConfig_table_viewMemberHistory=View Member History~
+view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
+view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config
history~
+view_group_pluginConfig_table_msg1=View Member History for status of each individual
resource~
+view_group_pluginConfig_table_statusSuccess=This group configuration update was
successful~
+view_group_pluginConfig_table_statusInprogress=This group configuration update is still
in progress~
+view_group_pluginConfig_table_statusNochange=No changes were made to this group
configuration~
+view_group_pluginConfig_table_statusFailure=This group configuration update failed~
+view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
+view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
+view_group_pluginConfig_members_statusDetails=Status Details~
+view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
+view_group_pluginConfig_members_statusInprogress=This configuration update is still in
progress~
+view_group_pluginConfig_members_statusNochange=No changes were made to this
configuration~
+view_group_pluginConfig_members_statusFailure=This configuration update failed for an
unknown reason~
+view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history
for members of group [{0}]~
+view_group_pluginConfig_members_fetchFailureConn=Failed to retrieve member connection
settings for [{0}]
+view_group_pluginConfig_members_fetchFailureConnInProgress=A group plugin configuration
update is currently in progress. You must wait until the update is finished before you can
view the group settings.
+view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
+view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group
members~
+view_group_pluginConfig_edit_noperm=You do not have permission to edit this group
connection settings~
+view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates
have been initiated~
+view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have
been initiated for the [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting
update for [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_valid=All connection setting properties have valid values,
so the connection settings can now be saved~
+view_group_pluginConfig_edit_invalid=The following connection setting properties have
invalid values and must be corrected before the connection settings can be saved: [{0}]~
+view_group_meas_schedules_title=Group Metric Collection Schedules~
+view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with
ID [{0}] - could not change from [{1}] to [{2}]~
+view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group
with ID [{0}] from [{1}] to [{2}]~
+view_group_summary_memberType=Member Type~
+view_group_summary_memberCount=Member Count~
+view_group_summary_dynamic=Dynamic~
+view_group_summary_recursive=Recursive~
+view_group_summary_groupDefinition=Group Definition~
+view_group_summary_mixed=Mixed~
+view_group_summary_compatible=Compatible
+view_group_summary_descUpdateFailure=Failed to change the description of the resource
group with ID [{0}]~
+view_group_summary_descUpdateSuccessful=You have changed the description of this resource
group~
+view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and
therefore are not editable~
+
+# Connection Settings Details
+#------------------------------------------
+view_connectionSettingsDetails_noPermission=You do not have permission to edit this
Resource''s connection settings.~
+view_connectionSettingsDetails_error_updateFailure=Failed to update connection
settings.~
+view_connectionSettingsDetails_messageConcise_updateSuccess=Connection settings
updated.~
+view_connectionSettingsDetails_messageDetailed_updateSuccess=Connection settings updated
for Resource [{0}].~
+view_connectionSettingsDetails_allPropertiesValid=All connection settings have valid
values, so the settings can now be saved.~
+view_connectionSettingsDetails_somePropertiesInvalid=The following connection settings
have invalid values: {0}. The values must be corrected before the settings can be saved.~
+
+# Resource Resource Groups
+#-----------------------------------------
+view_resourceResourceGroupList_error_fetchFailure=Failed to fetch Resource''s
groups.~
+view_resourceResourceGroupList_error_updateFailure=Failed to update assigned Resource
groups.~
+view_resourceResourceGroupList_message_updateSuccess=Group membership updated for [{0}].
+
+# Configuration Details
+#-------------------------------
+view_configurationDetails_noPermission=You do not have permission to edit this
Resource''s configuration.~
+view_configurationDetails_error_updateFailure=Failed to update configuration.~
+view_configurationDetails_messageConcise=Configuration updated - current version is
{0}.~
+view_configurationDetails_messageDetailed=Configuration updated to version {0} for
Resource [{1}].
+view_configurationDetails_allPropertiesValid=All configuration properties have valid
values, so the configuration can now be saved.~
+view_configurationDetails_somePropertiesInvalid=The following configuration properties
have invalid values: {0}. The values must be corrected before the configuration can be
saved.~
+view_configurationDetails_configNotUpdatedDueToNoChange=Configuration was not updated,
since the new configuration is equivalent to the current configuration.
+
+# Resource Configuration History List
+#-------------------------------
+view_configurationHistoryList_title=Configuration History~
+
+# Abstract Configuration History List
+#-------------------------------
+view_configurationHistoryList_rollback=Rollback
+view_configurationHistoryList_rollback_success=You successfully rolled back the
configuration to the selected past configuration.
+view_configurationHistoryList_rollback_failure=Failed to rollback the configuration. The
original configuration is still in effect.
+view_configurationHistoryList_delete_success=You successfully deleted the selected
configuration history items.
+view_configurationHistoryList_delete_failure=Failed to delete the configuration history
items.
+view_configurationHistoryList_cannotDeleteGroupItems=One or more selected configuration
history items are part of a group configuration update. \
+You must purge that parent group history item before you can delete its individual
resource history items.
+view_configurationHistoryList_cannotDeleteCurrent=One of the selected history items
represents the current configuration - you cannot delete it.
+view_configurationHistoryList_table_statusSuccess=This configuration update was
successful
+view_configurationHistoryList_table_statusInprogress=This configuration update is still
in progress
+view_configurationHistoryList_table_statusNochange=No changes were made to this
configuration
+view_configurationHistoryList_table_statusFailure=This configuration update failed
+view_configurationHistoryList_table_clickStatusIcon=Click the status icon for full
details
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_error_loadFailure=Unable to load configuration
history.~
+
+
+# Operation Schedule List
+#------------------------
+xxx =
+
+# Operation Schedule Details
+#---------------------------
+view_operationScheduleDetails_operationSchedule=Operation Schedule
+view_operationScheduleDetails_field_description=Description
+view_operationScheduleDetails_field_parameters=Parameters
+view_operationScheduleDetails_field_timeout=Timeout
+view_operationScheduleDetails_fieldHelp_timeout=a time duration - if specified, if the
duration elapses before a scheduled operation execution has completed, the RHQ Server will
timeout the operation and consider it to have failed; note, it is usually not possible to
abort the underlying managed resource operation if it was already initiated
+view_operationScheduleDetails_fieldHelp_description=an optional description of this
scheduled operation (e.g. nightly maintenance app server restart)
+view_operationScheduleDetails_fieldDefault_description=Select an operation to see its
description.
+view_operationScheduleDetails_fieldDefault_parameters=Select an operation to see its
parameters.
+view_operationScheduleDetails_noParameters=This operation does not take any parameters.
+view_operationScheduleDetails_enterParametersBelow=Enter parameters below...
+
+view_group_operationScheduleDetails_failedToLoadMembers=Failed to load group member
Resources.
+view_group_operationScheduleDetails_field_execute=Execute
+view_group_operationScheduleDetails_value_parallel=in parallel
+view_group_operationScheduleDetails_value_sequential=in the order specified below (drag
and drop member Resources to change order)
+view_group_operationScheduleDetails_field_haltOnFailure=Halt on Failure?
+view_group_operationScheduleDetails_memberResource=Member Resource
+
+
+# Operation History List
+#-----------------------
+view_operationHistoryList_title=Operation History~
+view_operationHistoryList_button_runOperation=Run Operation~
+view_operationHistoryList_button_forceDelete=Force Delete
+view_operationHistoryList_notYetStarted=not yet started
+
+# Operation History Details
+#--------------------------
+view_operationHistoryDetails_error_fetchFailure=Failure loading operation history.~
+view_operationHistoryDetails_operation=Operation
+view_operationHistoryDetails_dateSubmitted=Date Submitted
+view_operationHistoryDetails_dateCompleted=Date Completed
+view_operationHistoryDetails_requestor=Requestor
+view_operationHistoryDetails_status=Status
+view_operationHistoryDetails_parameters=Parameters
+view_operationHistoryDetails_results=Results
+view_operationHistoryDetails_noResults=This operation does not return any results.
+
+
+# Summary Overview
+#-----------------------------
+view_summaryOverview_header_detectedErrors=Detected Errors~
+view_summaryOverview_tooltip_detectedErrors=Click on the rows to see the error details.~
+view_summaryOverview_title_errorDetailsWindow=Error Details~
+
+# Summary Overview Form
+#-------------------------------------
+view_summaryOverviewForm_field_type=Type~
+view_summaryOverviewForm_field_name=Name~
+view_summaryOverviewForm_field_description=Description~
+view_summaryOverviewForm_field_location=Location~
+view_summaryOverviewForm_field_version=Version~
+view_summaryOverviewForm_error_traitsLoadFailure=Failed to load traits for {0}.~
+view_summaryOverviewForm_label_plugin=Plugin:
+view_summaryOverviewForm_label_type=Type:
+view_summaryOverviewForm_header_summary=Summary~
+view_summaryOverviewForm_error_nameChangeFailure=Failed to change name of Resource with
id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess=Name of Resource with id {0} was
changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_descriptionChangeFailure=Failed to change description of
Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess=Description of Resource with id
{0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_locationChangeFailure=Failed to change location of
Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess=Location of Resource with id {0}
was changed from [{1}] to [{2}].~
+
+# Summary Dashboard
+#-----------------------------
+view_summaryDashboard_resetConfirm=Reset to default summary dashboard (lose local
changes)?
+
+# Group Inventory>Members subtab
+#-----------------------------------------
+view_groupInventoryMembers_button_updateMembership=Update Membership...
+view_groupInventoryMembers_title_updateMembership=Update Membership
+
+
+#==================== Reports ======================
+
+view_reportsTop_title=Relat\u00F3rios~
+view_reportsTop_description=This section provides access to global reports.~
+view_reports_platforms=Utiliza\u00E7\u00E3o de Mem\u00F3ria e CPU~
+view_reports_subsystems=Subsistemas~
+view_reports_alertDefinitions=Defini\u00E7\u00E3o de Alertas~
+
+view_measurementOob_title=M\u00E9tricas Suspeitas~
+
+view_tagCloud_title=Nuvem de Tags~
+view_tagCloud_error_fetchFailure=Falha ao carregar etiquetas (tags).~
+view_tagCloud_error_tagUsedCount=Etiqueta (tag) usada {0} vezes.~
+view_tagCloud_deleteTag=Delete Tag
+view_tagCloud_deleteTagFailure=Failed to delete the tag [{0}]
+view_tagCloud_deleteTagSuccess=You successfully deleted the tag [{0}]
+
+view_reports_inventorySummary_failFetch=Failed to get inventory summary
+
+view_taggedResources_title=Recursos Etiquetados~
+
+view_reports_alertDefinitions_parentHover=Click to go to the parent alert definition
+view_reports_alertDefinitions_resTypeLoadError=Cannot get the template resource type -
unable to view the alert template.
+
+#==================== Help ======================
+
+view_helpTop_description=This section provides access to documentation, tutorials,
version, and other helpful information.
+view_help_section_product=Product
+view_help_section_product_about=About
+
+
+#===================== Test =======================
+view_testTop_title=Teste~
+view_testTop_description=Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para
realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.~
+
+#=================== Top Level =====================
+
+# About Box
+#----------
+view_aboutBox_allRightsReserved=Todos os Direitos Reservados.~
+view_aboutBox_buildNumber=N\u00FAmero do Build\:~
+view_aboutBox_failedToLoad=Falha ao carregar informa\u00E7oes do produto.~
+view_aboutBox_homepage=P\u00E1gina Inicial~
+view_aboutBox_jbossByRedHat=JBoss by Red Hat~
+view_aboutBox_title=Sobre {0}~
+view_aboutBox_version=Vers\u00E3o\:~
+
+# CoreGUI
+#--------------
+view_core_error_1=Falha ao perquisar novos alertas~
+#view_core_loggedInAs = Logged in as {0}
+view_core_loggedOut=Logged out~
+view_core_recentAlerts=[{0}] alertas recentes~
+view_core_noRecentAlerts=There are no recent alerts to report
+view_core_uncaught=Exce\u00E7\u00E3o n\u00E3o capturada~
+
+# Login
+#--------------
+view_login_invalidEmail=Endere\u00E7o de e-mail inv\u00E1lido~
+view_login_login=Login~
+view_login_logout=Logout~
+view_login_noBackend=Fonte de Dados indispon\u00EDvel.~
+view_login_noLdap=Note: Optional retrieval of ldap details unsuccessful. Manual entry is
required.~
+view_login_noUser=Usu\u00E1rio ou senha inv\u00E1lidos.~
+view_login_prompt=Favor efetuar Login~
+view_login_registerLater=(Logout - Concluir registro mais tarde.)~
+view_login_registerLdapSuccess=Novo usu\u00E1rios do LDAP registrado com sucesso.~
+view_login_registerUser=Registrar Usu\u00E1rio~
+view_login_welcome=Bem Vindo~
+view_login_welcomeMsg=Seja Bem Vindo ao JBoss ON\! <br/><br/> Informe ou
altere os seguintes campos para completar o processo de registro.<br/> Clique em
"OK" para acessar o sistema.<br/><br/>~
+
+# Menu Bar
+#--------------
+view_menuBar_logout=Logout~
+
+# Search Bar, GUI
+#-----------------
+view_searchBar_resources=Recursos~
+view_searchBar_resourceGroups=Grupos de Recursos~
+# TODO: i18n pluralization
+view_searchBar_welcomeMessage=procurar por {0}s~
+view_searchBar_defaultPattern=definir nome para o padr\u00E3o~
+view_searchBar_error_selectSavedSearch=''Erro ao selecionar a
pesquisa''~
+view_searchBar_query=Query~
+
+view_searchGUI_loginStatus=Imposs\u00EDvel determinar o status do login, verifique o
status do servidor~
+
+# Message Center
+#--------------------------
+view_messageCenter_messageTitle=Centro de Mensagens~
+view_messageCenter_noRecentMessages=N\u00E3o existem Mensagens Recentes~
+view_messageCenter_maxMessages=Max Messages
+view_messageCenter_lastNMessages=Last {0} Messages
+view_messageCenter_clearAllMessages=Clear All Messages
+view_messageCenter_messageTime=Tempo~
+view_messageCenter_messageSeverity=Severidade~
+view_messageCenter_messageDetail=Detalhe~
+view_messageCenter_stackTraceFollows=--- STACK TRACE FOLLOWS ---
+view_messageCenter_messageBarShowDetails=Show Details
+common_title_favorites=Favoritos
+common_title_summary_counts=Sum\u00E1rio de Contagem
+dataSource_traits_group_field_memberResource=Recurso Membro
+
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_resource=Recurso
+dataSource_problemResources_field_location=Local
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_field_id=ID
+dataSource_configurationHistory_field_resource=Recurso
+dataSource_configurationHistory_field_createdTime=Criado
+dataSource_configurationHistory_field_status=Status
+dataSource_configurationHistory_field_subject=Assunto
+dataSource_resourceErrors_field_detail=Mensagem detalhada
+view_adminConfig_license=Licen\u00E7a
+view_adminRoles_roleExists=O perfil com nome [{0}] j\u00E1 existe.
+view_alerts_field_ack_status_empty=Ainda n\u00E3o verificado
+view_alerts_field_ack_status_filled={0} verificado em {1}
+view_alerts_field_resource=Recurso
+view_alert_details_breadcrumb=Detalhes
+TODO=PAREI AQUI\!\!\!
+view_alert_common_tab_notifications_all_emails=Todos os Emails
+view_alert_common_tab_notifications_bad_emails=Emails recusados
+view_measureRange_day=1 Dia
+view_measureRange_days={0} Dias
+view_measureRange_hour=1 Hora
+view_measureRange_hours={0} Horas
+view_measureRange_minutes={0} Minutos
+view_measureRange_range=Faixa
+view_tags_title=Tags:~
+view_upload_tooltip_1=Select a file to upload, then click Upload or Next~
+# // dup in common
+view_dashboardsManager_inventory_title=Inventory Summary~
+view_dashboardsManager_mashup_title=RHQ News~
+view_dashboardsManager_message_title=Welcome To RHQ~
+view_dashboardsManager_tagcloud_title=Tag Cloud~
+view_portlet_autodiscovery_config_platform_selection=Number of platforms to display~
+view_portlet_autodiscovery_help_msg=This portlet offers the ability to import newly
discovered resources into the inventory for monitoring and management or to ignore them
from further action.~
+view_portlet_autodiscovery_title=Discovery Queue~
+view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
+view_portlet_favoriteResources_title=Favorite Resources~
+view_portlet_generic_help=No help available for this portlet~
+view_portlet_generic_unconfigured=No settings available for this portlet~
+view_portlet_graph_configure_title=Graph Config~
+view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
+view_portlet_graph_help_msg=This Portlet supports the graphing of a resource metric.~
+view_portlet_graph_help_title=Graph Portlet~
+view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings
button to configure.~
+view_portlet_graph_title=Resource Graph~
+view_portlet_mashup_config_title=MashupPorlet Configuration~
+view_portlet_mashup_config_title_desc=The configuration settings for the mashup
portlet.~
+view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an
iframe on the dashboard.~
+view_portlet_mashup_unconfigured=Page address not yet configured, click the settings
button to setup this portlet.~
+view_portlet_message_config_title=MessagePortlet Configuration~
+view_portlet_message_config_title_desc=The configuration settings for the message
portlet.~
+view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
+view_portlet_message_unconfigured=Message not yet configured, click the settings button
to setup this portlet.~
+view_portlet_operations_config_title=OperationsPortlet Configuration~
+view_portlet_operations_config_title_desc=The configuration settings for the Operations
portlet.~
+view_portlet_operations_help_msg=This portlet displays both operations that have occurred
and are scheduled to occur.~
+view_portlet_platform_help_msg=This portlet displays information about platforms in
inventory.~
+view_portlet_platform_title=Platforms Summary~
+view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources
to display.~
+view_portlet_problem_resources_config_display_range=Show problem resources going back
this many hours.~
+view_portlet_problem_resources_config_display_range2=From {0} to {1}~
+view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
+view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
+view_portlet_problem_resources_config_title_desc=The configuration settings for the
Problem resources portlet.~
+view_portlet_problem_resources_help=This portlet displays resources that have reported
alerts or Down availability.~
+view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
+view_portlet_recentAlerts_help_msg=Displays recent alerts fired on resources visible to
the current user login.~
+# // dup in common
+view_portlet_recentAlerts_title=Recent Alerts~
+view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
+view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently
been imported into the inventory.~
+view_portlet_recentlyAdded_title=Recently Added Portlet~
+view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible
to the current user.~
+view_portlet_tagCloud_title=TagCloud~
+view_inventory_cannotGetGlobalPerms=Could not determine global permissions - assuming
none.~
+view_inventory_downServers=Down Servers~
+view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
+view_tree_common_contextMenu_chart=Chart~
+view_tabs_common_scheduled=Scheduled~
+view_dynagroup_permUnknown=Could not determine if you have the proper permissions -
access is denied~
+view_configurationHistoryList_itemNamePlural=configuration history items
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_dialogTitle=Configuration Details~
+
+# Operation Create Wizard
+#-------------------------------------
+view_operationCreateWizard_title=Operation Wizard~
+view_operationCreateWizard_header=Execute {0} on {1}~
+view_operationCreateWizard_button_execute=Execute~
+view_operationCreateWizard_button_executeImmediately=Execute Immediately~
+view_operationCreateWizard_error_scheduleOperationFailure=Failed to schedule operation
execution.~
+view_operationCreateWizard_message_scheduleOperationSuccess=Schedule operation [{0}] on
Resource [{1}] with cron string [{2}].~
+view_operationCreateWizard_parametersStep_name=Operation Parameters~
+view_operationCreateWizard_parametersStep_noParameters=This operation does not take any
parameters.~
+view_operationCreateWizard_schedulingStep_name=Schedule~
+view_operationCreateWizard_schedulingStep_label_start=Start~
+view_operationCreateWizard_schedulingStep_label_schedule=Schedule~
+view_operationCreateWizard_schedulingStep_label_recurrence=Recurrence~
+view_operationCreateWizard_schedulingStep_label_runAt=Run At~
+view_operationCreateWizard_schedulingStep_label_nMinutes=n Minutes~
+view_operationCreateWizard_schedulingStep_label_hourly=Hourly~
+view_operationCreateWizard_schedulingStep_label_daily=Daily~
+view_operationCreateWizard_schedulingStep_label_weekly=Weekly~
+view_operationCreateWizard_schedulingStep_label_monthly=Monthly~
+view_operationCreateWizard_schedulingStep_label_timePeriod=Time Period~
+view_operationCreateWizard_schedulingStep_label_startDate=Start Date~
+view_operationCreateWizard_schedulingStep_label_recurrenceEnd=Recurrence End~
+view_operationCreateWizard_schedulingStep_label_endDate=End Date~
+view_operationCreateWizard_schedulingStep_label_willExecuteImmediately=Will execute
immediately~
+view_operationCreateWizard_schedulingStep_label_onceAt=Once At~
+view_operationCreateWizard_schedulingStep_label_date=Date~
+view_operationCreateWizard_schedulingStep_label_time=Time~
+view_operationCreateWizard_schedulingStep_label_everyNMinutes=Every n Minutes~
+view_operationCreateWizard_schedulingStep_label_minuteInterval=Minute Interval~
+view_operationCreateWizard_schedulingStep_label_hourlyAt=Hourly At~
+view_operationCreateWizard_schedulingStep_label_minuteOfHour=Minute of Hour~
+view_operationCreateWizard_schedulingStep_label_dailyAt=Daily At~
+view_operationCreateWizard_schedulingStep_label_timeOfDay=Time of Day~
+view_operationCreateWizard_schedulingStep_label_weeklyOn=Weekly On~
+view_operationCreateWizard_schedulingStep_label_dayOfWeek=Day of Week~
+view_operationCreateWizard_schedulingStep_label_monthlyOn=Monthly On~
+view_operationCreateWizard_schedulingStep_label_dayOfMonth=Day of Month~
+view_summaryOverviewForm_field_parent=Parent~
+view_core_loggedInAs=Logado como {0}~
+
+
+# Menu Bar
+#--------------
+view_menuBar_help=Ajuda~
+
+# Message Center
+#--------------------------
+view_messageCenter_button_messages=Mensagens~
commit e69d6068f2cf82605f9776ff4191e84f47980e92
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon May 23 10:09:31 2011 +0200
More German translations
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
index dfaf432..3576dcf 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
@@ -1,18 +1,7 @@
-#
-# RHQ GUI i18n Messages - English
-###################################
-
-#************************************** SHARED ****************************************
-
-#=================== Common =====================
-
-#
-# Build Info
-#
+common_alert_high = HOCH
+common_alert_low = NIEDRIG
+common_alert_medium = MITTEL
common_buildInfo_gwtVersion = ${gwt.version}
-
-# Button Labels
-#--------------
common_button_ack = Bestätigen
common_button_ack_all = Alle bestätigen
common_button_add = Hinzufügen
@@ -33,425 +22,377 @@ common_button_new = Neu
common_button_next = Weiter
common_button_ok = OK
common_button_previous = Zurück
-common_button_purgeAll=Alle löschen
+common_button_purgeAll = Alle löschen
common_button_refresh = Neu laden
common_button_reset = Zurücksetzen
common_button_save = Speichern
+common_button_schedule = Planen
common_button_search = Suchen
+common_button_set = Setzen
common_button_showDetails = Details anzeigen...
common_button_uninventory = Aus dem Inventar löschen
-
-# Common Labels
-#------------------------
+common_calendar_april_short = Apr
+common_calendar_august_short = Aug
+common_calendar_december_short = Dez
+common_calendar_february_short = Feb
+common_calendar_january_short = Jan
+common_calendar_july_short = Jul
+common_calendar_june_short = Jun
+common_calendar_march_short = Mär
+common_calendar_may_short = Mai
+common_calendar_november_short = Nov
+common_calendar_october_short = Okt
+common_calendar_september_short = Sept
common_label_all = ALLE
common_label_all_resources = Alle Ressourcen
-common_label_day= Tag
-common_label_days=Tage
-common_label_hour=Stunde
-common_label_hours=Stunden
-common_label_item=Eintrag
-common_label_items=Einträge
-common_label_milliseconds=Millisekunden
-common_label_minutes=Minuten
-common_label_month=Monat
+common_label_day = Tag
+common_label_days = Tage
+common_label_hour = Stunde
+common_label_hours = Stunden
+common_label_item = Eintrag
+common_label_items = Einträge
+common_label_milliseconds = Millisekunden
+common_label_minutes = Minuten
+common_label_month = Monat
common_label_none = keine
common_label_role = Rolle
common_label_roles = Rollen
-common_label_scheduled_operations=Geplante Operationen
-common_label_seconds=Sekunden
+common_label_scheduled_operations = Geplante Operationen
+common_label_seconds = Sekunden
common_label_selected_resources = Ausgewählte Ressourcen
-# TODO common_label_unlimited = unbeschränkt
+common_label_unlimited = unbeschränkt
common_label_user = Benutzer
common_label_users = Benutzer
-common_label_week=Woche
-common_label_weeks=Wochen
-
-# Common Titles
-#--------------
-common_title_add_column=Spalte hinzufügen
-common_title_add_portlet=Portlet hinzufügen
-common_title_alert_range=Alert Range~
+common_label_week = Woche
+common_label_weeks = Wochen
+common_label_yesterday = Gestern
+common_msg_areYouSure = Sind Sie sicher?
+common_msg_changeAutoDetected=Änderung automatisch entdeckt
+common_msg_emphasizedNotePrefix = Achtung:
+common_msg_loading = Laden...
+common_msg_noItemsToShow = Keine Einträge vorhanden
+common_msg_notYetImplemented = Noch nicht implementiert
+common_msg_see_more = mehr ...
+common_msg_step_x_of_y = Schritt {0} von {1}
+common_status_canceled = Abgebrochen
+common_status_deferred = Verzögert
+common_status_failed = Fehlgeschlagen
+common_status_inprogress = In Bearbeitung
+common_status_nochange = Keine Änderung
+common_status_partial = partiell
+common_status_success = Erfolg
+common_status_timedOut = Zeitüberschreitung aufgetreten
+common_status_unknown = Unbekannt
+common_title_add_column = Spalte hinzufügen
+common_title_add_graph_to_view=Graph zum Monitoring-Tab hinzufügen
+common_title_add_portlet = Portlet hinzufügen
+common_title_address = Adresse
+common_title_ancestry=Abstammung
common_title_availability = Verfügbar
-common_title_average_metrics=Durchsch. Anzahl Metriken pro Minute
-common_title_available_resources=Verfügbare Ressourcen
-common_title_background=Hintergrund
+common_title_available_resources = Verfügbare Ressourcen
+common_title_average_metrics = Durchsch. Anzahl Metriken pro Minute
+common_title_background = Hintergrund
+common_title_bundle = Bundle
+common_title_bundles = Bundles
common_title_category = Kategorie
-common_title_columns=Spalten
-common_title_configuration = Konfiguration
+common_title_change_refresh_time=Aktualisierungsabstand
+common_title_columns = Spalten
+common_title_compare_metrics = Metriken vergleichen
common_title_compatibleGroups = Kompatible Gruppen
-common_title_compatibleGroups_total=Anzahl kompatible Gruppen
-common_title_custom=Eigen
-common_title_dashboard_name=Dashboard-Name
-common_title_dateCreated=Zeitpunkt d. Erzeugung
-common_title_default=Standard
-common_title_description=Beschreibung
-common_title_details=Details
-common_title_display=Display~
-common_title_display_name=Anzeigename
-common_title_duration=Dauer
-common_title_edit_mode=Bearbeitungsmodus
-common_title_enabled=Aktiviert?
+common_title_compatibleGroups_total = Anzahl kompatible Gruppen
+common_title_component_errors = Fehler der Komponente
+common_title_config_update_status = Status aktualisieren
+common_title_configuration = Konfiguration
+common_title_count = Anzahl
+common_title_custom = Eigen
+common_title_dashboard_name = Dashboard-Name
+common_title_dateCreated = Zeitpunkt d. Erstellung
+common_title_dateRange = Zeitraum
+common_title_default = Standard
+common_title_description = Beschreibung
+common_title_details = Details
+common_title_display = Anzeige
+common_title_display_name = Anzeigename
+common_title_duration = Dauer
+common_title_edit_mode = Bearbeitungsmodus
+common_title_enabled = Aktiviert?
common_title_end = Ende
+common_title_error = Fehler
common_title_generalProp = Allgemeine Eigenschaften
-common_title_group_def_total=Anzahl Gruppen-Definitionen
+common_title_group = Gruppe
+common_title_group_def_total = Anzahl Gruppen-Definitionen
+common_title_group_member_health = Zustand der Gruppenmitglieder
+common_title_groups = Gruppen
+common_title_help = Hilfe
+common_title_host = Rechner
common_title_icon = Ikone
common_title_id = ID
common_title_id_parent = ID des Vaters
common_title_info = Info
-common_title_help = Hilfe
-common_title_host = Rechner
common_title_inventory = Inventar
common_title_inventorySummary = Inventar Zusammenfassung
-common_title_lastUpdated=Zuletzt aktualisiert
-common_title_lastUpdatedBy=Zuletzt aktualisiert durch
-common_title_mashup=Mashup~
-common_title_message=Nachricht
+common_title_lastUpdated = Zuletzt aktualisiert
+common_title_lastUpdatedBy = Zuletzt aktualisiert durch
+common_title_ldapGroups = LDAP-Gruppen
+common_title_members_reporting = Anzahl berichtender Mitglieder
+common_title_message = Nachricht
common_title_metric = Metrik
+common_title_metric_chart = Metrik-Diagramm
common_title_mixedGroups = Gemischte Gruppen
-common_title_mixedGroups_total=Anzahl gemischter Gruppen
+common_title_mixedGroups_total = Anzahl gemischter Gruppen
common_title_name = Name
-common_title_new_dashboard=Neues Dashboard
-common_title_numeric_type=Numerischer Typ
-common_title_operations=Operationen
-common_title_operations_range=Operation Range~
-common_title_over=Ãœber
+common_title_new_dashboard = Neues Dashboard
+common_title_numeric_metrics = Numerische Metriken
+common_title_numeric_type = Numerischer Typ
+common_title_operation_status = Status der Operation
+common_title_operations = Operationen
+common_title_over = Ãœber
common_title_password = Passwort
common_title_path = Pfad
-common_title_platform=Plattform
-common_title_platform_total=Anzahl Platformen
+common_title_permissions = Rechte
+common_title_platform = Plattform
+common_title_platform_total = Anzahl Platformen
common_title_plugin = Plugin
common_title_port = Port
-common_title_providers=Provider
-common_title_recently_added = Kürzlich hinzugefügte Ressourcen
+common_title_providers = Provider
common_title_recent_alerts = Kürzlich ausgelöste Alarme
-common_title_recent_operations=Kürzlich ausgeführte Operationen
-common_title_remove_column=Spalte löschen
-common_title_repositories=Repositories~
+common_title_recent_bundle_deployments = Kürzliche Bundle-Deployments
+common_title_recent_configuration_updates = Frische Konfigurationsaktualisierungen
+common_title_recent_event_counts = Anzahl frischer Events
+common_title_recent_measurements = Frische Messwerte
+common_title_recent_oob_metrics = Kürzlich aus dem Ruder gelaufene Metriken
+common_title_recent_operations = Kürzlich ausgeführte Operationen
+common_title_recently_added = Kürzlich hinzugefügte Ressourcen
+common_title_remove_column = Spalte löschen
common_title_resource = Ressource
+common_title_resourceGroups = Ressourcen-Gruppen
common_title_resource_group = Ressourcen-Gruppe
-common_title_resource_inventory=Ressourcen-spezifisces Inventar
-common_title_resource_id=Ressourcen-ID
-common_title_resource_name=Ressurcen-Name
+common_title_resource_id = Ressourcen-ID
+common_title_resource_inventory = Ressourcen-spezifisces Inventar
+common_title_resource_key = Ressourcen-Schlüssel
+common_title_resource_name = Ressurcen-Name
+common_title_resource_type = Ressourcen-Typ
+common_title_resources = Ressourcen
+common_title_results_count = Anzahl Ergebnisse
+common_title_results_count_tooltip = Zeige diese Anzahl Ergebnisse an
+common_title_role = Rolle
+common_title_roles = Rollen
+common_title_scheduled_operations = Geplante Operationen
common_title_search = Suche
-common_title_scheduled_operations=Geplante Operationen
-common_title_selected_resources=Ausgewählte Ressourcen
-common_title_server_total=Anzahl Server
-common_title_service_total=Anzahl Dienste
-common_title_settings=Einstellungen
-common_title_show=Anzeigen
+common_title_selected_resources = Ausgewählte Ressourcen
+common_title_server = Server
+common_title_server_total = Anzahl Server
+common_title_service = Dienste
+common_title_service_total = Anzahl Dienste
+common_title_settings = Einstellungen
+common_title_show = Anzeigen
+common_title_show_more = Mehr anzeigen...
+common_title_sort_order = Sortierreihenfolge
+common_title_sort_order_tooltip = Legt die Sortierreihenfolge für Ergebnisse fest.
common_title_start = Start
-common_title_status=Status
-common_title_summary=Zusammenfassung
-common_title_tag_cloud=Tag-Wolke
-common_title_the=Die
-common_title_timestamp =Zeitpunkt
-common_title_total=Total
+common_title_status = Status
+common_title_stop = Stop
+common_title_summary = Zusammenfassung
+common_title_tag_cloud = Tag-Wolke
+common_title_the = Die
+common_title_timestamp = Zeitpunkt
+common_title_total = Total
common_title_type = Typ
common_title_units = Einheiten
-common_title_user=Benutzer
+common_title_user = Benutzer
+common_title_users = Benutzer
common_title_value = Wert
common_title_version = Version
-common_title_view_mode=Anzeigemodus
-common_title_web_address=Webaddresse
-common_title_welcome=Willkommen
-
-# Common Messages
-#--------------
-common_msg_areYouSure = Sind Sie sicher?
-common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
-common_msg_emphasizedNotePrefix = Achtung:
-common_msg_loading = Laden...
-common_msg_noItemsToShow=Keine Einträge vorhanden
-common_msg_step_x_of_y = Schritt {0} von {1}
-
-
-# Common Values
-#--------------
+common_title_view_mode = Anzeigemodus
+common_title_web_address = Webaddresse
+common_title_welcome = Willkommen
+common_unit_days = Tage
+common_unit_hours = Stunden
+common_unit_milliseconds = Millisekunden
+common_unit_minutes = Minuten
+common_unit_months = Monate
+common_unit_seconds = Sekunden
+common_unit_times = mal
+common_unit_weeks = Wochen
+common_unit_years = Jahre
common_val_for=für
+common_val_n1st = {0}er
+common_val_n2nd = {0}er
+common_val_n3rd = {0}er
+common_val_na = entf.
+common_val_never = Nie
common_val_no = Nein
common_val_no_lower = nein
+common_val_none = Kein(e)
+common_val_nth = {0}er
common_val_yes = Ja
common_val_yes_lower = ja
-common_val_never = Nie
-common_val_na = entf.
-common_val_none = Kein(e)
-
-# Common Calendar
-#--------------
-common_calendar_january_short= Jan
-common_calendar_february_short=Feb
-common_calendar_march_short=Mär
-common_calendar_april_short=Apr
-common_calendar_may_short=Mai
-common_calendar_june_short=Jun
-common_calendar_july_short=Jul
-common_calendar_august_short=Aug
-common_calendar_september_short=Sept
-common_calendar_october_short=Okt
-common_calendar_november_short=Nov
-common_calendar_december_short=Dez
-
-
-#=================== Widgets =====================
-
-# Record Editor
-#--------------
-widget_recordEditor_title_view = Anzeigen {0} [{1}]
-widget_recordEditor_title_edit = Bearbeiten {0} [{1}]
-widget_recordEditor_title_new = Neue {0} anlegen
-# // dup in common
-widget_recordEditor_label_loading = Laden...
-widget_recordEditor_error_invalidViewPath = Ungültiger Anzeigepfad: [{0}]
-widget_recordEditor_error_noRecords = Keine Datensätze gefunden - erwartet wurde genau
einer.
-widget_recordEditor_error_multipleRecords = Mehrere Datensätze gefunden - erwartet wurde
genau einer.
-widget_recordEditor_info_recordCreatedConcise = {0} angelegt.
-widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] angelegt.
-widget_recordEditor_info_recordUpdatedConcise = {0} aktualisiert.
-widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] aktualisiert.
-widget_recordEditor_info_recordsDeletedConcise = {0} {1} gelöscht.
-widget_recordEditor_info_recordsDeletedDetailed = {0} {1} gelöscht: {2}.
-widget_recordEditor_error_unsupportedOperationType = Der Typ [{0}] der Operation wird
nicht unterstützt
-
-# Resource Selector/Picker
-#--------------------------------
-widget_resourceSelector_selectResource=Wählen Sie eine Ressource aus
-widget_resourceSelector_pleaseSelectResource=Bitte wählen sie eine Ressource aus
-widget_resourceSelector_selectMultipleResources=Wählen sie Ressourcen aus
-widget_resourceSelector_pleaseSelectMultipleResource=Bitte wählen Sie eine oder merere
Ressourcen aus
-widget_resourceSelector_groupCategory=Kategorie der Gruppe
-
-# Resource Factory Wizard
-#--------------------------------
-widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take
several minutes to complete for large distribution files.~
-widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
-widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
-widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
-widget_resourceFactoryWizard_infoStepName=Resource Information~
-widget_resourceFactoryWizard_namePrompt=New Resource Name~
-widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
-widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration
Templates~
-widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
-widget_resourceFactoryWizard_archPrompt=Package Architecture~
-widget_resourceFactoryWizard_versionPrompt=Package Version~
-widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
-widget_resourceFactoryWizard_importWizardTitle=Importieren von Ressourcen des Typs [{0}]
-widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
-widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type
[{0}] has been submitted~
-widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
-widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
-widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no
package version~
-widget_resourceFactoryWizard_execute2=Konnte keine neue Ressource anlegen
-widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type
[{0}] has been submitted successfully.~
-widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of
[{0}] has been submitted successfully.~
-widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new
resource~
-widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while
canceling a resource create~
-
-#===================== Utils ======================
-
-# Disambiguation Report Decorator
-#-------------------------------------------------
-util_disambiguationReportDecorator_pluginSuffix = ({0} Plugin)
-
-# Monitoring Request Callback
-#------------------------------------------
-util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login
status - check Server status.~
-
-# RPC Manager
-#----------------------
-util_rpcManager_activeRequests = {0} Aktive Anfragen
-
-# User Permissions Manager
-#--------------------------
-util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
-util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id
[{0}] - none granted.~
-util_userPerm_loadFailResource = Failed to load your permissions for Resource with id
[{0}] - none granted.~
-
-# User Session Manager
-#--------------------------
-util_userSession_loadFailSubject = UserSessionManager: Konnte das 'Subject' des
Benutzers nicht laden.
-util_userSession_logoutFail = Ausloggen fehlgeschlagen
-
-# Error Handler
-#--------------------
-util_errorHandler_nullException = Exception war null
-
-# Widgets Field
-#---------------------
-util_widgetsField_unlimited = Unbeschränkt
-
-
-#================== DataSources ====================
-
-# RPC (abstract)
-#-----------------------
-dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0}
request.~
-dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of
type {0}.~
-dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum
{0} to RPCDataSource.getEnumArray(Class)~
-dataSource_rpc_yes = ja
-dataSource_rpc_no = nein
-
-# ContentRepositoryTree
-#------
-dataSource_ContentRepoTree_error_load = Error loading repositories~
-dataSource_ContentRepoTree_field_parentId = Parent ID~
-
-
-# Users
-#------
-###### dup in common
-dataSource_users_field_id = ID
-dataSource_users_field_name = Benutzername
-dataSource_users_field_ldap = LDAP Login?
-dataSource_users_field_password = Passwort
-dataSource_users_field_passwordVerify = Passwort überprüfen
-dataSource_users_field_firstName = Vorname
-dataSource_users_field_lastName = Nachname
-dataSource_users_field_emailAddress = E-Mail-Addresse
-dataSource_users_field_phoneNumber = Telefonnummer
-dataSource_users_field_department = Abteilung
-dataSource_users_field_factive = Darf sich einloggen?
-
-# Platforms
-#------
-dataSource_platforms_field_cpu=CPU
-dataSource_platforms_field_memory=Speicher
-dataSource_platforms_field_swap=Swap
-
-# Traits
-#------
-dataSource_traits_field_primaryKey=Primärschlüssel
-dataSource_traits_field_definitionID=Definition-ID
-dataSource_traits_field_lastChanged=Zuletzt geändert
-dataSource_traits_field_trait=Trait
-dataSource_traits_group_field_groupId=Gruppen-ID
-
-# Measurement OOBs
-#---------------------------------
-dataSource_measurementOob_field_scheduleName = Metrik
-dataSource_measurementOob_field_resourceName = Ressource
-dataSource_measurementOob_field_parentName = Parent~
+dataSource_bundle_loadFailed = Konnte die Bundle-Daten nicht laden
+dataSource_configurationHistory_clickToSeeError = Doppelklicken, um die Fehlermeldung zu
sehen...
+dataSource_configurationHistory_currentConfig = Dies ist die aktuelle Konfiguration
+dataSource_configurationHistory_error_fetchFailure = Konnte den Verlauf der
Ressourcen-Konfiguration nicht laden.
+dataSource_configurationHistory_updateType_group = Gruppe
+dataSource_configurationHistory_updateType_individual = einzeln
+dataSource_measurementOob_error_fetchFailure = Konnte die Informationen über Ausreißer
nicht laden
+dataSource_measurementOob_field_factor = Ausreißer-Faktor (%)
dataSource_measurementOob_field_formattedBaseband = Band
dataSource_measurementOob_field_formattedOutlier = Ausreißer
-dataSource_measurementOob_field_factor = Ausreißer-Faktor (%)
-dataSource_measurementOob_error_fetchFailure = Konnte die Informationen über Ausreißer
nicht laden
-
-# Measurements
-#----------------------
-dataSource_definitions_loadFailed = Failed to load metric definitions~
-dataSource_schedules_loadFailed = Konte die Zeitpläne für das Erfassen der Metriken nicht
laden
-dataSource_schedules_field_resourceGroupId = Gruppen-ID
-
-dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}]
metrics for resource with ID [{1}]. The metrics were: [{2}]~
-dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics
for group with ID [{1}]. The metrics were: [{2}]~
-
-dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}]
measurements~
-dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of
[{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
-dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}]
measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
-
-dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}]
metrics for resource with ID [{1}]. The metrics were: [{2}]~
-dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}]
metrics for resource group with ID [{1}]. The metrics were: [{2}]~
-
-dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}]
measurements~
-dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of
[{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
-dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of
[{0}] measurements for the resource group with ID [{1}]. The disabled measurements are:
[{2}]~
-
-dataSource_schedules_updateFailure_resource=Failed to set the collection interval of
[{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval
was to be [{3}] seconds.~
-dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}]
metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval
was to be [{3}] seconds.~
-
-dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds
has been set on [{1}] measurements~
-dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}]
seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated
measurements are: [{3}]~
-dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}]
seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated
measurements are: [{3}]~
-
-
-# Problem Resources
-#------------------------------
+dataSource_measurementOob_field_resourceName = Ressource
+dataSource_measurementOob_field_scheduleName = Metrik
+dataSource_operationHistory_error_fetchFailure = Konnte den Verlauf der Operationen nicht
laden.
+dataSource_operationHistory_field_createdTime = Erstellungszeitpunkt
+dataSource_operationHistory_field_operationName = Name der Operation
+dataSource_operationHistory_field_startedTime = Startzeitpunkt
+dataSource_operationHistory_field_subject = Ersteller
+dataSource_operationSchedule_field_description = Notizen
+dataSource_operationSchedule_field_nextFireTime = Nächste Ausführung
+dataSource_operationSchedule_field_operationDisplayName = Operation
+dataSource_operationSchedule_field_operationName = Operation
+dataSource_operationSchedule_field_subject = Eigentümer
+dataSource_operationSchedule_field_timeout = Timeout (in Sekunden)
+dataSource_platforms_field_cpu = CPU
+dataSource_platforms_field_memory = Speicher
+dataSource_platforms_field_swap = Swap
+dataSource_problemResources_error_fetchFailure = Konnte die Liste der Ressourcen mit
Alarmen oder unverfügbarkeit nicht laden.
dataSource_problemResources_field_alerts = Alarme
dataSource_problemResources_field_available = Aktuelle Verfügbarkeit
-dataSource_problemResources_error_fetchFailure = Konnte die Liste der Ressourcen mit
Alarmen oder unverfügbarkeit nicht laden.
-
-# Recent Operations
-#----------------------------
-dataSource_recentOperations_field_resource = Ressource
+dataSource_recentOperations_error_fetchFailure = Konnte die Liste der kürzlich
vollendeten Operationen nicht laden.
dataSource_recentOperations_field_location = Ort
dataSource_recentOperations_field_operation = Operation
-dataSource_recentOperations_field_time = Zeitpunkt
+dataSource_recentOperations_field_resource = Ressource
dataSource_recentOperations_field_status = Status
-dataSource_recentOperations_error_fetchFailure = Konnte die Liste der kürzlich
vollendeten Operationen nicht laden.
-
-# Scheduled Operations
-#---------------------------------
-dataSource_scheduledOperations_field_resource = Ressource
+dataSource_recentOperations_field_time = Zeitpunkt
+dataSource_resourceErrors_clickStatusIcon = Für mehr Details auf das Icon klicken
+dataSource_resourceErrors_deleteFailure = Konnte die Ressourcen-Fehler nicht löschen
+dataSource_resourceErrors_deleteSuccess = Sie haben erfolgreich [{0}]
Ressourcen-Fehlermeldungen gelöscht.
+dataSource_resourceErrors_error_fetchFailure = Konnte die spezifischen Fehler für die
Ressource mit id [{0}] nicht laden.
+dataSource_resourceErrors_field_errorType = Fehlertyp
+dataSource_resourceErrors_field_summary = Zsuammenfassung
+dataSource_resourceErrors_field_timeOccured = Zeitpunkt
+dataSource_resourceGroups_loadFailed = Konnte die Ressourcen-Gruppe nicht laden
+dataSource_resources_field_discoveryTime = Zeitpunkt des Auffindens
+dataSource_resources_field_importTime = Zeitpunkt des Imports
+dataSource_resources_field_key = Schlüssel
+dataSource_resources_field_lastModifiedTime = Zeitpunkt letzte Änderung
+dataSource_resources_field_lastModifier=Letzter Bearbeiter
+dataSource_resources_field_location = Ort
+dataSource_rpc_no = nein
+dataSource_rpc_yes = ja
+dataSource_scheduledOperations_error_fetchFailure = Konnte die Liste der geplanten
Operationen nicht laden.
dataSource_scheduledOperations_field_location = Ort
dataSource_scheduledOperations_field_operation = Operation
+dataSource_scheduledOperations_field_resource = Ressource
dataSource_scheduledOperations_field_time = Zeitpunkt
-dataSource_scheduledOperations_error_fetchFailure = Konnte die Liste der geplanten
Operationen nicht laden.
-
-# Operation History
-#---------------------------
-dataSource_operationHistory_error_fetchFailure = Konnte den Verlauf der Operationen nicht
laden.
-
-# Configuration History
-#-------------------------------
-dataSource_configurationHistory_field_id = ID
-dataSource_configurationHistory_field_createdTime = Angelegt
-dataSource_configurationHistory_field_status = Status
-dataSource_configurationHistory_field_subject = Benutzer
-dataSource_configurationHistory_error_fetchFailure = Konnte den Verlauf der
Ressourcen-Konfiguration nicht laden.
-
-# Resource Errors
-#-------------------------
-dataSource_resourceErrors_field_summary = Zsuammenfassung
-dataSource_resourceErrors_field_errorType = Fehlertyp
-dataSource_resourceErrors_field_timeOccured = Zeitpunkt
-dataSource_resourceErrors_error_fetchFailure = Konnte die spezifischen Fehler für die
Ressource mit id [{0}] nicht laden.
-
-
-#********************************** VIEW-SPECIFIC *************************************
-
-#================= Administration ==================
-
-view_admin_administration = Verwaltung
-view_admin_landing = In dieser Sektion können die globalen Einstellungen für RHQ
verwaltet werden. Dies schließt Sicherheitseinstellungen und Plugins ein, sowie die
Verwaltung der RHQ Server- und Agentplugins.
-view_admin_configuration = Konfiguration
-view_admin_security = Sicherheit
-view_admin_topology = Topologie
-
-view_adminSecurity_users = Benutzer
-view_adminSecurity_roles = Rollen
-
-view_adminTopology_affinityGroups = Affinity Groups~
-view_adminTopology_agents = Agenten
-view_adminTopology_partitionEvents = Partition Events~
-view_adminTopology_remoteAgentInstall = Installation entfernter Agenten
-view_adminTopology_servers = Server
-
+dataSource_schedules_field_resourceGroupId = Gruppen-ID
+dataSource_schedules_loadFailed = Konte die Zeitpläne für das Erfassen der Metriken nicht
laden
+dataSource_schedules_loadFailedContext = Konnte die Zeitpläne für Metriken für den
Kontext [{0}] nicht laden
+dataSource_schedules_loadFailedCriteria = Konnte die Zeitpläne für Metriken für die
Kriterien [{0}] nicht laden
+dataSource_traits_failFetch = Konnte die Traits für das Kiriterium [{0}] nicht
ermitteln.
+dataSource_traits_field_definitionID = Definition-ID
+dataSource_traits_field_lastChanged = Zuletzt geändert
+dataSource_traits_field_primaryKey = Primärschlüssel
+dataSource_traits_field_trait = Trait
+dataSource_traits_group_field_groupId = Gruppen-ID
+dataSource_users_delete = Benutzer [{0}] wurde gelöscht
+dataSource_users_deleteFailed = Konnte den Benutzer [{0}] nicht löschen
+dataSource_users_field_department = Abteilung
+dataSource_users_field_emailAddress = E-Mail-Addresse
+dataSource_users_field_factive = Darf sich einloggen?
+dataSource_users_field_firstName = Vorname
+dataSource_users_field_id = ID
+dataSource_users_field_lastName = Nachname
+dataSource_users_field_ldap = LDAP Login?
+dataSource_users_field_name = Benutzername
+dataSource_users_field_password = Passwort
+dataSource_users_field_passwordVerify = Passwort überprüfen
+dataSource_users_field_phoneNumber = Telefonnummer
+dataSource_users_invalidEmailAddress = Ungültige E-Mail-Adresse
+dataSource_users_passwordsDoNotMatch = Passworte stimmen nicht überein.
+datasource_roles_field_ldapGroups = LDAP-Gruppen
+datasource_roles_field_permissions = Berechtigungen
+datasource_roles_field_resourceGroups = Ressourcen-Gruppen
+datasource_templateSchedules_disabled = Das Erfassen der Messwerte für [{0}] wurde
eingestellt.
+datasource_templateSchedules_disabled_detailed = Sammeln der Daten für Metrik [{0}] [{1}]
als Standard für Ressource-Tpypen mit ID [{2}] eingestellt.
+datasource_templateSchedules_disabled_failed = Konnte das Sammeln der Daten für die
Metrik [{0}] [{1}] als Standard für Ressourcen-Typ [{2}] nicht einstellen.
+datasource_templateSchedules_enabled = Sammeln der Daten für Metrik [{0}] gestartet.
+datasource_templateSchedules_enabled_detailed = Sammeln der Daten für Metrik [{0}] [{1}]
als Standard für Ressourcen mit Typ-ID [{2}] gestartet.
+datasource_templateSchedules_enabled_failed = Konnte das Sammeln der Daten für die Metrik
[{0}] [{1}] als Standard für Ressourcen mit Type-ID [{2}] nicht beginnen.
+datasource_templateSchedules_updated = Zeitpläne für die ausgewählte Metrik [{0}]
aktualisiert.
+datasource_templateSchedules_updated_detail = Zeitplan für das Sammeln von Daten für
Metrik [{0}] [{1}] als Standard für Ressourcen mit Typ-ID [{2}] auf [{3}] Sekunden
gesetzt.
+datasource_templateSchedules_updated_failed = Aktualisieren des Zeitplans auf [{0}]
Sekunden für das Sammeln von Daten für Metrik [{1}] [{2}] als Standard für Ressourcen mit
Typ-ID [{3}] ist fehlgeschlagen.
+favorites = Lesezeichen
+favorites_groups = Gemerkte Gruppen
+favorites_recentlyViewed = Kürzlich angesehen
+favorites_resources = Gemerkte Ressourcen
+group_tree_partialClusterTooltip = {0} der {1} Gruppenmitglieder haben eine
''{2}'' Ressource
+util_ancestry_parentAncestry=Abstammung für:
+util_disambiguationReportDecorator_pluginSuffix = ({0} Plugin)
+util_errorHandler_nullException = Exception war null
+util_rpcManager_activeRequests = {0} Aktive Anfragen
+util_userSession_loadFailSubject = UserSessionManager: Konnte das 'Subject' des
Benutzers nicht laden.
+util_userSession_logoutFail = Ausloggen fehlgeschlagen
+util_widgetsField_unlimited = Unbeschränkt
+view_aboutBox_buildNumber = Build-Nummer:
+view_aboutBox_failedToLoad = Kann die Produktinformation nicht laden
+view_aboutBox_homepage = Homepage
+view_aboutBox_title = Ãœber {0}
+view_aboutBox_version = Version:
view_adminConfig_downloads = Downloads
view_adminConfig_plugins = Plugins
view_adminConfig_systemSettings = Systemeinstellungen
view_adminConfig_templates = Voreinstellungen
-
-# Administration/Security/Users
-#--------------------------------
-view_adminUsersList_dataTypeName = Benutzer
-view_adminUsersList_dataTypeNamePlural = Benutzer
-
-# Administration/Security/Users/#
-#--------------------------------
-view_adminUsersDetails_dataTypeName = Benutzer
-
-# Administration/Security/Roles/#
-#--------------------------------
view_adminRoles_assignedGroups = Zugewiesene Ressourcen-Gruppen
view_adminRoles_assignedSubjects = Zugewisene Benutzer
view_adminRoles_failLdap = Konnte nicht ermitteln, ob LDAP konfiguriert ist - gehe von
keiner LDAP-Konfiguration aus.
-view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no
LDAP groups.~
-view_adminRoles_failLdapGroupsRole = Failed to load LDAP groups available for role.~
view_adminRoles_failRoles = Konnte die Rollen nicht laden.
view_adminRoles_globalPerms = Applikationsweite Rechte
view_adminRoles_ldapGroups = LDAP-Gruppen
view_adminRoles_ldapGroupsReadOnly = LDAP Gruppendaten können nur gelesen werden
view_adminRoles_noItems = Keine Einträge vorhanden
view_adminRoles_noLdap = Die LDAP-Integration ist nicht konfiguriert. Um LDAP zu
konfigurieren, wechseln sie zu <a {0}>{1}</a>.
+view_adminRoles_permissions_globalPermissions = Globale Rechte
+view_adminRoles_permissions_isAuthorized = Berechtigt?
+view_adminRoles_permissions_isRead = Lesen?
+view_adminRoles_permissions_isWrite = Schreiben?
+view_adminRoles_permissions_permDesc_manageBundles = Kann Bundles anlegen, aktualisieren
und löschen (Ansehen ist für alle implizit erlaubt).
+view_adminRoles_permissions_permDesc_manageInventory = Hat alle Rechte auf alle
Ressourcen, wie unten beschrieben. Kann Gruppen anlegen, aktualisieren und löschen. Kann
Ressourcen in das Inventar aufnehmen.
+view_adminRoles_permissions_permDesc_manageSecurity = Kann Benutzer und Rollen anlegen,
aktualisieren oder löschen (Anschauen ist für alle implizit erlaubt)
+view_adminRoles_permissions_permDesc_manageSettings = Kann die Konfiguration des
RHQ-Servers ändern und jegliche Server-bezogene Funktionalität ausführen.
+view_adminRoles_permissions_permReadDesc_configure = Ansehen der Ressourcen-Konfiguration
und des Verlaufs derselben.
+view_adminRoles_permissions_permReadDesc_control = (IMPLIZIT) Ansehen der verfügbaren
Operationen und des Verlaufs der ausgeführen Operationen
+view_adminRoles_permissions_permReadDesc_createChildResources = (IMPLIZIT) Ansehen des
Verlaufs des Anlegens von Kind-Ressourcen
+view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIZIT) Ansicht des
Verlaufs der Löschung von Kind-Ressourcen
+view_adminRoles_permissions_permReadDesc_inventory = (IMPLIZIT) Ansehen der Eigenschaft
einer Ressource (Name, Beschreibung, Version etc.), Verbindungseinstellungen, Verlauf
derselben
+view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIZIT) Ansehen von
Alarm-Definitionen und ausgelösten Alarmen
+view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIZIT) Installierte und
verfügbare Pakete ansehen; Verlauf der Installation von Paketen ansehen
+view_adminRoles_permissions_permReadDesc_manageEvents = (IMPLIZIT) Ereignisse ansehen
+view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIZIT) Monitoringdaten
und -zeitplan ansehen
+view_adminRoles_permissions_permWriteDesc_configure = Bearbeiten der
Ressourcen-Konfiguration; Löschen einzelner Einträge im Verlauf der
Ressourcen-Konfiguration
+view_adminRoles_permissions_permWriteDesc_control = Ausführen von Operationen; Löschen
einzelner Einträge im Verlauf der Operationen
+view_adminRoles_permissions_permWriteDesc_createChildResources = Neue Kind-Ressourcen
anlegen (für Ressource-Typen, die das Erzeugen von Kind-Ressourcen erlauben)
+view_adminRoles_permissions_permWriteDesc_deleteChildResources = Löschen von
Kind-Ressourcen (für Ressource-Typen, die das Löschen zulassen)
+view_adminRoles_permissions_permWriteDesc_inventory = Aktualisieren von Ressourcename,
Beschreibung und Verbindungseinstellungen. Löschen einzelner Einträge des Verlaufs der
Verbindungseinstellungen.
+view_adminRoles_permissions_permWriteDesc_manageAlerts = Anlegen, Bearbeiten und Löschen
von Alarm-Definitionen. Bestätigen und Löschen von ausgelösten Alarmen.
+view_adminRoles_permissions_permWriteDesc_manageContent = Abonnieren von Content-Quellen;
Pakete installieren und deinstallieren
+view_adminRoles_permissions_permWriteDesc_manageEvents = Ereignisse löschen
+view_adminRoles_permissions_permWriteDesc_manageMeasurements = Zeitplan für das
Monitoring bearbeiten
+view_adminRoles_permissions_perm_configure = Konfiguration
+view_adminRoles_permissions_perm_control = Operationen
+view_adminRoles_permissions_perm_createChildResources = Kind-Ressourcen erzeugen
+view_adminRoles_permissions_perm_deleteChildResources = Löschen von Kind-Ressourcen
+view_adminRoles_permissions_perm_inventory = Inventar
+view_adminRoles_permissions_perm_manageAlerts = Alarme verwalten
+view_adminRoles_permissions_perm_manageBundles = Bundles verwalten
+view_adminRoles_permissions_perm_manageContent = Content verwalten
+view_adminRoles_permissions_perm_manageEvents = Ereignisse verwalten
+view_adminRoles_permissions_perm_manageInventory = Inventar verwalten
+view_adminRoles_permissions_perm_manageMeasurements = Monitoring verwalten
+view_adminRoles_permissions_perm_manageSecurity = Sicherheitseinstellungen verwalten
+view_adminRoles_permissions_perm_manageSettings = Einstellungen verwalten
+view_adminRoles_permissions_read = Lesen
+view_adminRoles_permissions_readAccessImplied = Lesezugriff für das Recht {0} ist
implizit und kann nicht abgeschaltet werden.
+view_adminRoles_permissions_resourcePermissions = Rechte für Ressourcen
+view_adminRoles_permissions_write = Schreiben:
view_adminRoles_perms = Rechte
view_adminRoles_resourcePerms = Rechte auf Ressourcen
view_adminRoles_roleAdded = Rolle [{0}] hinzugefügt
@@ -459,1271 +400,646 @@ view_adminRoles_roleDeleteFailed = Konnte die Rolle [{0}] nicht
löschen.
view_adminRoles_roleDeleted = Rolle [{0}] gelöscht.
view_adminRoles_roleUpdateFailed = Konnte die Rolle [{0}] nicht aktualisieren.
view_adminRoles_roleUpdated = Rolle [{0}] aktualisiert.
-
-# Administration/Topology/RemoteAgentInstall/#
-#--------------------------------
-view_remoteAgentInstall_agentStatus = Status des Agenten
-view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
-view_remoteAgentInstall_connInfo = Connection Information~
-view_remoteAgentInstall_buttonFindAgent = Agent suchen
-view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install
path~
-view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in
common locations
-view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
-view_remoteAgentInstall_error_4 = Konnte den Agent nicht installieren
-view_remoteAgentInstall_error_5 = Konnte den Agent nicht starten
-view_remoteAgentInstall_error_6 = Konnte den Agent nicht stoppen
-
-view_remoteAgentInstall_installAgent = Agent installieren
-view_remoteAgentInstall_installInfo = Agent Installation Information~
-view_remoteAgentInstall_installPath = Agent Install Path~
-view_remoteAgentInstall_owner = Eigentümer
-view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If
you aren''t sure where an agent is installed, enter a parent directory and click
the ''Find Agent'' button to scan that directory and below. If you enter
an empty path, common locations are searched on the host for an agent install.~
-view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
-view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the
user on the host via SSH~
-view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not
specified, the default is 22~
-view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to
the host via SSH~
-view_remoteAgentInstall_result = Resultat
-view_remoteAgentInstall_resultCode = ResultCode~
-view_remoteAgentInstall_startAgent = Agent starten
-view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
-view_remoteAgentInstall_step = Schritt
-view_remoteAgentInstall_stopAgent = Agent anhalten
-view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
-view_remoteAgentInstall_success = Agent installation complete~
-view_remoteAgentInstall_updateStatus = Update Status~
-
-#==================== Alerts ======================
-view_alerts_table_title_group=Verlauf Gruppen-Alarme
-view_alerts_table_title_resource=Verlauf Ressourcen-Alarme
-view_alerts_table_filter_priority=Filter nach Priorität
-view_alerts_field_created_time=Erstellungszeitpunkt
-view_alerts_field_modified_time=Zuletzt geändert
-view_alerts_field_enabled=Aktiviert
-view_alerts_field_ack_time=Zeitpunkt Bestätigung
-view_alerts_field_ack_subject=Bestätigender Benutzer
-view_alerts_field_ack_status=Status
-view_alerts_field_name=Name
-view_alerts_field_condition_text=Bedingung(en)
-view_alerts_field_condition_text_none=Keine Bedingungen
-view_alerts_field_condition_text_many=Mehrere Bedingungen
-view_alerts_field_condition_value=Bedingung
-view_alerts_field_priority=Priorität
-view_alerts_field_parent=Eltern
-view_alerts_field_protected=Geschützt
-view_alerts_field_protected_tooltip=If true, this definition is protected from being
changed by the parent definition. In other words, the parent definition settings will not
override this definition.~
-view_alerts_loadFailed=Konnte die Daten für die Alarme nicht laden
-view_alerts_delete_confirm=Die ausgewählten Alarme löschen?
-view_alerts_delete_confirm_all=Alle Alarme aus dieser Quele löschen?
-view_alerts_delete_success=Erfolgreich {0} Alarme gelöscht
-view_alerts_delete_failure=Konnte die Alarme mit den IDs {0} nicht löschen
-view_alerts_delete_failure_all=Löschen aller Alarme dieser Quelle fehlgeschlagen
-view_alerts_ack_confirm=Die ausgewählten Alarme bestätigen?
-view_alerts_ack_confirm_all=Alle Alarme dieser Quelle bestätigen?
-view_alerts_ack_success=Erfolgreich {0} Alarme bestätigt
-view_alerts_ack_failure=Bestätigen der Alarme mit den IDs {0} fehlgeschlagen
-view_alerts_ack_failure_all=Bestätigung aller Alarme deiser Quelle fehlgeschlagen
-view_alert_details_loadFailed=Laden der Details für den Alarm fehlgeschlagen
-view_alert_details_field_ack_by=Bestätigt durch
-view_alert_details_field_ack_at=Bestätigt um
-view_alert_details_field_recovery_info=Info zur Erholung
-view_alert_definition_for_type=Vorlage ansehen
-view_alert_definition_for_group=View Group Definition~
-view_alert_definitions_table_title_group=Alarm-Definitionen für Gruppen
-view_alert_definitions_table_title_resource=Alarm-Definitionen für Ressourcen
-view_alert_definitions_loadFailed=Failed to fetch alert definition data~
-view_alert_definitions_loadFailed_single=Failed to fetch data for alert definition with
id {0}~
-view_alert_definitions_enable_confirm=Die auusgewählten Alarm-Definitionen aktivieren?
-view_alert_definitions_enable_success=Successfully enabled {0} alert definitions~
-view_alert_definitions_enable_failure=Failed to enable the selected alert definitions~
-view_alert_definitions_disable_confirm=Die ausgewählten Alram-Definitionen deaktivieren?
-view_alert_definitions_disable_success=Successfully disabled {0} alert definitions~
-view_alert_definitions_disable_failure=Failed to disable the selected alert definitions~
-view_alert_definitions_delete_confirm=Die ausgewählten Alarm-Definitionen löschen?
-view_alert_definitions_delete_success=Successfully deleted {0} alert definitions~
-view_alert_definitions_delete_failure=Failed to deleted the selected alert definitions~
-view_alert_definitions_create_success=Alarm-Definition erfolgreich angelegt
-view_alert_definitions_create_failure=Anlegen der Alarm-Definition fehlgeschlagen
-view_alert_definitions_update_success=Alarm-Definition erfolgreich aktualisiert
-view_alert_definitions_update_failure=Aktualisieren der Alarm-Definition fehlgeschlagen
-view_alert_definition_condition_editor_option_label=Typ der Bedingung
-view_alert_definition_condition_editor_option_availability=Änderung der Verfügbarkeit
-view_alert_definition_condition_editor_option_metric_threshold=Absoluter
Metrikschwellwert
-view_alert_definition_condition_editor_option_metric_baseline=Schwelle des Referenzbands
-view_alert_definition_condition_editor_option_metric_change=Wert der Metrik ändert sich
-view_alert_definition_condition_editor_option_metric_calltime_threshold=Call Time Value
Threshold~
-view_alert_definition_condition_editor_option_metric_calltime_change=Änderung des
Call-Time-Werts
-view_alert_definition_condition_editor_option_metric_trait_change=Änderung des
Trait-Werts
-view_alert_definition_condition_editor_option_operation=Ausführung der Operation
-view_alert_definition_condition_editor_option_resource_configuration=Änderung der
Konfiguration der Ressource
-view_alert_definition_condition_editor_option_event=Event Detection~
-view_alert_definition_condition_editor_avilability_tooltip=Specify the availability state
change that will trigger the condition.~
-view_alert_definition_condition_editor_avilability_value=Verfügbarkeit
-view_alert_definition_condition_editor_avilability_option_up=Wird verfügbar
-view_alert_definition_condition_editor_avilability_option_down=Wird unverfügbar
-view_alert_definition_condition_editor_metric_common_definition_not_found=Should have
found metric definition - something is wrong~
-view_alert_definition_condition_editor_metric_threshold_tooltip=Specify the threshold
value that, when violated, triggers the condition. The value you specify is an absolute
value with an optional units specifier.~
-view_alert_definition_condition_editor_metric_threshold_name=Metrik
-view_alert_definition_condition_editor_metric_threshold_value=Wert der Metrik
-view_alert_definition_condition_editor_metric_threshold_value_tooltip=The threshold value
of the metric that will trigger the condition when compared using the selected
comparator.~
-view_alert_definition_condition_editor_metric_threshold_comparator=Komparator
-view_alert_definition_condition_editor_metric_threshold_comparator_less=Kleiner als
-view_alert_definition_condition_editor_metric_threshold_comparator_equal=Gleich
-view_alert_definition_condition_editor_metric_threshold_comparator_greater=Größer als
-view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=How a
collected metric value should be compared to the given threshold value~
-view_alert_definition_condition_editor_metric_baseline_tooltip=Specify the baseline value
that must be violated to trigger the condition. The value you specify is a percentage of
the given baseline value.~
-view_alert_definition_condition_editor_metric_baseline_percentage=Baseline Percentage~
-view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=A collected
metric value will trigger this condition when compared to this percentage of the selected
baseline value using the selected comparator~
-view_alert_definition_condition_editor_metric_baseline_value=Referenzband~
-view_alert_definition_condition_editor_metric_change_tooltip=Specify the metric whose
value must change to trigger the condition.~
-view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Specify the
calltime threshold value that, when violated, triggers the condition. The value you
specify is an absolute value with an optional units specifier. You also must specify which
calltime limit to compare the value with (minimum, maximum or average calltime value).~
-view_alert_definition_condition_editor_metric_calltime_common_name=Call Time Metric~
-view_alert_definition_condition_editor_metric_calltime_common_limit=Call Time Limit~
-view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=The calltime
limit value that is to be compared with the given value~
-view_alert_definition_condition_editor_metric_calltime_common_regex=Regulärer Ausdruck
-view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=If specified,
this is a regular expression that must match a call destination in order to trigger the
condition.~
-view_alert_definition_condition_editor_metric_calltime_common_comparator=Komparator
-view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Schrumpft
-view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Wächst
-view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Ändert
sich
-view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=How a
collected calltime value should be compared to the given calltime limit~
-view_alert_definition_condition_editor_metric_calltime_threshold_value=Call Time Value~
-view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=The
threshold value of the metric that will trigger the condition when compared using the
selected comparator.~
-view_alert_definition_condition_editor_metric_calltime_change_tooltip=Specify the
calltime value that, when changed at least a specified amount, triggers the condition. You
must specify which calltime limit to check (minimum, maximum or average calltime value)
and the percentage of change that must occur.~
-view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentage
Change~
-view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=A
collected calltime value will trigger this condition when it differs by at least this
percentage of the selected calltime limit value~
-view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait
whose value must change to trigger the condition.~
-view_alert_definition_condition_editor_metric_trait_change_value=Trait~
-view_alert_definition_condition_editor_operation_tooltip=Specify the result that must
occur when the selected operation is executed in order to trigger the condition.~
-view_alert_definition_condition_editor_operation_value=Operation
-view_alert_definition_condition_editor_operation_status=Zustand der Operation
-view_alert_definition_condition_editor_operation_status_inprogress=In Ausführung
-view_alert_definition_condition_editor_operation_status_success=Erfolg
-view_alert_definition_condition_editor_operation_status_failure=Fehler
-view_alert_definition_condition_editor_operation_status_canceled=Abgebrochen
-view_alert_definition_condition_editor_resource_configuration_tooltip=This condition is
triggered when the resource configuration changes.~
-view_alert_definition_condition_editor_event_tooltip=Specify the event severity that an
event message must be reported with in order to trigger this condition. If you specify an
optional regular expression, the event message must also match that regular expression in
order for the condition to trigger.~
-view_alert_definition_condition_editor_event_severity=Schwere des Ereignisses
-view_alert_definition_condition_editor_event_severity_debug=Debug
-view_alert_definition_condition_editor_event_severity_info=Info
-view_alert_definition_condition_editor_event_severity_warn=Warn
-view_alert_definition_condition_editor_event_severity_error=Error
-view_alert_definition_condition_editor_event_severity_fatal=Fatal
-view_alert_definition_condition_editor_event_regex=Regulärer Ausdruck
-view_alert_definition_condition_editor_event_regex_tooltip=If specified, this is a
regular expression that must match a collected event message in order to trigger the
condition.~
-view_alert_definition_condition_editor_common_min=Minimum
-view_alert_definition_condition_editor_common_avg=Durchschnitt
-view_alert_definition_condition_editor_common_max=Maximum
-view_alert_definition_notification_editor_title_add=Benachrichtigung hinzufügen
-view_alert_definition_notification_editor_title_edit=Benachrichtigung bearbeiten
-view_alert_definition_notification_editor_sender=Notification Sender~
-view_alert_definition_notification_editor_none_available=Keine Alarm-Sender verfügbar
-view_alert_definition_notification_editor_loadFailed=Cannot get alert senders~
-view_alert_definition_notification_editor_loadFailed_single=Cannot get alert sender
configuration definition~
-view_alert_definition_notification_editor_saveFailed=Cannot save the notification
configuration~
-view_alert_definition_notification_editor_field_sender=Sender
-view_alert_definition_notification_editor_field_configuration=Konfiguration
-view_alert_definition_notification_editor_field_configuration_not_loaded=Unbekannt
-view_alert_definition_notification_editor_field_configuration_loadFailed=Failed to get
notification configuration preview~
-view_alert_definition_notification_editor_delete_confirm=Are you sure you want to delete
the selected alert notifications?~
-view_alert_definition_notification_operation_editor_mode_title=Resource Selection Mode~
-view_alert_definition_notification_operation_editor_mode_this=Diese Ressource
-view_alert_definition_notification_operation_editor_mode_specific=Spezifische Ressource
-view_alert_definition_notification_operation_editor_mode_relative=Relative Ressource
-view_alert_definition_notification_operation_editor_mode_unknown=UNKNOWN OPTION - THIS IS
A BUG~
-view_alert_definition_notification_operation_editor_common_operation=Operation
-view_alert_definition_notification_operation_editor_specific_resource=Ressource
-view_alert_definition_notification_operation_editor_specific_pick_button=Auswählen
-view_alert_definition_notification_operation_editor_specific_pick_text=Ressource
auswählen...
-view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Bitte
wählen Sie eine Ressource aus...
-view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Please
pick a resource that has one or more operations~
-view_alert_definition_notification_operation_editor_relative_ancestor=Start Search From~
-view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Select the
top of the type hierarchy from which to search its descedant tree for the Filter By type~
-view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=Cannot
get type ancestry~
-view_alert_definition_notification_operation_editor_relative_ancestor_root=Root Ancestor
Type~
-view_alert_definition_notification_operation_editor_relative_descendant=Then Filter By~
-view_alert_definition_notification_operation_editor_relative_descendant_tooltip=The
resource type to search for under the root type defined in the Start Search From
selection.~
-view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=A
specific name to uniquely identify a resource when more than one resource of the selected
type might exist. This is optional if there will only ever be one resource of the resource
type in the selected type hierarchy.~
-view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=Cannot
get type descendants~
-view_alert_definition_notification_operation_editor_operations_loadFailed=Failed to load
the list of available operations~
-view_alert_definition_notification_operation_editor_operations_no_parameters=This
operation does not take any parameters~
-view_alert_definition_notification_role_editor_loadFailed=Cannot determine current roles
- starting empty~
-view_alert_definition_notification_role_editor_restoreFailed=Cannot use current roles -
starting empty~
-view_alert_definition_notification_role_editor_saveFailed=Cannot save the selected
roles~
-view_alert_definition_notification_user_editor_loadFailed=Cannot determine current users
- starting empty~
-view_alert_definition_notification_user_editor_restoreFailed=Cannot use current users -
starting empty~
-view_alert_definition_notification_user_editor_saveFailed=Cannot save the selected
users~
-view_alert_definition_recovery_editor_disable_when_fired=Nach dem Auslösen inaktiv
schalten
-view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indicates if this alert
will be disabled after it fires. Once disabled, the alert can be manually re-enabled or a
recovery alert can be set up to automatically re-enable it. If this alert is a recovery
alert itself, this setting cannot be turned on.~
-view_alert_definition_recovery_editor_recovery_alert=Recover Alert~
-view_alert_definition_recovery_editor_recovery_alert_tooltip=The target alert that will
be recovered (i.e. re-enabled) after this alert triggers. Do not select an alert here if
you are not defining a recovery alert.~
-view_alert_definition_recovery_editor_loadFailed=Cannot build recovery menu~
-view_alert_definition_recovery_editor_none_available=Keiner
-view_alert_common_tab_general=Allgemeine Eigenschaften
-view_alert_common_tab_conditions=Bedingungen
-view_alert_common_tab_conditions_modal_title=Bedingung hinzufügen
-view_alert_common_tab_conditions_expression=Alarm auslösen wenn
-view_alert_common_tab_conditions_expression_tooltip=Determines if ANY or ALL of the
conditions must evaluate to true in order for the entire condition set to be considered
true.~
-view_alert_common_tab_conditions_text=Bedingung
-view_alert_common_tab_conditions_value=Wert
-view_alert_common_tab_conditions_type_availability=Änderung der Verfügbarkeit
-view_alert_common_tab_conditions_type_availability_down=Wurde unverfügbar
-view_alert_common_tab_conditions_type_availability_up=Wurde wieder verfügbar
-view_alert_common_tab_conditions_type_metric_threshold=Metrik überschreitet Schwellwert
-view_alert_common_tab_conditions_type_metric_calltime_threshold=Call-Time überschreitet
Schwellwert
-view_alert_common_tab_conditions_type_metric_calltime_destination=with call destination
matching~
-view_alert_common_tab_conditions_type_metric_calltime_change=Call-Time-Wert ändert sich
-view_alert_common_tab_conditions_type_metric_calltime_change_verb=um mindestens
-view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Wächst
-view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Schrumpft
-view_alert_common_tab_conditions_type_metric_calltime_delta_other=Ändert sich
-view_alert_common_tab_conditions_type_metric_baseline=Metrik überschreitet Referenzband
-view_alert_common_tab_conditions_type_metric_baseline_verb=von
-view_alert_common_tab_conditions_type_metric_change=Wert der Metrik ändert sich
-view_alert_common_tab_conditions_type_metric_trait_change=Trait-Änderung
-view_alert_common_tab_conditions_type_operation=Ausführung der Operation
-view_alert_common_tab_conditions_type_operation_status=mit Ergebnis-Status
-view_alert_common_tab_conditions_type_resource_configuration=Resource Configuration
Change~
-view_alert_common_tab_conditions_type_event=Event Detection~
-view_alert_common_tab_conditions_type_event_matching=with event source matching~
-view_alert_common_tab_conditions_recovery_enabled=Triggered ''{0}'' to be
re-enabled~
-view_alert_common_tab_conditions_recovery_disabled=Dieser Alarm hat seine Definition
deaktiviert.
-view_alert_common_tab_notifications=Benachrichtigung
-view_alert_common_tab_notifications_sender=Sender
-view_alert_common_tab_notifications_status=Status
-view_alert_common_tab_notifications_message=Nachricht
-view_alert_common_tab_dampening=Dämpfung
-view_alert_common_tab_dampening_category_none=Keine
-view_alert_common_tab_dampening_category_none_tooltip=Dämpfung ist abgeschaltet. Jedes
Mal wenn die Bedingungen zutreffen wird ein Alarm ausgelöst.
-view_alert_common_tab_dampening_category_consecutive_count=Aufeinanderfolgend
-view_alert_common_tab_dampening_category_consecutive_count_tooltip=Ein Alarm wird
ausgelöst, wenn bei X aufeinanderfolgenden Werten die Bedingungen zutreffen.
-view_alert_common_tab_dampening_category_partial_count=Letzt N Auswertungen
-view_alert_common_tab_dampening_category_partial_count_tooltip=Ein Alarm wird ausgelöst,
wenn die Bedingungen X-Mal innerhalb der letzten N Werte zutreffen.
-view_alert_common_tab_dampening_category_duration_count=Zeitraum
-view_alert_common_tab_dampening_category_duration_count_tooltip=Ein Alarm wird ausgelöst,
wenn die Bedingungen X-Mal innerhalb des gegebenen Zeitraums zutreffen.
-view_alert_common_tab_dampening_consecutive_occurrences_label=Anzahl Vorkommen
-view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=Anzahl wie oft die
Bedingungen aufeinandefolgend wahr sein müssen, befor der Alarm ausgelöst wird.
-view_alert_common_tab_dampening_partial_occurrences_label=Anzahl Vorkommen
-view_alert_common_tab_dampening_partial_occurrences_label_tooltip=Anzahl wie oft die
Bedingungen innerhalb der letzten N Auswertungen wahr sein müssen, bevor der Alarm
ausgelöst wird.
-view_alert_common_tab_dampening_partial_evalatuions_label=Auswertungen
-view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=Anzahl wie oft die
Bedingungen ausgewertet werden, um zu prüfen, ob sie 'Vorkommen' mal zutreffen.
-view_alert_common_tab_dampening_duration_occurrences_label=Anzahl Vorkommen
-view_alert_common_tab_dampening_duration_occurrences_label_tooltip=Anzahl wie oft die
Bedingungen im gegebenen Zeitraum zutreffen müssen, um den Alarm auszulösen.
-view_alert_common_tab_dampening_duration_period_label=Zeitraum
-view_alert_common_tab_dampening_duration_period_label_tooltip=Der Zeitraum in dem die
Bedingungen geprüft werden, ob sie 'Vorkommen' mal zutreffen.
-view_alert_common_tab_recovery=Erholung
-view_alert_common_tab_invalid_condition_category=Invalid condition category - please
report this as a bug: {0}~
-view_alert_common_tab_invalid_dampening_category=Invalid dampening category - please
report this as a bug: {0}~
-view_alert_common_tab_invalid_time_units=Ungültige Zeiteinheit - bitte berichten Sie
diesen Fehler: {0}
-
-# Auto Discovery Queue
-#----------------------------
-view_autoDiscoveryQ_title=Autodiscovery-Warteschlange
-view_autoDiscoveryQ_import=Importieren
-view_autoDiscoveryQ_ignore=Ignorieren
-view_autoDiscoveryQ_ignored=Ignoriert
-view_autoDiscoveryQ_unignore=Ignorieren aufheben
-view_autoDiscoveryQ_new=Neu
-view_autoDiscoveryQ_newAndIgnored=Neu und Ignoriert
-view_autoDiscoveryQ_importFailure=Konnte die Ressourcen nicht importieren
-view_autoDiscoveryQ_importSuccessful=Sie haben die ausgewählten Ressourcen erfolgreich
importiert
-view_autoDiscoveryQ_ignoreFailure=Konnte die Ressourcen nicht ignorieren
-view_autoDiscoveryQ_ignoreSuccessful=Sie haben die ausgewählten Ressourcen erfolgreich
ignoriert
-view_autoDiscoveryQ_unignoreFailure=Konnte das Ignorieren für die Ressourcen nicht
aufheben.
-view_autoDiscoveryQ_unignoreSuccessful=Sie haben erfolgreich das Ignorieren der
ausgewählten Ressourcen aufgehoben.
-view_autoDiscoveryQ_noperm=(Die erforderlichen "manage inventory" Rechte
fehlen. Kontaktieren Sie den Administrator)
-view_autoDiscoveryQ_noItems=Keine Einträge gefunden
-view_autoDiscoveryQ_field_parentId=Eltern-ID
-view_autoDiscoveryQ_field_name=Ressourcen-Name
-view_autoDiscoveryQ_field_key=Ressourcen-Schlüssel
-view_autoDiscoveryQ_field_discoveryTime=Zeitpunkt des Auffindens
-view_autoDiscoveryQ_field_inventoryStatus=Inventar-Status
-view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
-
-#==================== Bundles ======================
-
-# some common bundle terms
+view_adminSecurity_roles = Rollen
+view_adminSecurity_users = Benutzer
+view_adminTemplates_disabledAlertTemplates=Deaktivierte Alarmvorlagen
+view_adminTemplates_disabledMetricTemplates=Deaktivierte Metrik-Vorlagen
+view_adminTemplates_editAlertTemplate = Vorlagen für Alarme bearbeiten
+view_adminTemplates_editMetricTemplate = Vorlagen für Metriken bearbeiten
+view_adminTemplates_enabledAlertTemplates = Vorlagen für Alarme aktiv
+view_adminTemplates_enabledMetricTemplates=Aktivierte Metrik-Vorlagen
+view_adminTemplates_platformServices=Plattformdienste
+view_adminTemplates_platforms = Platformen
+view_adminTemplates_prompt_enabledAlertTemplates = Anzahl der Alarm-Vorlagen, die für
diesen Ressourcen-Typ aktiviert sind
+view_adminTemplates_servers = Server
+view_adminTopology_affinityGroups = Affinitätsgruppen
+view_adminTopology_agents = Agenten
+view_adminTopology_partitionEvents = Partitionierungs-Ereignisse
+view_adminTopology_remoteAgentInstall = Installation entfernter Agenten
+view_adminTopology_servers = Server
+view_adminUsersDetails_dataTypeName = Benutzer
+view_adminUsersList_dataTypeName = Benutzer
+view_adminUsersList_dataTypeNamePlural = Benutzer
+view_admin_administration = Verwaltung
+view_admin_configuration = Konfiguration
+view_admin_content = Inhalte
+view_admin_downloads_agent_buildNumber = Build-Nummer des Agents
+view_admin_downloads_agent_link_value = Agent {0} ({1}) herunterladen
+view_admin_downloads_agent_md5 = MD5 Prüfsumme des Agents
+view_admin_downloads_agent_version = Version des Agents
+view_admin_downloads_cli_link_value = CLI {0} ({1}) herunterladen
+view_admin_downloads_cli_md5 = MD5 Prüfsumme des CLI
+view_admin_downloads_cli_version = Version des CLI
+view_admin_landing = In dieser Sektion können die globalen Einstellungen für RHQ
verwaltet werden. Dies schließt Sicherheitseinstellungen und Plugins ein, sowie die
Verwaltung der RHQ Server- und Agentplugins.
+view_admin_measTemplates_updateExisting_title = Vorhandene Zeitpläne aktualisieren
+view_admin_security = Sicherheit
+view_admin_systemSettings_AlertPurge_name = Lösche Alarme, die älter sind als
+view_admin_systemSettings_AvailabilityPurge_name = Lösche Verfügbarkeitsdaten, die älter
sind als
+view_admin_systemSettings_EnableExperimentalFeatures_desc = Wenn diese Option aktiviert
ist, werden eventuell vorhandene experimentelle Features verfügbar gemacht.
+view_admin_systemSettings_EnableExperimentalFeatures_name = Experimentelle Features
nutzen
+view_admin_systemSettings_LDAPBindDN_name = Benutzername
+view_admin_systemSettings_LDAPBindPW_name = Passwort
+view_admin_systemSettings_TraitPurge_name = Lösche Trait-Daten, die älter sind als
+view_admin_systemSettings_cannotLoadSettings=Kann die aktuellen Systemeinstellungen nicht
laden
+view_admin_systemSettings_fixBeforeSaving=Bitte korrigieren Sie die ungültigen Werte vor
dem Sichern
+view_admin_systemSettings_saveFailure = Das Speichern der Systemeinstellungen ist
fehlgeschlagen
+view_admin_systemSettings_savedSettings = Sie haben die Systemeinstellungen erfolgreich
gespeichert
+view_admin_systemSettings_serverDetails = Serverdetails
+view_admin_systemSettings_serverDetails_buildNumber = Nummer des Builds
+view_admin_systemSettings_serverDetails_currentTable = Aktuelle Datenbanktablee für
Metrikdaten
+view_admin_systemSettings_serverDetails_dbDriverName = Name des Datenbanktreibers
+view_admin_systemSettings_serverDetails_dbDriverVersion = Version des Datenbanktreibers
+view_admin_systemSettings_serverDetails_dbName = Produktname der Datenbank
+view_admin_systemSettings_serverDetails_dbUrl = URL der Datenbankverbindung
+view_admin_systemSettings_serverDetails_dbVersion = Produktversion der Datenbank
+view_admin_systemSettings_serverDetails_installDir = Installationsverzeichnis des
Servers
+view_admin_systemSettings_serverDetails_nextRotation = Nächste Rotation der
Metrik-Tabellen
+view_admin_systemSettings_serverDetails_time = Lokale Zeit des Servers
+view_admin_systemSettings_serverDetails_tz = Zeitzone des Servers
+view_admin_topology = Topologie
+view_alert_common_tab_conditions = Bedingungen
+view_alert_common_tab_conditions_expression = Alarm auslösen wenn
+view_alert_common_tab_conditions_modal_title = Bedingung hinzufügen
+view_alert_common_tab_conditions_recovery_disabled = Dieser Alarm hat seine Definition
deaktiviert.
+view_alert_common_tab_conditions_text = Bedingung
+view_alert_common_tab_conditions_type_availability = Änderung der Verfügbarkeit
+view_alert_common_tab_conditions_type_availability_down = Wurde unverfügbar
+view_alert_common_tab_conditions_type_availability_up = Wurde wieder verfügbar
+view_alert_common_tab_conditions_type_metric_baseline = Metrik überschreitet
Referenzband
+view_alert_common_tab_conditions_type_metric_baseline_verb = von
+view_alert_common_tab_conditions_type_metric_calltime_change = Call-Time-Wert ändert
sich
+view_alert_common_tab_conditions_type_metric_calltime_change_verb = um mindestens
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows = Wächst
+view_alert_common_tab_conditions_type_metric_calltime_delta_other = Ändert sich
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks = Schrumpft
+view_alert_common_tab_conditions_type_metric_calltime_threshold = Call-Time überschreitet
Schwellwert
+view_alert_common_tab_conditions_type_metric_change = Wert der Metrik ändert sich
+view_alert_common_tab_conditions_type_metric_threshold = Metrik überschreitet
Schwellwert
+view_alert_common_tab_conditions_type_metric_trait_change = Trait-Änderung
+view_alert_common_tab_conditions_type_operation = Ausführung der Operation
+view_alert_common_tab_conditions_type_operation_status = mit Ergebnis-Status
+view_alert_common_tab_conditions_value = Wert
+view_alert_common_tab_dampening = Dämpfung
+view_alert_common_tab_dampening_category_consecutive_count = Aufeinanderfolgend
+view_alert_common_tab_dampening_category_consecutive_count_tooltip = Ein Alarm wird
ausgelöst, wenn bei X aufeinanderfolgenden Werten die Bedingungen zutreffen.
+view_alert_common_tab_dampening_category_duration_count = Zeitraum
+view_alert_common_tab_dampening_category_duration_count_tooltip = Ein Alarm wird
ausgelöst, wenn die Bedingungen X-Mal innerhalb des gegebenen Zeitraums zutreffen.
+view_alert_common_tab_dampening_category_none = Keine
+view_alert_common_tab_dampening_category_none_tooltip = Dämpfung ist abgeschaltet. Jedes
Mal wenn die Bedingungen zutreffen wird ein Alarm ausgelöst.
+view_alert_common_tab_dampening_category_partial_count = Letzt N Auswertungen
+view_alert_common_tab_dampening_category_partial_count_tooltip = Ein Alarm wird
ausgelöst, wenn die Bedingungen X-Mal innerhalb der letzten N Werte zutreffen.
+view_alert_common_tab_dampening_consecutive_occurrences_label = Anzahl Vorkommen
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip = Anzahl wie oft
die Bedingungen aufeinandefolgend wahr sein müssen, befor der Alarm ausgelöst wird.
+view_alert_common_tab_dampening_duration_occurrences_label = Anzahl Vorkommen
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip = Anzahl wie oft die
Bedingungen im gegebenen Zeitraum zutreffen müssen, um den Alarm auszulösen.
+view_alert_common_tab_dampening_duration_period_label = Zeitraum
+view_alert_common_tab_dampening_duration_period_label_tooltip = Der Zeitraum in dem die
Bedingungen geprüft werden, ob sie 'Vorkommen' mal zutreffen.
+view_alert_common_tab_dampening_partial_evalatuions_label = Auswertungen
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip = Anzahl wie oft die
Bedingungen ausgewertet werden, um zu prüfen, ob sie 'Vorkommen' mal zutreffen.
+view_alert_common_tab_dampening_partial_occurrences_label = Anzahl Vorkommen
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip = Anzahl wie oft die
Bedingungen innerhalb der letzten N Auswertungen wahr sein müssen, bevor der Alarm
ausgelöst wird.
+view_alert_common_tab_general = Allgemeine Eigenschaften
+view_alert_common_tab_invalid_time_units = Ungültige Zeiteinheit - bitte berichten Sie
diesen Fehler: {0}
+view_alert_common_tab_notifications = Benachrichtigung
+view_alert_common_tab_notifications_message = Nachricht
+view_alert_common_tab_notifications_sender = Sender
+view_alert_common_tab_notifications_status = Status
+view_alert_common_tab_recovery = Erholung
+view_alert_definition_condition_editor_avilability_option_down = Wird unverfügbar
+view_alert_definition_condition_editor_avilability_option_up = Wird verfügbar
+view_alert_definition_condition_editor_avilability_value = Verfügbarkeit
+view_alert_definition_condition_editor_common_avg = Durchschnitt
+view_alert_definition_condition_editor_common_max = Maximum
+view_alert_definition_condition_editor_common_min = Minimum
+view_alert_definition_condition_editor_delete_confirm = Die ausgewählte(n)
Alarm-Bedingung(en) löschen?
+view_alert_definition_condition_editor_event_regex = Regulärer Ausdruck
+view_alert_definition_condition_editor_event_severity = Schwere des Ereignisses
+view_alert_definition_condition_editor_event_severity_debug = Debug
+view_alert_definition_condition_editor_event_severity_error = Error
+view_alert_definition_condition_editor_event_severity_fatal = Fatal
+view_alert_definition_condition_editor_event_severity_info = Info
+view_alert_definition_condition_editor_event_severity_warn = Warn
+view_alert_definition_condition_editor_metric_calltime_common_comparator = Komparator
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes = Ändert
sich
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows = Wächst
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks =
Schrumpft
+view_alert_definition_condition_editor_metric_calltime_common_regex = Regulärer Ausdruck
+view_alert_definition_condition_editor_metric_threshold_comparator = Komparator
+view_alert_definition_condition_editor_metric_threshold_comparator_equal = Gleich
+view_alert_definition_condition_editor_metric_threshold_comparator_greater = Größer als
+view_alert_definition_condition_editor_metric_threshold_comparator_less = Kleiner als
+view_alert_definition_condition_editor_metric_threshold_name = Metrik
+view_alert_definition_condition_editor_metric_threshold_value = Wert der Metrik
+view_alert_definition_condition_editor_operation_status = Zustand der Operation
+view_alert_definition_condition_editor_operation_status_canceled = Abgebrochen
+view_alert_definition_condition_editor_operation_status_failure = Fehler
+view_alert_definition_condition_editor_operation_status_inprogress = In Ausführung
+view_alert_definition_condition_editor_operation_status_success = Erfolg
+view_alert_definition_condition_editor_operation_value = Operation
+view_alert_definition_condition_editor_option_availability = Änderung der Verfügbarkeit
+view_alert_definition_condition_editor_option_label = Typ der Bedingung
+view_alert_definition_condition_editor_option_metric_baseline = Schwelle des
Referenzbands
+view_alert_definition_condition_editor_option_metric_calltime_change = Änderung des
Call-Time-Werts
+view_alert_definition_condition_editor_option_metric_change = Wert der Metrik ändert
sich
+view_alert_definition_condition_editor_option_metric_threshold = Absoluter
Metrikschwellwert
+view_alert_definition_condition_editor_option_metric_trait_change = Änderung des
Trait-Werts
+view_alert_definition_condition_editor_option_operation = Ausführung der Operation
+view_alert_definition_condition_editor_option_resource_configuration = Änderung der
Konfiguration der Ressource
+view_alert_definition_for_type = Vorlage ansehen
+view_alert_definition_notification_cliScript_editor_anotherUser = Anderer Benutzer
+view_alert_definition_notification_cliScript_editor_existingScript = Vorhandenes Skript
+view_alert_definition_notification_cliScript_editor_newScriptVersion = Version
+view_alert_definition_notification_cliScript_editor_script = Skript
+view_alert_definition_notification_cliScript_editor_selectRepoFirst = Wählen Sie zunächst
ein Repository aus
+view_alert_definition_notification_cliScript_editor_thisUser = Aktueller Benutzer
+view_alert_definition_notification_cliScript_editor_uploadNewScript = Neues Skript
hochladen
+view_alert_definition_notification_cliScript_editor_verifyAuthentication = Überprüfen
+view_alert_definition_notification_cliScript_editor_whichUser=Benutzer, unter dem das
Skript ausgeführt werden soll
+view_alert_definition_notification_editor_field_configuration = Konfiguration
+view_alert_definition_notification_editor_field_configuration_not_loaded = Unbekannt
+view_alert_definition_notification_editor_field_sender = Sender
+view_alert_definition_notification_editor_none_available = Keine Alarm-Sender verfügbar
+view_alert_definition_notification_editor_title_add = Benachrichtigung hinzufügen
+view_alert_definition_notification_editor_title_edit = Benachrichtigung bearbeiten
+view_alert_definition_notification_operation_editor_common_operation = Operation
+view_alert_definition_notification_operation_editor_mode_relative = Relative Ressource
+view_alert_definition_notification_operation_editor_mode_specific = Spezifische
Ressource
+view_alert_definition_notification_operation_editor_mode_this = Diese Ressource
+view_alert_definition_notification_operation_editor_specific_pick_button = Auswählen
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid = Bitte
wählen Sie eine Ressource aus...
+view_alert_definition_notification_operation_editor_specific_pick_text = Ressource
auswählen...
+view_alert_definition_notification_operation_editor_specific_resource = Ressource
+view_alert_definition_recovery_editor_disable_when_fired = Nach dem Auslösen inaktiv
schalten
+view_alert_definition_recovery_editor_none_available = Keiner
+view_alert_definitions_create_failure = Anlegen der Alarm-Definition fehlgeschlagen
+view_alert_definitions_create_success = Alarm-Definition erfolgreich angelegt
+view_alert_definitions_delete_confirm = Die ausgewählten Alarm-Definitionen löschen?
+view_alert_definitions_disable_confirm = Die ausgewählten Alram-Definitionen
deaktivieren?
+view_alert_definitions_enable_confirm = Die auusgewählten Alarm-Definitionen aktivieren?
+view_alert_definitions_table_title_group = Alarm-Definitionen für Gruppen
+view_alert_definitions_table_title_resource = Alarm-Definitionen für Ressourcen
+view_alert_definitions_update_failure = Aktualisieren der Alarm-Definition
fehlgeschlagen
+view_alert_definitions_update_success = Alarm-Definition erfolgreich aktualisiert
+view_alert_details_field_ack_at = Bestätigt um
+view_alert_details_field_ack_by = Bestätigt durch
+view_alert_details_field_recovery_info = Info zur Erholung
+view_alert_details_loadFailed = Laden der Details für den Alarm fehlgeschlagen
+view_alerts_ack_confirm = Die ausgewählten Alarme bestätigen?
+view_alerts_ack_confirm_all = Alle Alarme dieser Quelle bestätigen?
+view_alerts_ack_failure = Bestätigen der Alarme mit den IDs {0} fehlgeschlagen
+view_alerts_ack_failure_all = Bestätigung aller Alarme deiser Quelle fehlgeschlagen
+view_alerts_ack_success = Erfolgreich {0} Alarme bestätigt
+view_alerts_delete_confirm = Die ausgewählten Alarme löschen?
+view_alerts_delete_confirm_all = Alle Alarme aus dieser Quele löschen?
+view_alerts_delete_failure = Konnte die Alarme mit den IDs {0} nicht löschen
+view_alerts_delete_failure_all = Löschen aller Alarme dieser Quelle fehlgeschlagen
+view_alerts_delete_success = Erfolgreich {0} Alarme gelöscht
+view_alerts_field_ack_status = Status
+view_alerts_field_ack_status_ack = Best. ({0})
+view_alerts_field_ack_status_ackHover = Bestätigt durch {0} um {1}
+view_alerts_field_ack_status_noAck = Unbest.
+view_alerts_field_ack_status_noAckHover = Noch nicht bestätigt
+view_alerts_field_ack_subject = Bestätigender Benutzer
+view_alerts_field_ack_time = Zeitpunkt Bestätigung
+view_alerts_field_condition_text = Bedingung(en)
+view_alerts_field_condition_text_many = Mehrere Bedingungen
+view_alerts_field_condition_text_none = Keine Bedingungen
+view_alerts_field_condition_value = Bedingung
+view_alerts_field_created_time = Erstellungszeitpunkt
+view_alerts_field_enabled = Aktiviert
+view_alerts_field_modified_time = Zuletzt geändert
+view_alerts_field_name = Name
+view_alerts_field_parent = Eltern
+view_alerts_field_priority = Priorität
+view_alerts_field_protected = Geschützt
+view_alerts_loadFailed = Konnte die Daten für die Alarme nicht laden
+view_alerts_table_filter_priority = Filter nach Priorität
+view_alerts_table_title_group = Verlauf Gruppen-Alarme
+view_alerts_table_title_resource = Verlauf Ressourcen-Alarme
+view_autoDiscoveryQ_committed = Eingetragen
+view_autoDiscoveryQ_confirmSelect = Sollen auch die Kinder der Platform ausgewählt
werden?
+view_autoDiscoveryQ_deleted = Gelöscht
+view_autoDiscoveryQ_field_discoveryTime = Zeitpunkt des Auffindens
+view_autoDiscoveryQ_field_inventoryStatus = Inventar-Status
+view_autoDiscoveryQ_field_key = Ressourcen-Schlüssel
+view_autoDiscoveryQ_field_name = Ressourcen-Name
+view_autoDiscoveryQ_field_parentId = Eltern-ID
+view_autoDiscoveryQ_ignore = Ignorieren
+view_autoDiscoveryQ_ignoreFailure = Konnte die Ressourcen nicht ignorieren
+view_autoDiscoveryQ_ignoreSuccessful = Sie haben die ausgewählten Ressourcen erfolgreich
ignoriert
+view_autoDiscoveryQ_ignored = Ignoriert
+view_autoDiscoveryQ_import = Importieren
+view_autoDiscoveryQ_importFailure = Konnte die Ressourcen nicht importieren
+view_autoDiscoveryQ_importSuccessful = Sie haben die ausgewählten Ressourcen erfolgreich
importiert
+view_autoDiscoveryQ_new = Neu
+view_autoDiscoveryQ_newAndIgnored = Neu und Ignoriert
+view_autoDiscoveryQ_noItems = Keine Einträge gefunden
+view_autoDiscoveryQ_noperm = (Die erforderlichen "manage inventory" Rechte
fehlen. Kontaktieren Sie den Administrator)
+view_autoDiscoveryQ_showStatus = Zeige
+view_autoDiscoveryQ_title = Autodiscovery-Warteschlange
+view_autoDiscoveryQ_unignore = Ignorieren aufheben
+view_autoDiscoveryQ_unignoreFailure = Konnte das Ignorieren für die Ressourcen nicht
aufheben.
+view_autoDiscoveryQ_unignoreSuccessful = Sie haben erfolgreich das Ignorieren der
ausgewählten Ressourcen aufgehoben.
+view_autoDiscoveryQ_uninventoried = Aus dem Inventory gelöscht
view_bundle_bundle = Bundle
+view_bundle_bundleDestinations = Bundle-Ziele
+view_bundle_bundleFiles = Bundle-Dateien
+view_bundle_bundleType = Bundle-Type
+view_bundle_bundleVersion = Bundle-Version
+view_bundle_bundleVersions = Bundle-Versionen
view_bundle_bundles = Bundles
-view_bundle_bundleDestinations=Bundle-Ziele
-view_bundle_bundleDeployment=Bundle Deployment~
-view_bundle_bundleDeployments=Bundle Deployments~
-view_bundle_bundleFiles=Bundle-Dateien
-view_bundle_bundleType=Bundle-Type
-view_bundle_bundleVersion=Bundle-Version
-view_bundle_bundleVersions=Bundle-Versionen
-view_bundle_deploy=Deploy
-view_bundle_deployed=Deployed
-view_bundle_deployDir=Deploy-Verzeichnis
-view_bundle_deployments=Deployments
-view_bundle_destinations=Ziele
-view_bundle_files=Dateien
-view_bundle_latestVersion=Aktuelle Version
-view_bundle_recipe=Recipe~
-view_bundle_revert=Revert~
-view_bundle_versions=Versionen
-
-# individual bundle views/wizards
-view_bundle_fileListView_fileSize=Dateigröße
-view_bundle_fileListView_loadFailure=Failed to load bundle file data~
-view_bundle_version_backToBundle=Zurück zum Bundle
-view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
-view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the
bundle version tags~
-view_bundle_version_loadFailure=Failed to load bundle version~
-view_bundle_tree_loadFailure=Failed to load bundle data~
-view_bundle_revertWizard_title=Bundle Revert~
-view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
-view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
-view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
-view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
-view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}~
-view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)~
-view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment
name~
-view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
-view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for
the destination [{0}]~
-view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot
be reverted because there is no prior deployment for the destination [{1}]~
-view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live
deployment; cannot revert~
-view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
-view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
-view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous
Deployment. Click "Next" to continue...~
-view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
-view_bundle_revertWizard_revertStep_reverting=Reverting...~
-view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert
deployment!~
-view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to
revert the bundle deployment [{0}] from resource group [{1}]~
-view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert
deployment!~
-view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
-view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
-view_bundle_list_versionsCount=Versions Count~
-view_bundle_list_destinationsCount=Destinations Count~
-view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version
data~
-view_bundleVersion_loadFailure=Failed to load bundle version data~
-view_bundle_list_backToAll=Back to All Bundles~
-view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
-view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
-view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
-view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
-view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
-view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
-view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
-view_bundle_list_error3=Konnte das Bundle nicht laden
-view_bundle_dest_group=Gruppe
-view_bundle_dest_created=Angelegt
-view_bundle_dest_deployDir=Deploy-Verzeichnis
-view_bundle_dest_lastDeployedVersion=Last Deployed Version~
-view_bundle_dest_lastDeploymentDate=Last Deployment Date~
-view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
-view_bundle_dest_loadFailure=Failed to load bundle destinations~
-view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed
version information~
-view_bundle_dest_backToBundle=Zurück zum Bundle
-view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
-view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination
tags~
-view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
-view_bundle_deploy_name=Deployment Name~
-view_bundle_deploy_time=Deployment Time~
-view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
-view_bundle_deploy_action=Action~
-view_bundle_deploy_installDetails=Install Details~
-view_bundle_deploy_backButton=Back to Destination~
-view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
-view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle
deployment tags~
-view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
-view_bundle_deploy_selectARow=Select a row to show installation details~
-view_bundle_deploy_operatingSystem=Operating System~
-view_bundle_deploy_loadFailure=Failed to load bundle deployment~
-view_bundle_deploy_loadBundleFailure=Failed to find bundle~
-view_bundle_createWizard_title=Create Bundle~
-view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
-view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}],
version=[{1}]~
-view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle
[{0}], version=[{1}] - the bundle may still exist in the database~
-view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must
deploy a valid plugin that supports bundle deployments~
-view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
-view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from
server~
-view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several
minutes for large files~
-view_bundle_createWizard_uploadStepName=Upload Bundle Files~
-view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded
for this bundle~
-view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
-view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution
file~
-view_bundle_createWizard_bundleDistro=Bundle Distribution~
-view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a
bundle!
-view_bundle_createWizard_urlOption=URL
-view_bundle_createWizard_uploadOption=Upload~
-view_bundle_createWizard_recipeOption=Recipe~
-view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
-view_bundle_createWizard_createFailure=Failed to create the bundle~
-view_bundle_createWizard_createSuccessful=You have successfully created a bundle named
[{0}] with a version of [{1}]~
-
-view_bundle_deployWizard_deploying = Deploying...~
-view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
-view_bundle_deployWizard_deploymentCreated = Created Deployment...~
-view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description
[{1}]~
-view_bundle_deployWizard_destinationCreatedDetail = Created destination [{0}] description
[{1}]~
-view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
-view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}]
destination group [{1}]~
-view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel ~
-view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel ~
-view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!~
-view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
-view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
-view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
-view_bundle_deployWizard_error_7 = Failed to get deployment name.~
-view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop
down~
-view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage~
-view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist.
(Note, for an existing destination deploy from the Destination view)~
-view_bundle_deployWizard_error_11 = Failed to find defined deployments.~
-view_bundle_deployWizard_error_12 = Failed to find defined bundles.~
-view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
-view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle
version.~
-view_bundle_deployWizard_getDestStep = New Destination~
-view_bundle_deployWizard_getDest_name = Destination Name~
-view_bundle_deployWizard_getDest_desc = Destination Description~
-view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination
platforms)~
-view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
-view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on
destination platform)~
-view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
-view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
-view_bundle_deployWizard_getOptionsStep = Deploy Options~
-view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
-view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
-view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
-view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
-view_bundle_deployWizard_selectBundle_single = Select only a single bundle for
deployment.~
-view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
-view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
-view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
-view_bundle_deployWizard_selectVersion_select = Select Version from List:~
-view_bundle_deployWizard_title = Bundle Deployment Wizard~
-
-
-#=================== Components =====================
-
-view_configCompare_comparingConfigs = Comparing Configurations~
-view_configCompare_configCompare = Configuration Comparison~
-
+view_bundle_createWizard_provideBundleDistro = Stellen Sie eine Bundle-Distribution
bereit
+view_bundle_createWizard_urlOption = URL
+view_bundle_createWizard_youMustChooseOne = You must choose one option in order to create
a bundle!
+view_bundle_deleteConfirm=Sind Sie sicher, dass dieses Bundle gelöscht werden soll? Alle
Versionen, Ziele und Deployments für dieses Bundle werden ebenfalls gelöscht.
+view_bundle_deploy = Deploy
+view_bundle_deployDir = Deploy-Verzeichnis
+view_bundle_deployWizard_deploymentCreatedDetail_concise =Sie haben das Deployment [{0}]
erzeugt
+view_bundle_deploy_deployedBy = Deployed durch
+view_bundle_deployed = Deployed
+view_bundle_deployments = Deployments
+view_bundle_dest_backToBundle = Zurück zum Bundle
+view_bundle_dest_created = Angelegt
+view_bundle_dest_deployDir = Deploy-Verzeichnis
+view_bundle_dest_group = Gruppe
+view_bundle_destinations = Ziele
+view_bundle_fileListView_fileSize = Dateigröße
+view_bundle_fileListView_md5 = MD5
+view_bundle_fileListView_sha256 = SHA256
+view_bundle_files = Dateien
+view_bundle_latestVersion = Aktuelle Version
+view_bundle_list_deletesFailure=Löschen der Bundles ist fehlgeschlagen
+view_bundle_list_deletesSuccessful=Sie haben die Bundles erfolgreich gelöscht
+view_bundle_list_error3 = Konnte das Bundle nicht laden
+view_bundle_purge=Löschen
+view_bundle_version_backToBundle = Zurück zum Bundle
+view_bundle_version_deleteConfirm=Sind Sie sicher, dass Sie diese Bundle-Version löschen
wollen?
+view_bundle_version_deleteFailure=Löschen der Bundle-Version [{0}] ist fehlgeschlagen
+view_bundle_version_deleteSuccessful=Sie haben die Bundle-Version [{0}] erfolgreich
gelöscht
+view_bundle_versions = Versionen
view_configEdit_addItem = Eintrag zur Liste hinzufügen
-view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from
the set?~
-view_configEdit_confirm_2 = Are you sure you want to delete this row?~
-view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
-view_configEdit_editRow = Edit Configuration Row~
-view_configEdit_enterPropName = Enter the name of the property to be added.~
-view_configEdit_error_1 = Configuration is not supported by this Resource.~
-view_configEdit_error_2 = Connection settings are not supported by this Resource.~
-view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already
used in the set.~
view_configEdit_files = Dateien
-view_configEdit_hideAll= Alle verbergen
+view_configEdit_hideAll = Alle verbergen
view_configEdit_jumpToSection = Zum Abschnitt springen
-view_configEdit_msg_1 = Added property [{0}] to the set.~
-view_configEdit_msg_2 = Removed properties from the set.~
-view_configEdit_msg_3 = [{0} {1}] deleted from list.~
-view_configEdit_msg_4 = Item added to list.~
view_configEdit_properties = Eigenschaften
-view_configEdit_tooltip_1 = Delete the selected items from the list.~
-view_configEdit_tooltip_2 = Add an item to the list.~
-
-view_groupConfigEdit_member = Member~
-view_groupConfigEdit_noListProps = List properties are not currently supported for group
configurations.~
-view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
+view_configEdit_viewRow = Zeile ansehen
+view_configurationDetails_error_updateFailure = Konnte die Konfiguration nicht
aktualisieren
+view_configurationDetails_messageConcise = Konfiguration aktualisiert - aktuelle Version
is {0}
+view_configurationDetails_messageDetailed = Konfiguration der Ressource [{1}]
aktualisiert auf Version [{0}].
+view_configurationHistoryList_title = Konfigurationsänderungen
+view_core_error_1 = Konnte keine Alarminformationen laden
+view_core_loggedOut = Ausgeloggt
+view_core_noRecentAlerts = Es liegen keine frischen Alarme vor
+view_core_recentAlerts = [{0}] frische Alarme
+view_core_uncaught = Es ist eine nicht abgefangene Ausnahme aufgetreten.
+view_dashboardManager_deleteFail = Konnte das Dashboard nicht löschen.
+view_dashboardManager_success = Dashboard gespeichert
+view_dashboards_confirm1 = Sind Sie sicher, dass Sie löschen möchten
+view_dashboards_portlets_refresh_multiple_min = {0} Minuten
+view_dashboards_portlets_refresh_one_min = 1 Minute
+view_dashboards_title = Dashboard
+view_dynagroup_compatible = Kompatible
+view_dynagroup_definitions = DynaGroup-Definitionen
+view_dynagroup_exprBuilder_addExpression = Ausdruck hinzufügen
+view_dynagroup_exprBuilder_expression = Ausdruck
+view_dynagroup_exprBuilder_resource = Ressource
+view_dynagroup_exprBuilder_resource_resource = Ressource
+view_dynagroup_expression = Ausdruck
+view_dynagroup_lastCalculationTime = Zeitpunkt letzte Berechnung
+view_dynagroup_loadDefinitionFailure = Konnte die Gruppen-Definition [{0}] nicht laden
+view_dynagroup_mixed = Gemischt
+view_dynagroup_newGroupDefinition = Neue Gruppen-Definition
+view_dynagroup_nextCalculationTime = Zeitpunkt nächste Berechnung
+view_dynagroup_recalculate = Neu berechnen
+view_dynagroup_recursive = Rekursiv
+view_dynagroup_saveAndRecalculate = Speichern & neu berechnen
view_groupConfigEdit_setAll = Alle Werte setzen auf:
view_groupConfigEdit_unset = Ungesetzt
-view_groupConfigEdit_valsDiff = member values differ~
-view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
-
-view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
-
-view_measure_nan = --keine Daten verfügbar--~
-view_measureRange_last = Letzte
-view_measureRange_simple = Einfach...
-
-view_selector_assigned = Zugewiesen {0}
-view_selector_available = Verfügbar {0}
-
-view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-
-view_table_totalRows = Anzahl Einträge: {0} Ausgewählt: {1}
-view_tableSection_backButton = Zurück zur Liste
-view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute -
please report this bug.~
-view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id':
[{1}]. Please report this bug~
-
-view_tags_error_1 = Konnte die Tags nicht laden
-view_tags_tooltip_1 = Klicken um den Tag zu löschen
-view_tags_tooltip_2 = Klicken um die Tags zu bearbeiten
-view_tags_tooltip_3 = Geben Sie ein Tag in folgenem Format ein:
(namespace:)(semantic=)tagname (z.B. it:env=QA, oder owner=John)
-
-# File Upload (various)
-view_upload_alreadyUploaded = Datein wurde bereits hochgeladen
-view_upload_bundleDistFile = Distribution File~
-view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
-view_upload_error_file = Fehler beim Hochladen der Datei
-view_upload_error_fileName = Error uploading file [{0}]~
-view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
-view_upload_error_packageVersionFile = Error uploading Package Version File~
-view_upload_error_results = Error uploading file, unexpected results: [{0}]~
-view_upload_inProgress = Can not submit, upload is currently in progress~
-view_upload_prompt_1 = [{0}] File to Upload~
-view_upload_prompt_2 = File to Upload~
-view_upload_tooltip_2 = File upload had previously failed~
-view_upload_success = File successfully uploaded~
-view_upload_upload = Hochladen
-view_upload_uploadFile = UploadFile~
-
-# Group Create Wizard
-view_groupCreateWizard_membersStepName=Wählen Sie die Gruppenmitglieder aus
-view_groupCreateWizard_createStepName=Einstellungen für die Gruppe
-view_groupCreateWizard_createStep_recursive=Rekursiv
-view_groupCreateWizard_title=Gruppe anlegen
-view_groupCreateWizard_windowTitle=Gruppe anlegen
-view_groupCreateWizard_createFailure=Konnte die Ressourcen-Gruppe nicht anlegen
-view_groupCreateWizard_createSuccessful_concise=Sie haben eine neue Ressourcen-Gruppe
angelegt. [<a href="{0}">Gruppe ansehen</a>]
-view_groupCreateWizard_createSuccessful_full=Sie haben eine neue [{0}] Gruppe mit dem
Namen [{1}] mit [{2}] Ressourcen angelegt.
-
-# Resource Type / Plugin View/Datasources
-view_type_resourceTypes=Ressourcen-Typen
-view_type_parentId=Parent ID~
-view_type_typeTreeLoadFailure=Failed to load resource type tree data~+# Tabs
-
-view_tabs_invalidSubTab = Invalid subtab: {0}~
-view_tabs_invalidTab = Ungültiger Reiter: {0}
-
-
-
-#=================== Dashboard =====================
-view_dashboard_favorites_error1=Failed to load favorite Resources.~
-view_dashboardManager_error=Failed to save dashboard to server~
-view_dashboardManager_saved=Saved dashboard {0} to server~
-view_dashboardManager_success=Dashboard gespeichert
-view_dashboardManager_deleted=Successfully deleted dashboard {0}~
-view_dashboards_title=Dashboard
-view_dashboards_confirm1=Sind Sie sicher, dass Sie löschen möchten
-view_dashboardsManager_error1=Failed to add new dashboard~
-# // dup in common
-view_dashboardsManager_message_title_details=<h1>Willkommen bei
RHQ</h1>\n<p>Das RHQ-Projekt is an abstraction and plug-in based systems
management suite that provides extensible and integrated systems management for multiple
products and platforms across a set of core features. The project is designed with layered
modules that provide a flexible architecture for deployment. It delivers a core user
interface that delivers audited and historical management across an entire enterprise. A
Server/Agent architecture provides remote management and plugins implement all specific
support for managed products.</p>\n <p>This default dashboard can be edited by
clicking the (edit mode) button above.</p>~
-view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
-view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly
discovered resources into the inventory for monitoring and management or to ignore them
from further action.~
-view_portlet_autodiscovery_title = Discovery-Warteschlange
-view_portlet_favoriteResources_msg=Dieses Potlet zeigt Ihre gemerkten Ressourcen
-view_portlet_favoriteResources_title=Gemerkete Resourcen
-view_portlet_generic_help=Für dieses Portlet liegt keine Hilfe vor
-view_portlet_generic_unconfigured=Für dieses Portlet sind keine Einstellungen möglich
-view_portlet_graph_configure_resource_graph=The resource to graph~
-view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
-view_portlet_graph_configure_title=Graph Config~
-view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
-view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
-view_portlet_graph_help_title = Graph Portlet~
-view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings
button to configure.~
-view_portlet_graph_title = Resource Graph~
-view_portlet_inventory_error1=Konnte die Inventarübersicht nicht laden
-view_portlet_mashup_config_title=MashupPorlet Configuration~
-view_portlet_mashup_config_title_desc=The configuration settings for the mashup
portlet.~
-view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an
iframe on the dashboard.~
-view_portlet_mashup_unconfigured=Page address not yet configured, click the settings
button to setup this portlet.~
-view_portlet_message_config_title=MessagePortlet Configuration~
-view_portlet_message_config_title_desc=The configuration settings for the message
portlet.~
-view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
-view_portlet_message_title=Nachricht
-view_portlet_message_unconfigured=Message not yet configured, click the settings button
to setup this portlet.~
-view_portlet_operations_config_completed_maximum=Maximum number of Completed operations
to display.~
-view_portlet_operations_config_completed_enable=Whether to enable completed operations
results grouping for dashboard.~
-view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations
results grouping for dashboard.~
-view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations
to display.~
-view_portlet_operations_config_completed=completed operations~
-view_portlet_operations_config_show_last=vorhergehende anzeigen
-view_portlet_operations_config_show_next=nächste anzeigen
-view_portlet_operations_config_title=OperationsPortlet Configuration~
-view_portlet_operations_config_title_desc=The configuration settings for the Operations
portlet.~
-view_portlet_operations_disabled=(Results currently disabled. Change settings to enable
results.~
-view_portlet_operations_help_msg=This portlet displays both operations that have occurred
and are scheduled to occur.~
-view_portlet_platform_help_msg = This portlet displays information about platforms in
inventory.~
-view_portlet_platform_platform_error_1 = Failed to load platform metrics~
-view_portlet_platform_title = Platforms Summary~
-view_portlet_platform_type_error_1 = Could not load type data~
-view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources
to display.~
-view_portlet_problem_resources_config_display_range=Show problem resources going back
this many hours.~
-view_portlet_problem_resources_config_display_range2 = Von {0} bis {1}
-view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
-view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
-view_portlet_problem_resources_config_title_desc=The configuration settings for the
Problem resources portlet.~
-view_portlet_problem_resources_help=This portlet displays resources that have reported
alerts or Down availability.~
-view_portlet_problem_resources_title=Hat Alarme oder ist nicht verfügbar
-view_portlet_recentAlerts_config_members=Select Members~
-view_portlet_recentAlerts_config_priority_label = priority Alerts,~
-view_portlet_recentAlerts_config_when=innerhalb der letzten
-view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to
the current user login.~
-# // dup in common
-view_portlet_recentAlerts_title = Frische Alarme
-view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
-view_portlet_recentlyAdded_error1=Failed to load recently added resources~
-view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently
been imported into the inventory.~
-view_portlet_recentlyAdded_title =Recently Added Portlet~
-view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible
to the current user.~
-view_portlet_tagCloud_title=Tag-Wolke
-
-
-#=================== Inventory =====================
+view_groupCreateWizard_createFailure = Konnte die Ressourcen-Gruppe nicht anlegen
+view_groupCreateWizard_createStepName = Einstellungen für die Gruppe
+view_groupCreateWizard_createStep_recursive = Rekursiv
+view_groupCreateWizard_createSuccessful_concise = Sie haben eine neue Ressourcen-Gruppe
angelegt. [<a href="{0}">Gruppe ansehen</a>]
+view_groupCreateWizard_createSuccessful_full = Sie haben eine neue [{0}] Gruppe mit dem
Namen [{1}] mit [{2}] Ressourcen angelegt.
+view_groupCreateWizard_membersStepName = Wählen Sie die Gruppenmitglieder aus
+view_groupCreateWizard_title = Gruppe anlegen
+view_groupCreateWizard_windowTitle = Gruppe anlegen
+view_groupInventoryMembers_button_updateMembership = Mitgliedschaft aktualisieren...
+view_groupInventoryMembers_title_updateMembership = Mitgliedschaft aktualisieren
+view_group_detail_failLoad = Konnte die Gruppe mit der ID [{0}] nicht laden
+view_group_detail_failLoadComp = Konnte die Gruppen-Composite für die Gruppe mit der ID
[{0}] nicht laden.
+view_group_detail_failRecursiveChange = Konnte die Einstellung
''Rekursiv'' für die Gruppe [{0}] nicht aktualisieren
+view_group_detail_recursiveChange = Sie haben erfolgreich die
''Rekursiv''-Einstellung für die Gruppe [{0}] geändert.
+view_group_membership_failFetch = Konnte die Ressourcen-Gruppe nicht laden
+view_group_pluginConfig_members_statusDetails = Status Details
+view_group_pluginConfig_view_groupProperties = Gruppen-Eigenschaften
+view_group_summary_compatible = Kompatible
+view_group_summary_dynamic = Dynamisch
+view_group_summary_groupDefinition = Gruppen-Definition
+view_group_summary_memberCount = Anzahl Mitglieder
+view_group_summary_memberType = Mitglieds-Typ
+view_group_summary_mixed = Gemischt
+view_group_summary_recursive = Rekursiv
+view_helpTop_description = Dieser Abschnitt bietet Zugang zu Dokumentation, Tutorien,
Versions- und anderer hilfreicher Information.
+view_help_section_product = Produkt
+view_help_section_product_about = Ãœber
view_inventory_adq = Discovery-Warteschlange
-view_inventory_sectionHelp = In diesem Abschnitt können neu gefundene Ressourcen, sowie
Ressourcen und Gruppen im Inventar angesehen und verwaltet werden.
-view_inventory_problemGroups=Gruppen mit Problemen
-view_inventory_collectionInterval=Erfassungs-Intervall
-view_inventory_mixed=gemischt
-view_inventory_groups = Gruppen
view_inventory_allGroups = Alle Gruppen
view_inventory_allResources = Alle Ressourcen
+view_inventory_collectionInterval = Erfassungs-Intervall
+view_inventory_dynagroupDefs = Dynagroup-Definitionen
+view_inventory_eventHistory_details = Details
+view_inventory_eventHistory_detailsFilter = Filter für Details
+view_inventory_eventHistory_severity = Schwere
+view_inventory_eventHistory_severityFilter = Filter für Schwere
+view_inventory_eventHistory_sourceFilter = Filter für Quelle
+view_inventory_eventHistory_timestamp = Zeitunkt
+view_inventory_groups = Gruppen
+view_inventory_groups_resourceGroups = Ressource-Gruppen
+view_inventory_mixed = gemischt
view_inventory_platforms = Platformen
+view_inventory_problemGroups = Gruppen mit Problemen
+view_inventory_resources_title = Ressourcen
+view_inventory_resources_uninventoryFailed = Konnte die ausgewählte(n) Ressourcen nicht
aus dem Inventar löschen.
+view_inventory_sectionHelp = In diesem Abschnitt können neu gefundene Ressourcen, sowie
Ressourcen und Gruppen im Inventar angesehen und verwaltet werden.
view_inventory_servers = Server
view_inventory_services = Dienste
-view_inventory_dynagroupDefs = Dynagroup-Definitionen
-view_metric_traits=Traits
-view_metric_viewTraitHistory=Werteverlauf für Trait [{0}]
-view_inventory_eventHistory_groupEventHistory=Group Event History~
-view_inventory_eventHistory_resourceEventHistory=Resource Event History~
-view_inventory_eventHistory_sourceFilter=Filter für Quelle
-view_inventory_eventHistory_detailsFilter=Filter für Details
-view_inventory_eventHistory_severityFilter=Filter für Schwere
-view_inventory_eventHistory_timestamp=Zeitunkt
-view_inventory_eventHistory_severity=Schwere
-view_inventory_eventHistory_details=Details
-view_inventory_eventHistory_sourceLocation=Source Location~
-view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events
for [{1}]~
-view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
-view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for
[{1}]~
-view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
-view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
-view_inventory_groups_resourceGroups=Ressource-Gruppen
-view_inventory_groups_children=Children~
-view_inventory_groups_descendants=Descendants~
-view_inventory_groups_deleteSuccessful=You have successfully deleted the selected
resource groups~
-view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
-view_inventory_groups_loadFailed=Failed to load group composite data~
-view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not
accessible~
-view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected
resources?~
-view_inventory_resources_deleteSuccessful=You have successfully deleted the selected
resources~
-view_inventory_resources_deleteFailed=Failed to delete the selected resources~
-view_inventory_resources_loadFailed=Failed to load resource composite data~
-view_inventory_resources_title=Ressourcen
-view_inventory_resources_title_children=Child Resources~
-view_inventory_resources_title_members=Member Resources~
-view_resource_monitor_availability_loadFailed=Failed to load availability history~
-view_resource_monitor_graphs_noneAvailable=No graphs available~
-view_resource_monitor_graphs_loadFailed=Failed to load graph data~
-view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
-view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
-view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
-view_resource_monitor_detailed_graph_label=Detailed Graph~
-view_resource_monitor_calltime_title=Call Time Data~
-view_resource_monitor_calltime_destination=Call Destination~
-view_resource_monitor_calltime_count=Anzahl
-view_resource_monitor_calltime_minimum=Minimum
-view_resource_monitor_calltime_average=Durchschnitt
-view_resource_monitor_calltime_maximum=Maximum
-view_resource_monitor_calltime_total=Gesamt
-view_resource_monitor_calltime_loadFailed=Could not load call time data~
-view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
-view_resource_monitor_calltime_editFailed=Call time data can not be edited~
-view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
-view_tree_common_loadFailed_generic=Failed to load data for tree~
-view_tree_common_loadFailed_root=Failed to load root for tree~
-view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
-view_tree_common_loadFailed_children=Failed to load children for node~
-view_tree_common_loadFailed_selection=Failed to select this node~
-view_tree_common_loadFailed_node=Failed to load data for this node~
-view_tree_common_loadFailed_create=Failed to create view for this node~
-view_tree_common_loadFailed_update=Failed to update view for this node~
-view_tree_common_contextMenu_type_name_label=Typ: {0}
-view_tree_common_contextMenu_pluginConfiguration=Plugin-Konfiguration
-view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
-view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
-view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource
Configuration~
-view_tree_common_contextMenu_operations=Operations~
-view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running
operations~
-view_tree_common_contextMenu_measurements=Metriken
-view_tree_common_contextMenu_addChartToDashboard=Diagramm zum Dashboard [{0}] hinzufügen
-view_tree_common_contextMenu_resourceGraph = Resource Metric Graph~
-view_tree_common_contextMenu_groupGraph = Group Metric Graph~
-view_tree_common_contextMenu_saveChartToDashboardSuccessful=sie haben das Dashboard [{0}]
gesichert
-view_tree_common_contextMenu_saveChartToDashboardFailure=Speichern des Dashboards
fehlgeschlagen
-view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
-view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual
add children~
-view_tabs_common_summary=Zusammenfassung
-view_tabs_common_overview=Ãœbersicht
-view_tabs_common_dashboard=Dashboard
-view_tabs_common_timeline=Zeitstrahl
-view_tabs_common_monitoring=Monitoring
-view_tabs_common_graphs=Diagramme
-view_tabs_common_tables=Tabellen
-view_tabs_common_traits=Traits
-view_tabs_common_availability=Verfügbarkeit
-view_tabs_common_schedules=Zeitplan
-view_tabs_common_calltime=Calltime~
-view_tabs_common_inventory=Inventar
-view_tabs_common_groups=Gruppen
-view_tabs_common_group_membership=Gruppenmitgliedschaft
-view_tabs_common_members=Mitglieder
-view_tabs_common_child_resources=Child Resources~
-view_tabs_common_child_history=Child History~
-view_tabs_common_connectionSettings=Verbindungs-Einstellungen
-view_tabs_common_connectionSettingsHistory=Verlauf der Verbindungs-E.
-view_tabs_common_operations=Operationen
-view_tabs_common_history=Verlauf
-view_tabs_common_scheduled=Geplant
-view_tabs_common_alerts=Alarme
-view_tabs_common_definitions=Definitionen
-view_tabs_common_current=Aktuell
-view_tabs_common_events=Ereignisse
-view_tabs_common_configuration=Konfiguration
-view_tabs_common_content=Inhalte
-view_tabs_common_deployed=Installiert
-view_tabs_common_new=Neu
-view_tabs_common_subscriptions=Abonnements
-view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
-view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
-view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
-view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
-view_titleBar_common_clickToAddFav=Click to add this as a favorite~
-view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
-view_titleBar_common_addedFav=You have added [{0}] as a favorite~
-view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
-view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
-view_dynagroup_expressionSet=Expression Set~
-view_dynagroup_recalculationInterval=Recalculation Interval~
-view_dynagroup_lastCalculationTime=Zeitpunkt letzte Berechnung
-view_dynagroup_nextCalculationTime=Zeitpunkt nächste Berechnung
-view_dynagroup_definitionCreated=You have successfully created a group definition named
[{0}]~
-view_dynagroup_definitionLoadFailure=Failed to load group definitions~
-view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
-view_dynagroup_saveSuccessful=You have successfully saved the group definition named
[{0}]~
-view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
-view_dynagroup_singleSaveFailure=An error occurred - there should have been one created,
but instead there were [{0}] created~
-view_dynagroup_saveAndRecalculate=Speichern & neu berechnen
-view_dynagroup_recalculate=Neu berechnen
-view_dynagroup_recalcSuccessful=You have successfully recalculated this group
definition~
-view_dynagroup_recalcFailure=Failed to recalculated this group definition~
-view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group
definitions~
-view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group
definitions~
-view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group
definitions~
-view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
-view_dynagroup_children=DynaGroup Children~
-view_dynagroup_newGroupDefinition=Neue Gruppen-Definition
-view_dynagroup_editing=Editing [{0}]~
-view_dynagroup_expression=Ausdruck
-view_dynagroup_recursive=Rekursiv
-view_dynagroup_loadDefinitionFailure=Konnte die Gruppen-Definition [{0}] nicht laden
-view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
-view_dynagroup_permDenied=You do not have permission to view group definitions~
-view_dynagroup_definitions=DynaGroup-Definitionen
-view_group_membership_saveFailure=Failed to update membership of group [{0}]~
-view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
-view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
-view_group_resConfig_edit_noperm=You do not have permission to edit this group
configuration~
-view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been
initiated~
-view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been
initiated for the [{0}] compatible group named [{1}]~
-view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for
[{0}] compatible group named [{1}]~
-view_group_resConfig_edit_valid=All configuration properties have valid values, so the
configuration can now be saved~
-view_group_resConfig_edit_invalid=The following configuration properties have invalid
values and must be corrected before the configuration can be saved: [{0}]~
-view_group_pluginConfig_view_noperm=You do not have permissions to see the connection
settings~
-view_group_pluginConfig_view_groupProperties=Gruppen-Eigenschaften
-view_group_pluginConfig_table_title=Group Connection Settings History~
-view_group_pluginConfig_table_statusDetails=Status Details~
-view_group_pluginConfig_table_viewSettings=View Settings~
-view_group_pluginConfig_table_viewMemberHistory=View Member History~
-view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
-view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config
history~
-view_group_pluginConfig_table_msg1=View Member History for status of each individual
resource~
-view_group_pluginConfig_table_statusSuccess=This group configuration update was
successful~
-view_group_pluginConfig_table_statusInprogress=This group configuration update is still
in progress~
-view_group_pluginConfig_table_statusNochange=No changes were made to this group
configuration~
-view_group_pluginConfig_table_statusFailure=This group configuration update failed~
-view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
-view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
-view_group_pluginConfig_members_statusDetails=Status Details
-view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
-view_group_pluginConfig_members_statusInprogress=This configuration update is still in
progress~
-view_group_pluginConfig_members_statusNochange=No changes were made to this
configuration~
-view_group_pluginConfig_members_statusFailure=This configuration update failed for an
unknown reason~
-view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history
for members of group [{0}]~
-view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
-view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group
members~
-view_group_pluginConfig_edit_noperm=You do not have permission to edit this group
connection settings~
-view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates
have been initiated~
-view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have
been initiated for the [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting
update for [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_valid=All connection setting properties have valid values,
so the connection settings can now be saved~
-view_group_pluginConfig_edit_invalid=The following connection setting properties have
invalid values and must be corrected before the connection settings can be saved: [{0}]~
-view_group_meas_schedules_title=Group Metric Collection Schedules~
-view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with
ID [{0}] - could not change from [{1}] to [{2}]~
-view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group
with ID [{0}] from [{1}] to [{2}]~
-view_group_summary_memberType=Mitglieds-Typ
-view_group_summary_memberCount=Anzahl Mitglieder
-view_group_summary_dynamic=Dynamisch
-view_group_summary_recursive=Rekursiv
-view_group_summary_groupDefinition=Gruppen-Definition
-view_group_summary_mixed=Gemischt
-view_group_summary_descUpdateFailure=Failed to change the description of the resource
group with ID [{0}]~
-view_group_summary_descUpdateSuccessful=You have changed the description of this resource
group~
-view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and
therefore are not editable~
-
-# Connection Settings Details
-#------------------------------------------
-view_connectionSettingsDetails_noPermission = You do not have permission to edit this
Resource''s connection settings.~
-view_connectionSettingsDetails_error_updateFailure = Failed to update connection
settings.~
-view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings
updated.~
-view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings
updated for Resource [{0}].~
-view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid
values, so the settings can now be saved.~
-view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings
have invalid values: {0}. The values must be corrected before the settings can be saved.~
-
-# Resource Resource Groups
-#-----------------------------------------
-view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s
groups.~
-view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource
groups.~
-view_resourceResourceGroupList_message_updateSuccess = Group membership updated for
[{0}].
-
-# Configuration Details
-#-------------------------------
-view_configurationDetails_noPermission = You do not have permission to edit this
Resource''s configuration.~
-view_configurationDetails_error_updateFailure = Konnte die Konfiguration nicht
aktualisieren
-view_configurationDetails_messageConcise = Konfiguration aktualisiert - aktuelle Version
is {0}
-view_configurationDetails_messageDetailed = Konfiguration der Ressource [{1}]
aktualisiert auf Version [{0}].
-view_configurationDetails_allPropertiesValid = All configuration properties have valid
values, so the configuration can now be saved.~
-view_configurationDetails_somePropertiesInvalid = The following configuration properties
have invalid values: {0}. The values must be corrected before the configuration can be
saved.~
-
-# Configuration History List
-view_configurationHistoryList_title = Konfigurationsänderungen
-view_configurationHistoryList_itemNamePlural = configuration history items
-
-# Configuration History Details
-#------------------------------------------
-view_configurationHistoryDetails_dialogTitle = Details der Konfiguration
-view_configurationHistoryDetails_error_loadFailure = Unable to load configuration
history.~
-
-# Operation History List
-#---------------------------------
-view_operationHistoryList_title = Verlauf der Operationen
+view_inventory_summary_agent_error1 = Fehler beim Ermitteln des Agent, der dies Ressource
managt
+view_inventory_summary_agent_error2 = Fehler beim Kontaktieren des Agent, der diese
Ressource managt
+view_inventory_summary_agent_error3 = Sie haben nicht die Rechte, um die Details für
diesen Agent anzusehen.
+view_inventory_summary_agent_fullEnpoint = Vollständiger Kommunikationsendpunkt
+view_inventory_summary_agent_fullEnpoint_err1 = Es ist kein entfernter Endpunkt mit
dieser Ressource assoziiert
+view_inventory_summary_agent_last_title = Zeitpunkt des letzten Verfügbarkeitsberichts
+view_inventory_summary_agent_status_title = Status der Kommunikation mit dem Agent
+view_inventory_summary_agent_title = Agent, der diese Ressource managt
+view_inventory_unavailableServers = Nichtverfügbare Server
+view_login_invalidEmail = Ungültige E-Mail-Adresse
+view_login_login = Einloggen
+view_login_logout = Auslogen
+view_login_prompt = Bitte loggen Sie sich ein
+view_login_registerUser = Benutzer Anlegen
+view_login_welcome = Willkommen
+view_measureRange_last = Letzte
+view_measureRange_simple = Einfach...
+view_measureRange_start = Zeitraum - Start
+view_measureTable_chartMetricValues = Graphen für ausgewählte Metriken anzeigen
+view_measureTable_getLive = Aktuellen Wert holen
+view_measureTable_getLive_failure=Kann die aktuellen Werte für diese Metriken nicht
ermitteln. Stellen Sie sicher, dass der Agent läuft und die zu managenden Ressourcen
verfügbar sind.
+view_measureTable_live_title=Live-Daten
+view_measurementOob_title = Verdächtige Metriken
+view_menuBar_logout = Ausloggen
+view_messageCenter_clearAllMessages = Alle Nachrichten löschen
+view_messageCenter_lastNMessages = Letzte {0} Nachrichten
+view_messageCenter_maxMessages = Alle Nachrichten
+view_messageCenter_messageBarShowDetails = Details zeigen
+view_messageCenter_messageDetail = Detail
+view_messageCenter_messageSeverity = Schwere
+view_messageCenter_messageTime = Zeitpukt
+view_messageCenter_messageTitle = Nachrichtencenter
+view_messageCenter_noRecentMessages = Keine aktuellen Nachrichten
+view_messageCenter_stackTraceFollows = --- STACK TRACE FOLGT ---
+view_metric_traits = Traits
+view_metric_viewTraitHistory = Werteverlauf für Trait [{0}]
+view_operationHistoryDetails_dateCompleted = Erledigungszeitpunkt
+view_operationHistoryDetails_dateSubmitted = Absendezeitpunkt
+view_operationHistoryDetails_noResults = Diese Operation liefert keine Ergebnisse
zurück.
+view_operationHistoryDetails_operation = Operation
+view_operationHistoryDetails_parameters = Parameter
+view_operationHistoryDetails_requestor = Anforderer
+view_operationHistoryDetails_results = Ergebnisse
+view_operationHistoryDetails_status = Status
view_operationHistoryList_button_runOperation = Operation ausführen
-
-# Operation History Details
-#--------------------------------------
-view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
-
-# Operation Create Wizard
-#-------------------------------------
-view_operationCreateWizard_title = Operationen-Assistent
-view_operationCreateWizard_header = Führe {0} auf {1} aus
-view_operationCreateWizard_button_execute = Ausführen
-view_operationCreateWizard_button_executeImmediately = Sofort ausführen
-view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation
execution.~
-view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}]
on Resource [{1}] with cron string [{2}].~
-view_operationCreateWizard_parametersStep_name = Parameter der Operation
-view_operationCreateWizard_parametersStep_noParameters = Diese Operation bnötigt keine
weiteren Paameter
-view_operationCreateWizard_schedulingStep_name = Zeitplan
-view_operationCreateWizard_schedulingStep_label_start = Start
-view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
-view_operationCreateWizard_schedulingStep_label_recurrence = Wiederholung
-view_operationCreateWizard_schedulingStep_label_runAt = Ausführung um
-view_operationCreateWizard_schedulingStep_label_nMinutes = Alle n Minuten
-view_operationCreateWizard_schedulingStep_label_hourly = Stündlich
-view_operationCreateWizard_schedulingStep_label_daily = Täglich
-view_operationCreateWizard_schedulingStep_label_weekly = Wöchtentlich
-view_operationCreateWizard_schedulingStep_label_monthly = Monatlich
-view_operationCreateWizard_schedulingStep_label_timePeriod = Zeitdauer
-view_operationCreateWizard_schedulingStep_label_startDate = Startdatum
-view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Ende der Wiederholungen
-view_operationCreateWizard_schedulingStep_label_endDate = Enddatum
-view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Wird sofort
ausgeführt
-view_operationCreateWizard_schedulingStep_label_onceAt = Einmalig um
-view_operationCreateWizard_schedulingStep_label_date = Datum
-view_operationCreateWizard_schedulingStep_label_time = Zeit
-view_operationCreateWizard_schedulingStep_label_everyNMinutes = Alle n Minuten
-view_operationCreateWizard_schedulingStep_label_minuteInterval = Minuten-Intervall
-view_operationCreateWizard_schedulingStep_label_hourlyAt = Stündlich um
-view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute
-view_operationCreateWizard_schedulingStep_label_dailyAt = Stündlich um
-view_operationCreateWizard_schedulingStep_label_timeOfDay = Zeitpunkt
-view_operationCreateWizard_schedulingStep_label_weeklyOn = Wöchentlich am
-view_operationCreateWizard_schedulingStep_label_dayOfWeek = Wochentag
-view_operationCreateWizard_schedulingStep_label_monthlyOn = Monatlich am
-view_operationCreateWizard_schedulingStep_label_dayOfMonth = Tag des Monats
-
-# Summary Overview
-#-----------------------------
-view_summaryOverview_header_detectedErrors = Detected Errors~
-view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error
details.~
-view_summaryOverview_title_errorDetailsWindow = Error Details~
-
-# Summary Overview Form
-#-------------------------------------
-view_summaryOverviewForm_field_type = Typ
-view_summaryOverviewForm_field_name = Name
+view_operationHistoryList_notYetStarted = noch nicht gestartet
+view_operationHistoryList_title = Verlauf der Operationen
+view_operationScheduleDetails_enterParametersBelow = Geben Sie die Parameter unten an...
+view_operationScheduleDetails_field_description = Beschreibung
+view_operationScheduleDetails_field_parameters = Parameter
+view_operationScheduleDetails_noParameters = Diese Operation benötigt keine Parameter.
+view_portlet_defaultName_favoriteResources = Bevorzugte Ressourcen
+view_portlet_defaultName_group_alerts = Gruppe: Alarme
+view_portlet_defaultName_group_metrics = Gruppe: Metriken
+view_portlet_defaultName_group_operations = Gruppe: Operationen
+view_portlet_defaultName_message = Nachricht
+view_portlet_defaultName_recentAlerts = Kürzlich ausgelöste Alarme
+view_portlet_defaultName_recentlyAddedResources = Kürzlich hinzugefügte Ressourcen
+view_portlet_defaultName_resource_alerts = Ressource: Alarme
+view_portlet_defaultName_resource_metrics = Ressource: Metriken
+view_portlet_defaultName_resource_operations = Ressource: Operationen
+view_portlet_defaultName_tagCloud = Schlagwortwolke
+view_portlet_help_none = Für dieses Portlet ist keine Hilfe verfügbar.
+view_portlet_inventory_error1 = Konnte die Inventarübersicht nicht laden
+view_portlet_inventory_tooltip_collapse = Klicken, um Details für diese Ressource zu
verbergen.
+view_portlet_inventory_tooltip_expand = Klicken, um mehr Details für diese Ressource zu
sehen
+view_portlet_message_title = Nachricht
+view_portlet_operations_config_show_last = vorhergehende anzeigen
+view_portlet_operations_config_show_next = nächste anzeigen
+view_portlet_problemResources_config_display_range2 = Von {0} zu {1}
+view_portlet_recentAlerts_config_when = innerhalb der letzten
+view_portlet_recentlyAdded_setting_addedPlatforms = Kürzlich hinzugefügte Plattformen
+view_remoteAgentInstall_agentStatus = Status des Agenten
+view_remoteAgentInstall_buttonFindAgent = Agent suchen
+view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in
common locations
+view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+view_remoteAgentInstall_error_4 = Konnte den Agent nicht installieren
+view_remoteAgentInstall_error_5 = Konnte den Agent nicht starten
+view_remoteAgentInstall_error_6 = Konnte den Agent nicht stoppen
+view_remoteAgentInstall_installAgent = Agent installieren
+view_remoteAgentInstall_owner = Eigentümer
+view_remoteAgentInstall_result = Resultat
+view_remoteAgentInstall_startAgent = Agent starten
+view_remoteAgentInstall_step = Schritt
+view_remoteAgentInstall_stopAgent = Agent anhalten
+view_reportsTop_description = Dieser Abschnitt bietet Zugang zu applikationsweiten
Berichten
+view_reportsTop_title = Berichte
+view_reports_alertDefinitions = Alarmierungskriterien
+view_reports_platforms = Cpu- und Speicherauslastung
+view_reports_subsystems = Subsysteme
+view_resourceResourceGroupList_message_updateSuccess = Group membership updated for
[{0}].
+view_resource_inventory_activity_changed_by = Geändert durch
+view_resource_inventory_activity_no_recent_events = Es sind keine Events in den letzen
24h aufgetreten.
+view_resource_inventory_activity_no_recent_metrics = Diese Ressource hat keine aktuellen
Metriken.
+view_resource_inventory_childhistory_createdChild = Kind angelegt
+view_resource_inventory_childhistory_deletedChild = Kind gelöscht
+view_resource_inventory_childhistory_filterTitle = Letzte N Tage
+view_resource_monitor_calltime_average = Durchschnitt
+view_resource_monitor_calltime_count = Anzahl
+view_resource_monitor_calltime_maximum = Maximum
+view_resource_monitor_calltime_minimum = Minimum
+view_resource_monitor_calltime_total = Gesamt
+view_resource_monitor_table_alerts = Alarme
+view_resource_monitor_table_avg = Durchschnitt
+view_resource_monitor_table_last = Letzter
+view_resource_monitor_table_max = Maximum
+view_resource_monitor_table_min = Minimum
+view_resource_title_component_errors_tooltip = Zeigt Fehler der gemanagten Ressource.
Klicken für Details
+view_resource_title_tagUpdateFailed = Fehler beim Aktualisieren der Ressourcen-Tags
+view_searchBar_resourceGroups = Ressource-Gruppen
+view_searchBar_resources = Ressourcen
+view_selector_assigned = Zugewiesene {0}
+view_selector_available = Verfügbare {0}
view_summaryOverviewForm_field_description = Beschreibung
view_summaryOverviewForm_field_location = Ort
+view_summaryOverviewForm_field_name = Name
+view_summaryOverviewForm_field_type = Typ
view_summaryOverviewForm_field_version = Version
-view_summaryOverviewForm_field_parent = Parent~
-view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
+view_summaryOverviewForm_header_summary = Zusammenfassung
view_summaryOverviewForm_label_plugin = Plugin:
view_summaryOverviewForm_label_type = Typ:
-view_summaryOverviewForm_header_summary = Zusammenfassung
-view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with
id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0}
was changed from [{1}] to [{2}].~
-view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of
Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource
with id {0} was changed from [{1}] to [{2}].~
-view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of
Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with
id {0} was changed from [{1}] to [{2}].~
-
-
-#==================== Reports ======================
-
-view_reportsTop_title = Berichte
-view_reportsTop_description = Dieser Abschnitt bietet Zugang zu applikationsweiten
Berichten
-view_reports_platforms = Cpu- und Speicherauslastung
-view_reports_subsystems = Subsysteme
-view_reports_alertDefinitions=Alarmierungskriterien
-
-view_measurementOob_title = Verdächtige Metriken
-
-view_tagCloud_title = Tag-Wolke
+view_tableSection_backButton = Zurück zur Liste
+view_table_drawFail = Konnte die Tabelle [{0}] nicht zeichnen.
+view_table_matchingRows = Zutreffende Zeilen: {0} (ausgewählt: {1})
+view_table_totalRows = Anzahl Einträge: {0} Ausgewählt: {1}
+view_tabs_common_activity = Aktivität
+view_tabs_common_agent = Agent
+view_tabs_common_alerts = Alarme
+view_tabs_common_availability = Verfügbarkeit
+view_tabs_common_configuration = Konfiguration
+view_tabs_common_connectionSettings = Verbindungs-Einstellungen
+view_tabs_common_connectionSettingsHistory = Verlauf der Verbindungs-E.
+view_tabs_common_content = Inhalte
+view_tabs_common_current = Aktuell
+view_tabs_common_dashboard = Dashboard
+view_tabs_common_definitions = Definitionen
+view_tabs_common_deployed = Installiert
+view_tabs_common_events = Ereignisse
+view_tabs_common_graphs = Diagramme
+view_tabs_common_group_members = Gruppenmitglieder
+view_tabs_common_group_membership = Gruppenmitgliedschaft
+view_tabs_common_groups = Gruppen
+view_tabs_common_history = Verlauf
+view_tabs_common_inventory = Inventar
+view_tabs_common_members = Mitglieder
+view_tabs_common_monitoring = Monitoring
+view_tabs_common_new = Neu
+view_tabs_common_operations = Operationen
+view_tabs_common_overview = Ãœbersicht
+view_tabs_common_schedule = Zeitplan
+view_tabs_common_schedules = Zeitplan
+view_tabs_common_subscriptions = Abonnements
+view_tabs_common_summary = Zusammenfassung
+view_tabs_common_tables = Tabellen
+view_tabs_common_timeline = Zeitstrahl
+view_tabs_common_traits = Traits
+view_tabs_invalidTab = Ungültiger Reiter: {0}
+view_tagCloud_deleteTag =Tag löschen
+view_tagCloud_deleteTagFailure =Löschen des Tags [{0}] fehlgeschlagen
+view_tagCloud_deleteTagSuccess =Sie haben den Tag [{0}] erfolgreich gelöscht
view_tagCloud_error_fetchFailure = Konnte die Tags nicht laden.
view_tagCloud_error_tagUsedCount = Tag {0} mal verwendet.
-
+view_tagCloud_title = Tag-Wolke
view_taggedResources_title = Markierte Ressourcen
-
-#==================== Help ======================
-
-view_helpTop_description = Dieser Abschnitt bietet Zugang zu Dokumentation, Tutorien,
Versions- und anderer hilfreicher Information.
-view_help_section_product = Produkt
-view_help_section_product_about = Ãœber
-
-#===================== Test =======================
+view_tags_error_1 = Konnte die Tags nicht laden
+view_tags_tags = Tags
+view_tags_tooltip_1 = Klicken um den Tag zu löschen
+view_tags_tooltip_2 = Klicken um die Tags zu bearbeiten
+view_tags_tooltip_3 = Geben Sie ein Tag in folgenem Format ein:
(namespace:)(semantic=)tagname (z.B. it:env=QA, oder owner=John)
view_testTop_title = Test
-view_testTop_description = This section contains pages for testing various GUI
components.~
-
-#=================== Top Level =====================
-
-# About Box
-#----------
-view_aboutBox_allRightsReserved = All Rights Reserved.~
-view_aboutBox_buildNumber = Build-Nummer:
-view_aboutBox_failedToLoad = Kann die Produktinformation nicht laden
-view_aboutBox_homepage = Homepage
-view_aboutBox_jbossByRedHat = JBoss by Red Hat~
-view_aboutBox_title = Ãœber {0}
-view_aboutBox_version = Version:
-
-# CoreGUI
-#--------------
-view_core_error_1 = Konnte keine Alarminformationen laden
-view_core_loggedOut = Ausgeloggt
-view_core_recentAlerts = [{0}] frische Alarme
-view_core_uncaught = Es ist eine nicht abgefangene Ausnahme aufgetreten.
-
-# Login
-#--------------
-view_login_invalidEmail = Ungültige E-Mail-Adresse
-view_login_login = Einloggen
-view_login_logout = Auslogen
-view_login_noBackend = The backend datasource is unavailable.~
-view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry
is required.~
-view_login_noUser = The username or password provided does not match our records.~
-view_login_prompt = Bitte loggen Sie sich ein
-view_login_registerLater = (Logout - Complete registration later.)~
-view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
-view_login_registerUser = Benutzer Anlegen
-view_login_welcome = Willkommen
-view_login_welcomeMsg = Willkommen bei JBoss ON! <br/><br/> Enter/update the
following fields to complete your registration process.<br/> Once you click
"OK" you will be logged in.<br/><br/>~
-
-
-# Menu Bar
-#--------------
-view_menuBar_logout = Ausloggen
-
-# Search Bar, GUI
-#-----------------
-view_searchBar_resources = Ressourcen
-view_searchBar_resourceGroups = Ressource-Gruppen
-# TODO: i18n pluralization
-view_searchBar_welcomeMessage = search for {0}s~
-view_searchBar_defaultPattern = name your pattern~
-view_searchBar_error_selectSavedSearch = ''Error selecting saved
search''~
-view_searchBar_query = Query~
-
-view_searchGUI_loginStatus = Unable to determine login status, check server status~
-
-# Message Center
-#--------------------------
-view_messageCenter_button_messages = Nachrichten
-view_messageCenter_noRecentMessages = Keine aktuellen Nachrichten
-view_messageCenter_messageTitle = Nachrichtencenter
-view_messageCenter_messageSeverity = Schwere
-view_messageCenter_messageTime = Zeitpukt
-view_messageCenter_messageDetail = Detail
-common_title_address=Adresse
-common_title_component_errors=Fehler der Komponente
-common_title_show_more=Mehr anzeigen...
-view_inventory_summary_agent_error1=Fehler beim Ermitteln des Agent, der dies Ressource
managt
-view_inventory_summary_agent_error2=Fehler beim Kontaktieren des Agent, der diese
Ressource managt
-view_inventory_summary_agent_fullEnpoint=Vollständiger Kommunikationsendpunkt
-view_inventory_summary_agent_fullEnpoint_err1=Es ist kein entfernter Endpunkt mit dieser
Ressource assoziiert
-view_inventory_summary_agent_last_title=Zeitpunkt des letzten Verfügbarkeitsberichts
-view_inventory_summary_agent_status_title=Status der Kommunikation mit dem Agent
-view_inventory_summary_agent_title=Agent, der diese Ressource managt
-view_resource_title_component_errors_tooltip=Zeigt Fehler der gemanagten Ressource.
Klicken für Details
-view_resource_title_tagUpdateFailed=Fehler beim Aktualisieren der Ressourcen-Tags
-common_alert_high=HOCH
-common_alert_low=NIEDRIG
-common_alert_medium=MITTEL
-common_label_unlimited=unbeschränkt
-common_status_canceled=Abgebrochen
-common_status_failed=Fehlgeschlagen
-common_status_inprogress=In Bearbeitung
-common_status_success=Erfolg
-common_title_error=Fehler
-common_title_group=Gruppe
-common_title_groups=Gruppen
-common_title_ldapGroups=LDAP-Gruppen
-common_title_permissions=Rechte
-common_title_role=Rolle
-common_title_roles=Rollen
-common_title_resources=Ressourcen
-common_title_resourceGroups=Ressourcen-Gruppen
-common_title_server=Server
-common_title_service=Dienste
-common_title_users=Benutzer
-view_tabs_common_agent=Agent
-common_title_bundle=Bundle
-common_title_bundles=Bundles
-common_val_n1st={0}er
-common_val_n2nd={0}er
-common_val_n3rd={0}er
-common_val_nth={0}er
-view_autoDiscoveryQ_deleted=Gelöscht
-view_adminRoles_permissions_globalPermissions=Globale Rechte
-view_adminRoles_permissions_resourcePermissions=Rechte für Ressourcen
-view_adminRoles_permissions_readAccessImplied=Lesezugriff für das Recht {0} ist implizit
und kann nicht abgeschaltet werden.
-view_adminRoles_permissions_isAuthorized=Berechtigt?
-view_adminRoles_permissions_isRead=Lesen?
-view_adminRoles_permissions_isWrite=Schreiben?
-view_adminRoles_permissions_read=Lesen
-view_adminRoles_permissions_write=Schreiben:
-view_adminRoles_permissions_perm_manageInventory=Inventar verwalten
-view_adminRoles_permissions_perm_manageSecurity=Sicherheitseinstellungen verwalten
-view_adminRoles_permissions_perm_manageSettings=Einstellungen verwalten
-view_adminRoles_permissions_perm_manageBundles=Bundles verwalten
-view_tags_tags=Tags
-view_adminRoles_permissions_perm_inventory=Inventar
-view_adminRoles_permissions_perm_manageAlerts=Alarme verwalten
-view_adminRoles_permissions_perm_configure=Konfiguration
-view_adminRoles_permissions_perm_manageEvents=Ereignisse verwalten
-view_adminRoles_permissions_permDesc_manageSecurity=Kann Benutzer und Rollen anlegen,
aktualisieren oder löschen (Anschauen ist für alle implizit erlaubt)
-view_adminRoles_permissions_permDesc_manageInventory=Hat alle Rechte auf alle Ressourcen,
wie unten beschrieben. Kann Gruppen anlegen, aktualisieren und löschen. Kann Ressourcen in
das Inventar aufnehmen.
-view_adminRoles_permissions_permDesc_manageSettings=Kann die Konfiguration des
RHQ-Servers ändern und jegliche Server-bezogene Funktionalität ausführen.
-view_adminRoles_permissions_perm_control=Operationen
-view_adminRoles_permissions_permDesc_manageBundles=Kann Bundles anlegen, aktualisieren
und löschen (Ansehen ist für alle implizit erlaubt).
-view_adminRoles_permissions_permReadDesc_inventory=(IMPLIZIT) Ansehen der Eigenschaft
einer Ressource (Name, Beschreibung, Version etc.), Verbindungseinstellungen, Verlauf
derselben
-view_adminRoles_permissions_permWriteDesc_inventory=Aktualisieren von Ressourcename,
Beschreibung und Verbindungseinstellungen. Löschen einzelner Einträge des Verlaufs der
Verbindungseinstellungen.
-view_adminRoles_permissions_perm_manageMeasurements=Monitoring verwalten
-view_adminRoles_permissions_permReadDesc_manageMeasurements=(IMPLIZIT) Monitoringdaten
und -zeitplan ansehen
-view_adminRoles_permissions_permWriteDesc_manageMeasurements=Zeitplan für das Monitoring
bearbeiten
-view_adminRoles_permissions_permReadDesc_manageAlerts=(IMPLIZIT) Ansehen von
Alarm-Definitionen und ausgelösten Alarmen
-view_adminRoles_permissions_permWriteDesc_manageAlerts=Anlegen, Bearbeiten und Löschen
von Alarm-Definitionen. Bestätigen und Löschen von ausgelösten Alarmen.
-view_titleBar_group_failInfo=Konnte die allgemeinen Informationen zur Gruppe [{0}] mit
der ID [{1}] nicht ermitteln.
-view_group_detail_failLoad=Konnte die Gruppe mit der ID [{0}] nicht laden
-view_group_summary_compatible=Kompatible
-view_adminRoles_permissions_permReadDesc_configure=Ansehen der Ressourcen-Konfiguration
und des Verlaufs derselben.
-view_adminRoles_permissions_permWriteDesc_configure=Bearbeiten der
Ressourcen-Konfiguration; Löschen einzelner Einträge im Verlauf der
Ressourcen-Konfiguration
-view_adminRoles_permissions_permReadDesc_control=(IMPLIZIT) Ansehen der verfügbaren
Operationen und des Verlaufs der ausgeführen Operationen
-view_adminRoles_permissions_permWriteDesc_control=Ausführen von Operationen; Löschen
einzelner Einträge im Verlauf der Operationen
-view_adminRoles_permissions_permReadDesc_manageEvents=(IMPLIZIT) Ereignisse ansehen
-view_adminRoles_permissions_permWriteDesc_manageEvents=Ereignisse löschen
-view_adminRoles_permissions_perm_manageContent=Content verwalten
-view_adminRoles_permissions_permReadDesc_manageContent=(IMPLIZIT) Installierte und
verfügbare Pakete ansehen; Verlauf der Installation von Paketen ansehen
-view_adminRoles_permissions_permWriteDesc_manageContent=Abonnieren von Content-Quellen;
Pakete installieren und deinstallieren
-view_adminRoles_permissions_perm_createChildResources=Kind-Ressourcen erzeugen
-view_adminRoles_permissions_permReadDesc_createChildResources=(IMPLIZIT) Ansehen des
Verlaufs des Anlegens von Kind-Ressourcen
-view_adminRoles_permissions_permWriteDesc_createChildResources=Neue Kind-Ressourcen
anlegen (für Ressource-Typen, die das Erzeugen von Kind-Ressourcen erlauben)
-view_autoDiscoveryQ_uninventoried=Aus dem Inventory gelöscht
-view_bundle_createWizard_provideBundleDistro=Stellen Sie eine Bundle-Distribution bereit
-view_adminRoles_permissions_perm_deleteChildResources=Löschen von Kind-Ressourcen
-view_adminRoles_permissions_permReadDesc_deleteChildResources=(IMPLIZIT) Ansicht des
Verlaufs der Löschung von Kind-Ressourcen
-view_adminRoles_permissions_permWriteDesc_deleteChildResources=Löschen von
Kind-Ressourcen (für Ressource-Typen, die das Löschen zulassen)
-view_portlet_inventory_tooltip_expand=Klicken, um mehr Details für diese Ressource zu
sehen
-view_portlet_inventory_tooltip_collapse=Klicken, um Details für diese Ressource zu
verbergen.
-view_titleBar_group_summary_collapsedTooltip=Klicken, um mehr Details für diese Gruppe zu
zeigen
-view_titleBar_group_summary_expandedTooltip=Klicken, um Details für diese Gruppe zu
verbergen.
-view_operationHistoryDetails_status=Status
-view_autoDiscoveryQ_committed=Eingetragen
-view_group_detail_failLoadComp=Konnte die Gruppen-Composite für die Gruppe mit der ID
[{0}] nicht laden.
-view_operationHistoryDetails_operation=Operation
-view_operationHistoryDetails_dateSubmitted=Absendezeitpunkt
-view_operationHistoryDetails_dateCompleted=Erledigungszeitpunkt
-view_operationHistoryDetails_requestor=Anforderer
-view_operationHistoryDetails_parameters=Parameter
-view_operationHistoryDetails_results=Ergebnisse
-view_operationCreateWizard_executionSchedule_willExecuteOnce=Wird {0} mal ausgeführt
-view_operationCreateWizard_executionSchedule_immediately=sofort
-view_operationCreateWizard_executionSchedule_onceAtGivenTime=Einmalig um {0}
-view_operationCreateWizard_executionSchedule_everyNMinutes=Alle {0} Minuten
-view_operationCreateWizard_executionSchedule_everyDayAtGivenTime=Jeden Tag um {0}
-view_operationCreateWizard_executionSchedule_everyHourOnNthMinute=Stündlich zur {0}-ten
Minute
-view_operationCreateWizard_executionSchedule_everyMonthOnNthDayAtGivenTime=Am {0}-ten Tag
des Monats um {1}
-view_operationCreateWizard_executionSchedule_willExecuteRecurringWithEnd=Wird {0}
beginnend am {1} und endend am {2} ausgeführt.
-view_operationCreateWizard_executionSchedule_willExecuteRecurring=Wird {0} beginnend am
{1} ausgeführt.
-view_operationCreateWizard_executionSchedule_everyWeekOnGivenDayAtGivenTime=Wöchntlich an
{0} um {1}
-view_operationCreateWizard_message_scheduleOperationSuccess_short=Sie haben die Operation
[{0}] für diese Ressource geplant.
-favorites=Lesezeichen
-favorites_resources=Gemerkte Ressourcen
-favorites_groups=Gemerkte Gruppen
-favorites_recentlyViewed=Kürzlich angesehen
-common_msg_notYetImplemented=Noch nicht implementiert
-widget_recordEditor_error_operation=Die Operation ist fehlgeschlagen. Ein Fehler ist
aufgetreten.
-widget_recordEditor_error_operationInvalidValues=Die Operation ist fehlgeschlagen - ein
oder mehrere Felder haben ungültige Werte
-widget_recordEditor_error_permissionCreate=Sie haben nicht die nötigen Rechte, um ein
neues [{0}] anzulegen
-widget_recordEditor_warn_validation=Ein oder mehrere Felder haben ungültige Werte. Diese
[{0}] kann nicht gesichert werden bis die Werte korrigiert wurden.
-widget_resourceFactoryWizard_infoStep_loadFail=Konnte die verfügbaren Architekturen nicht
ermitteln
-widget_typeCache_loadFail=Konnte die Metadaten für den Ressourcen-Typ nicht laden
-widget_typeTree_badTemplateType=Ungültige URL. Unbekannter Vorlagen-Typ [{0}]
-widget_typeTree_badTypeId=Ungültige URL. Unbekannte Ressource-Typ-ID [{0}]
-widget_typeTree_loadFail=Konnte die Ressource-Typen nicht laden
-dataSource_bundle_loadFailed=Konnte die Bundle-Daten nicht laden
-dataSource_users_delete=Benutzer [{0}] wurde gelöscht
-dataSource_users_deleteFailed=Konnte den Benutzer [{0}] nicht löschen
-dataSource_traits_failFetch=Konnte die Traits für das Kiriterium [{0}] nicht ermitteln.
-dataSource_schedules_loadFailedCriteria=Konnte die Zeitpläne für Metriken für die
Kriterien [{0}] nicht laden
-dataSource_schedules_loadFailedContext=Konnte die Zeitpläne für Metriken für den Kontext
[{0}] nicht laden
-dataSource_resourceGroups_loadFailed=Konnte die Ressourcen-Gruppe nicht laden
-datasource_templateSchedules_disabled=Das Erfassen der Messwerte für [{0}] wurde
eingestellt.
-datasource_templateSchedules_disabled_detailed=Sammeln der Daten für Metrik [{0}] [{1}]
als Standard für Ressource-Tpypen mit ID [{2}] eingestellt.
-datasource_templateSchedules_disabled_failed=Konnte das Sammeln der Daten für die Metrik
[{0}] [{1}] als Standard für Ressourcen-Typ [{2}] nicht einstellen.
-datasource_templateSchedules_enabled=Sammeln der Daten für Metrik [{0}] gestartet.
-datasource_templateSchedules_enabled_detailed=Sammeln der Daten für Metrik [{0}] [{1}]
als Standard für Ressourcen mit Typ-ID [{2}] gestartet.
-datasource_templateSchedules_enabled_failed=Konnte das Sammeln der Daten für die Metrik
[{0}] [{1}] als Standard für Ressourcen mit Type-ID [{2}] nicht beginnen.
-datasource_templateSchedules_updated=Zeitpläne für die ausgewählte Metrik [{0}]
aktualisiert.
-datasource_templateSchedules_updated_detail=Zeitplan für das Sammeln von Daten für Metrik
[{0}] [{1}] als Standard für Ressourcen mit Typ-ID [{2}] auf [{3}] Sekunden gesetzt.
-datasource_templateSchedules_updated_failed=Aktualisieren des Zeitplans auf [{0}]
Sekunden für das Sammeln von Daten für Metrik [{1}] [{2}] als Standard für Ressourcen mit
Typ-ID [{3}] ist fehlgeschlagen.
-view_table_drawFail=Konnte die Tabelle [{0}] nicht zeichnen.
-view_dashboardManager_deleteFail=Konnte das Dashboard nicht löschen.
-view_tree_common_loadFailed_group=Konnte die Gruppe mit ID [{0}] nicht laden
-view_tree_common_loadFailed_groupTree=Konnte die Baumansicht der Gruppe nicht laden
-view_tree_common_contextMenu_loadFail_dashboards=Konnte die benutzerspezifischen
Dashboards nicht laden
-view_group_membership_failFetch=Konnte die Ressourcen-Gruppe nicht laden
-common_label_yesterday=Gestern
-view_admin_systemSettings_savedSettings=Sie haben die Systemeinstellungen erfolgreich
gespeichert
-view_admin_systemSettings_saveFailure=Das Speichern der Systemeinstellungen ist
fehlgeschlagen
-view_admin_content=Inhalte
-view_admin_downloads_agent_buildNumber=Build-Nummer des Agents
-view_admin_downloads_agent_md5=MD5 Prüfsumme des Agents
-view_admin_downloads_agent_version=Version des Agents
-view_admin_downloads_cli_md5=MD5 Prüfsumme des CLI
-view_admin_downloads_cli_version=Version des CLI
-view_admin_systemSettings_AlertPurge_name=Lösche Alarme, die älter sind als
-view_admin_systemSettings_AvailabilityPurge_name=Lösche Verfügbarkeitsdaten, die älter
sind als
-view_admin_systemSettings_serverDetails_time=Lokale Zeit des Servers
-view_admin_systemSettings_serverDetails_tz=Zeitzone des Servers
-view_admin_systemSettings_serverDetails_dbDriverName=Name des Datenbanktreibers
-view_admin_systemSettings_serverDetails_dbDriverVersion=Version des Datenbanktreibers
-view_admin_systemSettings_serverDetails_dbName=Produktname der Datenbank
-view_admin_systemSettings_serverDetails_dbUrl=URL der Datenbankverbindung
-view_admin_systemSettings_serverDetails_dbVersion=Produktversion der Datenbank
-view_admin_systemSettings_serverDetails_installDir=Installationsverzeichnis des Servers
-view_admin_systemSettings_serverDetails_nextRotation=Nächste Rotation der
Metrik-Tabellen
-view_admin_systemSettings_serverDetails_currentTable=Aktuelle Datenbanktablee für
Metrikdaten
-view_admin_systemSettings_TraitPurge_name=Lösche Trait-Daten, die älter sind als
-view_operationHistoryList_notYetStarted=noch nicht gestartet
-common_msg_see_more=mehr ...
-common_status_unknown=Unbekannt
-common_unit_days=Tage
-common_unit_hours=Stunden
-common_unit_milliseconds=Millisekunden
-common_unit_minutes=Minuten
-common_unit_months=Monate
-common_unit_seconds=Sekunden
-common_unit_times=mal
-common_unit_weeks=Wochen
-common_unit_years=Jahre
-view_alert_definition_notification_cliScript_editor_existingScript=Vorhandenes Skript
-view_alert_definition_notification_cliScript_editor_anotherUser=Anderer Benutzer
-view_alert_definition_notification_cliScript_editor_script=Skript
-view_alert_definition_notification_cliScript_editor_thisUser=Aktueller Benutzer
-view_autoDiscoveryQ_confirmSelect=Sollen auch die Kinder der Platform ausgewählt werden?
-view_autoDiscoveryQ_showStatus=Zeige
-common_title_count=Anzahl
-common_title_resource_key=Ressourcen-Schlüssel
-common_title_resource_type=Ressourcen-Typ
-common_title_results_count=Anzahl Ergebnisse
-common_title_results_count_tooltip=Zeige diese Anzahl Ergebnisse an
-common_title_stop=Stop
-common_title_sort_order=Sortierreihenfolge
-common_title_sort_order_tooltip=Legt die Sortierreihenfolge für Ergebnisse fest.
-common_title_metric_chart=Metrik-Diagramm
-common_title_operation_status=Status der Operation
-common_title_recent_bundle_deployments=Kürzliche Bundle-Deployments
-common_title_recent_configuration_updates=Frische Konfigurationsaktualisierungen
-common_title_recent_event_counts=Anzahl frischer Events
-common_title_recent_measurements=Frische Messwerte
-common_title_recent_oob_metrics=Kürzlich aus dem Ruder gelaufene Metriken
-dataSource_users_invalidEmailAddress=Ungültige E-Mail-Adresse
-dataSource_users_passwordsDoNotMatch=Passworte stimmen nicht überein.
-view_alerts_field_ack_status_ack=Best.\\ ({0})
-view_alerts_field_ack_status_ackHover=Bestätigt durch {0} um {1}
-view_alerts_field_ack_status_noAck=Unbest.
-view_alerts_field_ack_status_noAckHover=Noch nicht bestätigt
-view_core_noRecentAlerts=Es liegen keine frischen Alarme vor
-view_dynagroup_compatible=Kompatible
-view_dynagroup_mixed=Gemischt
-view_inventory_summary_agent_error3=Sie haben nicht die Rechte, um die Details für diesen
Agent anzusehen.
-view_inventory_unavailableServers=Nichtverfügbare Server
-view_messageCenter_clearAllMessages=Alle Nachrichten löschen
-view_messageCenter_lastNMessages=Letzte {0} Nachrichten
-view_messageCenter_messageBarShowDetails=Details zeigen
-view_messageCenter_stackTraceFollows=--- STACK TRACE FOLGT ---
-view_operationHistoryDetails_noResults=Diese Operation liefert keine Ergebnisse zurück.
-view_operationScheduleDetails_enterParametersBelow=Geben Sie die Parameter unten an...
-view_operationScheduleDetails_field_description=Beschreibung
-view_operationScheduleDetails_field_parameters=Parameter
-view_operationScheduleDetails_noParameters=Diese Operation benötigt keine Parameter.
-common_button_schedule=Planen
-common_button_set=Setzen
-common_status_deferred=Verzögert
-common_status_nochange=Keine Änderung
-common_status_partial=partiell
-common_title_compare_metrics=Metriken vergleichen
-common_title_config_update_status=Status aktualisieren
-common_title_dateRange=Zeitraum
-common_title_members_reporting=Anzahl berichtender Mitglieder
-common_title_group_member_health=Zustand der Gruppenmitglieder
-common_title_numeric_metrics=Numerische Metriken
-dataSource_operationHistory_field_createdTime=Erstellungszeitpunkt
-dataSource_operationHistory_field_operationName=Name der Operation
-dataSource_operationHistory_field_startedTime=Startzeitpunkt
-dataSource_operationHistory_field_subject=Ersteller
-dataSource_operationSchedule_field_description=Notizen
-dataSource_operationSchedule_field_nextFireTime=Nächste Ausführung
-dataSource_operationSchedule_field_operationDisplayName=Operation
-dataSource_operationSchedule_field_operationName=Operation
-dataSource_operationSchedule_field_subject=Eigentümer
-dataSource_operationSchedule_field_timeout=Timeout (in Sekunden)
-dataSource_resourceErrors_clickStatusIcon=Für mehr Details auf das Icon klicken
-dataSource_resourceErrors_deleteFailure=Konnte die Ressourcen-Fehler nicht löschen
-dataSource_resourceErrors_deleteSuccess=Sie haben erfolgreich [{0}]
Ressourcen-Fehlermeldungen gelöscht.
-group_tree_partialClusterTooltip={0} der {1} Gruppenmitglieder haben eine
''{2}'' Ressource
-view_adminTemplates_servers=Server
-view_adminTemplates_platforms=Platformen
-view_alert_definition_condition_editor_delete_confirm=Die ausgewählte(n)
Alarm-Bedingung(en) löschen?
-view_bundle_fileListView_md5=MD5
-view_bundle_fileListView_sha256=SHA256
-view_group_detail_failRecursiveChange=Konnte die Einstellung ''Rekursiv''
für die Gruppe [{0}] nicht aktualisieren
-view_group_detail_recursiveChange=Sie haben erfolgreich die
''Rekursiv''-Einstellung für die Gruppe [{0}] geändert.
-view_groupInventoryMembers_button_updateMembership=Mitgliedschaft aktualisieren...
-view_groupInventoryMembers_title_updateMembership=Mitgliedschaft aktualisieren
-view_measureRange_start=Zeitraum - Start
-view_measureTable_chartMetricValues=Graphen für ausgewählte Metriken anzeigen
-view_measureTable_getLive=Aktuellen Wert holen
-view_messageCenter_maxMessages=Alle Nachrichten
-view_resource_monitor_table_alerts=Alarme
-view_resource_monitor_table_avg=Durchschnitt
-view_resource_monitor_table_last=Letzter
-view_resource_monitor_table_max=Maximum
-view_resource_monitor_table_min=Minimum
-view_table_matchingRows=Zutreffende Zeilen: {0} (ausgewählt: {1})
-view_tabs_common_activity=Aktivität
-view_tabs_common_group_members=Gruppenmitglieder
-view_tabs_common_schedule=Zeitplan
-widget_resourceFactoryWizard_editConfigStep_nothingToDo=Es gibt keine Konfiguration, die
Sie für diese Ressource bearbeiten können.
-
-
-
-
+view_titleBar_group_failInfo = Konnte die allgemeinen Informationen zur Gruppe [{0}] mit
der ID [{1}] nicht ermitteln.
+view_titleBar_group_summary_collapsedTooltip = Klicken, um mehr Details für diese Gruppe
zu zeigen
+view_titleBar_group_summary_expandedTooltip = Klicken, um Details für diese Gruppe zu
verbergen.
+view_tree_common_contextMenu_addChartToDashboard = Diagramm zum Dashboard [{0}]
hinzufügen
+view_tree_common_contextMenu_loadFail_dashboards = Konnte die benutzerspezifischen
Dashboards nicht laden
+view_tree_common_contextMenu_loadFailed_dashboard = Failed to load user dashboards
+view_tree_common_contextMenu_measurements = Metriken
+view_tree_common_contextMenu_saveChartToDashboardFailure = Speichern des Dashboards
fehlgeschlagen
+view_tree_common_contextMenu_saveChartToDashboardSuccessful = sie haben das Dashboard
[{0}] gesichert
+view_tree_common_contextMenu_type_name_label = Typ: {0}
+view_tree_common_loadFailed_group = Konnte die Gruppe mit ID [{0}] nicht laden
+view_tree_common_loadFailed_groupTree = Konnte die Baumansicht der Gruppe nicht laden
+view_tree_group_error_updateAutoCluster =Anlegen oder Aktualisieren der
Autocluser-Backing-Gruppe fehlgeschlagen. Schlüssel: [{0}]
+view_type_resourceTypes = Ressourcen-Typen
+view_type_typeTreeLoadFailure = Failed to load resource type tree data~+# Tabs
+view_upload_alreadyUploaded = Datein wurde bereits hochgeladen
+view_upload_error_file = Fehler beim Hochladen der Datei
+view_upload_tooltip_1a=Wählen Sie eine Datei zum Hochladen aus und drücken Sie dann
"Hochladen" oder "Weiter"
+view_upload_tooltip_1b=Wählen Sie eine Datei zum Hochladen aus und drücken Sie dann
"Weiter"
+view_upload_upload = Hochladen
+widget_colorPicker_tooltip = Klicken, um eine neue Farbe auszuwählen
+widget_durationItem_unitTypeNotSupported=Die Einheit [{0}] ist für diesen Zeitraum nicht
unterstützt.
+widget_jobTriggerEditor_fieldHelp_repeatInterval=wie oft die Operation ausgeführt werden
soll
+widget_jobTriggerEditor_field_cronExpression = Cron-Ausdruck
+widget_jobTriggerEditor_field_mode = Planen via
+widget_jobTriggerEditor_field_repeatInterval_later = Wiederholen alle
+widget_jobTriggerEditor_field_repeatInterval_now=Jetzt starten und dann jede
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime = Der Endzeitpunkt muss nach
dem Startzeitpunkt liegen
+widget_jobTriggerEditor_message_endTimeMustBeInFuture = Endzeitpunkt muss in der Zukunft
liegen
+widget_jobTriggerEditor_message_startTimeMustBeInFuture = Startzeitpunkt muss in der
Zukunft liegen
+widget_jobTriggerEditor_tab_examples = Beispiele
+widget_jobTriggerEditor_tab_format = Format
+widget_jobTriggerEditor_value_calendar = Kalender
+widget_jobTriggerEditor_value_cronExpression = Cron-Ausdruck
+widget_jobTriggerEditor_value_indefinitely = Unendlich
+widget_jobTriggerEditor_value_later = Später
+widget_jobTriggerEditor_value_laterAndRepeat = Später & Wiederholen
+widget_jobTriggerEditor_value_now = Jetzt
+widget_jobTriggerEditor_value_nowAndRepeat = Jetzt & Wiederholen
+widget_jobTriggerEditor_value_until = Bis
+widget_recordEditor_error_invalidViewPath = Ungültiger Anzeigepfad: [{0}]
+widget_recordEditor_error_multipleRecords = Mehrere Datensätze gefunden - erwartet wurde
genau einer.
+widget_recordEditor_error_noRecords = Keine Datensätze gefunden - erwartet wurde genau
einer.
+widget_recordEditor_error_operation = Die Operation ist fehlgeschlagen. Ein Fehler ist
aufgetreten.
+widget_recordEditor_error_operationInvalidValues = Die Operation ist fehlgeschlagen - ein
oder mehrere Felder haben ungültige Werte
+widget_recordEditor_error_permissionCreate = Sie haben nicht die nötigen Rechte, um ein
neues [{0}] anzulegen
+widget_recordEditor_error_unsupportedOperationType = Der Typ [{0}] der Operation wird
nicht unterstützt
+widget_recordEditor_info_recordCreatedConcise = {0} angelegt.
+widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] angelegt.
+widget_recordEditor_info_recordUpdatedConcise = {0} aktualisiert.
+widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] aktualisiert.
+widget_recordEditor_info_recordsDeletedConcise = {0} {1} gelöscht.
+widget_recordEditor_info_recordsDeletedDetailed = {0} {1} gelöscht: {2}.
+widget_recordEditor_label_loading = Laden...
+widget_recordEditor_title_edit = Bearbeiten {0} [{1}]
+widget_recordEditor_title_new = Neue {0} anlegen
+widget_recordEditor_title_view = Anzeigen {0} [{1}]
+widget_recordEditor_warn_validation = Ein oder mehrere Felder haben ungültige Werte.
Diese [{0}] kann nicht gesichert werden bis die Werte korrigiert wurden.
+widget_resourceFactoryWizard_createWizardTitle = Neue Ressource des Typs [{0}] anlegen
+widget_resourceFactoryWizard_editConfigStepName = Konfiguration bearbeiten
+widget_resourceFactoryWizard_editConfigStep_nothingToDo = Es gibt keine Konfiguration,
die Sie für diese Ressource bearbeiten können.
+widget_resourceFactoryWizard_execute2 = Konnte keine neue Ressource anlegen
+widget_resourceFactoryWizard_importWizardTitle = Importieren von Ressourcen des Typs
[{0}]
+widget_resourceFactoryWizard_infoStep_loadFail = Konnte die verfügbaren Architekturen
nicht ermitteln
+widget_resourceFactoryWizard_uploadFailure = Das Hochladen der Datei ist fehlgeschlagen
+widget_resourceSelector_groupCategory = Kategorie der Gruppe
+widget_resourceSelector_pleaseSelectMultipleResource = Bitte wählen Sie eine oder merere
Ressourcen aus
+widget_resourceSelector_pleaseSelectResource = Bitte wählen sie eine Ressource aus
+widget_resourceSelector_selectMultipleResources = Wählen sie Ressourcen aus
+widget_resourceSelector_selectResource = Wählen Sie eine Ressource aus
+widget_typeCache_loadFail = Konnte die Metadaten für den Ressourcen-Typ nicht laden
+widget_typeTree_badTemplateType = Ungültige URL. Unbekannter Vorlagen-Typ [{0}]
+widget_typeTree_badTypeId = Ungültige URL. Unbekannte Ressource-Typ-ID [{0}]
+widget_typeTree_loadFail = Konnte die Ressource-Typen nicht laden
+view_upload_success=Die Datei wurde erfolgreich hochgeladen
+common_title_mashup=Mashup
+common_msg_deleteConfirm=Sind Sie sicher, dass sie die ausgewählte # {0} löschen wollen?
+widget_jobTriggerEditor_value_for=für
+view_remoteAgentInstall_connInfo=Verbindungsinformation
+view_type_parentId=ID der übergeortneten Ressource
+view_tabs_invalidSubTab=Ungültiger Subtab: {0}
+view_dashboardManager_error=Konnte das Dashboard nicht im Server speichern
+view_dashboardManager_saved=Dashboard {0} erfolgreich im Server gespeichert
+view_dashboardManager_deleted=Dashboard {0} erfolgreich gelöscht
+view_portlet_defaultName_inventorySummary=Inventarübersicht
+view_portlet_defaultName_operations=Geplante Operationen
+view_portlet_defaultName_platformSummary=Plattformauslastung
+view_portlet_defaultName_problemResources=Nicht-verfügbare oder alarmierte Ressourcen
+view_portlet_defaultName_autodiscovery=Discovery-Warteschlange
+view_portlet_factory_invalidPortlet=Dies ist ein veraltetes Portlet, das nicht mehr
gültig ist. Bitte löschen Sie es.
+view_portlet_defaultName_resourceMetric=Metrik-Graph (Ressource)
+view_portlet_defaultName_groupMetric=Metrik-Graph (Gruppe)
+view_portlet_results_empty=Für die angegebenen Kriterien wurden keine Daten gefunden.
+view_inventory_eventHistory_groupEventHistory=Verlauf der Gruppen-Ereignisse
+view_inventory_eventHistory_resourceEventHistory=Verlauf der Ressourcen-Ereignisse
+view_inventory_groups_children=Kinder
+view_inventory_groups_descendants=Abkömlinge
+view_inventory_groups_deleteSuccessful=Sie haben die ausgewählten Gruppen erfolgreich
gelöscht
+view_inventory_groups_deleteFailed=Das Löschen der ausgewählten Gruppen ist
fehlgeschlagen
+view_inventory_resources_title_children=Kind-Ressourcen
+view_inventory_resources_title_members=Gruppenmitglieder
+view_resource_inventory_activity_no_recent_alerts=Keine frischen Alarme
+widget_jobTriggerEditor_field_startType=Start
+widget_jobTriggerEditor_value_on=am
+widget_jobTriggerEditor_fieldHelp_startDelay=Starte die Operation nach der angegebenen
Zeit
+widget_jobTriggerEditor_value_in=in
+widget_jobTriggerEditor_fieldHelp_repeatDuration=Die operation X mal ausführen oder bis
die zeit abgelaufen ist.
+dataSource_configurationHistory_dateSubmitted=Absendezeitpunkt
+dataSource_configurationHistory_dateCompleted=Erledigungszeitpunkt
+dataSource_configurationHistory_updateType=Art der Aktualisierung
commit 7d84152e490035435582d545da6ee05a2331e2a4
Author: Jijun Liu <lxjijun(a)gmail.com>
Date: Mon May 23 09:29:22 2011 +0200
First batch of chinese translations by Jijun Liu and ZhongqiangLee
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/MessageConstants_zh.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/MessageConstants_zh.properties
new file mode 100644
index 0000000..2d1c954
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/MessageConstants_zh.properties
@@ -0,0 +1,53 @@
+#
+# RHQ GUI i18n Message Constants - Chinese
+# This is used specifically for properties needing lookup by name, at runtime. These
+# constant properties can be localized but can not have arguments.
+###################################
+
+#=================== Help URLs =====================
+# The Help sections and entries are table driven via property lookups. The following
property
+# names are expected:
+#
+# The number of help sections:
+#
+# view_help_section_count = numSectionsInteger
+#
+# For each section:
+# N = 1..numSections
+#
+# view_help_section_N_title = localized title for section in the sectionStack
+# view_help_section_N_item_count = numSectionItemsInteger
+#
+# For each url entry in the section N:
+# M = 1..numSectionItems
+#
+# view_help_section_N_propTitle_M = localized title for the help (required)
+# view_help_section_N_propIcon_M = icon path (optional, defaults to document icon)
+# view_help_section_N_propUrl_M = url for the help (required)
+#
+view_help_section_count = 2
+
+view_help_section_1_title = \u6587\u6863
+view_help_section_1_item_count = 3
+
+view_help_section_1_propTitle_1 = \u7591\u96be\u89e3\u7b54 (FAQ)
+view_help_section_1_propUrl_1 =
http://www.rhq-project.org/display/JOPR2/FAQ
+view_help_section_1_propTitle_2 = \u6587\u6863\u96c6
+view_help_section_1_propUrl_2 =
http://www.rhq-project.org/display/JOPR2/Home
+view_help_section_1_propTitle_3 = API Javadoc
+view_help_section_1_propUrl_3 =
http://www.rhq-project.org/display/JOPR2/API+Documentation
+
+view_help_section_2_title = \u6559\u7a0b
+view_help_section_2_item_count = 4
+
+view_help_section_2_propTitle_1 = \u6f14\u793a: \u6240\u6709\u6f14\u793a
+view_help_section_2_propUrl_1 =
http://www.rhq-project.org/display/JOPR2/Demos
+view_help_section_2_propTitle_2 = \u6f14\u793a: Bundle Provisioning
+view_help_section_2_propUrl_2 =
http://management-platform.blogspot.com/2011/01/bundle-provisioning-via-r...
+view_help_section_2_propTitle_3 = How to build Group Definitions
+view_help_section_2_propIcon_3 = [SKIN]/../actions/help.png
+view_help_section_2_propUrl_3 =
http://docs.redhat.com/docs/en-US/JBoss_Operations_Network/2.4/html/Basic...
+view_help_section_2_propTitle_4 = \u5982\u4f55\u4f7f\u7528\u68c0\u7d22\u6846
+view_help_section_2_propIcon_4 = [SKIN]/../actions/help.png
+view_help_section_2_propUrl_4 =
http://www.rhq-project.org/display/JOPR2/Search
+
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
new file mode 100644
index 0000000..cdefe55
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
@@ -0,0 +1,2172 @@
+#
+# RHQ GUI i18n Messages - Chinese
+###################################
+
+#************************************** SHARED ****************************************
+
+#=================== Common =====================
+
+#
+# Build Info
+#
+common_buildInfo_gwtVersion = ${gwt.version}
+
+# Button Labels
+#--------------
+common_button_ack = \u786e\u8ba4
+common_button_ack_all = \u786e\u8ba4\u6240\u6709
+common_button_add = \u6dfb\u52a0
+common_button_advanced = \u9ad8\u7ea7...
+common_button_apply = \u63a5\u53d7
+common_button_cancel = \u53d6\u6d88
+common_button_close = \u5173\u95ed
+common_button_compare = \u5bf9\u6bd4
+common_button_create_child = Create Child
+common_button_delete = \u5220\u9664
+common_button_delete_all = \u5220\u9664\u6240\u6709
+common_button_disable = \u7981\u7528
+common_button_edit = \u7f16\u8f91
+common_button_enable = \u542f\u7528
+common_button_finish = \u5b8c\u6210
+common_button_import = \u5bfc\u5165
+common_button_new = \u65b0\u5efa
+common_button_next = \u4e0b\u4e00\u6b65
+common_button_ok = OK
+common_button_previous = \u4e0a\u4e00\u6b65
+common_button_purgeAll = \u6e05\u9664\u6240\u6709
+common_button_refresh = \u5237\u65b0
+common_button_reset = \u91cd\u7f6e
+common_button_save = \u4fdd\u5b58
+common_button_schedule = \u8ba1\u5212
+common_button_search = \u68c0\u7d22
+common_button_set = Set
+common_button_showDetails = \u67e5\u770b\u8be6\u60c5...
+common_button_uninventory = Uninventory
+
+# Common Labels
+#------------------------
+common_label_ago=ago
+common_label_all = \u6240\u6709
+common_label_all_resources = \u6240\u6709\u8d44\u6e90
+common_label_day = \u5929
+common_label_days = \u5929
+common_label_hour = \u5c0f\u65f6
+common_label_hours = \u5c0f\u65f6
+common_label_item = \u9879
+common_label_items = \u9879
+common_label_milliseconds = \u6beb\u79d2
+common_label_minutes = \u5206\u949f
+common_label_month = \u6708
+common_label_none = none
+common_label_role = \u89d2\u8272
+common_label_roles = \u89d2\u8272
+common_label_scheduled_operations = \u8ba1\u5212\u64cd\u4f5c
+common_label_seconds = \u79d2
+common_label_selected_resources = selected resources
+common_label_unlimited = unlimited
+common_label_user = \u7528\u6237
+common_label_users = \u7528\u6237
+common_label_week = \u5468
+common_label_weeks = \u5468
+common_label_yesterday=\u6628\u5929
+
+# Common Units
+#-------------
+common_unit_times = \u6b21
+common_unit_milliseconds = \u6beb\u79d2
+common_unit_seconds = \u79d2
+common_unit_minutes = \u5206\u949f
+common_unit_hours = \u5c0f\u65f6
+common_unit_days = \u5929
+common_unit_weeks = \u5468
+common_unit_months = \u6708
+common_unit_years = \u5e74
+
+# Common Severities
+#------------------
+common_severity_debug = Debug
+common_severity_info = Info
+common_severity_warn = Warn
+common_severity_error = Error
+common_severity_fatal = Fatal
+
+# Common Titles
+#--------------
+common_title_address = \u5730\u5740
+common_title_add_column = \u6dfb\u52a0\u5217
+common_title_add_graph_to_view = Add Graph to Monitor View
+common_title_add_portlet = \u6dfb\u52a0Portlet
+common_title_alert_range = \u544a\u8b66\u8303\u56f4
+common_title_ancestry = \u7956\u5148
+common_title_availability = \u53ef\u7528\u6027
+common_title_average_metrics = \u5e73\u5747\u6bcf\u5206\u949f\u6307\u6807
+common_title_available_resources = \u53ef\u7528\u7684\u8d44\u6e90
+common_title_background = \u80cc\u666f\u8272
+common_title_bundle = \u63d2\u4ef6
+common_title_bundles = \u63d2\u4ef6\u96c6
+common_title_category = \u7c7b\u522b
+common_title_change_refresh_time=\u5237\u65b0\u95f4\u9694
+common_title_columns = \u5217
+common_title_configuration = \u914d\u7f6e
+common_title_compare_metrics = \u6307\u6807\u5bf9\u6bd4
+common_title_compatibleGroups = \u517c\u5bb9\u7ec4
+common_title_compatibleGroups_total = \u6240\u6709\u517c\u5bb9\u7ec4
+common_title_component_errors = \u7ec4\u4ef6\u9519\u8bef
+common_title_config_update_status = \u66f4\u65b0\u72b6\u6001
+common_title_count = \u6570
+common_title_custom = \u81ea\u5b9a\u4e49
+common_title_dashboard_name = \u7edf\u8ba1\u8868\u76d8\u540d
+common_title_dateCreated = \u521b\u5efa\u65e5\u671f
+common_title_dateRange = \u65e5\u671f\u8303\u56f4
+common_title_default = \u9ed8\u8ba4
+common_title_description = \u63cf\u8ff0
+common_title_details = \u8be6\u7ec6
+common_title_display = \u663e\u793a
+common_title_display_name = \u663e\u793a\u540d
+common_title_duration = \u95f4\u9694
+common_title_edit_mode = \u7f16\u8f91\u6a21\u5f0f
+common_title_enabled = \u542f\u7528?
+common_title_end = End
+common_title_error = Error
+common_title_generalProp = \u57fa\u672c\u5c5e\u6027
+common_title_group = \u7ec4
+common_title_groups = \u7ec4
+common_title_group_def_total = \u5b9a\u4e49\u7ec4\u603b\u6570
+common_title_group_member_health = Group Member Health
+common_title_icon =
+common_title_id = ID
+common_title_id_parent = \u7236ID
+common_title_info = Info
+common_title_help = \u5e2e\u52a9
+common_title_host = \u4e3b\u673a
+common_title_inventory = \u6e05\u5355
+common_title_inventorySummary = \u6e05\u5355\u6c47\u603b
+common_title_lastUpdated = \u6700\u8fd1\u66f4\u65b0
+common_title_lastUpdatedBy = \u6700\u8fd1\u66f4\u65b0\u8005
+common_title_ldapGroups = LDAP\u7ec4
+common_title_mashup = Mashup
+common_title_members_reporting = Members Reporting
+common_title_message = \u6d88\u606f
+common_title_metric = Metric
+common_title_metric_chart = Metric\u56fe\u8868
+common_title_mixedGroups = \u6df7\u5408\u7ec4
+common_title_mixedGroups_total = \u6240\u6709\u6df7\u5408\u7ec4
+common_title_name = \u540d\u79f0
+common_title_new_dashboard = \u65b0\u5efa\u7edf\u8ba1\u8868\u76d8
+common_title_numeric_metrics = \u6570\u5b57\u578b\u6307\u6807
+common_title_numeric_type = \u6570\u5b57\u7c7b\u578b
+common_title_operation_status = \u64cd\u4f5c\u72b6\u6001
+common_title_operations = \u64cd\u4f5c
+common_title_operations_range = \u64cd\u4f5c\u8303\u56f4
+common_title_over = Over
+common_title_password = \u5bc6\u7801
+common_title_path = Path
+common_title_permissions = \u6743\u9650
+common_title_platform = \u5e73\u53f0
+common_title_platform_total = \u6240\u6709\u5e73\u53f0
+common_title_plugin = \u63d2\u4ef6
+common_title_port = \u7aef\u53e3
+common_title_providers = \u63d0\u4f9b\u8005
+common_title_recent_alerts = \u6700\u8fd1\u544a\u8b66
+common_title_recent_bundle_deployments = Recent Bundle Deployments
+common_title_recent_configuration_updates = Recent Configuration Updates
+common_title_recent_event_counts = \u6700\u8fd1\u4e8b\u4ef6\u6570
+common_title_recent_measurements = Recent Measurements
+common_title_recent_oob_metrics = Recent Out of Bound metrics
+common_title_recent_operations = \u6700\u8fd1\u64cd\u4f5c
+common_title_recent_pkg_history = \u6700\u8fd1\u5386\u53f2\u5305
+common_title_recently_added = \u6700\u8fd1\u6dfb\u52a0
+common_title_remove_column = \u79fb\u9664\u5217
+common_title_repositories = \u5e93
+common_title_resource = \u8d44\u6e90
+common_title_resources = \u8d44\u6e90
+common_title_resource_group = \u8d44\u6e90\u7ec4
+common_title_resourceGroups = \u8d44\u6e90\u7ec4
+common_title_resource_inventory = \u8d44\u6e90\u6e05\u5355
+common_title_resource_id = \u8d44\u6e90ID
+common_title_resource_name = \u8d44\u6e90\u540d
+common_title_resource_key = \u8d44\u6e90Key
+common_title_resource_type = \u8d44\u6e90\u7c7b\u578b
+common_title_results_count = \u7ed3\u679c\u6570\u91cf
+common_title_results_count_tooltip = \u663e\u793a\u7ed3\u679c\u6570\u91cf
+common_title_role = \u89d2\u8272
+common_title_roles = \u89d2\u8272
+common_title_search = \u641c\u7d22
+common_title_scheduled_operations = \u8ba1\u5212\u64cd\u4f5c
+common_title_selected_resources = \u9009\u62e9\u7684\u8d44\u6e90
+common_title_server = \u670d\u52a1\u5668
+common_title_server_total = \u670d\u52a1\u5668\u603b\u6570
+common_title_service = \u670d\u52a1
+common_title_service_total = \u670d\u52a1\u603b\u6570
+common_title_settings = \u8bbe\u7f6e
+common_title_show = \u663e\u793a
+common_title_show_more = \u663e\u793a\u6240\u6709...
+common_title_sort_order = \u6392\u5e8f
+common_title_sort_order_tooltip = \u8bbe\u7f6e\u6392\u5e8f\u65b9\u5f0f.
+common_title_start = \u5f00\u59cb
+common_title_status = \u72b6\u6001
+common_title_stop= \u505c\u6b62
+common_title_summary = \u7edf\u8ba1
+common_title_tag_cloud = \u6807\u7b7e\u4e91
+common_title_the = The
+common_title_timestamp = \u65e5\u671f/\u65f6\u95f4
+common_title_total = \u603b\u6570
+common_title_type = \u7c7b\u578b
+common_title_units = \u5355\u4f4d
+common_title_user = \u7528\u6237
+common_title_users = \u7528\u6237
+common_title_value = \u503c
+common_title_version = \u7248\u672c
+common_title_view_mode = \u67e5\u770b\u6a21\u5f0f
+common_title_web_address = Web\u5730\u5740
+common_title_welcome = \u6b22\u8fce
+
+# Common Messages
+#--------------
+common_msg_areYouSure = \u4f60\u786e\u5b9a?
+common_msg_changeAutoDetected = Change auto-detected
+common_msg_deleteConfirm = \u4f60\u786e\u5b9a\u8981\u5220\u9664# selected {0}?
+common_msg_emphasizedNotePrefix = \u6ce8\u610f:
+common_msg_loading = \u52a0\u8f7d\u4e2d...
+common_msg_noItemsToShow = \u6ca1\u6709\u6761\u76ee\u663e\u793a
+common_msg_notYetImplemented = \u5c1a\u672a\u5b9e\u73b0
+common_msg_see_more = \u67e5\u770b\u66f4\u591a...
+common_msg_step_x_of_y = Step {0} of {1}
+common_msg_asyncTimeout = {0}.
\u56e0\u4e3a\u670d\u52a1\u5668\u54cd\u5e94\u65f6\u95f4\u592a\u957f. \
+\u8bf7\u6ce8\u610f\u670d\u52a1\u5668\u53ef\u80fd\u4ecd\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\uff0c\u5e76\u53ef\u80fd\u5728\u77ed\u671f\u5185\u5b8c\u6210.
\
+\u4f60\u53ef\u4ee5\u68c0\u67e5\u670d\u52a1\u5668\u65e5\u5fd7\uff0c\u67e5\u770b\u662f\u5426\u51fa\u73b0\u4efb\u4f55\u4e0d\u6b63\u5e38\u7684\u9519\u8bef.
+
+# Common Values
+#--------------
+common_val_for = for
+common_val_no = No
+common_val_no_lower = no
+common_val_yes = Yes
+common_val_yes_lower = yes
+common_val_never = Never
+common_val_na = N/A
+common_val_none = None
+
+# Common Statuses
+common_status_canceled = Canceled
+common_status_deferred = Deferred
+common_status_failed = Failed
+common_status_inprogress = In Progress
+common_status_nochange = No Change
+common_status_success = Success
+common_status_unknown = Unknown
+common_status_timedOut = Timed Out
+common_status_partial = Partial
+
+# 1st, 2nd, 3rd, 4th, etc.
+common_val_n1st = {0}st
+common_val_n2nd = {0}nd
+common_val_n3rd = {0}rd
+common_val_nth = {0}th
+
+# Common Alert Priorities
+#------------------------
+common_alert_high = High
+common_alert_medium = Medium
+common_alert_low = Low
+
+# Common Calendar
+#--------------
+common_calendar_january_short = \u4e00\u6708
+common_calendar_february_short = \u4e8c\u6708
+common_calendar_march_short = \u4e09\u6708
+common_calendar_april_short = \u56db\u6708
+common_calendar_may_short = \u4e94\u6708
+common_calendar_june_short = \u516d\u6708
+common_calendar_july_short = \u4e03\u6708
+common_calendar_august_short = \u516b\u6708
+common_calendar_september_short = \u4e5d\u6708
+common_calendar_october_short = \u5341\u6708
+common_calendar_november_short = \u5341\u4e00\u6708
+common_calendar_december_short = \u5341\u4e8c\u6708
+
+
+#=================== Widgets =====================
+
+# Favorites
+#--------------
+favorites = \u6536\u85cf\u5939
+favorites_resources = \u8d44\u6e90\u6536\u85cf\u5939
+favorites_groups = \u7ec4\u6536\u85cf\u5939
+favorites_recentlyViewed = \u6700\u8fd1\u67e5\u770b
+
+# Record Editor
+#--------------
+widget_recordEditor_title_view = \u67e5\u770b{0} [{1}]
+widget_recordEditor_title_edit = \u7f16\u8f91{0} [{1}]
+widget_recordEditor_title_new = \u65b0\u5efa{0}
+# // dup in common
+widget_recordEditor_label_loading = \u52a0\u8f7d\u4e2d...
+widget_recordEditor_error_invalidViewPath = \u67e5\u770b\u8def\u5f84\u65e0\u6548: [{0}]
+widget_recordEditor_error_noRecords = \u65e0\u8bb0\u5f55\u8fd4\u56de -
\u9884\u671f\u6709\u4e00\u6761.
+widget_recordEditor_error_multipleRecords = \u591a\u6761\u8bb0\u5f55\u8fd4\u56de-
\u9884\u671f\u53ea\u6709\u4e00\u4e2a.
+widget_recordEditor_info_recordCreatedConcise = {0} created.
+widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.
+widget_recordEditor_info_recordUpdatedConcise = {0} updated.
+widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.
+widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.
+widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.
+widget_recordEditor_error_operation =
\u64cd\u4f5c\u5931\u8d25.\u6709\u9519\u8bef\u53d1\u751f
+widget_recordEditor_error_operationInvalidValues =
\u64cd\u4f5c\u5931\u8d25-\u4e00\u4e2a\u6216\u591a\u4e2a\u5b57\u6bb5\u7684\u503c\u65e0\u6548
+widget_recordEditor_error_unsupportedOperationType =
\u4e0d\u652f\u6301\u7684\u64cd\u4f5c\u7c7b\u578b: [{0}]
+widget_recordEditor_error_permissionCreate =
\u4f60\u6ca1\u6709\u521b\u5efa\u65b0[{0}]\u7684\u6743\u9650
+widget_recordEditor_warn_validation =
\u4e00\u4e2a\u6216\u591a\u4e2a\u5b57\u6bb5\u7684\u503c\u65e0\u6548.
\u53ea\u6709\u5b57\u6bb5\u6709\u6548\u65f6\uff0c[{0}]\u624d\u80fd\u4fdd\u5b58
+
+# Resource Selector/Picker
+#--------------------------------
+widget_resourceSelector_selectResource = \u9009\u62e9\u8d44\u6e90
+widget_resourceSelector_pleaseSelectResource = \u8bf7\u9009\u62e9\u8d44\u6e90
+widget_resourceSelector_selectMultipleResources = \u9009\u62e9\u8d44\u6e90
+widget_resourceSelector_pleaseSelectMultipleResource =
\u8bf7\u9009\u62e9\u4e00\u4e2a\u6216\u591a\u4e2a\u8d44\u6e90
+widget_resourceSelector_groupCategory = \u7ec4\u7c7b\u522b
+
+# Resource Factory Wizard
+#--------------------------------
+widget_resourceFactoryWizard_uploadInProgress = \u6b63\u5728\u4e0a\u4f20\u4e2d...
\u5927\u7684\u53d1\u5e03\u6587\u4ef6\u9700\u8981\u6d88\u8017\u6570\u5206\u949f\u5b8c\u6210.
+widget_resourceFactoryWizard_uploadFileStepName =
\u4e0a\u4f20\u8d44\u6e90Content\u6587\u4ef6
+widget_resourceFactoryWizard_uploadFailure = \u4e0a\u4f20\u6587\u4ef6\u5931\u8d25
+widget_resourceFactoryWizard_editConfigStepName = \u7f16\u8f91\u914d\u7f6e
+widget_resourceFactoryWizard_editConfigStep_nothingToDo =
\u6b64\u8d44\u6e90\u6ca1\u6709\u4efb\u4f55\u914d\u7f6e\u9700\u8981\u5b9a\u4e49.
+widget_resourceFactoryWizard_infoStepName = \u8d44\u6e90\u6d88\u606f
+widget_resourceFactoryWizard_infoStep_loadFail = \u65e0\u6cd5\u53d6\u5f97\u67b6\u6784
+widget_resourceFactoryWizard_namePrompt = \u65b0\u8d44\u6e90\u540d
+widget_resourceFactoryWizard_templatePrompt = \u8fde\u63a5\u8bbe\u7f6e\u6a21\u677f
+widget_resourceFactoryWizard_contentTemplatePrompt =
\u90e8\u7f72\u65f6\u95f4\u914d\u7f6e\u6a21\u677f
+widget_resourceFactoryWizard_configTemplatePrompt = \u8d44\u6e90\u914d\u7f6e\u6a21\u677f
+widget_resourceFactoryWizard_archPrompt = \u5305\u67b6\u6784
+widget_resourceFactoryWizard_versionPrompt = \u5305\u7248\u672c
+widget_resourceFactoryWizard_importWizardWindowTitle =
\u5bfc\u5165\u8d44\u6e90\u5411\u5bfc
+widget_resourceFactoryWizard_importWizardTitle =
\u5bfc\u5165\u7c7b\u578b[{0}]\u7684\u8d44\u6e90
+widget_resourceFactoryWizard_importFailure =
\u624b\u5de5\u5bfc\u5165\u8d44\u6e90\u5931\u8d25
+widget_resourceFactoryWizard_importSubmitted =
\u5bfc\u5165\u7c7b\u578b[{0}]\u7684\u65b0\u8d44\u6e90\u8bf7\u6c42\u5df2\u88ab\u63d0\u4ea4
+widget_resourceFactoryWizard_createWizardWindowTitle =
\u8d44\u6e90\u521b\u5efa\u5411\u5bfc
+widget_resourceFactoryWizard_createWizardTitle =
\u521b\u5efa\u7c7b\u578b[{0}]\u7684\u65b0\u8d44\u6e90
+widget_resourceFactoryWizard_execute1 = \u521b\u5efa\u8d44\u6e90\u5931\u8d25 -
\u6ca1\u6709\u5305\u7248\u672c
+widget_resourceFactoryWizard_execute2 = \u521b\u5efa\u8d44\u6e90\u5931\u8d25
+widget_resourceFactoryWizard_createSubmitType =
\u521b\u5efa\u7c7b\u578b[{0}]\u7684\u8d44\u6e90\u8bf7\u6c42\u63d0\u4ea4\u6210\u529f.
+widget_resourceFactoryWizard_createSubmit = \u521b\u5efa\u8d44\u6e90[{0}]\u6210\u529f.
+widget_resourceFactoryWizard_failedToGetType = Failed to get backing package type for new
resource
+widget_resourceFactoryWizard_failedToDeleteVersion =
\u53d6\u6d88\u521b\u5efa\u8d44\u6e90\u65f6\u65e0\u6cd5\u5220\u9664\u5305\u7684\u7248\u672c
+
+widget_typeCache_loadFail =
\u65e0\u6cd5\u52a0\u8f7d\u8d44\u6e90\u7c7b\u578b\u7684\u5143\u6570\u636e
+
+widget_typeTree_badTemplateType = \u65e0\u6548\u7684URL.
\u672a\u77e5\u6a21\u677f\u7c7b\u578b[{0}]
+widget_typeTree_badTypeId = \u65e0\u6548URL. \u9519\u8bef\u8d44\u6e90\u7c7b\u578bID
[{0}]
+widget_typeTree_loadFail = \u52a0\u8f7d\u8d44\u6e90\u7c7b\u578b\u5931\u8d25
+
+# Color Picker
+#--------------
+widget_colorPicker_tooltip = \u9009\u62e9\u989c\u8272
+
+# Job Trigger Editor
+#--------------------
+widget_jobTriggerEditor_field_mode = Schedule using
+widget_jobTriggerEditor_value_calendar = \u65e5\u5386
+widget_jobTriggerEditor_value_cronExpression = Cron\u8868\u8fbe\u5f0f
+widget_jobTriggerEditor_value_now = Now
+widget_jobTriggerEditor_value_nowAndRepeat = Now & Repeat
+widget_jobTriggerEditor_value_later = Later
+widget_jobTriggerEditor_value_laterAndRepeat = Later & Repeat
+widget_jobTriggerEditor_field_cronExpression = Cron\u8868\u8fbe\u5f0f
+widget_jobTriggerEditor_tab_format = Format
+widget_jobTriggerEditor_tab_examples = Examples
+widget_jobTriggerEditor_field_repeatInterval_now = Run now and every
+widget_jobTriggerEditor_field_repeatInterval_later = \u91cd\u590d\u6bcf
+widget_jobTriggerEditor_fieldHelp_repeatInterval = \u591a\u4e45\u6267\u884c\u64cd\u4f5c
+widget_jobTriggerEditor_value_for = For
+widget_jobTriggerEditor_value_until = \u76f4\u5230
+widget_jobTriggerEditor_value_indefinitely = Indefinitely
+widget_jobTriggerEditor_fieldHelp_repeatDuration = keep running this operation this many
times or until this amount of time has elapsed
+widget_jobTriggerEditor_field_startType = Run
+widget_jobTriggerEditor_value_on = on
+widget_jobTriggerEditor_value_in = in
+widget_jobTriggerEditor_fieldHelp_startDelay = \u6267\u884c\u64cd\u4f5c\u5ef6\u65f6
+widget_jobTriggerEditor_message_startTimeMustBeInFuture = Start time must be in the
future.
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime = End time must be after
start time.
+widget_jobTriggerEditor_message_endTimeMustBeInFuture = End time must be in the future.
+
+# Duration Item
+#---------------
+widget_durationItem_inputUnitLessThanTargetUnit =
\u8f93\u5165\u5355\u4f4d\u662f\u5c0f\u4e8e\u76ee\u6807\u5355\u4f4d.
+widget_durationItem_unitTypeNotSupported =
\u5355\u4f4d\u7c7b\u578b[{0}]\u4e0d\u88abDurationItem\u652f\u6301.
+
+
+#===================== Utils ======================
+
+# Ancestry
+#-------------------------------------------------
+util_ancestry_parentAncestry = Parent Ancestry for:
+
+# Disambiguation Report Decorator
+#-------------------------------------------------
+util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)
+
+# Monitoring Request Callback
+#------------------------------------------
+util_monitoringRequestCallback_error_checkServerStatusFailure =
\u65e0\u6cd5\u786e\u5b9a\u767b\u5f55\u72b6\u6001-
\u68c0\u67e5\u670d\u52a1\u5668\u72b6\u6001.
+
+# RPC Manager
+#----------------------
+util_rpcManager_activeRequests = {0}\u6fc0\u6d3b\u7684\u8bf7\u6c42
+
+# User Permissions Manager
+#--------------------------
+util_userPerm_loadFailGlobal = \u65e0\u6cd5\u8f7d\u5165\u5168\u5c40\u6743\u9650-
\u672a\u6388\u6743.
+util_userPerm_loadFailGroup = \u65e0\u6cd5\u8bbf\u95ee\u8d44\u6e90\u7ec4[{0}] -
\u672a\u6388\u6743.
+util_userPerm_loadFailResource = \u65e0\u6cd5\u8bbf\u95ee\u8d44\u6e90[{0}] -
\u672a\u6388\u6743.
+
+# User Session Manager
+#--------------------------
+util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject
+util_userSession_logoutFail = \u6ce8\u9500\u5931\u8d25.
+
+# Error Handler
+#--------------------
+util_errorHandler_nullException = exception was null
+
+# Widgets Field
+#---------------------
+util_widgetsField_unlimited = \u65e0\u9650\u5236
+
+
+#================== DataSources ====================
+
+# RPC (abstract)
+#-----------------------
+dataSource_bundle_loadFailed = \u52a0\u8f7d\u63d2\u4ef6\u6570\u636e\u5931\u8d25
+
+
+# RPC (abstract)
+#-----------------------
+dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0}
request.
+dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of
type {0}.
+dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum
{0} to RPCDataSource.getEnumArray(Class)
+dataSource_rpc_yes = yes
+dataSource_rpc_no = no
+
+# ContentRepositoryTree
+#------
+dataSource_ContentRepoTree_error_load = \u52a0\u8f7d\u5e93\u9519\u8bef
+dataSource_ContentRepoTree_field_parentId = \u7236ID
+
+
+# Users
+#------
+###### dup in common
+dataSource_users_field_id = ID
+dataSource_users_field_name = \u7528\u6237\u540d
+dataSource_users_field_ldap = LDAP\u767b\u5f55?
+dataSource_users_field_password = \u5bc6\u7801
+dataSource_users_field_passwordVerify = \u786e\u8ba4\u5bc6\u7801
+dataSource_users_field_firstName = \u540d
+dataSource_users_field_lastName = \u59d3
+dataSource_users_field_emailAddress = Email\u5730\u5740
+dataSource_users_field_phoneNumber = \u7535\u8bdd\u53f7\u7801
+dataSource_users_field_department = \u90e8\u95e8
+dataSource_users_field_factive = \u5141\u8bb8\u767b\u5f55?
+dataSource_users_delete = \u5220\u9664\u7528\u6237[{0}]
+dataSource_users_deleteFailed = \u5220\u9664\u7528\u6237[{0}]\u5931\u8d25
+dataSource_users_passwordsDoNotMatch = \u5bc6\u7801\u4e0d\u5339\u914d.
+dataSource_users_invalidEmailAddress = \u90ae\u7bb1\u5730\u5740\u65e0\u6548.
+
+# Roles
+#------
+datasource_roles_field_resourceGroups = \u8d44\u6e90\u7ec4
+datasource_roles_field_permissions = \u6743\u9650
+datasource_roles_field_subjects = Subjects
+datasource_roles_field_ldapGroups = LDAP\u7ec4
+
+# Platforms
+#-----------
+dataSource_platforms_field_cpu = CPU
+dataSource_platforms_field_memory = \u5185\u5b58
+dataSource_platforms_field_swap = \u4ea4\u6362\u533a
+
+# Traits
+#------
+dataSource_traits_failFetch = Failed to fetch traits for criteria [{0}].
+dataSource_traits_field_primaryKey = \u4e3b\u952e
+dataSource_traits_field_definitionID = Definition ID
+dataSource_traits_field_lastChanged = \u6700\u8fd1\u66f4\u6539
+dataSource_traits_field_trait = Trait
+dataSource_traits_group_field_groupId = \u7ec4ID
+
+# Measurement OOBs
+#---------------------------------
+dataSource_measurementOob_field_scheduleName = \u6307\u6807
+dataSource_measurementOob_field_resourceName = \u8d44\u6e90
+dataSource_measurementOob_field_parentName = \u7236
+dataSource_measurementOob_field_formattedBaseband = Band
+dataSource_measurementOob_field_formattedOutlier = Outlier
+dataSource_measurementOob_field_factor = Out of Range Factor (%)
+dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB
information
+
+# Measurements
+#----------------------
+dataSource_definitions_loadFailed = \u65e0\u6cd5\u52a0\u8f7d\u6307\u6807\u5b9a\u4e49
+dataSource_schedules_loadFailed = Failed to load metric schedules
+dataSource_schedules_loadFailedCriteria = Failed to load metric schedules for criteria
[{0}]
+dataSource_schedules_loadFailedContext = Failed to load metric schedules for context
[{0}]
+dataSource_schedules_field_resourceGroupId = \u7ec4ID
+
+dataSource_schedules_enableFailure_resource = Failed to enable the collection of [{0}]
metrics for resource with ID [{1}]. The metrics were: [{2}]
+dataSource_schedules_enableFailure_group = Failed to enable the collection of [{0}]
metrics for group with ID [{1}]. The metrics were: [{2}]
+
+dataSource_schedules_enableSuccessful_concise = You have enabled the collection of [{0}]
measurements
+dataSource_schedules_enableSuccessful_full_resource = You have enabled the collection of
[{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]
+dataSource_schedules_enableSuccessful_full_group = You have enabled the collection of
[{0}] measurements for the resource group with ID [{1}]. The enabled measurements are:
[{2}]
+
+dataSource_schedules_disableFailure_resource = Failed to disable the collection of [{0}]
metrics for resource with ID [{1}]. The metrics were: [{2}]
+dataSource_schedules_disableFailure_group = Failed to disable the collection of [{0}]
metrics for resource group with ID [{1}]. The metrics were: [{2}]
+
+dataSource_schedules_disableSuccessful_concise = You have disabled the collection of
[{0}] measurements
+dataSource_schedules_disableSuccessful_full_resource = You have disabled the collection
of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are:
[{2}]
+dataSource_schedules_disableSuccessful_full_group = You have disabled the collection of
[{0}] measurements for the resource group with ID [{1}]. The disabled measurements are:
[{2}]
+
+dataSource_schedules_updateFailure_resource = Failed to set the collection interval of
[{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval
was to be [{3}] seconds.
+dataSource_schedules_updateFailure_group = Failed to set the collection interval of [{0}]
metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval
was to be [{3}] seconds.
+
+dataSource_schedules_updateSuccessful_concise = A new collection interval of [{0}]
seconds has been set on [{1}] measurements
+dataSource_schedules_updateSuccessful_full_resource = A new collection interval of [{0}]
seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated
measurements are: [{3}]
+dataSource_schedules_updateSuccessful_full_group = A new collection interval of [{0}]
seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated
measurements are: [{3}]
+
+# Resources
+#-----------------------
+dataSource_resources_field_location = \u4f4d\u7f6e
+dataSource_resources_field_key = Key
+dataSource_resources_field_discoveryTime = \u53d1\u73b0\u65f6\u95f4
+dataSource_resources_field_importTime = \u5bfc\u5165\u65f6\u95f4
+dataSource_resources_field_lastModifiedTime = \u6700\u8fd1\u66f4\u6539\u65f6\u95f4
+dataSource_resources_field_lastModifier = \u6700\u8fd1\u4fee\u6539\u8005
+
+# Resource Groups
+#-----------------------
+dataSource_resourceGroups_loadFailed = \u52a0\u8f7d\u8d44\u6e90\u7ec4\u5931\u8d25
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_alerts = \u544a\u8b66
+dataSource_problemResources_field_available = \u5f53\u524d\u53ef\u7528\u6027
+dataSource_problemResources_error_fetchFailure =
\u52a0\u8f7d\u544a\u8b66/\u4e0d\u53ef\u7528\u8d44\u6e90\u5931\u8d25.
+
+# Recent Operations
+#----------------------------
+dataSource_recentOperations_field_resource = \u8d44\u6e90
+dataSource_recentOperations_field_location = \u4f4d\u7f6e
+dataSource_recentOperations_field_operation = \u64cd\u4f5c
+dataSource_recentOperations_field_time = \u65e5\u671f/\u65f6\u95f4
+dataSource_recentOperations_field_status = \u72b6\u6001
+dataSource_recentOperations_error_fetchFailure =
\u52a0\u8f7d\u6700\u8fd1\u64cd\u4f5c\u5931\u8d25.
+
+# Scheduled Operations (ResourceOperationScheduleComposites)
+#------------------------------------------------------------
+dataSource_scheduledOperations_field_resource = \u8d44\u6e90
+dataSource_scheduledOperations_field_location = \u4f4d\u7f6e
+dataSource_scheduledOperations_field_operation = \u64cd\u4f5c
+dataSource_scheduledOperations_field_time = \u65e5\u671f/\u65f6\u95f4
+dataSource_scheduledOperations_error_fetchFailure =
\u65e0\u6cd5\u8f7d\u5165\u8ba1\u5212\u64cd\u4f5c.
+
+# Operation Schedules
+#--------------------
+dataSource_operationSchedule_field_id = \u8ba1\u5212\u4efb\u52a1ID
+dataSource_operationSchedule_field_operationName = \u64cd\u4f5c
+dataSource_operationSchedule_field_operationDisplayName = \u64cd\u4f5c
+dataSource_operationSchedule_field_subject = \u6240\u6709\u8005
+dataSource_operationSchedule_field_description = \u6ce8\u610f
+dataSource_operationSchedule_field_nextFireTime = \u4e0b\u6b21\u89e6\u53d1\u65f6\u95f4
+dataSource_operationSchedule_field_timeout = \u8d85\u65f6(\u79d2)
+
+# Operation Histories
+#--------------------
+dataSource_operationHistory_field_operationName = \u64cd\u4f5c\u540d
+dataSource_operationHistory_field_createdTime = \u521b\u5efa\u65f6\u95f4
+dataSource_operationHistory_field_startedTime = \u5f00\u59cb\u65f6\u95f4
+dataSource_operationHistory_field_subject = Requester
+dataSource_operationHistory_error_fetchFailure =
\u52a0\u8f7d\u5386\u53f2\u64cd\u4f5c\u5931\u8d25.
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_dateSubmitted = \u63d0\u4ea4\u65e5\u671f
+dataSource_configurationHistory_dateCompleted = \u5b8c\u6210\u65e5\u671f
+dataSource_configurationHistory_updateType = \u66f4\u65b0\u7c7b\u578b
+dataSource_configurationHistory_updateType_individual = Individual
+dataSource_configurationHistory_updateType_group = \u7ec4
+dataSource_configurationHistory_currentConfig = \u8fd9\u662f\u5f53\u524d\u914d\u7f6e
+dataSource_configurationHistory_clickToSeeError =
\u53cc\u51fb\u67e5\u770b\u9519\u8bef...
+dataSource_configurationHistory_error_fetchFailure =
\u65e0\u6cd5\u52a0\u8f7d\u5386\u53f2\u914d\u7f6e.
+
+# Resource Errors
+#-------------------------
+dataSource_resourceErrors_field_summary = \u7edf\u8ba1
+dataSource_resourceErrors_field_errorType = \u9519\u8bef\u7c7b\u578b
+dataSource_resourceErrors_field_timeOccured = \u65f6\u95f4
+dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for
Resource with id [{0}].
+dataSource_resourceErrors_clickStatusIcon =
\u70b9\u51fb\u56fe\u6807\u67e5\u770b\u8be6\u60c5
+dataSource_resourceErrors_deleteSuccess = You have successfully deleted [{0}] resource
error messages.
+dataSource_resourceErrors_deleteFailure =
\u5220\u9664\u8d44\u6e90\u9519\u8bef\u5931\u8d25
+
+# Template Schedules
+#-------------------------
+datasource_templateSchedules_disabled = Disabled collection of selected metric [{0}].
+datasource_templateSchedules_disabled_detailed = Disabled collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_disabled_failed = Failed to disable collection of metric
[{0}] [{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled = Enabled collection of selected metric [{0}].
+datasource_templateSchedules_enabled_detailed = Enabled collection of metric [{0}] [{1}]
by default for ResourceType with id [{2}].
+datasource_templateSchedules_enabled_failed = Failed to enable collection of metric [{0}]
[{1}] by default for ResourceType with id [{2}].
+datasource_templateSchedules_updated = Updated collection intervals of selected metric
[{0}].
+datasource_templateSchedules_updated_detail = Collection interval for metric [{0}] [{1}]
by default for ResourceType with id [{2}] set to [{3}] seconds.
+datasource_templateSchedules_updated_failed = Failed to set collection interval to [{0}]
seconds for metric [{1}] [{2}] by default for ResourceType with id [{3}].
+
+
+#********************************** VIEW-SPECIFIC *************************************
+
+#================= Administration ==================
+
+view_admin_administration = \u7ba1\u7406
+view_admin_landing =
\u8fd9\u91cc\u4f60\u53ef\u4ee5\u7ba1\u7406RHQ\u5168\u5c40\u914d\u7f6e.\u5305\u62ec\u914d\u7f6e\u5b89\u5168,\u5b89\u88c5\u63d2\u4ef6,\u7ba1\u7406RHQ\u670d\u52a1\u5668\u548c\u4ee3\u7406.
+view_admin_configuration = \u914d\u7f6e
+view_admin_security = \u5b89\u5168
+view_admin_topology = \u62d3\u6251
+view_admin_content = Content
+
+view_adminSecurity_users = \u7528\u6237
+view_adminSecurity_roles = \u89d2\u8272
+
+view_adminTopology_affinityGroups = \u76f8\u5173\u7ec4
+view_adminTopology_agents = \u4ee3\u7406
+view_adminTopology_partitionEvents = Partition\u4e8b\u4ef6
+view_adminTopology_remoteAgentInstall = \u8fdc\u7a0b\u4ee3\u7406\u5b89\u88c5
+view_adminTopology_servers = \u670d\u52a1\u5668
+
+view_adminConfig_downloads = \u4e0b\u8f7d
+view_adminConfig_plugins = \u63d2\u4ef6
+view_adminConfig_systemSettings = \u7cfb\u7edf\u8bbe\u7f6e
+view_adminConfig_templates = \u6a21\u677f
+
+view_adminContent_contentSources = Content\u6e90
+view_adminContent_repositories = \u5e93
+
+# Administration/Templates
+#--------------------------------
+
+view_adminTemplates_platforms = \u5e73\u53f0
+view_adminTemplates_platformServices = \u5e73\u53f0\u670d\u52a1
+view_adminTemplates_servers = \u670d\u52a1\u5668
+view_adminTemplates_enabledAlertTemplates = \u542f\u7528\u544a\u8b66\u6a21\u677f
+view_adminTemplates_disabledAlertTemplates = \u7981\u7528\u544a\u8b66\u6a21\u677f
+view_adminTemplates_enabledMetricTemplates = \u542f\u7528\u6307\u6807\u6a21\u677f
+view_adminTemplates_disabledMetricTemplates = \u7981\u7528\u6307\u6807\u6a21\u677f
+view_adminTemplates_editAlertTemplate = \u7f16\u8f91\u544a\u8b66\u6a21\u677f
+view_adminTemplates_editMetricTemplate = \u7f16\u8f91\u6307\u6807\u6a21\u677f
+view_adminTemplates_prompt_enabledAlertTemplates =
\u8fd9\u79cd\u8d44\u6e90\u7c7b\u578b\u542f\u7528\u7684\u544a\u8b66\u6a21\u677f\u6570
+view_adminTemplates_prompt_disabledAlertTemplates =
\u8fd9\u79cd\u8d44\u6e90\u7c7b\u578b\u521b\u5efa\u800c\u7981\u7528\u7684\u544a\u8b66\u6a21\u677f\u6570
+view_adminTemplates_prompt_enabledMetricTemplates = Number of metric schedules that are
enabled by default on this resource type
+view_adminTemplates_prompt_disabledMetricTemplates = Number of metric schedules that are
disabled by default on this resource type
+
+# Administration/Security/Users
+#--------------------------------
+view_adminUsersList_dataTypeName = user
+view_adminUsersList_dataTypeNamePlural = users
+
+# Administration/Security/Users/#
+#--------------------------------
+view_adminUsersDetails_dataTypeName = user
+
+# Administration/Security/Roles/#
+#--------------------------------
+view_adminRoles_assignedGroups = \u5206\u914d\u7684\u8d44\u6e90\u7ec4
+view_adminRoles_assignedSubjects = \u5206\u914d\u7684\u4e3b\u9898
+view_adminRoles_failLdap = \u65e0\u6cd5\u786e\u5b9aLDAP - \u5047\u5b9a\u6ca1\u6709LDAP.
+view_adminRoles_failLdapGroups = \u67e5\u8be2\u6709\u6548LDAP\u7ec4\u5931\u8d25 -
\u5047\u5b9a\u65e0DAP\u7ec4.
+view_adminRoles_failLdapGroupsRole = \u52a0\u8f7dLDAP\u7ec4\u89d2\u8272\u5931\u8d25.
+view_adminRoles_failRoles = \u53d6\u5f97\u89d2\u8272\u5931\u8d25.
+view_adminRoles_globalPerms = \u5168\u5c40\u6388\u6743
+view_adminRoles_ldapGroups = LDAP\u7ec4
+view_adminRoles_ldapGroupsReadOnly = LDAP\u7ec4\u6570\u636e\u4e3a\u53ea\u8bfb
+view_adminRoles_noItems = \u6ca1\u6709\u6761\u76ee\u663e\u793a
+view_adminRoles_noLdap = \u6ca1\u6709\u96c6\u6210LDAP\u5b89\u5168, \u5230<a
{0}>{1}</a>.
+view_adminRoles_perms = \u6743\u9650
+view_adminRoles_resourcePerms = \u8d44\u6e90\u6388\u6743
+view_adminRoles_roleAdded = \u89d2\u8272[{0}]\u6dfb\u52a0.
+view_adminRoles_roleDeleteFailed = \u5220\u9664\u89d2\u8272[{0}]\u5931\u8d25.
+view_adminRoles_roleDeleted = \u89d2\u8272[{0}]\u5220\u9664.
+view_adminRoles_roleUpdateFailed = \u4fee\u6539\u89d2\u8272[{0}]\u5931\u8d25.
+view_adminRoles_roleUpdated = \u89d2\u8272[{0}]\u66f4\u65b0\u4e86.
+view_adminRoles_permissions_globalPermissions = \u5168\u5c40\u6388\u6743
+view_adminRoles_permissions_resourcePermissions = \u8d44\u6e90\u6388\u6743
+view_adminRoles_permissions_readAccessImplied =
\u9ed8\u8ba4\u6709\u8bbf\u95ee{0}\u7684\u6743\u9650\u800c\u4e14\u65e0\u6cd5\u7981\u7528.
+view_adminRoles_permissions_isAuthorized = \u6388\u6743?
+view_adminRoles_permissions_isRead = \u8bfb?
+view_adminRoles_permissions_isWrite = \u5199?
+view_adminRoles_permissions_read = \u8bfb:
+view_adminRoles_permissions_write = \u5199:
+view_adminRoles_permissions_perm_manageSecurity = \u7ba1\u7406\u6743\u9650
+view_adminRoles_permissions_permDesc_manageSecurity =
\u80fd\u521b\u5efa,\u66f4\u65b0,\u6216\u5220\u9664\u7528\u6237\u548c\u89d2\u8272
(\u4efb\u4f55\u4eba\u90fd\u6709\u67e5\u770b\u6743\u9650)
+view_adminRoles_permissions_perm_manageInventory = \u7ba1\u7406\u6e05\u5355
+view_adminRoles_permissions_permDesc_manageInventory =
\u62e5\u6709\u6240\u6709\u8d44\u6e90\u6743\u9650, \u5982\u4e0b\u6240\u8ff0,
\u5bf9\u6240\u6709\u8d44\u6e90; \u5177\u6709\u521b\u5efa, \u66f4\u65b0,
\u5220\u9664\u7ec4;
\u80fd\u5bfc\u5165\u81ea\u52a8\u53d1\u73b0\u6216\u624b\u52a8\u53d1\u73b0\u7684\u8d44\u6e90
+view_adminRoles_permissions_perm_manageSettings = \u7ba1\u7406\u914d\u7f6e
+view_adminRoles_permissions_permDesc_manageSettings =
\u80fd\u4fee\u6539RHQ\u670d\u52a1\u5668\u914d\u7f6e\u800c\u4e14\u80fd\u64cd\u4f5c\u4efb\u4f55\u76f8\u5173\u7684\u670d\u52a1\u5668\u529f\u80fd
+view_adminRoles_permissions_perm_manageBundles = \u7ba1\u7406\u63d2\u4ef6
+view_adminRoles_permissions_permDesc_manageBundles =
\u80fd\u521b\u5efa,\u66f4\u65b0\u6216\u8005\u5220\u9664\u63d0\u4f9b\u7684\u63d2\u4ef6(\u4efb\u4f55\u4eba\u90fd\u80fd\u67e5\u770b)
+view_adminRoles_permissions_perm_manageRepositories = \u7ba1\u7406\u5e93
+view_adminRoles_permissions_permDesc_manageRepositories = can create, update, or delete
repositories of any user (everyone can create their own repositories), can associate
content sources to repositories.
+view_adminRoles_permissions_perm_inventory = \u6e05\u5355
+view_adminRoles_permissions_permReadDesc_inventory = (IMPLIED) view Resource properties
(name, description, version, etc.), connection settings, and connection settings history
+view_adminRoles_permissions_permWriteDesc_inventory = update Resource name, version,
description, and connection settings; delete connection settings history items
+view_adminRoles_permissions_perm_manageMeasurements = \u7ba1\u7406\u6307\u6807
+view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIED) view metric data
and collection schedules
+view_adminRoles_permissions_permWriteDesc_manageMeasurements = update metric collection
schedules
+view_adminRoles_permissions_perm_manageAlerts = \u7ba1\u7406\u544a\u8b66
+view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIED) view alert definitions
and alert history
+view_adminRoles_permissions_permWriteDesc_manageAlerts = create, update, and delete alert
definitions; acknowledge and delete alert history items
+view_adminRoles_permissions_perm_configure = Configure
+view_adminRoles_permissions_permReadDesc_configure = view Resource configuration and
Resource configuration revision history
+view_adminRoles_permissions_permWriteDesc_configure = update Resource configuration;
delete Resource configuration revision history items
+view_adminRoles_permissions_perm_control = Control
+view_adminRoles_permissions_permReadDesc_control = (IMPLIED) view available operations
and operation execution history
+view_adminRoles_permissions_permWriteDesc_control = execute operations; delete operation
execution history items
+view_adminRoles_permissions_perm_manageEvents = \u7ba1\u7406\u4e8b\u4ef6
+view_adminRoles_permissions_permReadDesc_manageEvents =
(IMPLIED)\u67e5\u770b\u4e8b\u4ef6
+view_adminRoles_permissions_permWriteDesc_manageEvents = \u5220\u9664\u4e8b\u4ef6
+view_adminRoles_permissions_perm_manageContent = \u7ba1\u7406Content
+view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIED) view installed and
available packages; view package installation history
+view_adminRoles_permissions_permWriteDesc_manageContent = subscribe to content sources;
install and uninstall packages
+view_adminRoles_permissions_perm_createChildResources = \u521b\u5efa\u5b50\u8d44\u6e90
+view_adminRoles_permissions_permReadDesc_createChildResources = (IMPLIED) view child
Resource creation history
+view_adminRoles_permissions_permWriteDesc_createChildResources = create new child
Resources (for child Resources of types that are creatable)
+view_adminRoles_permissions_perm_deleteChildResources = \u5220\u9664\u5b50\u8d44\u6e90
+view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIED) view child
Resource deletion history
+view_adminRoles_permissions_permWriteDesc_deleteChildResources = uninventory resources;
delete Resources (for Resources of types that are deletable)
+view_adminRoles_permissions_autoselecting_manageSecurity_implied = Autoselected
unselected permissions, since MANAGE_SECURITY implies all other permissions...
+view_adminRoles_permissions_autoselecting_manageInventory_implied = Autoselected
unselected Resource permissions, since MANAGE_INVENTORY implies all Resource
permissions...
+view_adminRoles_permissions_autoselecting_configureWrite_implied = Autoselected
CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
+view_adminRoles_permissions_autoselecting_configureRead_implied = Autodeselected
CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
+view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection = {0}
permission cannot be deselected, unless the Manage Security permission, which implies all
other permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection = {0}
permission cannot be deselected, unless Manage Inventory, which implies all Resource
permissions, is deselected first.
+view_adminRoles_permissions_illegalDeselectionDueToCorrespondingWritePermSelection = {0}
read permission cannot be deselected, unless the {0} write permission, which implies the
read permission, is deselected first.
+
+# Administration/Topology/RemoteAgentInstall/#
+#--------------------------------
+view_remoteAgentInstall_agentStatus = \u4ee3\u7406\u72b6\u6001
+view_remoteAgentInstall_agentStatusDefault =
-\u5355\u51fb\u66f4\u65b0\u72b6\u6001\u6309\u94ae-
+view_remoteAgentInstall_connInfo = \u8fde\u63a5\u4fe1\u606f
+view_remoteAgentInstall_buttonFindAgent = \u67e5\u627e\u4ee3\u7406
+view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path
+view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in
common locations
+view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+view_remoteAgentInstall_error_4 = \u5b89\u88c5\u4ee3\u7406\u5931\u8d25
+view_remoteAgentInstall_error_5 = \u542f\u52a8\u4ee3\u7406\u5931\u8d25
+view_remoteAgentInstall_error_6 = \u505c\u6b62\u4ee3\u7406\u5931\u8d25
+
+view_remoteAgentInstall_installAgent = \u5b89\u88c5\u4ee3\u7406
+view_remoteAgentInstall_installInfo = \u4ee3\u7406\u5b89\u88c5\u4fe1\u606f
+view_remoteAgentInstall_installPath = \u4ee3\u7406\u5b89\u88c5\u8def\u5f84
+view_remoteAgentInstall_owner = \u6240\u6709\u8005
+view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If
you aren''t sure where an agent is installed, enter a parent directory and click
the ''Find Agent'' button to scan that directory and below. If you enter
an empty path, common locations are searched on the host for an agent install.
+view_remoteAgentInstall_promptHost = The host where the agent is or will be installed
+view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the
user on the host via SSH
+view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not
specified, the default is 22
+view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to
the host via SSH
+view_remoteAgentInstall_result = Result
+view_remoteAgentInstall_resultCode = ResultCode
+view_remoteAgentInstall_startAgent = \u542f\u52a8\u4ee3\u7406
+view_remoteAgentInstall_startAgentResults = \u4ee3\u7406\u542f\u52a8\u7ed3\u679c: [{0}]
+view_remoteAgentInstall_step = Step
+view_remoteAgentInstall_stopAgent = \u505c\u6b62\u4ee3\u7406
+view_remoteAgentInstall_stopAgentResults = \u4ee3\u7406\u505c\u6b62\u7ed3\u679c: [{0}]
+view_remoteAgentInstall_success = \u4ee3\u7406\u5b89\u88c5\u5b8c\u6210
+view_remoteAgentInstall_updateStatus = \u66f4\u65b0\u72b6\u6001
+
+# Administration/SystemSettings
+#------------------------------
+view_admin_systemSettings_cannotLoadSettings =
\u65e0\u6cd5\u83b7\u5f97\u5f53\u524d\u7cfb\u7edf\u914d\u7f6e
+view_admin_systemSettings_savedSettings =
\u4fdd\u5b58\u7cfb\u7edf\u5c5e\u6027\u6210\u529f
+view_admin_systemSettings_saveFailure = \u4fdd\u5b58\u7cfb\u7edf\u5c5e\u6027\u5931\u8d25
+view_admin_systemSettings_fixBeforeSaving =
\u4fdd\u5b58\u524d\u8bf7\u4fee\u590d\u9519\u8bef
+view_admin_systemSettings_group_general = \u57fa\u672c\u914d\u7f6e\u5c5e\u6027
+view_admin_systemSettings_group_dataMgr =
\u6570\u636e\u7ba1\u7406\u5668\u57fa\u672c\u5c5e\u6027
+view_admin_systemSettings_group_baseline = Automatic Baseline Configuration Properties
+view_admin_systemSettings_group_ldap = LDAP\u914d\u7f6e\u5c5e\u6027
+view_admin_systemSettings_cannotLoadServerDetails = Cannot load server details
+view_admin_systemSettings_serverDetails = \u670d\u52a1\u5668\u8be6\u60c5
+view_admin_systemSettings_serverDetails_buildNumber = Build Number
+view_admin_systemSettings_serverDetails_tz = \u670d\u52a1\u5668\u65f6\u533a
+view_admin_systemSettings_serverDetails_time =
\u670d\u52a1\u5668\u672c\u5730\u65f6\u95f4
+view_admin_systemSettings_serverDetails_installDir =
\u670d\u52a1\u5668\u5b89\u88c5\u76ee\u5f55
+view_admin_systemSettings_serverDetails_dbUrl = \u6570\u636e\u5e93\u8fde\u63a5URL
+view_admin_systemSettings_serverDetails_dbName = \u6570\u636e\u5e93\u4ea7\u54c1\u540d
+view_admin_systemSettings_serverDetails_dbVersion =
\u6570\u636e\u5e93\u7248\u672c\u4fe1\u606f
+view_admin_systemSettings_serverDetails_dbDriverName =
\u6570\u636e\u5e93\u9a71\u52a8\u540d
+view_admin_systemSettings_serverDetails_dbDriverVersion =
\u6570\u636e\u5e93\u9a71\u52a8\u7248\u672c
+view_admin_systemSettings_serverDetails_currentTable = Current Measurement Raw Table
+view_admin_systemSettings_serverDetails_nextRotation = Next Measurement Table Rotation
+view_admin_systemSettings_BaseURL_name = GUI Console URL
+view_admin_systemSettings_BaseURL_desc = A URL to the server GUI, used mainly within
alert email notifications.
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_name = Agent Max Quiet Time Allowed
+view_admin_systemSettings_AgentMaxQuietTimeAllowed_desc = If this amount of time passes
without hearing from an agent, that quiet agent will be considered down. This value is
specified in minutes.
+view_admin_systemSettings_EnableAgentAutoUpdate_name =
\u542f\u7528\u4ee3\u7406\u81ea\u52a8\u5347\u7ea7
+view_admin_systemSettings_EnableAgentAutoUpdate_desc = Determines if the server will
allow agents to auto-update themselves. You will not be able to download agent
distributions from the server if this is disabled.
+view_admin_systemSettings_EnableDebugMode_name = \u542f\u7528Debug\u6a21\u5f0f
+view_admin_systemSettings_EnableDebugMode_desc =
\u5982\u679c\u542f\u7528,\u670d\u52a1\u5668\u5c06\u8fdb\u5165debug\u6a21\u5f0f.
+view_admin_systemSettings_EnableExperimentalFeatures_name = Enable Experimental Features
+view_admin_systemSettings_EnableExperimentalFeatures_desc = If enabled, any experimental
features that exist in the current product will be available.
+view_admin_systemSettings_DataMaintenance_name = Database Maintenance Period
+view_admin_systemSettings_DataMaintenance_desc = How often database maintenance is
performed (for example, vacuuming if using Postgres). This is specified in hours.
+view_admin_systemSettings_AvailabilityPurge_name = Delete Availability Data Older Than
+view_admin_systemSettings_AvailabilityPurge_desc = How old availability data must be
before being purged from the database. This is specified in days.
+view_admin_systemSettings_AlertPurge_name = Delete Alerts Older Than
+view_admin_systemSettings_AlertPurge_desc = How old alert history items must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_TraitPurge_name = Delete Measurement Traits Older Than
+view_admin_systemSettings_TraitPurge_desc = How old measurement trait data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_RtDataPurge_name = Delete Response Time Data Older Than
+view_admin_systemSettings_RtDataPurge_desc = How old response time data must be before
being purged from the database. This is specified in days.
+view_admin_systemSettings_EventPurge_name = Delete Events Older Than
+view_admin_systemSettings_EventPurge_desc = How old event data must be before being
purged from the database. This is specified in days.
+view_admin_systemSettings_DataReindex_name = Reindex Data Tables Nightly
+view_admin_systemSettings_DataReindex_desc = If enabled, certain database tables will be
re-indexed periodically.
+view_admin_systemSettings_BaselineFrequency_name = Baseline Calculation Frequency
+view_admin_systemSettings_BaselineFrequency_desc = The frequency which the
auto-calculation of baselines will be performed. If 0, baseline auto-calculation is
disabled. This is specified in days.
+view_admin_systemSettings_BaselineDataSet_name = Baseline Dataset
+view_admin_systemSettings_BaselineDataSet_desc = The amount of past measurement data that
is used to determine a baseline. This is specified in days.
+view_admin_systemSettings_JAASProvider_name = \u542f\u7528LDAP
+view_admin_systemSettings_JAASProvider_desc = Should LDAP be used to determine user
identity?
+view_admin_systemSettings_LDAPUrl_name = LDAP URL
+view_admin_systemSettings_LDAPUrl_desc = URL to the LDAP Server
+view_admin_systemSettings_LDAPProtocol_name = SSL
+view_admin_systemSettings_LDAPProtocol_desc = Should communication with the LDAP server
be done over SSL?
+view_admin_systemSettings_LDAPLoginProperty_name = Login Property
+view_admin_systemSettings_LDAPLoginProperty_desc = The LDAP property that contains the
user name. Defaults to "cn". If multiple matches are found, the first entry
found is used.
+view_admin_systemSettings_LDAPFilter_name = Search Filter
+view_admin_systemSettings_LDAPFilter_desc = Any additional filters to apply when doing
the LDAP search. This is useful if the population to authenticate can be identified via a
given LDAP property, e.g. RHQUser=true
+view_admin_systemSettings_LDAPGroupFilter_name = Group Search Filter
+view_admin_systemSettings_LDAPGroupFilter_desc = LDAP search filter that must return all
LDAP groups available for authorization. This is used for LDAP group authorization.
+view_admin_systemSettings_LDAPGroupMember_name = Group Member Filter
+view_admin_systemSettings_LDAPGroupMember_desc = LDAP search filter that is used in
conjunction with the group search filter to determine user authorization. This is used for
LDAP group authorization.
+view_admin_systemSettings_LDAPBaseDN_name = Search Base
+view_admin_systemSettings_LDAPBaseDN_desc = The base of the directory tree to search for
usernames and passwords while authenticating users, e.g. ou=People,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindDN_name = \u7528\u6237\u540d
+view_admin_systemSettings_LDAPBindDN_desc = The username to connect to the LDAP server
when querying the LDAP user database. This is typically the full LDAP distinguished name
(DN) of a manager user, e.g. cn=Manager,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBindPW_name = \u5bc6\u7801
+view_admin_systemSettings_LDAPBindPW_desc = The credentials of the user used to connect
to the LDAP server when querying the LDAP user database.
+
+# Administration/Downloads
+#------------------------------
+view_admin_downloads_agentDownload = \u4ee3\u7406\u4e0b\u8f7d
+view_admin_downloads_cliDownload = \u547d\u4ee4\u884c\u5ba2\u6237\u7aef\u4e0b\u8f7d
+view_admin_downloads_bundleDownload = Bundle Deployer Download
+view_admin_downloads_connectorsDownload = Connectors Download
+
+view_admin_downloads_agent_loadError =
\u65e0\u6cd5\u83b7\u5f97\u4ee3\u7406\u7248\u672c\u4fe1\u606f
+view_admin_downloads_agent_version = \u4ee3\u7406\u7248\u672c
+view_admin_downloads_agent_buildNumber = \u4ee3\u7406Build
+view_admin_downloads_agent_md5 = \u4ee3\u7406MD5
+view_admin_downloads_agent_link_label = Link
+view_admin_downloads_agent_link_value = \u4e0b\u8f7d\u4ee3\u7406 {0} ({1})
+view_admin_downloads_agent_help = <p> \
+ \u8fd9\u662fRHQ Agent\u66f4\u65b0\u7684\u4e8c\u8fdb\u5236jar\u6587\u4ef6. The
purpose of this \
+ jar file is to allow you to install a fresh agent on a machine \
+ where an agent does not yet exist and to allow you to update \
+ an agent that is already installed on a machine. \
+ For more details, run this agent download jar with the --help command line
option:<br/> \
+ <b>java -jar <agent-download.jar> --help</b> \
+ </p> \
+ <h3>\u4ee3\u7406\u5b89\u88c5</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --install[=<new agent
directory>]</b><br/> \
+ This command will install a new agent. If you do not specify the new agent
directory, the default will be "." \
+ </p> \
+ <h3>\u4ee3\u7406\u66f4\u65b0</h3> \
+ <p> \
+ <b>java -jar <agent-download.jar> --update[=<old agent
home>]</b><br/> \
+ This will update an existing agent that was already installed. \
+ If you do not specify the directory where the old, existing agent was installed, it
will assumed to be "rhq-agent". \
+ </p>
+
+view_admin_downloads_cli_loadError = \u65e0\u6cd5\u83b7\u5f97CLI\u7248\u672c\u4fe1\u606f
+view_admin_downloads_cli_version = CLI\u7248\u672c
+view_admin_downloads_cli_buildNumber = CLI Build
+view_admin_downloads_cli_md5 = CLI MD5
+view_admin_downloads_cli_link_label = Link
+view_admin_downloads_cli_link_value = \u4e0b\u8f7dCLI {0} ({1})
+view_admin_downloads_cli_help = <p> \
+ This is the Command Line Client tool, otherwise known as the CLI. \
+ It is a standalone tool that runs from within a console and provides a \
+ command line interface to the RHQ Server. You can invoke commands via the CLI \
+ as well as run scripts to perform automated tasks. See the documentation for \
+ more information on how to install and use the CLI. \
+ </p>
+
+view_admin_downloads_bundle_loadError = Cannot get bundle deployer info
+view_admin_downloads_bundle_link_label = Link
+view_admin_downloads_bundle_link_value = Download Bundle Deployer {0}
+view_admin_downloads_bundle_help = <p> \
+ This is the Bundle Deployer tool. It is for use by developers and packagers of RHQ
bundles. \
+ This standalone tool allows you to test your bundles and their recipes from a console.
\
+ </p>
+
+view_admin_downloads_connectors_loadError = Cannot get connectors info
+view_admin_downloads_connectors_none = No connectors are available for download
+view_admin_downloads_connectors_help = Connectors are software that is needed in order
for some products to be manageable by RHQ. You install connectors into some managed
products so RHQ agents can talk to them. See the documentation for more information.
+
+# Measurement Templates view
+view_admin_measTemplates_title = Template Metric Collection Schedules
+view_admin_measTemplates_updateExisting_title = Update Existing Schedules
+view_admin_measTemplates_updateExisting_tooltip = Check this box to update the collection
schedules for the selected metrics on all existing resources of this type. If this is not
checked, the template schedules will only be applied to new resources of this type that
are added to inventory in the future.
+
+#==================== Alerts ======================
+view_alerts_table_title_group = \u7ec4\u544a\u8b66\u5386\u53f2
+view_alerts_table_title_resource = \u8d44\u6e90\u544a\u8b66\u5386\u53f2
+view_alerts_table_filter_priority = \u4f18\u5148\u7ea7\u8fc7\u6ee4
+view_alerts_field_created_time = \u4ea7\u751f\u65f6\u95f4
+view_alerts_field_modified_time = \u4fee\u6539\u65f6\u95f4
+view_alerts_field_enabled = \u542f\u7528
+view_alerts_field_ack_time = \u786e\u8ba4\u65f6\u95f4
+view_alerts_field_ack_subject = Acknowledge Subject
+view_alerts_field_ack_status = \u72b6\u6001
+view_alerts_field_ack_status_noAck = No Ack
+view_alerts_field_ack_status_noAckHover = \u8fd8\u6ca1\u786e\u8ba4\u7684
+view_alerts_field_ack_status_ack = Ack ({0})
+view_alerts_field_ack_status_ackHover = \u786e\u8ba4\u8005{0}\u4e8e{1}
+view_alerts_field_name = Name
+view_alerts_field_condition_text = Condition Text
+view_alerts_field_condition_text_none = No Conditions
+view_alerts_field_condition_text_many = Multiple Conditions
+view_alerts_field_condition_value = Condition Value
+view_alerts_field_priority = \u4f18\u5148\u7ea7
+view_alerts_field_parent = \u7236
+view_alerts_field_protected = Protected
+view_alerts_field_protected_tooltip = If true, this definition is protected from being
changed by the parent definition. In other words, the parent definition settings will not
override this definition.
+view_alerts_loadFailed = Failed to fetch alerts data
+view_alerts_delete_confirm = Delete the selected alert(s)?
+view_alerts_delete_confirm_all = Delete all alerts from this source?
+view_alerts_delete_success = Successfully deleted {0} alerts
+view_alerts_delete_failure = Failed to delete alerts with id''s: {0}
+view_alerts_delete_failure_all = Failed to delete all alerts from this source
+view_alerts_ack_confirm = Acknowledge the selected alert(s)?
+view_alerts_ack_confirm_all = Acknowledge all alerts from this source?
+view_alerts_ack_success = Successfully acknowledged {0} alerts
+view_alerts_ack_failure = Failed to acknowledge alerts with id''s: {0}
+view_alerts_ack_failure_all = Failed to acknowledge all alerts from this source
+view_alert_details_loadFailed = Failed to fetch alert details
+view_alert_details_field_ack_by = \u786e\u8ba4\u8005
+view_alert_details_field_ack_at = \u786e\u8ba4\u4e8e
+view_alert_details_field_recovery_info = Recovery Info
+view_alert_definition_for_type = \u67e5\u770b\u6a21\u677f
+view_alert_definition_for_group = View Group Definition
+view_alert_definitions_table_title_group = Group Alert Definitions
+view_alert_definitions_table_title_resource = Resource Alert Definitions
+view_alert_definitions_loadFailed = Failed to fetch alert definition data
+view_alert_definitions_loadFailed_single = Failed to fetch data for alert definition with
id {0}
+view_alert_definitions_enable_confirm = Enable the selected alert definition(s)?
+view_alert_definitions_enable_success = Successfully enabled {0} alert definitions
+view_alert_definitions_enable_failure = Failed to enable the selected alert definitions
+view_alert_definitions_disable_confirm = Disable the selected alert definition(s)?
+view_alert_definitions_disable_success = Successfully disabled {0} alert definitions
+view_alert_definitions_disable_failure = Failed to disable the selected alert
definitions
+view_alert_definitions_delete_confirm = Delete the selected alert definition(s)?
+view_alert_definitions_delete_success = Successfully deleted {0} alert definitions
+view_alert_definitions_delete_failure = Failed to deleted the selected alert definitions
+view_alert_definitions_create_success = Alert definition successfully created
+view_alert_definitions_create_failure = Alert definition creation failed
+view_alert_definitions_update_success = Alert definition successfully updated
+view_alert_definitions_update_failure = Alert definition update failed
+view_alert_definition_condition_editor_option_label = Condition Type
+view_alert_definition_condition_editor_option_availability = Availability Change
+view_alert_definition_condition_editor_option_metric_threshold = Measurement Absolute
Value Threshold
+view_alert_definition_condition_editor_option_metric_baseline = Measurement Baseline
Threshold
+view_alert_definition_condition_editor_option_metric_change = Measurement Value Change
+view_alert_definition_condition_editor_option_metric_calltime_threshold = Call Time Value
Threshold
+view_alert_definition_condition_editor_option_metric_calltime_change = Call Time Value
Change
+view_alert_definition_condition_editor_option_metric_trait_change = Trait Value Change
+view_alert_definition_condition_editor_option_operation = Operation Execution
+view_alert_definition_condition_editor_option_resource_configuration = Resource
Configuration Change
+view_alert_definition_condition_editor_option_event = \u4e8b\u4ef6\u68c0\u6d4b
+view_alert_definition_condition_editor_avilability_tooltip = Specify the availability
state change that will trigger the condition.
+view_alert_definition_condition_editor_avilability_value = \u53ef\u7528\u6027
+view_alert_definition_condition_editor_avilability_option_up = Comes up
+view_alert_definition_condition_editor_avilability_option_down = Goes down
+view_alert_definition_condition_editor_metric_common_definition_not_found = Should have
found metric definition - something is wrong
+view_alert_definition_condition_editor_metric_threshold_tooltip = Specify the threshold
value that, when violated, triggers the condition. The value you specify is an absolute
value with an optional units specifier.
+view_alert_definition_condition_editor_metric_threshold_name = \u6307\u6807
+view_alert_definition_condition_editor_metric_threshold_value = \u6307\u6807\u503c
+view_alert_definition_condition_editor_metric_threshold_value_tooltip = The threshold
value of the metric that will trigger the condition when compared using the selected
comparator.
+view_alert_definition_condition_editor_metric_threshold_comparator = Comparator
+view_alert_definition_condition_editor_metric_threshold_comparator_less = \u5c0f\u4e8e
+view_alert_definition_condition_editor_metric_threshold_comparator_equal = \u7b49\u4e8e
+view_alert_definition_condition_editor_metric_threshold_comparator_greater =
\u5927\u4e8e
+view_alert_definition_condition_editor_metric_threshold_comparator_tooltip = How a
collected metric value should be compared to the given threshold value
+view_alert_definition_condition_editor_metric_baseline_tooltip = Specify the baseline
value that must be violated to trigger the condition. The value you specify is a
percentage of the given baseline value.
+view_alert_definition_condition_editor_metric_baseline_percentage = Baseline Percentage
+view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = A collected
metric value will trigger this condition when compared to this percentage of the selected
baseline value using the selected comparator
+view_alert_definition_condition_editor_metric_baseline_value = Baseline
+view_alert_definition_condition_editor_metric_change_tooltip = Specify the metric whose
value must change to trigger the condition.
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Specify the
calltime threshold value that, when violated, triggers the condition. The value you
specify is an absolute value with an optional units specifier. You also must specify which
calltime limit to compare the value with (minimum, maximum or average calltime value).
+view_alert_definition_condition_editor_metric_calltime_common_name = Call Time Metric
+view_alert_definition_condition_editor_metric_calltime_common_limit = Call Time Limit
+view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip = The
calltime limit value that is to be compared with the given value
+view_alert_definition_condition_editor_metric_calltime_common_regex =
\u6b63\u5219\u8868\u8fbe\u5f0f
+view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip = If
specified, this is a regular expression that must match a call destination in order to
trigger the condition.
+view_alert_definition_condition_editor_metric_calltime_common_comparator = Comparator
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks =
Shrinks
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows = Grows
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes =
Changes
+view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip = How a
collected calltime value should be compared to the given calltime limit
+view_alert_definition_condition_editor_metric_calltime_threshold_value = Call Time Value
+view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip = The
threshold value of the metric that will trigger the condition when compared using the
selected comparator.
+view_alert_definition_condition_editor_metric_calltime_change_tooltip = Specify the
calltime value that, when changed at least a specified amount, triggers the condition. You
must specify which calltime limit to check (minimum, maximum or average calltime value)
and the percentage of change that must occur.
+view_alert_definition_condition_editor_metric_calltime_change_percentage = Percentage
Change
+view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip = A
collected calltime value will trigger this condition when it differs by at least this
percentage of the selected calltime limit value
+view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait
whose value must change to trigger the condition.
+view_alert_definition_condition_editor_metric_trait_change_value = Trait
+view_alert_definition_condition_editor_operation_tooltip = Specify the result that must
occur when the selected operation is executed in order to trigger the condition.
+view_alert_definition_condition_editor_operation_value = Operation
+view_alert_definition_condition_editor_operation_status = \u64cd\u4f5c\u72b6\u6001
+view_alert_definition_condition_editor_operation_status_inprogress = In Progress
+view_alert_definition_condition_editor_operation_status_success = Success
+view_alert_definition_condition_editor_operation_status_failure = Failure
+view_alert_definition_condition_editor_operation_status_canceled = Canceled
+view_alert_definition_condition_editor_resource_configuration_tooltip = This condition is
triggered when the resource configuration changes.
+view_alert_definition_condition_editor_event_tooltip = Specify the event severity that an
event message must be reported with in order to trigger this condition. If you specify an
optional regular expression, the event message must also match that regular expression in
order for the condition to trigger.
+view_alert_definition_condition_editor_event_severity = Event Severity
+view_alert_definition_condition_editor_event_severity_debug = Debug
+view_alert_definition_condition_editor_event_severity_info = Info
+view_alert_definition_condition_editor_event_severity_warn = Warn
+view_alert_definition_condition_editor_event_severity_error = Error
+view_alert_definition_condition_editor_event_severity_fatal = Fatal
+view_alert_definition_condition_editor_event_regex = Regular Expression
+view_alert_definition_condition_editor_event_regex_tooltip = If specified, this is a
regular expression that must match a collected event message in order to trigger the
condition.
+view_alert_definition_condition_editor_common_min = Minimum
+view_alert_definition_condition_editor_common_avg = Average
+view_alert_definition_condition_editor_common_max = Maximum
+view_alert_definition_condition_editor_delete_confirm =
\u5220\u9664\u9009\u5b9a\u7684\u8b66\u62a5\u6761\u4ef6?
+view_alert_definition_notification_editor_title_add = \u6dfb\u52a0\u901a\u77e5
+view_alert_definition_notification_editor_title_edit = \u7f16\u8f91\u901a\u77e5
+view_alert_definition_notification_editor_sender = \u901a\u77e5\u53d1\u9001\u8005
+view_alert_definition_notification_editor_none_available = No alert senders available
+view_alert_definition_notification_editor_loadFailed = Cannot get alert senders
+view_alert_definition_notification_editor_loadFailed_single = Cannot get alert sender
configuration definition
+view_alert_definition_notification_editor_saveFailed = Cannot save the notification
configuration
+view_alert_definition_notification_editor_field_sender = Sender
+view_alert_definition_notification_editor_field_configuration = Configuration
+view_alert_definition_notification_editor_field_configuration_not_loaded = Unknown
+view_alert_definition_notification_editor_field_configuration_loadFailed = Failed to get
notification configuration preview
+view_alert_definition_notification_editor_delete_confirm =
\u4f60\u786e\u5b9a\u8981\u5220\u9664\u9009\u5b9a\u7684\u544a\u8b66\u901a\u77e5?
+view_alert_definition_notification_operation_editor_mode_title = Resource Selection Mode
+view_alert_definition_notification_operation_editor_mode_this = This Resource
+view_alert_definition_notification_operation_editor_mode_specific =
\u6307\u5b9a\u8d44\u6e90
+view_alert_definition_notification_operation_editor_mode_relative = Relative Resource
+view_alert_definition_notification_operation_editor_mode_unknown = UNKNOWN OPTION - THIS
IS A BUG
+view_alert_definition_notification_operation_editor_common_operation = Operation
+view_alert_definition_notification_operation_editor_specific_resource = Resource
+view_alert_definition_notification_operation_editor_specific_pick_button = Pick
+view_alert_definition_notification_operation_editor_specific_pick_text = Pick a
resource...
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid = Please
pick a resource
+view_alert_definition_notification_operation_editor_specific_pick_error_no_operation =
Please pick a resource that has one or more operations
+view_alert_definition_notification_operation_editor_relative_ancestor = Start Search
From
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip = Select
the top of the type hierarchy from which to search its descendant tree for the Filter By
type
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed = Cannot
get type ancestry
+view_alert_definition_notification_operation_editor_relative_ancestor_root = Root
Ancestor Type
+view_alert_definition_notification_operation_editor_relative_descendant = Then Filter By
+view_alert_definition_notification_operation_editor_relative_descendant_tooltip = The
resource type to search for under the root type defined in the Start Search From
selection.
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip =
A specific name to uniquely identify a resource when more than one resource of the
selected type might exist. This is optional if there will only ever be one resource of the
resource type in the selected type hierarchy.
+view_alert_definition_notification_operation_editor_relative_descendant_loadFailed =
Cannot get type descendants
+view_alert_definition_notification_operation_editor_operations_loadFailed = Failed to
load the list of available operations
+view_alert_definition_notification_operation_editor_operations_no_parameters = This
operation does not take any parameters
+view_alert_definition_notification_role_editor_loadFailed = Cannot determine current
roles - starting empty
+view_alert_definition_notification_role_editor_restoreFailed = Cannot use current roles -
starting empty
+view_alert_definition_notification_role_editor_saveFailed = Cannot save the selected
roles
+view_alert_definition_notification_user_editor_loadFailed = Cannot determine current
users - starting empty
+view_alert_definition_notification_user_editor_restoreFailed = Cannot use current users -
starting empty
+view_alert_definition_notification_user_editor_saveFailed = Cannot save the selected
users
+view_alert_definition_notification_cliScript_editor_repository = Repository
+view_alert_definition_notification_cliScript_editor_script = Script
+view_alert_definition_notification_cliScript_editor_whichUser = User To Run The Script
As
+view_alert_definition_notification_cliScript_editor_thisUser = Myself
+view_alert_definition_notification_cliScript_editor_anotherUser =
\u5176\u4ed6\u7528\u6237
+view_alert_definition_notification_cliScript_editor_verifyAuthentication = Verify
+view_alert_definition_notification_cliScript_editor_loadFailed = Loading the CLI
Notification Editor Failed.
+view_alert_definition_notification_cliScript_editor_selectRepoFirst =
\u9996\u5148\u9009\u62e9\u5e93.
+view_alert_definition_notification_cliScript_editor_existingScript = Existing Script
+view_alert_definition_notification_cliScript_editor_uploadNewScript =
\u4e0a\u4f20\u65b0\u811a\u672c
+view_alert_definition_notification_cliScript_editor_newScriptVersion = Version
+view_alert_definition_notification_cliScript_editor_selectRepo = Select the repository
where the script should reside
+view_alert_definition_recovery_editor_disable_when_fired = Disable When Fired
+view_alert_definition_recovery_editor_disable_when_fired_tooltip = Indicates if this
alert will be disabled after it fires. Once disabled, the alert can be manually re-enabled
or a recovery alert can be set up to automatically re-enable it. If this alert is a
recovery alert itself, this setting cannot be turned on.
+view_alert_definition_recovery_editor_recovery_alert = Recover Alert
+view_alert_definition_recovery_editor_recovery_alert_tooltip = The target alert that will
be recovered (i.e. re-enabled) after this alert triggers. Do not select an alert here if
you are not defining a recovery alert.
+view_alert_definition_recovery_editor_loadFailed = Cannot build recovery menu
+view_alert_definition_recovery_editor_none_available = None
+view_alert_common_tab_general = \u57fa\u672c\u5c5e\u6027
+view_alert_common_tab_conditions = Conditions
+view_alert_common_tab_conditions_modal_title = Add Condition
+view_alert_common_tab_conditions_expression = Fire alert when
+view_alert_common_tab_conditions_expression_tooltip = Determines if ANY or ALL of the
conditions must evaluate to true in order for the entire condition set to be considered
true.
+view_alert_common_tab_conditions_text = Condition
+view_alert_common_tab_conditions_value = Value
+view_alert_common_tab_conditions_type_availability = Availability Change
+view_alert_common_tab_conditions_type_availability_down = Went down
+view_alert_common_tab_conditions_type_availability_up = Came up
+view_alert_common_tab_conditions_type_metric_threshold = Metric Value Threshold
+view_alert_common_tab_conditions_type_metric_calltime_threshold = Call Time Value
Threshold
+view_alert_common_tab_conditions_type_metric_calltime_destination = with call destination
matching
+view_alert_common_tab_conditions_type_metric_calltime_change = Call Time Value Changes
+view_alert_common_tab_conditions_type_metric_calltime_change_verb = by at least
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows = Grows
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks = Shrinks
+view_alert_common_tab_conditions_type_metric_calltime_delta_other = Changes
+view_alert_common_tab_conditions_type_metric_baseline = \u6307\u6807\u57fa\u51c6
+view_alert_common_tab_conditions_type_metric_baseline_verb = of
+view_alert_common_tab_conditions_type_metric_change = Metric Value Change
+view_alert_common_tab_conditions_type_metric_trait_change = Trait Change
+view_alert_common_tab_conditions_type_operation = Operation Execution
+view_alert_common_tab_conditions_type_operation_status = with result status
+view_alert_common_tab_conditions_type_resource_configuration = Resource Configuration
Change
+view_alert_common_tab_conditions_type_event = \u4e8b\u4ef6\u68c0\u6d4b
+view_alert_common_tab_conditions_type_event_matching = with event source matching
+view_alert_common_tab_conditions_recovery_enabled = Triggered ''{0}'' to
be re-enabled
+view_alert_common_tab_conditions_recovery_disabled = This alert caused its alert
definition to be disabled
+view_alert_common_tab_notifications = \u901a\u77e5
+view_alert_common_tab_notifications_sender = Sender
+view_alert_common_tab_notifications_status = \u72b6\u6001
+view_alert_common_tab_notifications_message = \u6d88\u606f
+view_alert_common_tab_dampening = Dampening
+view_alert_common_tab_dampening_category_none = None
+view_alert_common_tab_dampening_category_none_tooltip = Dampening is disabled. Every time
the condition set is true, an alert will be triggered.
+view_alert_common_tab_dampening_category_consecutive_count = Consecutive
+view_alert_common_tab_dampening_category_consecutive_count_tooltip = An alert is
triggered once every X occurrences the condition set is true consecutively.
+view_alert_common_tab_dampening_category_partial_count = Last N Evaluations
+view_alert_common_tab_dampening_category_partial_count_tooltip = An alert is triggered
once every X occurrences the condition set is true during the last N evaluations of the
condition set.
+view_alert_common_tab_dampening_category_duration_count = Time Period
+view_alert_common_tab_dampening_category_duration_count_tooltip = An alert is triggered
once every X occurrences the condition set is true within a given time period.
+view_alert_common_tab_dampening_consecutive_occurrences_label = Occurrences
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip = The number of
times the condition set must be consecutively true before the alert is triggered
+view_alert_common_tab_dampening_partial_occurrences_label = Occurrences
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip = The number of times
the condition set must be true during the last N evaluations before the alert is
triggered.
+view_alert_common_tab_dampening_partial_evalatuions_label = \u8bc4\u4f30
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip = The total number of
times the condition set will be tested to see if the given number of occurrences are
true.
+view_alert_common_tab_dampening_duration_occurrences_label = Occurrences
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip = The number of times
the condition set must be true during the given time period before the alert is
triggered.
+view_alert_common_tab_dampening_duration_period_label = \u65f6\u95f4\u6bb5
+view_alert_common_tab_dampening_duration_period_label_tooltip = The time span in which
the condition set will be tested to see if the given number of occurrences are true.
+view_alert_common_tab_recovery = \u8fd8\u539f
+view_alert_common_tab_invalid_condition_category = Invalid condition category - please
report this as a bug: {0}
+view_alert_common_tab_invalid_dampening_category = Invalid dampening category - please
report this as a bug: {0}
+view_alert_common_tab_invalid_time_units = \u65e0\u6548\u65f6\u95f4\u5355\u4f4d -
\u8bf7\u62a5\u544abug: {0}
+
+# Auto Discovery Queue
+#----------------------------
+view_autoDiscoveryQ_title = \u81ea\u52a8\u53d1\u73b0\u961f\u5217
+view_autoDiscoveryQ_import = \u5bfc\u5165
+view_autoDiscoveryQ_ignore = \u5ffd\u7565
+view_autoDiscoveryQ_ignored = Ignored
+view_autoDiscoveryQ_unignore = Unignore
+view_autoDiscoveryQ_committed = Committed
+view_autoDiscoveryQ_deleted = Deleted
+view_autoDiscoveryQ_uninventoried = Uninventoried
+view_autoDiscoveryQ_new = New
+view_autoDiscoveryQ_newAndIgnored = New and Ignored
+view_autoDiscoveryQ_importFailure = \u5bfc\u5165\u8d44\u6e90\u5931\u8d25
+view_autoDiscoveryQ_importSuccessful = \u6210\u529f\u5bfc\u5165\u88ab\u9009\u8d44\u6e90.
+view_autoDiscoveryQ_ignoreFailure = Failed to ignore resources
+view_autoDiscoveryQ_ignoreSuccessful = You have successfully ignored the selected
resources.
+view_autoDiscoveryQ_unignoreFailure = Failed to unignore resources
+view_autoDiscoveryQ_unignoreSuccessful =
\u6210\u529f\u4f7f\u9009\u4e2d\u7684\u8d44\u6e90\u751f\u6548.
+view_autoDiscoveryQ_noperm =
(\u60a8\u6ca1\u6709\u6743\u9650\u67e5\u770b\u81ea\u52a8\u53d1\u73b0\u961f\u5217)
+view_autoDiscoveryQ_noItems = \u65e0\u6761\u76ee\u663e\u793a
+view_autoDiscoveryQ_field_parentId = \u7236ID
+view_autoDiscoveryQ_field_name = \u8d44\u6e90\u540d\u79f0
+view_autoDiscoveryQ_field_key = \u8d44\u6e90Key
+view_autoDiscoveryQ_field_discoveryTime = \u53d1\u73b0\u65f6\u95f4
+view_autoDiscoveryQ_field_inventoryStatus = \u6e05\u5355\u72b6\u6001
+view_autoDiscoveryQ_loadFailure
=\u52a0\u8f7d\u8d44\u6e90\u6e05\u5355\u53d1\u73b0\u961f\u5217\u5931\u8d25
+view_autoDiscoveryQ_showStatus = \u663e\u793a\u72b6\u6001
+view_autoDiscoveryQ_confirmSelect = \u662f\u5426\u9009\u4e2d\u5b50\u8282\u70b9\uff1f
+
+#==================== Bundles ======================
+
+# some common bundle terms
+view_bundle_bundle = \u63d2\u4ef6
+view_bundle_bundles = \u63d2\u4ef6\u96c6
+view_bundle_bundleDestinations = \u63d2\u4ef6\u76ee\u7684\u5730
+view_bundle_bundleDeployment = \u63d2\u4ef6\u90e8\u7f72
+view_bundle_bundleDeployments = \u63d2\u4ef6\u90e8\u7f72
+view_bundle_bundleFiles = \u63d2\u4ef6\u6587\u4ef6
+view_bundle_bundleType = \u63d2\u4ef6\u7c7b\u578b
+view_bundle_bundleVersion = \u63d2\u4ef6\u7248\u672c
+view_bundle_bundleVersions = \u63d2\u4ef6\u7248\u672c
+view_bundle_deploy = \u90e8\u7f72
+view_bundle_deployed = \u5df2\u90e8\u7f72
+view_bundle_deployDir = \u90e8\u7f72\u76ee\u5f55
+view_bundle_deployments = \u90e8\u7f72
+view_bundle_destinations = \u76ee\u7684\u5730
+view_bundle_files = \u6587\u4ef6
+view_bundle_latestVersion = \u6700\u65b0\u7248\u672c
+view_bundle_recipe = Recipe
+view_bundle_revert = \u8fd8\u539f
+view_bundle_purge = \u6e05\u9664
+view_bundle_versions = \u7248\u672c
+view_bundle_deleteConfirm = Are you sure you want to delete this bundle? All versions,
destinations and deployments for this bundle will also be deleted.
+
+# individual bundle views/wizards
+view_bundle_fileListView_fileSize = \u6587\u4ef6\u5927\u5c0f
+view_bundle_fileListView_md5 = MD5
+view_bundle_fileListView_sha256 = SHA256
+view_bundle_fileListView_loadFailure = \u52a0\u8f7d\u63d2\u4ef6\u6587\u4ef6\u5931\u8d25
+view_bundle_version_backToBundle = \u8fd4\u56de\u63d2\u4ef6
+view_bundle_version_bundleVersionTagUpdateFailure =
\u66f4\u65b0\u63d2\u4ef6\u7248\u672c\u6807\u8bb0\u5931\u8d25
+view_bundle_version_bundleVersionTagUpdateSuccessful =
\u66f4\u65b0\u63d2\u4ef6\u7248\u672c\u6807\u8bb0\u6210\u529f
+view_bundle_version_deleteConfirm =
\u4f60\u786e\u5b9a\u8981\u5220\u9664\u63d2\u4ef6\u7248\u672c?
+view_bundle_version_deleteFailure = Failed to delete the bundle version [{0}]
+view_bundle_version_deleteSuccessful = You successfully deleted the bundle version [{0}]
+view_bundle_version_loadFailure = Failed to load bundle version
+view_bundle_tree_loadFailure = Failed to load bundle data
+view_bundle_revertWizard_title = \u63d2\u4ef6\u8fd8\u539f
+view_bundle_revertWizard_windowTitle = \u63d2\u4ef6\u8fd8\u539f\u5411\u5bfc
+view_bundle_revertWizard_getInfoStep_name = \u63d0\u4f9b\u8fd8\u539f\u4fe1\u606f
+view_bundle_revertWizard_getInfoStep_revertDeployName = Revert Deploy Name
+view_bundle_revertWizard_getInfoStep_revertDeployDesc = Revert Deploy Description
+view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERT
From]\\n{0}\\n\\n[REVERT To]\\n{1}
+view_bundle_revertWizard_getInfoStep_cleanDeploy = Clean Deployment? (this will delete an
old, existing deploy directory prior to starting the revert deployment)
+view_bundle_revertWizard_getInfoStep_getNameFailure = Failed to get revert deployment
name
+view_bundle_revertWizard_confirmStep_name = \u90e8\u7f72\u8fd8\u539f\u786e\u8ba4
+view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = No live deployment was
found for the destination
+view_bundle_revertWizard_confirmStep_noLiveDeployment = No live deployment was found for
the destination [{0}]
+view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = The live deployment
cannot be reverted because there is no prior deployment
+view_bundle_revertWizard_confirmStep_noPriorDeployment = The live deployment [{0}] cannot
be reverted because there is no prior deployment for the destination [{1}]
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = Failed to find live
deployment; cannot revert
+view_bundle_revertWizard_confirmStep_liveDeployment = Live Deployment
+view_bundle_revertWizard_confirmStep_prevDeployment = Previous Deployment
+view_bundle_revertWizard_confirmStep_confirmation = Reverting Live Deployment to Previous
Deployment. Click "Next" to continue...
+view_bundle_revertWizard_revertStep_name = Deploy Bundle to Destination Platforms
+view_bundle_revertWizard_revertStep_reverting = \u8fd8\u539f\u4e2d...
+view_bundle_revertWizard_revertStep_scheduled = You have successfully scheduled the
revert deployment!
+view_bundle_revertWizard_revertStep_scheduledDetails = You have successfully scheduled to
revert the bundle deployment [{0}] from resource group [{1}]
+view_bundle_revertWizard_revertStep_scheduledFailure = Failed to schedule revert
deployment!
+view_bundle_list_loadFailure = Failed to load the bundle to be deployed [{0}]
+view_bundle_list_singleLoadFailure = Failed to get a single bundle to be deployed [{0}]
+view_bundle_list_versionsCount = \u7248\u672c\u6570\u91cf
+view_bundle_list_destinationsCount = Destinations Count
+view_bundle_list_loadWithLatestFailure = Failed to load bundle with the latest version
data
+view_bundleVersion_loadFailure = Failed to load bundle version data
+view_bundle_list_backToAll = Back to All Bundles
+view_bundle_list_tagUpdateFailure = Failed to update bundle tags
+view_bundle_list_tagUpdateSuccessful = You have successfully updated the bundle tags
+view_bundle_list_deleteConfirm = Are you sure you want to delete the selected bundles?
+view_bundle_list_deletesFailure = Failed to delete the bundles
+view_bundle_list_deletesSuccessful = You successfully deleted the bundles
+view_bundle_list_deleteFailure = Failed to delete the bundle [{0}]
+view_bundle_list_deleteSuccessful = You successfully deleted the bundle [{0}]
+view_bundle_list_error1 = Failed to load bundle to deploy [{0}]
+view_bundle_list_error2 = Failed to get a single bundle to deploy [{0}]
+view_bundle_list_error3 = Failed to load bundle
+view_bundle_dest_group = \u7ec4
+view_bundle_dest_created = \u5df2\u521b\u5efa
+view_bundle_dest_deployDir = \u53d1\u5e03\u76ee\u5f55
+view_bundle_dest_lastDeployedVersion = \u4e0a\u6b21\u53d1\u5e03\u7248\u672c
+view_bundle_dest_lastDeploymentDate = \u4e0a\u6b21\u53d1\u5e03\u65e5\u671f
+view_bundle_dest_lastDeploymentStatus = \u4e0a\u6b21\u53d1\u5e03\u72b6\u6001
+view_bundle_dest_loadFailure = Failed to load bundle destinations
+view_bundle_dest_loadFailureVersionInfo = Failed to load bundle destination deployed
version information
+view_bundle_dest_backToBundle = Back to Bundle
+view_bundle_dest_tagUpdateFailure = Failed to update bundle destination tags
+view_bundle_dest_tagUpdateSuccessful = You have successfully updated the bundle
destination tags
+view_bundle_dest_purgeConfirm = This will purge the bundle content from all remote
machines. Are you sure you want to do this?
+view_bundle_dest_purgeFailure = Failed to purge the bundle destination [{0}] from some or
all of the remote machines.
+view_bundle_dest_purgeSuccessful = You successfully purged the bundle destination [{0}]
from all of the remote machines.
+view_bundle_dest_revertConfirm = This will revert all remote machines back to the
previous bundle deployment. Are you sure you want to do this?
+view_bundle_dest_deleteConfirm = Are you sure you want to delete this bundle destination?
This only deletes it from the database; all bundle content that was deployed to this
destination on remote machines will remain.
+view_bundle_dest_deleteFailure = Failed to delete the bundle destination [{0}]
+view_bundle_dest_deleteSuccessful = You successfully deleted the bundle destination
[{0}]
+view_bundle_resDeployDS_loadFailure = Failed to load bundle resource deployments
+view_bundle_deploy_name = \u90e8\u7f72\u540d
+view_bundle_deploy_time = \u90e8\u7f72\u65f6\u95f4
+view_bundle_deploy_loadDeployFailure = Failed to load bundle deployments
+view_bundle_deploy_action = Action
+view_bundle_deploy_installDetails = \u5b89\u88c5\u7ec6\u8282
+view_bundle_deploy_backButton = \u8fd4\u56de
+view_bundle_deploy_tagUpdateFailure = Failed to update bundle deployment tags
+view_bundle_deploy_tagUpdateSuccessful = You have successfully updated the bundle
deployment tags
+view_bundle_deploy_deploymentPlatforms = \u53d1\u5e03\u5e73\u53f0
+view_bundle_deploy_selectARow = \u9009\u4e2d\u884c\u663e\u793a\u5b89\u88c5\u7ec6\u8282
+view_bundle_deploy_operatingSystem = \u64cd\u4f5c\u7cfb\u7edf
+view_bundle_deploy_loadFailure = Failed to load bundle deployment
+view_bundle_deploy_loadBundleFailure = Failed to find bundle
+view_bundle_deploy_deployedBy = \u90e8\u7f72\u8005
+view_bundle_deploy_clickForError = Click the icon for the error message
+view_bundle_deploy_deleteConfirm = Are you sure you want to delete this bundle
deployment?
+view_bundle_deploy_deleteFailure = Failed to delete the bundle deployment [{0}]
+view_bundle_deploy_deleteSuccessful = You successfully deleted the bundle deployment
[{0}]
+view_bundle_createWizard_title = Create Bundle
+view_bundle_createWizard_windowTitle = Bundle Creation Wizard
+view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}],
version = [{1}]
+view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle
[{0}], version = [{1}] - the bundle may still exist in the database
+view_bundle_createWizard_noBundleTypesSupported = No bundle types are supported - you
must deploy a valid plugin that supports bundle deployments
+view_bundle_createWizard_noBundleTypesAvail = No bundle types are available
+view_bundle_createWizard_loadBundleFileFailure = Cannot obtain bundle file information
from server
+view_bundle_createWizard_enterUrl = Please enter a valid URL where the bundle
distribution file can be downloaded from
+view_bundle_createWizard_enterRecipe = Please supply a valid recipe
+view_bundle_createWizard_uploadInProgress = Upload is in progress... This can take
several minutes for large files
+view_bundle_createWizard_uploadStepName = Upload Bundle Files
+view_bundle_createWizard_noAdditionalFilesNeeded = No additional files need to be
uploaded for this bundle
+view_bundle_createWizard_failedToUploadFile = Failed to upload bundle file
+view_bundle_createWizard_failedToUploadDistroFile = Failed to upload bundle distribution
file
+view_bundle_createWizard_bundleDistro = Bundle Distribution
+view_bundle_createWizard_youMustChooseOne = You must choose one option in order to create
a bundle!
+view_bundle_createWizard_urlOption = URL
+view_bundle_createWizard_uploadOption = \u4e0a\u4f20
+view_bundle_createWizard_recipeOption = Recipe
+view_bundle_createWizard_provideBundleDistro = Provide a Bundle Distribution
+view_bundle_createWizard_clickToUploadRecipe = Click to load a recipe file
+view_bundle_createWizard_createFailure = Failed to create the bundle
+view_bundle_createWizard_createSuccessful = You have successfully created a bundle named
[{0}] with a version of [{1}]
+
+view_bundle_deployWizard_deploying = \u90e8\u7f72\u4e2d...
+view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms
+view_bundle_deployWizard_deploymentCreated = Created Deployment...
+view_bundle_deployWizard_deploymentCreatedDetail = You have created the deployment [{0}]
with the description [{1}]
+view_bundle_deployWizard_deploymentCreatedDetail_concise = You have created the
deployment [{0}]
+view_bundle_deployWizard_destinationCreatedDetail = You have created the destination
[{0}] with the description [{1}]
+view_bundle_deployWizard_destinationCreatedDetail_concise = You have created the
destination [{0}]
+view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!
+view_bundle_deployWizard_deploymentScheduledDetail = You have scheduled the bundle
deployment [{0}] to the destination group [{1}]
+view_bundle_deployWizard_deploymentScheduledDetail_concise = You have scheduled the
bundle deployment
+view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel
+view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel
+view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!
+view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}
+view_bundle_deployWizard_error_5 = Failed to Create Deployment!
+view_bundle_deployWizard_error_6 = Failed to create deployment: {0}
+view_bundle_deployWizard_error_7 = Failed to get deployment name.
+view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop
down
+view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage
+view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist.
(Note, for an existing destination deploy from the Destination view)
+view_bundle_deployWizard_error_11 = Failed to find defined deployments.
+view_bundle_deployWizard_error_12 = Failed to find defined bundles.
+view_bundle_deployWizard_getConfigStep = Set Deployment Configuration
+view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle
version.
+view_bundle_deployWizard_getDestStep = New Destination
+view_bundle_deployWizard_getDest_name = Destination Name
+view_bundle_deployWizard_getDest_desc = Destination Description
+view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination
platforms)
+view_bundle_deployWizard_getInfoStep = Provide Deployment Information
+view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on
destination platform)
+view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description
+view_bundle_deployWizard_getInfo_deploymentName = Deployment Name
+view_bundle_deployWizard_getOptionsStep = Deploy Options
+view_bundle_deployWizard_getOptions_deployLater = Deploy Later
+view_bundle_deployWizard_getOptions_deployNow = Deploy Now
+view_bundle_deployWizard_getOptions_deployTime = Deployment Time
+view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle
+view_bundle_deployWizard_selectBundle_single = Select only a single bundle for
deployment.
+view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version
+view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]
+view_bundle_deployWizard_selectVersion_live = Live Version [{0}]
+view_bundle_deployWizard_selectVersion_select = Select Version from List:
+view_bundle_deployWizard_title = Bundle Deployment Wizard
+
+# =================== Measurement Views =====================
+
+view_measureTable_chartMetricValues = Chart Selected Metrics
+view_measureTable_getLive = Get Live Value
+view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure
the agent is running and the managed resource is up.
+view_measureTable_live_title = \u52a8\u6001\u6570\u636e
+
+# =================== Components =====================
+
+view_configCompare_comparingConfigs = \u6bd4\u8f83\u8bbe\u7f6e
+view_configCompare_configCompare = \u914d\u7f6e\u6bd4\u8f83\u7ed3\u679c\u96c6
+
+view_configEdit_addItem = \u6dfb\u52a0\u6761\u76ee\u81f3\u5217\u8868.
+view_configEdit_confirm_1 =
\u786e\u5b9a\u8981\u4ece\u96c6\u5408\u4e2d\u5220\u9664\u6307\u5b9a\u7684\u5c5e\u6027?
+view_configEdit_confirm_2 = \u786e\u5b9a\u8981\u5220\u9664\u8be5\u884c?
+view_configEdit_confirm_3 = \u786e\u5b9a\u8981\u5220\u9664 [{0}]\u9879\u9009\u4e2d\u7684
[{1}]?
+view_configEdit_viewRow = \u67e5\u770b\u884c
+view_configEdit_editRow = \u7f16\u8f91\u884c
+view_configEdit_enterPropName =
\u8f93\u5165\u8981\u6dfb\u52a0\u7684\u5c5e\u6027\u540d\u79f0.
+view_configEdit_error_1 = \u6b64\u8d44\u6e90\u65e0\u6cd5\u914d\u7f6e.
+view_configEdit_error_2 =
\u6b64\u8d44\u6e90\u65e0\u6cd5\u8fdb\u884c\u8fde\u63a5\u8bbe\u7f6e.
+view_configEdit_error_3 = \u65e0\u6cd5\u6dfb\u52a0\u540d\u4e3a[{0}]\u7684\u5c5e\u6027.
\u5c5e\u6027\u540d\u5728\u96c6\u5408\u4e2d\u5df2\u7ecf\u88ab\u4f7f\u7528.
+view_configEdit_files = \u6587\u4ef6
+view_configEdit_hideAll= \u9690\u85cf\u6240\u6709
+view_configEdit_jumpToSection = \u8df3\u81f3\u6a21\u5757
+view_configEdit_msg_1 = \u589e\u52a0\u5c5e\u6027 [{0}]\u5230\u96c6\u5408.
+view_configEdit_msg_2 = \u79fb\u9664\u96c6\u5408\u5185\u6240\u6709\u7684\u5c5e\u6027.
+view_configEdit_msg_3 = \u4ece\u5217\u8868\u4e2d\u5220\u9664[{0} {1}]\u6210\u529f.
+view_configEdit_msg_4 = \u6dfb\u52a0\u6761\u76ee\u81f3\u5217\u8868.
+view_configEdit_properties = \u5c5e\u6027
+view_configEdit_tooltip_1 =
\u4ece\u5217\u8868\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u6761\u76ee.
+view_configEdit_tooltip_2 = \u6dfb\u52a0\u4e00\u9879\u6761\u76ee\u5230\u5217\u8868.
+
+view_groupConfigEdit_member = \u6210\u5458
+view_groupConfigEdit_noListProps =
\u7ec4\u914d\u7f6e\u76ee\u524d\u4e0d\u652f\u6301\u67e5\u770b\u5c5e\u6027\u4fe1\u606f.
+view_groupConfigEdit_tooltip_1 = \u6210\u5458\u503c\u6709\u5dee\u5f02 -
\u70b9\u51fb\u6309\u94ae\u7f16\u8f91.
+view_groupConfigEdit_setAll = \u8bbe\u7f6e\u6240\u6709\u7684\u503c\u5230:
+view_groupConfigEdit_unset = \u56de\u6eda
+view_groupConfigEdit_valsDiff = \u6210\u5458\u503c\u6709\u5dee\u5f02
+view_groupConfigEdit_valsDiffForProp = \u5c5e\u6027 [{0}]\u7684\u6210\u5458\u503c
+
+view_leftNav_unknownPage = \u6a21\u5757[{1}]\u4e0b\u672a\u77e5\u7684\u9875\u9762[{0}] -
\u94fe\u63a5\u65e0\u6548.
+
+view_measure_nan = --\u65e0\u6570\u636e--
+
+# Measurement Range Selector
+view_measureRange_last = \u65f6\u95f4\u8303\u56f4 - \u5148\u524d\u7684
+view_measureRange_start = \u65f6\u95f4\u8303\u56f4 - \u8d77\u59cb
+view_measureRange_simple = \u4e00\u822c...
+
+view_selector_assigned = \u6307\u5b9a\u7684 {0}
+view_selector_available = \u53ef\u7528\u7684 {0}
+
+view_subTab_error_disabled = \u65e0\u6cd5\u9009\u4e2d\u7981\u7528\u7684\u5b50\u8868
[{0}].
+
+view_table_drawFail = \u751f\u6210\u8868\u683c[{0}]\u5931\u8d25.
+view_table_matchingRows = \u5339\u914d\u7684\u884c: {0} (\u9009\u4e2d: {1})
+view_table_totalRows = \u6240\u6709\u7684\u884c: {0} (\u9009\u4e2d: {1})
+view_tableSection_backButton = \u8fd4\u56de\u5217\u8868
+view_tableSection_error_noId = \u8868\u5355 [{0}]
\u8bb0\u5f55\u7f3a\u5c11'id'\u5c5e\u6027 - \u8bf7\u62a5\u544a\u6b64BUG.
+view_tableSection_error_badId =\u65e0\u6cd5\u5c55\u793a
[{0}]\u7684\u8be6\u7ec6\u4fe1\u606f. \u65e0\u6548\u7684 'id': [{1}].
\u8bf7\u62a5\u544a\u6b64BUG
+
+view_tags_tags = \u6807\u7b7e
+view_tags_error_1 = \u52a0\u8f7d\u6807\u7b7e\u5931\u8d25
+view_tags_tooltip_1 = \u5220\u9664\u6807\u7b7e
+view_tags_tooltip_2 = \u7f16\u8f91\u6807\u7b7e
+view_tags_tooltip_3 = \u8f93\u5165\u6309\u7167\u4ee5\u4e0b\u683c\u5f0f\u7684\u6807\u7b7e:
(namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
+
+# File Upload (various)
+view_upload_alreadyUploaded = \u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20
+view_upload_bundleDistFile = \u5206\u7c7b\u6587\u4ef6
+view_upload_error_bundleDistFile = \u4e0a\u4f20\u5206\u7c7b\u6587\u4ef6\u5931\u8d25
+view_upload_error_file = \u4e0a\u4f20\u6587\u4ef6\u51fa\u73b0\u9519\u8bef
+view_upload_error_fileName = \u4e0a\u4f20\u6587\u4ef6 [{0}]\u51fa\u73b0\u9519\u8bef
+view_upload_error_fileName_2 = \u4e0a\u4f20\u6587\u4ef6 [{0}]\u51fa\u73b0\u9519\u8bef,
\u68c0\u67e5\u6587\u4ef6\u8def\u5f84.
+view_upload_error_packageVersionFile =
\u4e0a\u4f20\u5305\u7248\u672c\u6587\u4ef6\u51fa\u73b0\u9519\u8bef
+view_upload_error_results = \u4e0a\u4f20\u6587\u4ef6\u5931\u8d25,
\u65e0\u6cd5\u9884\u6599\u7684\u7ed3\u679c: [{0}]
+view_upload_inProgress = \u65e0\u6cd5\u63d0\u4ea4,
\u6587\u4ef6\u4e0a\u4f20\u6b63\u5728\u8fdb\u884c
+view_upload_prompt_1 = \u8bf7\u9009\u62e9\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20[{0}]
+view_upload_prompt_2 = \u8981\u4e0a\u4f20\u7684\u6587\u4ef6
+view_upload_tooltip_1a =
\u9009\u62e9\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20,\u7136\u540e\u70b9\u51fbUpload\u6216\u8005Next
+view_upload_tooltip_1b = \u9009\u62e9\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20,
\u7136\u540e\u70b9\u51fb Next
+view_upload_tooltip_2 = \u6587\u4ef6\u4e0a\u4f20 \u524d\u53d1\u751f\u9519\u8bef
+view_upload_success = \u6587\u4ef6\u4e0a\u4f20\u6210\u529f
+view_upload_upload = \u4e0a\u4f20
+view_upload_uploadFile = \u4e0a\u4f20\u6587\u4ef6
+
+# Group Create Wizard
+view_groupCreateWizard_membersStepName = \u9009\u62e9\u6210\u5458
+view_groupCreateWizard_createStepName = \u7ec4\u8bbe\u7f6e
+view_groupCreateWizard_createStep_recursive = \u9012\u5f52
+view_groupCreateWizard_title = \u521b\u5efa\u7ec4
+view_groupCreateWizard_windowTitle = \u521b\u5efa\u7ec4
+view_groupCreateWizard_createFailure = \u521b\u5efa\u8d44\u6e90\u7ec4\u5931\u8d25
+view_groupCreateWizard_createSuccessful_concise =
\u6210\u529f\u7684\u521b\u5efa\u4e86\u8d44\u6e90\u7ec4. [<a
href="{0}">\u67e5\u770b\u7ec4</a>]
+view_groupCreateWizard_createSuccessful_full =
\u6210\u529f\u7684\u521b\u5efa\u540d\u79f0\u662f [{1}]\u5305\u542b
[{2}]\u4e2a\u8d44\u6e90\u6210\u5458\u7684[{0}]\u8d44\u6e90\u7ec4
+
+# Resource Type / Plugin View/Datasources
+view_type_resourceTypes = \u8d44\u6e90\u7c7b\u578b
+view_type_parentId = \u7236ID
+view_type_typeTreeLoadFailure = \u52a0\u8f7d\u8d44\u6e90\u7c7b\u578b\u6811\u5931\u8d25
+
+# Tabs
+view_tabs_invalidSubTab = \u65e0\u6548\u7684\u5b50\u8868: {0}
+view_tabs_invalidTab = \u65e0\u6548\u7684\u8868: {0}
+
+# Group Tree
+group_tree_partialClusterTooltip =\u9664\u53bb
{1},{0}\u7684\u7ec4\u6210\u5458\u62e5\u6709
\u4e00\u4e2a''{2}''\u8d44\u6e90
+
+#=================== Dashboard =====================
+view_dashboard_favorites_error1 = \u52a0\u8f7d\u5e38\u7528\u8d44\u6e90\u5931\u8d25.
+view_dashboardManager_error = \u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
+view_dashboardManager_saved = \u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8{0}
+view_dashboardManager_success = \u6210\u529f\u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8
+view_dashboardManager_deleteFail = \u5220\u9664\u7edf\u8ba1\u8868\u76d8\u5931\u8d25.
+view_dashboardManager_deleted = \u6210\u529f\u5220\u9664\u7edf\u8ba1\u8868\u76d8{0}
+view_dashboards_title = \u7edf\u8ba1\u8868\u76d8
+view_dashboards_confirm1 = \u60a8\u786e\u5b9a\u8981\u5220\u9664\uff1f
+view_dashboards_portlets_refresh_fail1=\u4fee\u6539portlets\u81ea\u52a8\u5237\u65b0\u7684\u95f4\u9694\u65f6\u95f4\u5931\u8d25
+view_dashboards_portlets_refresh_fail2=\u505c\u7528portlets\u81ea\u52a8\u5237\u65b0\u7684\u91cd\u8f7d\u5931\u8d25
+view_dashboards_portlets_refresh_none = \u65e0\u5237\u65b0
+view_dashboards_portlets_refresh_one_min = 1 \u5206\u652f
+view_dashboards_portlets_refresh_multiple_min = {0} \u5206\u949f
+view_dashboards_portlets_refresh_success1=\u6210\u529f\u4fee\u6539portlets\u81ea\u52a8\u5237\u65b0\u7684\u95f4\u9694\u65f6\u95f4
+view_dashboards_portlets_refresh_success2=\u6210\u529f\u505c\u7528portlets\u81ea\u52a8\u5237\u65b0\u7684\u91cd\u8f7d
+view_dashboardsManager_error1 = \u6dfb\u52a0\u65b0\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
+view_dashboardsManager_message_title_details =
<h1>\u6b22\u8fce\u4f7f\u7528RHQ</h1>\n<p>RHQ\u9879\u76ee\u662f\u4e00\u4e2a\u62bd\u8c61\u7684\u3001\u57fa\u4e8e\u63d2\u4ef6\u7684\u7cfb\u7edf\u7ba1\u7406\u5957\u4ef6\u3002\u901a\u8fc7\u4e00\u7cfb\u5217\u6838\u5fc3\u529f\u80fd\u63d0\u4f9b\u591a\u4ea7\u54c1\u548c\u5e73\u53f0\u7684\u53ef\u6269\u5c55\u7684\u96c6\u6210\u7ba1\u7406.
\u672c\u9879\u76ee\u5206\u5c42\u6a21\u5757\u5177\u6709\u7075\u6d3b\u90e8\u7f72\u67b6\u6784.
\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6838\u5fc3\u7528\u6237\u754c\u9762\u4f9b\u8de8\u6574\u4e2a\u4f01\u4e1a\u7684\u5ba1\u8ba1\u548c\u5386\u53f2\u7ba1\u7406.
\u670d\u52a1\u5668/\u4ee3\u7406\u67b6\u6784\u63d0\u4f9b\u8fdc\u7a0b\u7ba1\u7406,\u63d2\u4ef6\u63d0\u4f9b\u7279\u5b9a\u4ea7\u54c1\u7684\u7ba1\u7406\u652f\u6301.</p>\n
<p>\u901a\u8fc7\u5355\u51fb(\u7f16\u8f91\u6a21\u5f0f)\u6309\u94ae\u53ef\u4ee5\u7f16\u8f91\u9ed8\u8ba4\u7edf\u8ba1\u8868\u76d8.</p>
+
+view_portlet_factory_invalidPortlet =
\u8fd9\u662f\u4e00\u4e2a\u9648\u65e7\u5e76\u4e14\u5df2\u7ecf\u5931\u6548\u7684portlet.
\u8bf7\u5220\u9664.
+
+view_portlet_defaultName_autodiscovery = \u63a2\u7d22\u961f\u5217
+view_portlet_defaultName_favoriteResources = \u5e38\u7528\u8d44\u6e90
+view_portlet_defaultName_resourceMetric = \u516c\u7528\u8d44\u6e90\u56fe\u6807
+view_portlet_defaultName_groupMetric = \u516c\u7528\u8d44\u6e90\u7ec4\u56fe\u6807
+view_portlet_defaultName_inventorySummary = \u6e05\u5355\u6982\u8981
+view_portlet_defaultName_mashup = Mashup
+view_portlet_defaultName_message = \u4fe1\u606f
+view_portlet_defaultName_operations =\u8fd1\u671f\u64cd\u4f5c
+view_portlet_defaultName_platformSummary = \u5e73\u53f0\u5229\u7528\u7387
+view_portlet_defaultName_problemResources =
\u544a\u8b66\u6216\u8005\u4e0d\u53ef\u7528\u7684\u8d44\u6e90
+view_portlet_defaultName_recentAlerts = \u65b0\u544a\u8b66
+view_portlet_defaultName_recentlyAddedResources = \u65b0\u6dfb\u52a0\u8d44\u6e90
+view_portlet_defaultName_tagCloud = \u6807\u7b7e\u4e91
+
+view_portlet_defaultName_group_alerts =\u7ec4: \u544a\u8b66
+view_portlet_defaultName_group_bundles = \u7ec4: \u7c7b\u53d1\u5e03
+view_portlet_defaultName_group_config_updates = \u7ec4: \u914d\u7f6e\u66f4\u65b0
+view_portlet_defaultName_group_events = \u7ec4: \u4e8b\u4ef6\u7edf\u8ba1
+view_portlet_defaultName_group_metrics = \u7ec4: Metrics
+view_portlet_defaultName_group_oobs = \u7ec4: OOB\u72b6\u6001
+view_portlet_defaultName_group_operations = \u7ec4: \u64cd\u4f5c\u96c6
+view_portlet_defaultName_group_pkg_hisory = \u7ec4: \u5386\u53f2\u6570\u636e\u5305
+view_portlet_defaultName_resource_alerts = \u8d44\u6e90: \u544a\u8b66
+view_portlet_defaultName_resource_bundles = \u8d44\u6e90: \u7c7b\u53d1\u5e03
+view_portlet_defaultName_resource_config_updates = \u8d44\u6e90:
\u914d\u7f6e\u66f4\u65b0
+view_portlet_defaultName_resource_events = \u8d44\u6e90: \u4e8b\u4ef6\u7edf\u8ba1
+view_portlet_defaultName_resource_metrics = \u8d44\u6e90: \u5c5e\u6027
+view_portlet_defaultName_resource_oobs = \u8d44\u6e90: OOB Metrics
+view_portlet_defaultName_resource_operations = \u8d44\u6e90: \u64cd\u4f5c
+view_portlet_defaultName_resource_pkg_hisory = \u8d44\u6e90:
\u5386\u53f2\u6570\u636e\u5305
+
+view_portlet_help_autodiscovery = \u6b64portlet\u5141\u8bb8\u5bfc\u5165
\u6216\u8005\u5931\u6548\u65b0\u53d1\u73b0\u7684\u8d44\u6e90.
\u5bfc\u5165\u7684\u8d44\u6e90\u5c06\u4f1a\u6dfb\u52a0\u81f3\u76d1\u63a7\u548c\u7ba1\u7406\u6e05\u5355\u4e2d\uff0c\u5931\u6548\u7684\u8d44\u6e90\u5c06\u4e0d\u4f1a\u88ab\u5bfc\u5165\u5e76\u4e14
\u662f\u4e0d\u53ef\u89c1\u7684\uff0c\u9664\u975e\u660e\u786e\u6307\u5b9a\u4e0d\u53ef\u5931\u6548.
+view_portlet_help_bundle_deps =
\u6b64portlet\u5c55\u793a\u57fa\u4e8e\u6807\u51c6\u914d\u7f6e\u663e\u793a\u7684\u76f8\u5173\u53d1\u5e03\u7c7b.
+view_portlet_help_config_updates
=\u6b64portlet\u5c55\u793a\u4e0e\u914d\u7f6e\u8bbe\u7f6e\u517c\u5bb9\u7684\u6700\u65b0\u7684\u914d\u7f6e\u4fee\u6539.
+view_portlet_help_eventcounts = This portlet displays Event counts consistent with
display criteria configured.
+view_portlet_help_favoriteResources = This portlet displays the current user''s
favorite resources.
+view_portlet_help_graph = This portlet displays the resource metric graph.
+view_portlet_help_inventorySummary = This portlet displays a short summary of the current
user''s viewable inventory and metric collection rate.
+view_portlet_help_mashup = This portlet displays the returned content of a remote HTTP
request (via an iframe).
+view_portlet_help_metrics = This portlet graphs relevant recent metric data based on
display criteria configured.
+view_portlet_help_message = This portlet displays a static HTML message. The
<i>message</i> property must be configured.
+view_portlet_help_oobs = This portlet displays OOB(Out of Bound) metric conditions.
+view_portlet_help_operations = This portlet displays the most recently executed
operations for the current user''s inventory.
+view_portlet_help_scheduledOperations = This portlet displays the next scheduled
operations for the current user''s inventory.
+view_portlet_help_operations_criteria = This portlet displays Operations consistent with
display criteria configured.
+view_portlet_help_pkg_history = This portlet shows relevant package history based on
display criteria configured.
+view_portlet_help_platformSummary = This portlet displays utilization data (such as
current CPU and memory usage) for platform resources that are accessible by the current
user.
+view_portlet_help_problemResources = This portlet displays the current user''s
alerted or unavailable resources.
+view_portlet_help_recentAlerts = This portlet displays alerts recently fired on the
current user''s viewable inventory.
+view_portlet_help_recentlyAdded = This portlet displays resources that have recently been
imported into inventory.
+view_portlet_help_tagCloud = This portlet displays the relative tag counts for the
current user''s inventory.
+view_portlet_help_none = There is no help available for this portlet.
+
+view_portlet_configure_needed = \u70b9\u51fb\u8bbe\u7f6e\u6309\u94ae\u914d\u7f6eportlet.
+view_portlet_configure_notNeeded = \u6b64 portlet\u65e0\u9700\u914d\u7f6e.
+view_portlet_configure_definitionTitle = Portlet\u914d\u7f6e
+view_portlet_configure_definitionDesc = portlet\u914d\u7f6e\u8bbe\u7f6e\u63cf\u8ff0.
+
+view_portlet_autodiscovery_setting_platforms = \u5e73\u53f0\u7ed3\u679c\u96c6
+
+view_portlet_graph_configure_resource_graph = The resource to graph
+view_portlet_graph_configure_metricDefinition_graph = The metric definition id to graph
+
+view_portlet_inventory_error1 = Failed to retrieve inventory summary
+view_portlet_inventory_tooltip_expand = Click to show more details for this resource.
+view_portlet_inventory_tooltip_collapse = Click to hide details for this resource.
+
+view_portlet_message_title = \u663e\u793a\u4fe1\u606f.
+
+view_portlet_operations_config_completed_maximum =
\u80fd\u5c55\u793a\u7684\u5df2\u5b8c\u6210\u64cd\u4f5c\u7684\u6700\u5927\u6570.
+view_portlet_operations_config_completed_enable =
\u662f\u5426\u5bf9\u7edf\u8ba1\u8868\u76d8\u7684\u5df2\u5b8c\u6210\u64cd\u4f5c\u7684\u7ed3\u679c\u5206\u7ec4.
+view_portlet_operations_config_scheduled_enable =
\u662f\u5426\u5bf9\u7edf\u8ba1\u8868\u76d8\u7684\u8c03\u5ea6\u4e2d\u64cd\u4f5c\u7684\u7ed3\u679c\u5206\u7ec4.
+view_portlet_operations_config_scheduled_maximum
=\u80fd\u5c55\u793a\u7684\u8c03\u5ea6\u64cd\u4f5c\u7684\u6700\u5927\u6570.
+view_portlet_operations_config_completed = \u5df2\u5b8c\u6210\u7684\u64cd\u4f5c
+view_portlet_operations_config_show_last = show last
+view_portlet_operations_config_show_next = show next
+view_portlet_operations_disabled =
(\u76ee\u524d\u7ed3\u679c\u96c6\u7981\u7528.\u4fee\u6539\u8bbe\u7f6e\u4f7f\u5176\u751f\u6548.
+
+view_portlet_platform_platform_error_1 = Failed to load platform metrics
+view_portlet_platform_type_error_1 = \u65e0\u6cd5\u52a0\u8f7d\u7c7b\u578b\u6570\u636e
+
+view_portlet_problemResources_config_display_maximum =
\u80fd\u5c55\u793a\u7684\u95ee\u9898\u8d44\u6e90\u7684\u6700\u5927\u6570.
+view_portlet_problemResources_config_display_range =
\u663e\u793a\u6570\u5c0f\u65f6\u5185\u6062\u590d\u6b63\u5e38\u7684\u95ee\u9898\u8d44\u6e90.
+view_portlet_problemResources_config_display_range2 = \u4ece {0} \u5230 {1}
+view_portlet_problemResources_maxDisplaySetting = \u8d44\u6e90\u6700\u5927\u6570.
+
+view_portlet_recentAlerts_config_members = \u9009\u62e9\u6210\u5458
+view_portlet_recentAlerts_config_priority_label = \u4e4b\u524d\u7684\u544a\u8b66,
+view_portlet_recentAlerts_config_when = \u5728\u8fc7\u53bb
+view_portlet_recentAlerts_fail_msg =
\u52a0\u8f7d\u544a\u8b66\u8fc7\u6ee4\u7684\u6307\u5b9a\u8d44\u6e90\u5931\u8d25.
+
+view_portlet_recentlyAdded_setting_addedPlatforms = \u65b0\u6dfb\u52a0\u5e73\u53f0
+view_portlet_recentlyAdded_error1 =
\u52a0\u8f7d\u6700\u65b0\u6dfb\u52a0\u7684\u8d44\u6e90\u5931\u8d25
+view_portlet_results_empty =
\u4f7f\u7528\u6307\u5b9a\u7684\u6807\u51c6\u65e0\u7ed3\u679c\u8fd4\u56de.
+
+# =================== Inventory =====================
+view_inventory_adq = Discovery Queue
+view_inventory_sectionHelp =
\u6b64\u6a21\u5757\u53ef\u4ee5\u67e5\u770b\u548c\u7ba1\u7406\u65b0\u53d1\u73b0\u7684\u8d44\u6e90,\u5206\u7c7b\u7684\u8d44\u6e90\u548c\u7ec4.
+view_inventory_problemGroups = \u95ee\u9898\u7ec4
+view_inventory_collectionInterval = \u641c\u96c6\u95f4\u9694
+view_inventory_mixed = \u6df7\u5408
+view_inventory_unavailableServers = \u4e0d\u53ef\u7528\u7684\u670d\u52a1
+view_inventory_groups = \u7ec4
+view_inventory_allGroups = \u6240\u6709\u7ec4
+view_inventory_allResources = \u6240\u6709\u8d44\u6e90
+view_inventory_platforms = \u5e73\u53f0
+view_inventory_servers = \u670d\u52a1\u5668
+view_inventory_services = \u670d\u52a1
+view_inventory_summary_agent_error1 =
\u67e5\u627e\u5ba2\u6237\u7aef\u7ba1\u7406\u7684\u8d44\u6e90id\u5931\u8d25
+view_inventory_summary_agent_error2 =
\u5ba2\u6237\u7aef\u7ba1\u7406\u7684\u8d44\u6e90ping\u4e0d\u901a
+view_inventory_summary_agent_error3 =
\u6ca1\u6709\u6743\u9650\u67e5\u770b\u6b64\u5ba2\u6237\u7aef\u7684\u8be6\u7ec6\u4fe1\u606f.
+view_inventory_summary_agent_fullEnpoint = Full Endpoint
+view_inventory_summary_agent_fullEnpoint_err1 = !No remote endpoint associated with this
resource!
+view_inventory_summary_agent_last_title =
\u6700\u540e\u63a5\u6536\u5230\u7684\u53ef\u7528\u4fe1\u606f\u62a5\u544a
+view_inventory_summary_agent_status_title = \u5ba2\u6237\u7aef\u901a\u4fe1\u72b6\u6001
+view_inventory_summary_agent_title = \u5ba2\u6237\u7aef\u7ba1\u7406\u6b64\u8d44\u6e90
+view_inventory_dynagroupDefs = \u52a8\u6001\u7ec4\u5b9a\u4e49
+view_metric_traits = Traits
+view_metric_viewTraitHistory = Value History for Trait [{0}]
+view_inventory_eventHistory_groupEventHistory = Group Event History
+view_inventory_eventHistory_resourceEventHistory = Resource Event History
+view_inventory_eventHistory_sourceFilter = Source Filter
+view_inventory_eventHistory_detailsFilter = Details Filter
+view_inventory_eventHistory_severityFilter = Severity Filter
+view_inventory_eventHistory_timestamp = Timestamp
+view_inventory_eventHistory_severity = Severity
+view_inventory_eventHistory_details = Details
+view_inventory_eventHistory_sourceLocation = Source Location
+view_inventory_eventHistory_deleteSuccessful = You have successfully deleted [{0}] events
for [{1}]
+view_inventory_eventHistory_deleteFailed = Failed to deleted selected events for [{0}]
+view_inventory_eventHistory_purgeSuccessful = You have successfully purged [{0}] events
for [{1}]
+view_inventory_eventHistory_purgeFailed = Failed to purge events for [{0}]
+view_inventory_eventDetails_loadFailed = An error occurred loading the event details
+view_inventory_groups_resourceGroups = Resource Groups
+view_inventory_groups_children = \u5b50\u7ec4
+view_inventory_groups_descendants = \u540e\u4ee3\u7ec4
+view_inventory_groups_deleteSuccessful =
\u6210\u529f\u7684\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4
+view_inventory_groups_deleteFailed =
\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4\u5931\u8d25
+view_inventory_groups_loadFailed = Failed to load group composite data
+view_inventory_resource_loadFailed = id\u4e3a
[{0}]\u7684\u8d44\u6e90\u4e0d\u5b58\u5728\u6216\u8005\u4e0d\u53ef\u8fbe
+view_inventory_resources_deleteConfirm =
\u786e\u5b9a\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90\uff1f
+view_inventory_resources_deleteSuccessful =
\u6210\u529f\u7684\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90
+view_inventory_resources_deleteFailed =
\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u5931\u8d25
+view_inventory_resources_uninventoryConfirm =
\u786e\u5b9a\u628a\u9009\u4e2d\u7684\u8d44\u6e90\u4ece\u6e05\u5355\u4e2d\u5220\u9664?
\u6ce8\u610f\uff1a\u5982\u679c\u67d0\u4e2a\u9009\u4e2d\u7684\u8d44\u6e90\u4f9d\u7136\u5b58\u5728,
\u5219\u7cfb\u7edf\u4f1a\u5728\u6b64\u8d44\u6e90\u7684\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e0b\u6b21\u63a2\u7d22\u626b\u63cf\u65f6\u91cd\u65b0\u52a0\u8f7d\u6b64\u8d44\u6e90.
+view_inventory_resources_uninventorySuccessful
=\u6210\u529f\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90
+view_inventory_resources_uninventoryFailed =
\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90\u5931\u8d25
+view_inventory_resources_loadFailed = Failed to load resource composite data
+view_inventory_resources_title = Resources
+view_inventory_resources_title_children = \u5b50\u8d44\u6e90
+view_inventory_resources_title_members = \u6210\u5458\u8d44\u6e90
+view_resource_inventory_activity_changed_by=Changed by
+view_resource_inventory_activity_criteria_no_recent_events=No event counts based off
display criteria.
+view_resource_inventory_activity_no_recent_alerts=\u65e0\u6700\u65b0\u544a\u8b66
+view_resource_inventory_activity_no_recent_bundle_deploy=No recent bundle deployments
+view_resource_inventory_activity_no_recent_config_history=No configuration change
history
+view_resource_inventory_activity_no_recent_events =No events in the last 24 hours
+view_resource_inventory_activity_no_recent_metrics=This resource has no recent metrics
+view_resource_inventory_activity_no_recent_oob=No OOB conditions found
+view_resource_inventory_activity_no_recent_operations=No recent operation history
+view_resource_inventory_activity_no_recent_pkg_history=No recent package history
+view_resource_inventory_childhistory_createdChild = Created Child
+view_resource_inventory_childhistory_deletedChild = Deleted Child
+view_resource_inventory_childhistory_status_invalidArtifact = Invalid Artifact
+view_resource_inventory_childhistory_status_invalidConfig = \u65e0\u6548\u914d\u7f6e
+view_resource_inventory_childhistory_filterTitle = Past N Days
+view_resource_monitor_availability_loadFailed = Failed to load availability history
+view_resource_monitor_graphs_noneAvailable = No graphs available
+view_resource_monitor_graphs_loadFailed = Failed to load graph data
+view_resource_monitor_graphs_lookupFailed = Failed to find resource for graph
+view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart
+view_resource_monitor_graph_live_tooltip = Click for a live graph of current values
+view_resource_monitor_table_min = Minimum
+view_resource_monitor_table_max = Maximum
+view_resource_monitor_table_avg = Average
+view_resource_monitor_table_last = Last
+view_resource_monitor_table_alerts = Alerts
+view_resource_monitor_detailed_graph_label = Detailed Graph
+view_resource_monitor_calltime_title = Call Time Data
+view_resource_monitor_calltime_destination = Call Destination
+view_resource_monitor_calltime_count = Count
+view_resource_monitor_calltime_minimum = Minimum
+view_resource_monitor_calltime_average = Average
+view_resource_monitor_calltime_maximum = Maximum
+view_resource_monitor_calltime_total = Total
+view_resource_monitor_calltime_loadFailed = Could not load call time data
+view_resource_monitor_calltime_lookupFailed = Could not load resource for call time
+view_resource_monitor_calltime_editFailed = Call time data can not be edited
+view_resource_monitor_schedules_title = Resource Metric Collection Schedules
+view_resource_title_tagUpdateFailed = Failed to update resource tags
+view_resource_title_component_errors_tooltip = Shows managed component errors. Click for
details
+view_tree_common_loadFailed_generic = Failed to load data for tree
+view_tree_common_loadFailed_root = Failed to load root for tree
+view_tree_common_loadFailed_descendants = Failed to load descendants for tree
+view_tree_common_loadFailed_children = Failed to load children for node
+view_tree_common_createFailed_autoCluster = Failed to create or update autocluster
backing group
+view_tree_common_loadFailed_group = Failed to load group with id [{0}]
+view_tree_common_loadFailed_groupTree = Failed to load group tree
+view_tree_common_loadFailed_selection = Failed to select this node
+view_tree_common_loadFailed_node = Failed to load data for this node
+view_tree_common_loadFailed_create = Failed to create view for this node
+view_tree_common_loadFailed_update = Failed to update view for this node
+view_tree_common_contextMenu_loadFail_children = Failed to load platform manual add
children
+view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboards
+view_tree_common_contextMenu_loadFail_group = Failed to load group for context menu
+view_tree_common_contextMenu_type_name_label = Type: {0}
+view_tree_common_contextMenu_resourceConfiguration = Resource Configuration
+view_tree_common_contextMenu_editPluginConfiguration = Edit [{0}] Plugin Configuration
+view_tree_common_contextMenu_editResourceConfiguration = Edit [{0}] Resource
Configuration
+view_tree_common_contextMenu_operations = Operations
+view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running
operations
+view_tree_common_contextMenu_measurements = Measurements
+view_tree_common_contextMenu_addChartToDashboard = Add chart to dashboard [{0}]
+view_tree_common_contextMenu_resourceGraph = Resource Metric Graph
+view_tree_common_contextMenu_groupGraph = Group Metric Graph
+view_tree_common_contextMenu_saveChartToDashboardSuccessful =
\u6210\u529f\u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8 [{0}]
+view_tree_common_contextMenu_saveChartToDashboardFailure =
\u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
+view_tree_common_contextMenu_loadFailed_dashboard =
\u52a0\u8f7d\u7528\u6237\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
+view_tree_common_contextMenu_loadFailed_manualAddChildren = Failed to load platform
manual add children
+view_tree_group_error_updateAutoCluster = Failed to create or update autocluster backing
group. key: [{0}]
+view_tabs_common_activity = Activity
+view_tabs_common_agent = Agent
+view_tabs_common_summary = \u6982\u8981
+view_tabs_common_overview = \u6982\u89c8
+view_tabs_common_dashboard = \u7edf\u8ba1\u8868\u76d8
+view_tabs_common_timeline = \u65f6\u95f4\u8f74
+view_tabs_common_monitoring = \u76d1\u63a7
+view_tabs_common_graphs = Graphs
+view_tabs_common_tables = Tables
+view_tabs_common_traits = Traits
+view_tabs_common_availability = \u53ef\u7528\u6027
+view_tabs_common_schedules = Schedules
+view_tabs_common_calltime = Calltime
+view_tabs_common_inventory = \u6e05\u5355
+view_tabs_common_groups = Groups
+view_tabs_common_members = Members
+view_tabs_common_group_members = \u7ec4\u5458
+view_tabs_common_group_membership = \u7ec4\u6210\u5458\u5173\u7cfb
+view_tabs_common_child_resources = \u5b50\u8d44\u6e90
+view_tabs_common_child_history = \u5b50\u5386\u53f2
+view_tabs_common_connectionSettings = \u8fde\u63a5\u8bbe\u7f6e
+view_tabs_common_connectionSettingsHistory = \u5386\u53f2\u8fde\u63a5\u8bbe\u7f6e
+view_tabs_common_operations = \u64cd\u4f5c
+view_tabs_common_schedule = \u8c03\u5ea6
+view_tabs_common_history = \u5386\u53f2
+view_tabs_common_alerts = \u544a\u8b66
+view_tabs_common_definitions = \u5b9a\u4e49
+view_tabs_common_current = \u5f53\u524d
+view_tabs_common_events = \u4e8b\u4ef6
+view_tabs_common_configuration = \u914d\u7f6e
+view_tabs_common_content = \u5185\u5bb9
+view_tabs_common_deployed = \u5df2\u53d1\u5e03
+view_tabs_common_new = new
+view_tabs_common_subscriptions = \u8fd0\u884c\u673a\u5236
+view_titleBar_common_updateTagsSuccessful =
[{0}]\u7684\u6807\u7b7e\u5df2\u7ecf\u66f4\u65b0
+view_titleBar_common_updateTagsFailure = Failed to update the tags for [{0}]
+view_titleBar_common_loadTagsFailure = Failed to load the tags for [{0}]
+view_titleBar_common_clickToRemoveFav = Click to remove this as a favorite
+view_titleBar_common_clickToAddFav = Click to add this as a favorite
+view_titleBar_common_removedFav = \u79fb\u52a8[{0}]\u5230\u5e38\u7528\u83dc\u5355
+view_titleBar_common_addedFav = \u6dfb\u52a0 [{0}]\u5230\u5e38\u7528\u83dc\u5355
+view_titleBar_common_removedFavFailure =
\u79fb\u52a8[{0}]\u5230\u5e38\u7528\u83dc\u5355\u5931\u8d25
+view_titleBar_common_addedFavFailure = Failed to add [{0}] as a favorite
+view_titleBar_group_failInfo = Failed to get general info on group [{0}] with ID [{1}]
+view_titleBar_group_summary_collapsedTooltip =
\u70b9\u51fb\u67e5\u770b\u6b64\u7ec4\u7684\u66f4\u591a\u4fe1\u606f
+view_titleBar_group_summary_expandedTooltip =
\u70b9\u51fb\u9690\u85cf\u6b64\u7ec4\u7684\u66f4\u591a\u4fe1\u606f
+view_dynagroup_expressionSet = \u8868\u8fbe\u5f0f\u7ec4
+view_dynagroup_recalculationInterval = Recalculation Interval (ms)
+view_dynagroup_lastCalculationTime = \u4e0a\u6b21\u8ba1\u7b97\u6301\u7eed\u65f6\u95f4
+view_dynagroup_nextCalculationTime = \u4e0b\u6b21\u8ba1\u7b97\u6301\u7eed\u65f6\u95f4
+view_dynagroup_definitionCreated =
\u60a8\u6210\u529f\u7684\u521b\u5efa\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49
+view_dynagroup_definitionLoadFailure =
\u52a0\u8f7d\u6240\u6709\u7684\u7ec4\u5b9a\u4e49\u5931\u8d25
+view_dynagroup_definitionAlreadyExists =
\u5df2\u7ecf\u5b58\u5728\u4ee5\u8be5\u540d\u79f0\u547d\u540d\u7684\u7ec4\u5b9a\u4e49
+view_dynagroup_saveSuccessful =
\u60a8\u6210\u529f\u7684\u4fdd\u5b58\u4e86\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49
+view_dynagroup_saveFailure =
\u4fdd\u5b58\u540d\u79f0\u4e3a[{0}]\u7684\u7ec4\u5b9a\u4e49\u5931\u8d25
+view_dynagroup_singleSaveFailure = \u62a5\u9519\u4e86 -
\u6b63\u5e38\u5e94\u8be5\u53ea\u521b\u5efa\u5355\u4e2a\u7ec4\u5b9a\u4e49,
\u4f46\u662f\u5374\u521b\u5efa\u4e86[{0}]\u4e2a.
+view_dynagroup_saveAndRecalculate = Save & Recalculate
+view_dynagroup_recalculate = Recalculate
+view_dynagroup_recalcSuccessful = You have successfully recalculated this group
definition
+view_dynagroup_recalcFailure = Failed to recalculated this group definition
+view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group
definitions
+view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group
definitions
+view_dynagroup_deleteSuccessfulSelection = \u6210\u529f\u7684\u5220\u9664
[{0}]\u7ec4\u5b9a\u4e49
+view_dynagroup_deleteFailureSelection =
\u5220\u9664\u9009\u4e2d\u7684\u7ec4\u5b9a\u4e49\u5931\u8d25
+view_dynagroup_children = \u5b50\u52a8\u6001\u7ec4
+view_dynagroup_newGroupDefinition = \u65b0\u5efa\u7ec4\u5b9a\u4e49
+view_dynagroup_editing = \u7f16\u8f91 [{0}]
+view_dynagroup_expression = \u8868\u8fbe\u5f0f
+view_dynagroup_recursive = \u9012\u5f52
+view_dynagroup_loadDefinitionFailure = \u52a0\u8f7d\u7ec4\u5b9a\u4e49 [{0}]\u5931\u8d25
+view_dynagroup_loadDefinitionMissing = \u6ca1\u6709ID\u662f[{0}]\u7684\u7ec4\u5b9a\u4e49
+view_dynagroup_permDenied =
\u60a8\u6ca1\u6709\u67e5\u770b\u7ec4\u5b9a\u4e49\u7684\u6743\u9650
+view_dynagroup_definitions = \u52a8\u6001\u7ec4\u5b9a\u4e49
+view_dynagroup_template_customExpression = Custom Expression...
+view_dynagroup_template_jbossas4_clusters = JBossAS 4 - \u96c6\u7fa4
+view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - \u96c6\u7fa4
+view_dynagroup_template_jbossas4_earClusters = JBossAS 4 - Clustered EARs
+view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - Unique versions
+view_dynagroup_template_platforms = Platform resources in inventory
+view_dynagroup_template_uniqueResourceTypes = Unique resource types in inventory
+view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - All hosting any version of
"my" app
+view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - All non-secured
+view_dynagroup_template_downedResources = All resources currently down
+view_dynagroup_mixed = Mixed
+view_dynagroup_compatible = \u517c\u5bb9\u6027
+view_dynagroup_expressionBuilderIconTooltip = \u8868\u8fbe\u5f0f\u7f16\u8bd1\u4e2d...
+view_dynagroup_exprBuilder_title = \u8868\u8fbe\u5f0f\u7f16\u8bd1
+view_dynagroup_exprBuilder_expression = \u8868\u8fbe\u5f0f
+view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is
represented by the selections in the form below. This text will be added to your group
definition expression text when you click the "Add Expression" button.
+view_dynagroup_exprBuilder_addExpression = \u6dfb\u52a0\u8868\u8fbe\u5f0f
+view_dynagroup_exprBuilder_value_tooltip =
\u67e5\u8be2\u8868\u8fbe\u5f0f\u5b57\u7b26\u4e32\u7684\u503c
+view_dynagroup_exprBuilder_comparisonType = Comparison Type
+view_dynagroup_exprBuilder_comparisonType_tooltip = Comparison Type
+view_dynagroup_exprBuilder_unset = \u6062\u590d\u8bbe\u7f6e
+view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a
null value in the database. This is not possible using the "=" operator because
of how databases store and query data.
+view_dynagroup_exprBuilder_propertyName = \u5c5e\u6027\u540d\u79f0
+view_dynagroup_exprBuilder_propertyName_tooltip =
\u7528\u4e8e\u67e5\u8be2\u7684\u5c5e\u6027\u540d\u79f0.
\u8fd9\u662f\u7531\u8868\u8fbe\u5f0f\u7c7b\u578b\u548c\u8d44\u6e90\u7c7b\u578b\u51b3\u5b9a\u7684.
+view_dynagroup_exprBuilder_resourceType = \u8d44\u6e90\u7c7b\u578b
+view_dynagroup_exprBuilder_resourceType_tooltip = \u8d44\u6e90\u7c7b\u578b
+view_dynagroup_exprBuilder_definingPlugin = \u5b9a\u4e49\u63d2\u4ef6
+view_dynagroup_exprBuilder_definingPlugin_tooltip = \u67e5\u627e\u63d2\u4ef6
+view_dynagroup_exprBuilder_expressionType = \u8868\u8fbe\u5f0f\u7c7b\u578b
+view_dynagroup_exprBuilder_expressionType_tooltip =
\u6b64\u8868\u8fbe\u5f0f\u6307\u5b9a\u8868\u8fbe\u5f0f\u7684\u5c5e\u6027\u7c7b\u578b:<br/>
\
+<b>\u8d44\u6e90</b>:
\u8d44\u6e90\u5c5e\u6027\uff1a\u6bd4\u5982\u540d\u79f0\u548c\u7248\u672c<br/> \
+<b>\u8d44\u6e90\u7c7b\u578b</b>:
\u641c\u5bfb\u6307\u5b9a\u7c7b\u578b\u7684\u8d44\u6e90<br/> \
+<b>\u8d44\u6e90\u7c7b\u522b</b>:
\u6309\u7167\u7c7b\u522b\u67e5\u627e\u8d44\u6e90: \u5e73\u53f0, \u670d\u52a1\u5668,
\u670d\u52a1<br/> \
+<b>\u7279\u5f81</b>:
\u5b58\u5728\u76d1\u63a7\u70b9\u7684\u8d44\u6e90<br/> \
+<b>\u63d2\u4ef6\u914d\u7f6e</b>:
\u6309\u7167\u63d2\u4ef6\u7ec4\u4ef6\u548c\u7ec4\u4ef6\u7684\u914d\u7f6e\u8bbe\u7f6e\u67e5\u8be2<br/>
\
+<b>\u8d44\u6e90\u914d\u7f6e</b>:
\u6309\u7167\u88ab\u7ba1\u8d44\u6e90\u7684\u914d\u7f6e\u8bbe\u7f6e\u67e5\u8be2
+view_dynagroup_exprBuilder_resource = \u8d44\u6e90
+view_dynagroup_exprBuilder_resource_tooltip =
\u9009\u62e9\u8981\u67e5\u8be2\u8d44\u6e90\u6240\u5728\u7684\u5c42\u7ea7. \u4f8b\u5982,
\u9009\u4e2d
"parent"\u4f1a\u67e5\u8be2\u51fa\u7236\u8d44\u6e90\u7684\u6ee1\u8db3\u5269\u4f59\u8868\u8fbe\u5f0f\u7684\u8d44\u6e90.
+view_dynagroup_exprBuilder_groupBy = \u5206\u7ec4
+view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy will cause the system to pivot on
the values from the entered expressions creating a separate group for each value. For
example, GroupBy on the cluster name to create a group for each cluster with all cluster
members in it.
+view_dynagroup_exprBuilder_resource_resource = Resource
+view_dynagroup_exprBuilder_resource_child = Child
+view_dynagroup_exprBuilder_resource_parent = Parent
+view_dynagroup_exprBuilder_resource_grandparent = Grandparent
+view_dynagroup_exprBuilder_resource_greatGrandparent = GreatGrandparent
+view_dynagroup_exprBuilder_resource_greatGreatGrandparent = GreatGreatGrandparent
+view_dynagroup_exprBuilder_comparisonType_equals = \u76f8\u7b49
+view_dynagroup_exprBuilder_comparisonType_startsWith = starts with
+view_dynagroup_exprBuilder_comparisonType_endsWith = ends with
+view_dynagroup_exprBuilder_comparisonType_contains = \u5305\u542b
+view_dynagroup_exprBuilder_expressionType_resource = \u8d44\u6e90
+view_dynagroup_exprBuilder_expressionType_resourceType = \u8d44\u6e90\u7c7b\u578b
+view_dynagroup_exprBuilder_expressionType_resourceCategory = \u8d44\u6e90\u79cd\u7c7b
+view_dynagroup_exprBuilder_expressionType_trait = \u7279\u5f81
+view_dynagroup_exprBuilder_expressionType_pluginConfig = \u63d2\u4ef6\u914d\u7f6e
+view_dynagroup_exprBuilder_expressionType_resourceConfig = \u8d44\u6e90\u914d\u7f6e
+view_dynagroup_exprBuilder_pluginLoadFailure =
\u65e0\u6cd5\u83b7\u53d6\u63d2\u4ef6\u5217\u8868
+view_dynagroup_exprBuilder_resTypeLoadFailure =
\u65e0\u6cd5\u83b7\u53d6\u63d2\u4ef6[{0}]\u7684\u8d44\u6e90\u7c7b\u578b\u5217\u8868
+view_dynagroup_exprBuilder_propLoadFailure =
\u65e0\u6cd5\u83b7\u53d6\u5c5e\u6027\u5217\u8868
+view_dynagroup_exprBuilder_noResourceTypes = --\u65e0\u8d44\u6e90\u7c7b\u578b--
+view_dynagroup_exprBuilder_noProperties = -\u65e0\u5c5e\u6027--
+view_dynagroup_exprBuilder_noPlugins = --\u65e0\u63d2\u4ef6--
+
+view_group_detail_failLoad =
\u52a0\u8f7d\u7ec4ID\u4e3a[{0}]\u7684\u7ec4\u4fe1\u606f\u5931\u8d25
+view_group_detail_failLoadComp =
\u52a0\u8f7d\u7ec4ID\u4e3a[{0}]\u7684\u6df7\u5408\u7ec4\u4fe1\u606f\u5931\u8d25
+view_group_detail_recursiveChange =
\u6210\u529f\u7684\u4fee\u6539\u7ec4[{0}]\u7684\u9012\u5f52\u8bbe\u7f6e
+view_group_detail_failRecursiveChange =
\u4fee\u6539\u7ec4[{0}]\u7684\u9012\u5f52\u8bbe\u7f6e\u5931\u8d25
+view_group_inventory_activity_no_recent_metrics=\u6b64\u7ec4\u6ca1\u6709\u6700\u65b0\u516c\u544a
+view_group_membership_failFetch = \u83b7\u53d6\u8d44\u6e90\u7ec4\u5931\u8d25
+view_group_membership_saveFailure
=\u4fee\u6539[{0}]\u7684\u7ec4\u6210\u5458\u5173\u7cfb\u5931\u8d25
+view_group_membership_saveSuccessful =
\u6210\u529f\u7684\u4fee\u6539[{0}]\u7684\u7ec4\u6210\u5458\u5173\u7cfb
+view_group_resConfig_edit_saveTooltip =
\u4fee\u6539\u6240\u6709\u7684\u7ec4\u6210\u5458\u914d\u7f6e
+view_group_resConfig_edit_loadFail =
\u68c0\u7d22[{0}]\u7684\u6210\u5458\u8d44\u6e90\u914d\u7f6e\u5931\u8d25
+view_group_resConfig_edit_noperm =
\u60a8\u6ca1\u6709\u6743\u9650\u7f16\u8f91\u7ec4\u914d\u7f6e
+view_group_resConfig_edit_saveInitiated_concise =
\u521d\u59cb\u5316\u7ec4\u914d\u7f6e\u66f4\u65b0\u5b8c\u6210
+view_group_resConfig_edit_saveInitiated_full =
\u6210\u529f\u521d\u59cb\u5316\u8d44\u6e90\u7c7b\u578b[{0}],\u540d\u79f0\u4e3a[{1}]\u7684\u517c\u5bb9\u7ec4\u7ec4\u914d\u7f6e\u66f4\u65b0
+view_group_resConfig_edit_saveFailure
=\u521d\u59cb\u5316\u8d44\u6e90\u7c7b\u578b[{0}],\u540d\u79f0\u4e3a[{1}]\u7684\u517c\u5bb9\u7ec4\u7ec4\u914d\u7f6e\u66f4\u65b0\u5931\u8d25
+view_group_resConfig_edit_valid =
\u6240\u6709\u7684\u5c5e\u6027\u914d\u7f6e\u5747\u6709\u6548,\u53ef\u4ee5\u63d0\u4ea4\u4fdd\u5b58
+view_group_resConfig_edit_invalid =
\u4e0b\u9762\u7684\u5c5e\u6027\u914d\u7f6e\u586b\u5199\u4e86\u65e0\u6548\u7684\u503c
,\u63d0\u4ea4\u4e4b\u524d\u8bf7\u4fee\u6539: [{0}]
+
+view_group_resConfig_view_noperm =
\u60a8\u6ca1\u6709\u6743\u9650\u67e5\u770b\u8d44\u6e90\u914d\u7f6e\u8bbe\u7f6e
+view_group_resConfig_view_groupProperties = \u7ec4\u5c5e\u6027
+view_group_resConfig_table_title = \u5386\u53f2\u8d44\u6e90\u7ec4\u914d\u7f6e
+view_group_resConfig_table_statusDetails = \u8be6\u7ec6\u72b6\u6001
+view_group_resConfig_table_viewSettings = \u67e5\u770b\u8bbe\u7f6e
+view_group_resConfig_table_viewMemberHistory = \u67e5\u770b\u5386\u53f2\u6210\u5458
+view_group_resConfig_table_msg1 =
\u67e5\u770b\u6bcf\u4e2a\u5355\u72ec\u8d44\u6e90\u7684\u6210\u5458\u5386\u53f2\u72b6\u6001
+view_group_resConfig_table_failFetch =
\u83b7\u53d6\u8d44\u6e90\u7ec4\u5386\u53f2\u914d\u7f6e\u5931\u8d25
+view_group_resConfig_table_deleteSuccessful = \u6210\u529f\u5220\u9664 [{0}]
\u5386\u53f2\u9879
+view_group_resConfig_table_deleteFailure =
\u5220\u9664\u5386\u53f2\u8d44\u6e90\u7ec4\u914d\u7f6e\u5931\u8d25
+view_group_resConfig_table_statusSuccess = \u6210\u529f\u4fee\u6539\u7ec4\u914d\u7f6e
+view_group_resConfig_table_statusInprogress =
\u6b64\u7ec4\u914d\u7f6e\u7684\u4fee\u6539\u6b63\u5728\u8fdb\u884c\u4e2d
+view_group_resConfig_table_statusNochange =
\u6ca1\u6709\u5bf9\u6b64\u7ec4\u914d\u7f6e\u505a\u4efb\u4f55\u4fee\u6539
+view_group_resConfig_table_statusFailure = \u7ec4\u914d\u7f6e\u4fee\u6539\u5931\u8d25
+view_group_resConfig_table_clickStatusIcon =
\u70b9\u51fb\u72b6\u6001\u6309\u94ae\u83b7\u53d6\u8be6\u7ec6\u4fe1\u606f
+view_group_resConfig_members_title =
\u8d44\u6e90\u7ec4\u914d\u7f6e\u5386\u53f2\u6210\u5458
+view_group_resConfig_members_fetchFailure
=\u83b7\u53d6\u8d44\u6e90\u7ec4[{0}]\u7684\u6210\u5458\u914d\u7f6e\u4fee\u6539\u5386\u53f2\u8bb0\u5f55\u5931\u8d25
+view_group_resConfig_members_fetchFailureConfig = \u6062\u590d\u8d44\u6e90\u6210\u5458
[{0}]\u7684\u914d\u7f6e\u8bbe\u7f6e
+view_group_resConfig_members_fetchFailureConfigInProgress =
\u6b64\u8d44\u6e90\u7ec4\u914d\u7f6e\u7684\u6b63\u5728\u4fee\u6539\u4e2d\uff0c\u5982\u679c\u8981\u67e5\u770b\u7ec4\u8bbe\u7f6e\uff0c\u9700\u8981\u7b49\u5f85\u6b64\u4fee\u6539\u5168\u90e8\u5b8c\u6210.
+view_group_resConfig_members_statusDetails = \u8be6\u7ec6\u72b6\u6001
+view_group_resConfig_members_statusSuccess =
\u6210\u529f\u7684\u4fee\u6539\u6b64\u914d\u7f6e
+view_group_resConfig_members_statusInprogress =
\u6b63\u4fee\u6539\u6b64\u914d\u7f6e\u4e2d
+view_group_resConfig_members_statusNochange =
\u6ca1\u6709\u5bf9\u6b64\u914d\u7f6e\u505a\u4efb\u4f55\u4fee\u6539
+view_group_resConfig_members_statusFailure =
\u672a\u77e5\u9519\u8bef\uff0c\u4fee\u6539\u914d\u7f6e\u5931\u8d25
+
+view_group_pluginConfig_view_noperm =
\u60a8\u6ca1\u6709\u67e5\u770b\u8fde\u63a5\u8bbe\u7f6e\u7684\u6743\u9650
+view_group_pluginConfig_view_groupProperties = \u7ec4\u5c5e\u6027
+view_group_pluginConfig_table_failFetch =
\u83b7\u53d6\u7ec4\u63d2\u4ef6\u914d\u7f6e\u5386\u53f2\u5931\u8d25
+view_group_pluginConfig_table_title = \u5386\u53f2\u8fde\u63a5\u8bbe\u7f6e\u7ec4
+view_group_pluginConfig_table_statusDetails = \u8be6\u7ec6\u72b6\u6001
+view_group_pluginConfig_table_viewSettings = \u67e5\u770b\u8bbe\u7f6e
+view_group_pluginConfig_table_viewMemberHistory = \u67e5\u770b\u5386\u53f2\u6210\u5458
+view_group_pluginConfig_table_deleteSuccessful = \u60a8\u5220\u9664\u4e86 [{0}]
\u5386\u53f2\u9879
+view_group_pluginConfig_table_deleteFailure
=\u5220\u9664\u7ec4\u63d2\u4ef6\u914d\u7f6e\u5386\u53f2\u5931\u8d25
+view_group_pluginConfig_table_msg1
=\u67e5\u770b\u5355\u72ec\u8d44\u6e90\u7684\u6210\u5458\u5386\u53f2\u72b6\u6001
+view_group_pluginConfig_table_statusSuccess = \u7ec4\u914d\u7f6e\u66f4\u65b0\u6210\u529f
+view_group_pluginConfig_table_statusInprogress = \u7ec4\u914d\u7f6e\u66f4\u65b0\u4e2d
+view_group_pluginConfig_table_statusNochange =
\u6ca1\u6709\u5bf9\u6b64\u7ec4\u914d\u7f6e\u505a\u4efb\u4f55\u4fee\u6539
+view_group_pluginConfig_table_statusFailure =
\u4fee\u6539\u6b64\u7ec4\u914d\u7f6e\u5931\u8d25
+view_group_pluginConfig_table_clickStatusIcon =
\u70b9\u51fb\u72b6\u6001\u6309\u94ae\u83b7\u53d6\u8be6\u7ec6\u4fe1\u606f
+view_group_pluginConfig_members_title =
\u7ec4\u6210\u5458\u8fde\u63a5\u8bbe\u7f6e\u5386\u53f2
+view_group_pluginConfig_members_statusDetails = \u8be6\u7ec6\u72b6\u6001
+view_group_pluginConfig_members_statusSuccess = \u4fee\u6539\u914d\u7f6e\u6210\u529f
+view_group_pluginConfig_members_statusInprogress
=\u6b63\u5728\u4fee\u6539\u914d\u7f6e\u4e2d
+view_group_pluginConfig_members_statusNochange =
\u6ca1\u6709\u5bf9\u914d\u7f6e\u505a\u4efb\u4f55\u4fee\u6539
+view_group_pluginConfig_members_statusFailure =
\u672a\u77e5\u9519\u8bef\uff0c\u914d\u7f6e\u4fee\u6539\u5931\u8d25
+view_group_pluginConfig_members_fetchFailure =
\u83b7\u53d6[{0}]\u7ec4\u6210\u5458\u7684\u63d2\u4ef6\u914d\u7f6e\u66f4\u65b0\u5386\u53f2\u5931\u8d25
+view_group_pluginConfig_members_fetchFailureConn =
\u68c0\u7d22[{0}]\u7684\u6210\u5458\u8fde\u63a5\u8bbe\u7f6e\u5931\u8d25
+view_group_pluginConfig_members_fetchFailureConnInProgress
=\u5f53\u524d\u5df2\u5b58\u5728\u7ec4\u63d2\u4ef6\u914d\u7f6e\u66f4\u65b0\u8fdb\u7a0b .
\u5728\u67e5\u770b\u7ec4\u8bbe\u7f6e\u4e4b\u524d\u9700\u8981\u7b49\u5f85\u66f4\u65b0\u5b8c\u6210.
+view_group_pluginConfig_edit_currentGroupProperties = \u7ec4\u5f53\u524d\u5c5e\u6027
+view_group_pluginConfig_edit_saveTooltip =
\u66f4\u65b0\u6240\u6709\u7684\u7ec4\u6210\u5458\u8fde\u63a5\u8bbe\u7f6e
+view_group_pluginConfig_edit_noperm =
\u60a8\u6ca1\u6709\u6743\u9650\u7f16\u8f91\u6b64\u7ec4\u8fde\u63a5\u8bbe\u7f6e
+view_group_pluginConfig_edit_saveInitiated_concise =
\u7ec4\u8fde\u63a5\u8bbe\u7f6e\u66f4\u65b0\u5df2\u7ecf\u521d\u59cb\u5316
+view_group_pluginConfig_edit_saveInitiated_full = The group connection setting updates
have been initiated for the [{0}] compatible group named [{1}]
+view_group_pluginConfig_edit_saveFailure = Failed to initiate group connection setting
update for [{0}] compatible group named [{1}]
+view_group_pluginConfig_edit_valid = All connection setting properties have valid values,
so the connection settings can now be saved
+view_group_pluginConfig_edit_invalid = The following connection setting properties have
invalid values and must be corrected before the connection settings can be saved: [{0}]
+view_group_meas_schedules_title = Group Metric Collection Schedules
+view_group_summary_nameUpdateFailure = Failed to change the name of the resource group
with ID [{0}] - could not change from [{1}] to [{2}]
+view_group_summary_nameUpdateSuccessful = You have changed the name of the resource group
with ID [{0}] from [{1}] to [{2}]
+view_group_summary_memberType = \u6210\u5458\u7c7b\u578b
+view_group_summary_memberCount = \u6210\u5458\u6570
+view_group_summary_dynamic = \u52a8\u6001
+view_group_summary_recursive = \u9012\u5f52
+view_group_summary_groupDefinition = \u7ec4\u5b9a\u4e49
+view_group_summary_mixed = \u6df7\u5408
+view_group_summary_compatible = \u517c\u5bb9\u7684
+view_group_summary_descUpdateFailure =
\u4fee\u6539ID\u4e3a[{0}]\u7684\u8d44\u6e90\u7ec4\u63cf\u8ff0\u4fe1\u606f\u5931\u8d25
+view_group_summary_descUpdateSuccessful =
\u6210\u529f\u4fee\u6539\u6b64\u8d44\u6e90\u7ec4\u7684\u63cf\u8ff0
+view_group_summary_dynamicNote =
\u52a8\u6001\u7ec4\u7684\u540d\u79f0\u548c\u63cf\u8ff0\u662f\u7ba1\u7406\u5c5e\u6027,\u6240\u4ee5\u4e0d\u80fd\u4fee\u6539
+
+# Connection Settings Details
+#------------------------------------------
+view_connectionSettingsDetails_noPermission =
\u60a8\u6ca1\u6709\u6743\u9650\u7f16\u8f91\u6b64\u8d44\u6e90\u7684\u8fde\u63a5\u8bbe\u7f6e.
+view_connectionSettingsDetails_error_updateFailure =
\u66f4\u65b0\u8fde\u63a5\u8bbe\u7f6e\u5931\u8d25.
+view_connectionSettingsDetails_messageConcise_updateSuccess =
\u8fde\u63a5\u8bbe\u7f6e\u5df2\u66f4\u65b0.
+view_connectionSettingsDetails_messageDetailed_updateSuccess = \u8d44\u6e90
[{0}]\u7684\u8fde\u63a5\u8bbe\u7f6e\u5df2\u7ecf\u66f4\u65b0.
+view_connectionSettingsDetails_allPropertiesValid =
\u6240\u6709\u8fde\u63a5\u8bbe\u7f6e\u7684\u914d\u7f6e\u5df2\u7ecf\u586b\u5199\u4e86\u6709\u6548\u7684\u503c,\u73b0\u5728\u53ef\u4ee5\u4fdd\u5b58\u8bbe\u7f6e.
+view_connectionSettingsDetails_somePropertiesInvalid =
\u4e0b\u9762\u7684\u8fde\u63a5\u8bbe\u7f6e\u4fe1\u606f\u586b\u5199\u4e86\u975e\u6cd5\u7684\u503c:
{0}.
\u5fc5\u987b\u4fee\u6539\u6b64\u4fe1\u606f\u4ee5\u4fbf\u4fdd\u5b58\u6b64\u8bbe\u7f6e.
+
+# Resource Resource Groups
+#-----------------------------------------
+view_resourceResourceGroupList_error_fetchFailure =
\u83b7\u53d6\u8d44\u6e90\u7ec4\u4fe1\u606f\u5931\u8d25.
+view_resourceResourceGroupList_error_updateFailure =
\u66f4\u65b0\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4\u5931\u8d25.
+view_resourceResourceGroupList_message_updateSuccess =
[{0}]\u7684\u7ec4\u6210\u5458\u5df2\u7ecf\u66f4\u65b0.
+
+# Configuration Details
+#-------------------------------
+view_configurationDetails_noPermission
=\u60a8\u6ca1\u6709\u6743\u9650\u7f16\u8f91\u6b64\u8d44\u6e90\u7684\u914d\u7f6e\u4fe1\u606f.
+view_configurationDetails_error_updateFailure = \u66f4\u65b0\u914d\u7f6e\u5931\u8d25.
+view_configurationDetails_messageConcise = \u914d\u7f6e\u66f4\u65b0\u6210\u529f -
\u76ee\u524d\u7248\u672c\u662f {0}.
+view_configurationDetails_messageDetailed = \u8d44\u6e90
[{1}]\u7684\u914d\u7f6e\u7248\u672c\u66f4\u65b0\u5230 {0} .
+view_configurationDetails_allPropertiesValid =
\u6240\u6709\u7684\u914d\u7f6e\u4fe1\u606f\u5df2\u7ecf\u586b\u5199\u4e86\u6709\u6548\u7684\u503c,
\u73b0\u5728\u4fdd\u5b58\u914d\u7f6e.
+view_configurationDetails_somePropertiesInvalid =
\u4e0b\u9762\u7684\u914d\u7f6e\u4fe1\u606f\u586b\u5199\u4e86\u975e\u6cd5\u7684\u503c: {0}.
\u5fc5\u987b\u4fee\u6539\u6b64\u4fe1\u606f\u4ee5\u4fbf\u4fdd\u5b58\u6b64\u914d\u7f6e.
+view_configurationDetails_configNotUpdatedDueToNoChange =
\u7531\u4e8e\u65b0\u65e7\u914d\u7f6e\u4e00\u81f4\uff0c\u6240\u4ee5\u914d\u7f6e\u6ca1\u6709\u66f4\u65b0.
+
+# Resource Configuration History List
+#-------------------------------
+view_configurationHistoryList_title = \u5386\u53f2\u914d\u7f6e
+
+# Abstract Configuration History List
+#-------------------------------
+view_configurationHistoryList_rollback = \u56de\u6eda
+view_configurationHistoryList_rollback_success =
\u60a8\u6210\u529f\u7684\u5c06\u8be5\u914d\u7f6e\u56de\u6eda\u5230\u9009\u4e2d\u7684\u5386\u53f2\u914d\u7f6e.
+view_configurationHistoryList_rollback_failure = \u56de\u6eda\u914d\u7f6e\u5931\u8d25.
\u539f\u6765\u7684\u914d\u7f6e\u4f9d\u7136\u751f\u6548.
+view_configurationHistoryList_delete_success =
\u60a8\u6210\u529f\u7684\u5220\u9664\u4e86\u9009\u4e2d\u7684\u5386\u53f2\u914d\u7f6e\u9879.
+view_configurationHistoryList_delete_failure =
\u5220\u9664\u5386\u53f2\u914d\u7f6e\u9879\u5931\u8d25
+view_configurationHistoryList_cannotDeleteGroupItems =
\u4e00\u4e2a\u6216\u591a\u4e2a\u9009\u4e2d\u7684\u5386\u53f2\u914d\u7f6e\u9879\u662f\u67d0\u4e2a\u7ec4\u914d\u7f6e\u7684\u4e00\u90e8\u5206\u3002
\
+\u5728\u5220\u9664\u5355\u4e2a\u7684\u5386\u53f2\u914d\u7f6e\u4fe1\u606f\u4e4b\u524d\uff0c\u5fc5\u987b\u5148\u5220\u9664
\u4e0a\u4e00\u7ea7\u7684\u5386\u53f2\u7ec4\u914d\u7f6e.
+view_configurationHistoryList_cannotDeleteCurrent
=\u9009\u4e2d\u7684\u5386\u53f2\u914d\u7f6e\u4e2d\u7684\u4e00\u9879\u662f\u73b0\u6709\u751f\u6548\u7684\u914d\u7f6e
- \u4f60\u4e0d\u80fd\u5220\u9664\u5b83.
+view_configurationHistoryList_table_statusSuccess =
\u6b64\u914d\u7f6e\u6210\u529f\u66f4\u65b0
+view_configurationHistoryList_table_statusInprogress =
\u66f4\u65b0\u6b64\u914d\u7f6e\u7684\u64cd\u4f5c\u6b63\u5728\u8fdb\u884c\u4e2d
+view_configurationHistoryList_table_statusNochange =
\u6ca1\u6709\u5bf9\u6b64\u914d\u7f6e\u505a\u4efb\u4f55\u4fee\u6539
+view_configurationHistoryList_table_statusFailure =
\u6b64\u914d\u7f6e\u66f4\u65b0\u5931\u8d25
+view_configurationHistoryList_table_clickStatusIcon =
\u70b9\u51fb\u72b6\u6001\u6309\u94ae\u83b7\u53d6\u8be6\u7ec6\u7684\u4fe1\u606f
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_error_loadFailure =
\u65e0\u6cd5\u52a0\u8f7d\u5386\u53f2\u914d\u7f6e.
+
+
+# Operation Schedule List
+#------------------------
+xxx =
+
+# Operation Schedule Details
+#---------------------------
+view_operationScheduleDetails_operationSchedule = \u64cd\u4f5c\u8ba1\u5212
+view_operationScheduleDetails_field_description = \u63cf\u8ff0
+view_operationScheduleDetails_field_parameters = \u53c2\u6570
+view_operationScheduleDetails_field_timeout = \u8d85\u65f6
+view_operationScheduleDetails_fieldHelp_timeout = \u64cd\u4f5c\u6301\u7eed\u65f6\u95f4 -
\u5982\u679c\u6307\u5b9a,
\u5e76\u4e14\u8d85\u8fc7\u4e86\u6307\u5b9a\u7684\u65f6\u95f4\u64cd\u4f5c\u6ca1\u6709\u5b8c\u6210,
RHQ
\u670d\u52a1\u5224\u5b9a\u6b64\u64cd\u4f5c\u8d85\u65f6\u5e76\u4e14\u6807\u4e3a\u5931\u8d25;
\u63d0\u793a, \u901a\u5e38
\u4e0d\u53ef\u80fd\u7ec8\u6b62\u5df2\u7ecf\u5f00\u59cb\u8fd0\u884c\u7684\u540e\u53f0\u8d44\u6e90\u7ba1\u7406\u7684\u64cd\u4f5c.
+view_operationScheduleDetails_fieldHelp_description =
\u6b64\u8c03\u5ea6\u64cd\u4f5c\u7684\u53ef\u9009\u63cf\u8ff0 (e.g.
\u6bcf\u591c\u7ef4\u62a4\u5e94\u7528\u670d\u52a1\u91cd\u542f)
+view_operationScheduleDetails_fieldDefault_description =
\u9009\u62e9\u64cd\u4f5c\u67e5\u770b\u63cf\u8ff0.
+view_operationScheduleDetails_fieldDefault_parameters =
\u9009\u62e9\u64cd\u4f5c\u67e5\u770b\u6240\u9700\u7684\u53c2\u6570.
+view_operationScheduleDetails_noParameters =
\u6b64\u64cd\u4f5c\u4e0d\u9700\u8981\u4efb\u4f55\u53c2\u6570.
+view_operationScheduleDetails_enterParametersBelow =
\u8f93\u5165\u4e0b\u9762\u7684\u53c2\u6570...
+
+view_group_operationScheduleDetails_failedToLoadMembers =
\u52a0\u8f7d\u7ec4\u6210\u5458\u4fe1\u606f\u5931\u8d25.
+view_group_operationScheduleDetails_field_execute = \u6267\u884c
+view_group_operationScheduleDetails_value_parallel =
\u91c7\u53d6\u5e76\u884c\u7684\u65b9\u5f0f
+view_group_operationScheduleDetails_value_sequential =
\u6309\u7167\u5982\u4e0b\u7684\u987a\u5e8f
(\u6dfb\u52a0\u6216\u8005\u5220\u9664\u6210\u5458\u4ee5\u4fee\u6539\u987a\u5e8f)
+view_group_operationScheduleDetails_field_haltOnFailure =
\u5931\u8d25\u65f6\u505c\u6b62?
+view_group_operationScheduleDetails_memberResource = \u6210\u5458\u4fe1\u606f
+
+
+# Operation History List
+#-----------------------
+view_operationHistoryList_title = \u64cd\u4f5c\u5386\u53f2
+view_operationHistoryList_button_runOperation = \u6267\u884c\u64cd\u4f5c
+view_operationHistoryList_button_forceDelete = \u5f3a\u5236\u5220\u9664
+view_operationHistoryList_notYetStarted = \u8fd8\u672a\u5f00\u59cb
+
+# Operation History Details
+#--------------------------
+view_operationHistoryDetails_error_fetchFailure =
\u52a0\u8f7d\u64cd\u4f5c\u5386\u53f2\u5931\u8d25.
+view_operationHistoryDetails_operation = \u64cd\u4f5c
+view_operationHistoryDetails_dateSubmitted = Date Submitted
+view_operationHistoryDetails_dateCompleted = Date Completed
+view_operationHistoryDetails_requestor = \u8bf7\u6c42
+view_operationHistoryDetails_status = \u72b6\u6001
+view_operationHistoryDetails_parameters = \u53c2\u6570
+view_operationHistoryDetails_results = \u7ed3\u679c
+view_operationHistoryDetails_noResults =
\u6b64\u64cd\u4f5c\u6ca1\u6709\u4efb\u4f55\u8fd4\u56de.
+
+
+# Summary Overview
+#-----------------------------
+view_summaryOverview_header_detectedErrors = \u5df2\u68c0\u6d4b\u5230\u7684\u9519\u8bef
+view_summaryOverview_tooltip_detectedErrors =
\u70b9\u51fb\u5bf9\u5e94\u7684\u884c\u67e5\u770b\u9519\u8bef\u4fe1\u606f.
+view_summaryOverview_title_errorDetailsWindow = \u9519\u8bef\u8be6\u7ec6
+
+# Summary Overview Form
+#-------------------------------------
+view_summaryOverviewForm_field_type = \u7c7b\u578b
+view_summaryOverviewForm_field_name = \u5b57\u6bb5\u540d
+view_summaryOverviewForm_field_description = \u63cf\u8ff0
+view_summaryOverviewForm_field_location = \u4f4d\u7f6e
+view_summaryOverviewForm_field_version = \u7248\u672c\u53f7
+view_summaryOverviewForm_error_traitsLoadFailure = \u52a0\u8f7d
{0}\u7684\u5c5e\u6027\u4fe1\u606f\u5931\u8d25.
+view_summaryOverviewForm_label_plugin = \u63d2\u4ef6\u6807\u7b7e:
+view_summaryOverviewForm_label_type = \u6807\u7b7e\u7c7b\u578b:
+view_summaryOverviewForm_header_summary = \u7edf\u8ba1
+view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with
id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was
changed from [{1}] to [{2}].
+view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of
Resource with id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with
id {0} was changed from [{1}] to [{2}].
+view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of
Resource with id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0}
was changed from [{1}] to [{2}].
+
+# Summary Dashboard
+#-----------------------------
+view_summaryDashboard_resetConfirm =
\u6062\u590d\u5230\u9ed8\u8ba4\u7684\u7edf\u8ba1\u56fe\u8868
(\u653e\u5f03\u4e4b\u524d\u4fdd\u5b58\u7684\u4fe1\u606f)?
+
+# Group Inventory>Members subtab
+#-----------------------------------------
+view_groupInventoryMembers_button_updateMembership =
\u66f4\u65b0\u6210\u5458\u5173\u7cfb\u4e2d...
+view_groupInventoryMembers_title_updateMembership = \u66f4\u65b0\u6210\u5458\u5173\u7cfb
+
+
+#==================== Reports ======================
+
+view_reportsTop_title = \u62a5\u8868
+view_reportsTop_description =
\u8be5\u90e8\u5206\u5185\u5bb9\u63d0\u4f9b\u4e86\u5168\u5c40\u62a5\u8868\u7684\u5165\u53e3.
+view_reports_platforms = \u5e73\u53f0\u4f7f\u7528\u7387\u62a5\u8868
+view_reports_subsystems = \u5b50\u7cfb\u7edf\u62a5\u8868
+view_reports_alertDefinitions = \u544a\u8b66\u5b9a\u4e49
+
+view_measurementOob_title = Suspect Metrics
+
+view_tagCloud_title = \u6807\u7b7e\u96c6
+view_tagCloud_error_fetchFailure = \u52a0\u8f7d\u6807\u7b7e\u5931\u8d25.
+view_tagCloud_error_tagUsedCount = \u6807\u7b7e\u4f7f\u7528 {0} \u6b21.
+view_tagCloud_deleteTag = \u5220\u9664\u6807\u7b7e
+view_tagCloud_deleteTagFailure = \u5220\u9664\u6807\u7b7e [{0}] \u5931\u8d25
+view_tagCloud_deleteTagSuccess = \u6210\u529f\u7684\u5220\u9664\u4e86\u6807\u7b7e [{0}]
+
+view_reports_inventorySummary_failFetch =
\u83b7\u53d6\u7edf\u8ba1\u6e05\u5355\u5931\u8d25
+
+view_taggedResources_title = \u8d44\u6e90
+
+view_reports_alertDefinitions_parentHover =
\u70b9\u51fb\u5230\u7236\u7ea7\u544a\u8b66\u83dc\u5355
+view_reports_alertDefinitions_resTypeLoadError =
\u65e0\u6cd5\u83b7\u53d6\u8d44\u6e90\u6a21\u677f\u7c7b\u578b -
\u65e0\u6cd5\u67e5\u770b\u544a\u8b66\u6a21\u677f.
+
+#==================== Help ======================
+
+view_helpTop_description =
\u8be5\u90e8\u5206\u5185\u5bb9\u63d0\u4f9b\u4e86\u4ea7\u54c1\u6587\u6863, \u6559\u7a0b,
\u7248\u672c\u53f7\u548c\u5176\u4ed6\u6709\u7528\u7684\u4fe1\u606f.
+view_help_section_product = \u4ea7\u54c1\u5e2e\u52a9
+view_help_section_product_about = \u5173\u4e8e\u4ea7\u54c1\u5e2e\u52a9
+
+
+#===================== Test =======================
+view_testTop_title = \u6d4b\u8bd5
+view_testTop_description =
\u8fd9\u90e8\u5206\u9875\u9762\u7528\u4e8e\u6d4b\u8bd5\u5404\u79cdGUI\u7ec4\u4ef6.
+
+#=================== Top Level =====================
+
+# About Box
+#----------
+view_aboutBox_allRightsReserved = All Rights Reserved.
+view_aboutBox_buildNumber = \u4ea7\u54c1\u7f16\u8bd1\u53f7:
+view_aboutBox_failedToLoad = \u52a0\u8f7d\u4ea7\u54c1\u4fe1\u606f\u5931\u8d25.
+view_aboutBox_homepage = \u4e3b\u9875
+view_aboutBox_jbossByRedHat = JBoss by Red Hat
+view_aboutBox_title = \u5173\u4e8e {0}
+view_aboutBox_version = \u7248\u672c:
+
+# CoreGUI
+#--------------
+view_core_error_1 = \u67e5\u627e\u65b0\u544a\u8b66\u4fe1\u606f\u5931\u8d25
+#view_core_loggedInAs = \u4ee5 {0}\u767b\u5f55
+view_core_loggedOut = \u9000\u51fa\u767b\u5f55
+view_core_recentAlerts = \u65b0\u4ea7\u751f [{0}] \u6761\u544a\u8b66 -
\u70b9\u51fb\u8df3\u8f6c\u5230\u65b0\u544a\u8b66\u62a5\u8868\u754c\u9762
+view_core_noRecentAlerts = \u6ca1\u6709\u65b0\u4ea7\u751f\u7684\u544a\u8b66\u4fe1\u606f
+view_core_uncaught = \u5168\u5c40\u672a\u6355\u6349\u7684\u5f02\u5e38
+
+# Login
+#--------------
+view_login_invalidEmail = \u65e0\u6548\u7684\u90ae\u7bb1\u5730\u5740
+view_login_login = \u767b\u5f55
+view_login_logout = \u6ce8\u9500
+view_login_noBackend = \u540e\u7aef\u6570\u636e\u4e0d\u53ef\u8fbe.
+view_login_noLdap = \u63d0\u793a:
\u83b7\u53d6\u53ef\u9009\u7684ldap\u4fe1\u606f\u5931\u8d25.
\u9700\u8981\u624b\u5de5\u8f93\u5165.
+view_login_noUser = \u7528\u6237\u540d\u6216\u8005\u5bc6\u7801\u4e0d\u5339\u914d.
+view_login_prompt = \u8bf7\u767b\u5f55
+view_login_registerLater = (\u53d6\u6d88 - \u7a0d\u540e\u5b8c\u6210\u6ce8\u518c.)
+view_login_registerLdapSuccess = \u6210\u529f\u6ce8\u518c\u65b0\u7684LDAP\u7528\u6237.
+view_login_registerUser = \u7528\u6237\u6ce8\u518c
+view_login_welcome = \u6b22\u8fce
+view_login_welcomeMsg = \u6b22\u8fce\u6765\u5230 RHQ! <br/><br/>
\u8f93\u5165\u6216\u8005\u4fee\u6539\u4e0b\u9762\u7684\u4fe1\u606f\uff0c\u4ee5\u5b8c\u6210\u6ce8\u518c<br/>
\u70b9\u51fb"OK",
\u5c31\u53ef\u4ee5\u767b\u5f55\u7cfb\u7edf.<br/><br/>
+
+# Menu Bar
+#--------------
+view_menuBar_logout = \u6ce8\u9500
+
+# Search Bar, GUI
+#-----------------
+view_searchBar_resources = \u8d44\u6e90
+view_searchBar_resourceGroups = \u8d44\u6e90\u7ec4
+# TODO: i18n pluralization
+view_searchBar_welcomeMessage = \u641c\u7d22\u4e86 {0}\u79d2
+view_searchBar_defaultPattern = \u5b9a\u4e49\u81ea\u5df1\u7684\u6837\u5f0f
+view_searchBar_error_selectSavedSearch =
''\u9009\u62e9\u4fdd\u5b58\u7684\u641c\u7d22\u65f6\u51fa\u9519''
+view_searchBar_query = \u67e5\u8be2
+
+view_searchGUI_loginStatus =
\u65e0\u6cd5\u786e\u5b9a\u767b\u5f55\u72b6\u6001\uff0c\u8bf7\u68c0\u67e5\u670d\u52a1
+
+# Message Center
+#--------------------------
+view_messageCenter_messageTitle = \u6d88\u606f\u4e2d\u5fc3
+view_messageCenter_noRecentMessages = \u65e0\u8fd1\u671f\u6d88\u606f
+view_messageCenter_maxMessages = \u6700\u5927\u6d88\u606f\u91cf
+view_messageCenter_lastNMessages = \u6700\u540e {0} \u6761\u4fe1\u606f
+view_messageCenter_clearAllMessages = \u6e05\u9664\u6240\u6709\u7684\u6d88\u606f
+view_messageCenter_messageTime = \u65f6\u95f4
+view_messageCenter_messageSeverity = \u91cd\u8981\u7ea7\u522b
+view_messageCenter_messageDetail = \u8be6\u7ec6\u5185\u5bb9
+view_messageCenter_stackTraceFollows = --- \u540e\u9762\u662f\u5f02\u5e38\u4fe1\u606f
---
+view_messageCenter_messageBarShowDetails = \u663e\u793a\u5185\u5bb9
\ No newline at end of file
commit 42cc06890b8fbe5a25653c0d96264736178ea99f
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon May 23 09:26:43 2011 +0200
Fix a typo
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index d387c9e..986aa6d 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -606,7 +606,7 @@ dataSource_resourceErrors_field_summary = Summary
dataSource_resourceErrors_field_errorType = Error Type
dataSource_resourceErrors_field_timeOccured = Time
dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for
Resource with id [{0}].
-dataSource_resourceErrors_clickStatusIcon = Click the icon for more details
+dataSource_resourceErrors_clickStatusIcon = Click the icon for more details
dataSource_resourceErrors_deleteSuccess = You have successfully deleted [{0}] resource
error messages.
dataSource_resourceErrors_deleteFailure = Failed to delete resource errors
@@ -657,9 +657,9 @@ view_adminContent_repositories = Repositories
view_adminTemplates_platforms = Platforms
view_adminTemplates_platformServices = Platform Services
view_adminTemplates_servers = Servers
-view_adminTemplates_enabledAlertTemplates = Enabled Alert Templates
+view_adminTemplates_enabledAlertTemplates = Enabled Alert Templates
view_adminTemplates_disabledAlertTemplates = Disabled Alert Templates
-view_adminTemplates_enabledMetricTemplates = Enabled Metric Templates
+view_adminTemplates_enabledMetricTemplates = Enabled Metric Templates
view_adminTemplates_disabledMetricTemplates = Disabled Metric Templates
view_adminTemplates_editAlertTemplate = Edit Alert Template
view_adminTemplates_editMetricTemplate = Edit Metric Template
@@ -1511,7 +1511,7 @@ view_portlet_defaultName_platformSummary = Platform Utilization
view_portlet_defaultName_problemResources = Alerted or Unavailable Resources
view_portlet_defaultName_recentAlerts = Recent Alerts
view_portlet_defaultName_recentlyAddedResources = Recently Added Resources
-view_portlet_defaultName_tagCloud = Tag Count
+view_portlet_defaultName_tagCloud = Tag Cloud
view_portlet_defaultName_group_alerts =Group: Alerts
view_portlet_defaultName_group_bundles = Group: Bundle Deployments
commit 569cb9a7f42e733a2ae964f13d8803c152857af4
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri May 20 10:15:39 2011 -0400
Fixing failing test. A jmock expectation was missing.
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanUnitTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanUnitTest.java
index bb71777..bbffef8 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanUnitTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanUnitTest.java
@@ -366,6 +366,9 @@ public class ConfigurationManagerBeanUnitTest extends JMockTest {
context.checking(new Expectations() {{
allowing(entityMgr).find(Resource.class, fixture.resourceId);
will(returnValue(fixture.resource));
+ allowing(entityMgr).find(ResourceConfigurationUpdate.class,
expectedUpdate.getId());
+ will(returnValue(expectedUpdate));
+
oneOf(authorizationMgr).hasResourcePermission(fixture.subject,
CONFIGURE_WRITE, fixture.resourceId);
will(returnValue(true));
commit a05d22f86d55333503b9ccc599caeaf030fe0dc2
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu May 19 20:01:26 2011 -0400
[#4 BZ 536032 - (RHQ-426) session oddities when the same user is logged in from
multiple machines]
4th check-in related to this BZ. More test class fixes for using
session enabled Subjects.
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/authz/test/RoleManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/authz/test/RoleManagerBeanTest.java
index 3e900f7..c316462 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/authz/test/RoleManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/authz/test/RoleManagerBeanTest.java
@@ -72,8 +72,8 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
- PageList<Role> roles =
roleManager.findRolesBySubject(subjectManager.getOverlord().getId(),
- PageControl.getUnlimitedInstance());
+ PageList<Role> roles =
roleManager.findRolesBySubject(subjectManager.getOverlord().getId(), PageControl
+ .getUnlimitedInstance());
assert roles.size() == 1;
Role role = roles.get(0);
@@ -95,12 +95,12 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
- PageList<Role> roles =
roleManager.findRolesBySubject(subjectManager.getOverlord().getId(),
- PageControl.getUnlimitedInstance());
+ PageList<Role> roles =
roleManager.findRolesBySubject(subjectManager.getOverlord().getId(), PageControl
+ .getUnlimitedInstance());
for (Role role : roles) {
- PageList<Subject> subjects =
roleManager.findSubjectsByRole(role.getId(),
- PageControl.getUnlimitedInstance());
+ PageList<Subject> subjects =
roleManager.findSubjectsByRole(role.getId(), PageControl
+ .getUnlimitedInstance());
if (role.getName().equals("Super User Role")) {
assert subjects.size() >= 1 : "At least rhqadmin must have
super user role: " + subjects;
@@ -130,8 +130,8 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
role_id_list.add(role.getId());
}
- PageList<Role> roles =
roleManager.findRolesByIds(role_id_list.toArray(new Integer[0]),
- PageControl.getUnlimitedInstance());
+ PageList<Role> roles =
roleManager.findRolesByIds(role_id_list.toArray(new Integer[0]), PageControl
+ .getUnlimitedInstance());
assert roles.size() == all_roles.size();
assert roles.containsAll(all_roles);
} finally {
@@ -148,12 +148,12 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
Subject superuser = subjectManager.getOverlord();
- createSession(superuser);
+ superuser = createSession(superuser);
Subject subject = new Subject();
subject.setName("dummy-subject");
subject = subjectManager.createSubject(superuser, subject);
- createSession(subject);
+ subject = createSession(subject);
Role new_role = new Role("dummy-role");
Role new_role2 = new Role("dummy-role2");
@@ -165,39 +165,39 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
PageList<Role> roles;
- roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[0],
- PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[0], PageControl
+ .getUnlimitedInstance());
assert roles.size() == all_roles.size() : "All roles should be available
for this subject";
assert roles.containsAll(all_roles);
- roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
- new Integer[] { new_role.getId() }, PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[] { new_role
+ .getId() }, PageControl.getUnlimitedInstance());
assert (roles.size() + 1) == all_roles.size() : "All roles but one
should be available for this subject";
assert !roles.contains(new_role);
- roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
- new Integer[] { new_role.getId(), new_role2.getId() },
PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[] {
+ new_role.getId(), new_role2.getId() },
PageControl.getUnlimitedInstance());
assert (roles.size() + 2) == all_roles.size() : "All roles but two
should be available for this subject";
assert !roles.contains(new_role);
assert !roles.contains(new_role2);
roleManager.addRolesToSubject(superuser, subject.getId(), new int[] {
new_role.getId() });
- roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[0],
- PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[0], PageControl
+ .getUnlimitedInstance());
assert (roles.size() + 1) == all_roles.size() : "All but one role should
be available for this subject";
assert !roles.contains(new_role) : "We already assigned this new role to
the subject - it isn't available";
- roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
- new Integer[] { new_role2.getId() },
PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(superuser, subject.getId(),
new Integer[] { new_role2
+ .getId() }, PageControl.getUnlimitedInstance());
assert (roles.size() + 2) == all_roles.size() : "One is already assigned
and one is excluded so all but two roles should be available for this subject";
assert !roles.contains(new_role) : "We already assigned this new role to
the subject - it isn't available";
assert !roles.contains(new_role2) : "We excluded this new role - it
isn't available";
try {
// dummy user doesn't have the permission for this
- roles = roleManager.findAvailableRolesForSubject(subject,
subject.getId(), new Integer[0],
- PageControl.getUnlimitedInstance());
+ roles = roleManager.findAvailableRolesForSubject(subject,
subject.getId(), new Integer[0], PageControl
+ .getUnlimitedInstance());
} catch (PermissionException s) {
// to be expected, this rolls the transaction back for us
}
@@ -232,29 +232,29 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
Subject superuser = subjectManager.getOverlord();
subjectManager.createSubject(superuser, newSubject1);
- createSession(newSubject1);
+ newSubject1 = createSession(newSubject1);
subjectManager.createSubject(superuser, newSubject2);
- createSession(newSubject2);
+ newSubject2 = createSession(newSubject2);
- assertEquals("Role should not be created or assigned yet", 0,
- roleManager.findRolesBySubject(newSubject1.getId(),
PageControl.getUnlimitedInstance()).size());
+ assertEquals("Role should not be created or assigned yet", 0,
roleManager.findRolesBySubject(
+ newSubject1.getId(), PageControl.getUnlimitedInstance()).size());
role = roleManager.createRole(superuser, role);
- assertEquals("Role should be assigned at the time the role is
created", 1,
- roleManager.findRolesBySubject(newSubject1.getId(),
PageControl.getUnlimitedInstance()).size());
+ assertEquals("Role should be assigned at the time the role is
created", 1, roleManager.findRolesBySubject(
+ newSubject1.getId(), PageControl.getUnlimitedInstance()).size());
- roleManager.addRolesToSubject(superuser, newSubject2.getId(), new
int[]{role.getId()});
- assertEquals("Role should be assigned", 1,
- roleManager.findRolesBySubject(newSubject2.getId(),
PageControl.getUnlimitedInstance()).size());
+ roleManager.addRolesToSubject(superuser, newSubject2.getId(), new int[] {
role.getId() });
+ assertEquals("Role should be assigned", 1,
roleManager.findRolesBySubject(newSubject2.getId(),
+ PageControl.getUnlimitedInstance()).size());
roleManager.removeRolesFromSubject(superuser, newSubject1.getId(), new int[]
{ role.getId() });
- assertEquals("Role should have been unassigned", 0,
- roleManager.findRolesBySubject(newSubject1.getId(),
PageControl.getUnlimitedInstance()).size());
+ assertEquals("Role should have been unassigned", 0,
roleManager.findRolesBySubject(newSubject1.getId(),
+ PageControl.getUnlimitedInstance()).size());
roleManager.deleteRoles(superuser, new int[] { role.getId() });
- assertFalse("Roles should have been deleted",
-
roleManager.findRoles(PageControl.getUnlimitedInstance()).contains(role));
+ assertFalse("Roles should have been deleted",
roleManager.findRoles(PageControl.getUnlimitedInstance())
+ .contains(role));
} finally {
getTransactionManager().rollback();
}
@@ -270,7 +270,7 @@ public class RoleManagerBeanTest extends AbstractEJB3Test {
try {
Subject superuser = subjectManager.getOverlord();
- createSession(superuser);
+ superuser = createSession(superuser);
Role role = new Role("role-manager-role");
role.setFsystem(false);
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 0a3efd8..22a2dd4 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -635,7 +635,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
List<ResourceConfigurationUpdate> requests;
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests.size() == 1;
assert requests.get(0) != null;
@@ -677,7 +677,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
configurationManager.purgeResourceConfigurationUpdate(overlord, request.getId(),
false);
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests.size() == 1; // it will create one for us from the
"live" configuration
}
@@ -707,7 +707,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
List<ResourceConfigurationUpdate> history;
history = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert history != null;
assert history.size() == 3;
@@ -727,7 +727,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(2000); // wait for the test agent to complete the request
history = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert history != null;
assert history.size() == 4;
ResourceConfigurationUpdate newConfigUpdate = history.get(3); // the last one is
the new one
@@ -772,7 +772,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
List<ResourceConfigurationUpdate> requests;
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests != null;
assert requests.size() == 1 : "Got " + requests.size() + " config
update requests - expected 1.";
@@ -803,7 +803,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
List<ResourceConfigurationUpdate> requests;
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests != null;
assert requests.size() == 2 : "Got " + requests.size() + " config
update requests - expected 2.";
@@ -817,7 +817,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
// now get the current configs/requests and
// make sure we deleted just the one configuration, leaving one left
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests.size() == 1;
assert requests.get(0).getId() == savedRequest.getId();
@@ -861,13 +861,15 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test
{
List<ResourceConfigurationUpdate> requests;
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests != null;
assert requests.size() == 2; // one succeeded and one failed
- assert requests.get(0).getStatus() == ConfigurationUpdateStatus.FAILURE :
"actual: " + requests.get(0).getStatus();
- assert requests.get(1).getStatus() == ConfigurationUpdateStatus.SUCCESS :
"actual: " + requests.get(1).getStatus();
+ assert requests.get(0).getStatus() == ConfigurationUpdateStatus.FAILURE :
"actual: "
+ + requests.get(0).getStatus();
+ assert requests.get(1).getStatus() == ConfigurationUpdateStatus.SUCCESS :
"actual: "
+ + requests.get(1).getStatus();
ResourceConfigurationUpdate savedRequest = requests.get(0); // this is the one
that failed
ResourceConfigurationUpdate doomedRequest = requests.get(1); // this is the one
that succeeded
@@ -877,7 +879,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
// now get the current configs/requests and
// make sure we deleted the only one configuration that succeeded, leaving one
update record
requests = configurationManager.findResourceConfigurationUpdates(overlord,
resource.getId(), null, null, false,
- configUpdatesPageControl);
+ configUpdatesPageControl);
assert requests.size() == 1;
@@ -901,7 +903,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
try {
noPermSubject = LookupUtil.getSubjectManager().createSubject(superuser,
noPermSubject);
- createSession(noPermSubject);
+ noPermSubject = createSession(noPermSubject);
try {
configurationManager.updateResourceConfiguration(noPermSubject,
resource.getId(), new Configuration());
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index 0ae4e9e..2f47aa2 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -27,8 +27,6 @@ import javax.persistence.EntityManager;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
-import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
-import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
@@ -47,6 +45,8 @@ import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.ResourceOperationHistory;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.operation.composite.GroupOperationLastCompletedComposite;
import org.rhq.core.domain.operation.composite.GroupOperationScheduleComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
@@ -1490,7 +1490,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
noPermSubject = LookupUtil.getSubjectManager().createSubject(overlord,
noPermSubject);
- createSession(noPermSubject);
+ noPermSubject = createSession(noPermSubject);
assert !operationManager.isResourceOperationSupported(noPermSubject,
resource.getId()) : "Should not have permission to get control info";
assert !operationManager.isGroupOperationSupported(noPermSubject,
newGroup.getId()) : "Should not have permission to get control info";
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceGroupManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceGroupManagerBeanTest.java
index a4c60ce..af20900 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceGroupManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceGroupManagerBeanTest.java
@@ -94,7 +94,6 @@ public class ResourceGroupManagerBeanTest extends AbstractEJB3Test {
/* bootstrap */
ResourceType type = new ResourceType("type", "plugin",
ResourceCategory.PLATFORM, null);
Subject testSubject = SessionTestHelper.createNewSubject(em,
"testSubject");
- createSession(testSubject);
Role testRole = SessionTestHelper.createNewRoleForSubject(em, testSubject,
"testRole");
testRole.addPermission(Permission.MANAGE_INVENTORY);
ResourceGroup compatGroup = new ResourceGroup("group1", type);
@@ -128,7 +127,6 @@ public class ResourceGroupManagerBeanTest extends AbstractEJB3Test {
/* bootstrap */
ResourceType type = new ResourceType("type", "plugin",
ResourceCategory.PLATFORM, null);
Subject testSubject = SessionTestHelper.createNewSubject(em,
"testSubject");
- createSession(testSubject);
Role testRole = SessionTestHelper.createNewRoleForSubject(em, testSubject,
"testRole");
testRole.addPermission(Permission.MANAGE_INVENTORY);
ResourceGroup compatGroup = new ResourceGroup("group1", type);
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
index e580229..4e3241c 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
@@ -63,7 +63,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
Subject subject = subjectManager.loginUnauthenticated("ghinkle");
//Subject subject = subjectManager.getOverlord();
- createSession(subject);
+ subject = createSession(subject);
ResourceType t = em.getReference(ResourceType.class, new Integer(501064));
String typeNameFilter = t == null ? null : t.getName();
PageList<ResourceComposite> resources =
resourceManager.findResourceComposites(subject,
@@ -106,7 +106,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
//Subject subject =
subjectManager.loginUnauthenticated("ghinkle");
Subject subject = subjectManager.getOverlord();
- createSession(subject);
+ subject = createSession(subject);
List<ResourceGroupComposite> groups =
groupManager.findResourceGroupComposites(subject,
GroupCategory.MIXED, null, null, null, null, null, null, pc);
System.out.println("Found mixed groups: " + groups.size());
@@ -188,7 +188,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
Subject rhqadmin =
subjectManager.loginUnauthenticated("rhqadmin");
- createSession(rhqadmin);
+ rhqadmin = createSession(rhqadmin);
Map<Resource, List<Resource>> queue =
discoveryBoss.getQueuedPlatformsAndServers(rhqadmin, PageControl
.getUnlimitedInstance());
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index 5811792..ee2a45f 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -205,7 +205,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
* annotations by creating sessions for different users with different permissions.
*
* @param subject a JON subject
- * @return the session activated subject, a copy of the subjected passed in.
+ * @return the session activated subject, a copy of the subject passed in.
*/
public Subject createSession(Subject subject) {
return SessionManager.getInstance().put(subject);
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
index 09d8190..6ec3cbf 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
@@ -90,7 +90,7 @@ public class SessionTestHelper {
// We want to return the attached object but sessionmanager.put will return a
detached copy of newSubject.
// Copy over the sessionId and pass back the attached Subject.
Subject sessionSubject = SessionManager.getInstance().put(newSubject, 1000 *
300);
- newSubject.setSessionId(sessionSubject.getId());
+ newSubject.setSessionId(sessionSubject.getSessionId());
return newSubject;
}
commit 3c10e346e27f760079d07783662efc564827b20b
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu May 19 16:17:33 2011 -0400
[#3 BZ 536032 - (RHQ-426) session oddities when the same user is logged in from
multiple machines]
3rd check-in related to this BZ. This time a fix to the SessionTestHelper
class used by several server jar tests.
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
index 6ff56db..09d8190 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
@@ -87,8 +87,10 @@ public class SessionTestHelper {
em.persist(newSubject);
em.flush();
- // return the copy, not the original
- newSubject = SessionManager.getInstance().put(newSubject, 1000 * 300);
+ // We want to return the attached object but sessionmanager.put will return a
detached copy of newSubject.
+ // Copy over the sessionId and pass back the attached Subject.
+ Subject sessionSubject = SessionManager.getInstance().put(newSubject, 1000 *
300);
+ newSubject.setSessionId(sessionSubject.getId());
return newSubject;
}
commit 85359d0022ee5a780328e362d643603a624ec7b4
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu May 19 15:54:49 2011 -0400
BZ 706193 - hibernate detach utility needs to replace proxy objects for Map key/values
(as well as object arrays)
diff --git
a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
index de57afb..a349f0c 100644
---
a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
+++
b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/util/HibernateDetachUtility.java
@@ -29,6 +29,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
@@ -122,9 +123,13 @@ public class HibernateDetachUtility {
if (value instanceof Object[]) {
Object[] objArray = (Object[]) value;
for (int i = 0; i < objArray.length; i++) {
+ Object listEntry = objArray[i];
+ Object replaceEntry = replaceObject(listEntry);
+ if (replaceEntry != null) {
+ objArray[i] = replaceEntry;
+ }
nullOutUninitializedFields(objArray[i], checkedObjects, depth + 1,
serializationType);
}
-
} else if (value instanceof List) {
// Null out any entries in initialized collections
ListIterator i = ((List) value).listIterator();
@@ -154,8 +159,34 @@ public class HibernateDetachUtility {
collection.removeAll(itemsToBeReplaced);
collection.addAll(replacementItems); // watch out! if this collection is a
Set, HashMap$MapSet doesn't support addAll. See BZ 688000
} else if (value instanceof Map) {
- for (Object key : ((Map) value).keySet()) {
- nullOutUninitializedFields(((Map) value).get(key), checkedObjects, depth
+ 1, serializationType);
+ Map originalMap = (Map) value;
+ HashMap<Object, Object> replaceMap = new HashMap<Object,
Object>();
+ for (Iterator i = originalMap.keySet().iterator(); i.hasNext();) {
+ // get original key and value - these might be hibernate proxies
+ Object originalKey = i.next();
+ Object originalKeyValue = originalMap.get(originalKey);
+
+ // replace with non-hibernate classes, if appropriate (will be null
otherwise)
+ Object replaceKey = replaceObject(originalKey);
+ Object replaceValue = replaceObject(originalKeyValue);
+
+ // if either original key or original value was a hibernate proxy object,
we have to
+ // remove it from the original map, and remember the replacement objects
for later
+ if (replaceKey != null || replaceValue != null) {
+ Object newKey = (replaceKey != null) ? replaceKey : originalKey;
+ Object newValue = (replaceValue != null) ? replaceValue :
originalKeyValue;
+ replaceMap.put(newKey, newValue);
+ i.remove();
+ }
+ }
+
+ // all hibernate proxies have been removed, we need to replace them with
their
+ // non-proxy object representations that we got from replaceObject() calls
+ originalMap.putAll(replaceMap);
+
+ // now go through each item in the map and null out their internal fields
+ for (Object key : originalMap.keySet()) {
+ nullOutUninitializedFields(originalMap.get(key), checkedObjects, depth +
1, serializationType);
nullOutUninitializedFields(key, checkedObjects, depth + 1,
serializationType);
}
} else if (value instanceof Enum) {
commit f9e768f5872203c286c2d04dcd855595b8a4c74b
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu May 19 11:51:59 2011 -0400
[BZ 697061] if the remote call to an Agent to update a config fails, make sure to call
checkForCompletedGroupResourceConfigurationUpdate() to update the status of the parent
group config update, in the case that the update is part of a group update; remove a
LOG.isDebugEnabled() check that was erroneously preventing non-debug code from executing
when not debug logging was not enabled
(
https://bugzilla.redhat.com/show_bug.cgi?id=697061)
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 9282df5..62c12c4 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -1071,7 +1071,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate newUpdate =
configurationManager.persistNewResourceConfigurationUpdateHistory(
subject, resourceId, configToUpdate, ConfigurationUpdateStatus.INPROGRESS,
subject.getName(), false);
- executeResourceConfigurationUpdate(newUpdate, fromStructured);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1132,7 +1132,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
newUpdate =
configurationManager.persistNewResourceConfigurationUpdateHistory(subject, resourceId,
newConfiguration, ConfigurationUpdateStatus.INPROGRESS, subject.getName(),
false);
- executeResourceConfigurationUpdate(newUpdate, true);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1141,14 +1141,14 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate update =
getResourceConfigurationUpdate(subjectManager.getOverlord(), updateId);
Configuration originalConfig = update.getConfiguration();
update.setConfiguration(originalConfig.deepCopy(false));
- executeResourceConfigurationUpdate(update, true);
+ executeResourceConfigurationUpdate(update);
}
/**
- * Tells the Agent to asynchonously update a managed resource's configuration as
per the specified
+ * Tells the Agent to asynchronously update a managed resource's configuration as
per the specified
* <code>ResourceConfigurationUpdate</code>.
*/
- private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update,
boolean fromStructured) {
+ private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update)
{
try {
AgentClient agentClient =
agentManager.getAgentClient(update.getResource().getAgent());
ConfigurationUpdateRequest request = new
ConfigurationUpdateRequest(update.getId(), update
@@ -1161,8 +1161,9 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
update.setStatus(ConfigurationUpdateStatus.FAILURE);
update.setErrorMessage(ThrowableUtil.getStackAsString(e));
- // here we call ourself, but we do so via the EJB interface so we pick up
the REQUIRES_NEW semantics
+ // Here we call ourselves, but we do so via the EJB interface so we pick
up the REQUIRES_NEW semantics.
this.configurationManager.mergeConfigurationUpdate(update);
+ checkForCompletedGroupResourceConfigurationUpdate(update.getId());
}
}
}
@@ -1334,14 +1335,16 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
public void checkForCompletedGroupResourceConfigurationUpdate(int
resourceConfigUpdateId) {
ResourceConfigurationUpdate resourceConfigUpdate =
entityManager.find(ResourceConfigurationUpdate.class,
resourceConfigUpdateId);
- if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS)
+ if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS) {
// If this update isn't done, then, by definition, the group update
isn't done either.
return;
+ }
GroupResourceConfigurationUpdate groupConfigUpdate =
resourceConfigUpdate.getGroupConfigurationUpdate();
- if (groupConfigUpdate == null)
- // The update's not part of a group update - nothing we need to do.
+ if (groupConfigUpdate == null) {
+ // The update isn't part of a group update - nothing we need to do.
return;
+ }
Query inProgressResourcesCountQuery =
PersistenceUtility.createCountQuery(this.entityManager,
ResourceConfigurationUpdate.QUERY_FIND_BY_PARENT_UPDATE_ID_AND_STATUS);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
index aac1143..a36f35d 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
@@ -70,12 +70,10 @@ public class ConfigurationServerServiceImpl implements
ConfigurationServerServic
ResourceConfigurationUpdate update =
configurationManager.persistNewResourceConfigurationUpdateHistory(
overlord, resourceId, resourceConfiguration,
ConfigurationUpdateStatus.SUCCESS, null, false);
- if (LOG.isDebugEnabled()) {
- if (update == null) {
- LOG.debug("Not persisting Configuration " +
resourceConfiguration
- + ", since it is identical to the current revision.");
- return;
- }
+ if (update == null) {
+ LOG.debug("Not persisting Configuration " + resourceConfiguration
+ + ", since it is identical to the current revision.");
+ return;
}
Configuration configuration = update.getConfiguration().deepCopy(false); //
clone the config, zeroing out ids
commit a9d5121fa116f381edda52fb75c3d07f8e985d25
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 20:51:44 2011 -0400
[BZ 705916] redirect to history subtab after a group config is saved off the group
config>current subtab (
https://bugzilla.redhat.com/show_bug.cgi?id=705916)
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
index 7759f93..d094a67 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
@@ -39,6 +39,7 @@ import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.GroupConfigurationEditor;
@@ -47,6 +48,7 @@ import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyVa
import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeListener;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView;
import
org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.message.MessageCenter;
@@ -209,11 +211,13 @@ public class GroupResourceConfigurationEditView extends
LocatableVLayout impleme
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new
Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
+ String configHistoryUrl =
LinkManager.getResourceGroupTabLink(group.getId(),
+ ResourceDetailView.Tab.CONFIGURATION,
ResourceDetailView.ConfigurationSubTab.HISTORY);
+ String configHistoryView = configHistoryUrl.substring(1); // chop off
the leading '#'
+ Message message = new
Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
.view_group_resConfig_edit_saveInitiated_full(group.getResourceType().getName(), group
- .getName()), Message.Severity.Info));
- refresh();
+ .getName()), Message.Severity.Info);
+ CoreGUI.goToView(configHistoryView, message);
}
});
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index b980286..2df653a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -173,7 +173,7 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
}
String configHistoryUrl =
LinkManager.getResourceTabLink(resource.getId(),
ResourceDetailView.Tab.CONFIGURATION,
ResourceDetailView.ConfigurationSubTab.HISTORY);
- String configHistoryView = configHistoryUrl.substring(1);
+ String configHistoryView = configHistoryUrl.substring(1); // chop
off the leading '#'
CoreGUI.goToView(configHistoryView, message);
}
});
commit fa3cb7852df40c0bfbb49fa6f40ae4d6cb8f82f6
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 17:06:54 2011 -0400
[BZ 536032 - (RHQ-426) session oddities when the same user is logged in from multiple
machines]
Forgot to update one sessionManager.put() call area to pass back the correct
Subject.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 8b9a325..ffeb3a5 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -347,8 +347,8 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
}
}
- sessionManager.put(subject);
-
+ // make sure to return the session-activated subject
+ subject = sessionManager.put(subject);
return subject;
}
commit e3119855288d10b21a76f3512ffe0487d3a5f4d9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:29:34 2011 -0400
The server jar (EJB3) tests did not run because the abstract EJB3 test
container could not bootstrap:
Caused by: java.lang.NoSuchMethodError:
org.jboss.ejb3.KernelAbstractionFactory.setKernel(Lorg/jboss/kernel/Kernel;)V
This was due to the fact that the embeddable EJB3 jar was declared below
the standard EJB3 jars in the pom's depedencies. And the class was getting loaded
from the wrong jar. The maven classpaths are ordered in the order of
deps defined in the pom. I've moved the test scoped deps above the
non-test 3rd party deps. This should not affect non-test builds as the test deps
should be ignored in those builds.
Also:
- removed a duplicate dep for commons-logging in the server jar pom
- changed some deprecated ${version} and ${groupId} declarations to
the supported ${project.version} and ${project.groupId} decls, respectively.
deps
diff --git a/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
b/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
index f092a4d..a8fe49b 100644
--- a/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
@@ -6,10 +6,10 @@
<modelVersion>4.0.0</modelVersion>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<packaging>war</packaging>
- <version>${version}</version>
+ <version>${project.version}</version>
<name>SmartGWT WAR</name>
@@ -60,7 +60,7 @@
<build>
<!-- This will produce a war file named ${artifactId}.war, rather than
- ${artifactId}-${version}.war. -->
+ ${artifactId}-${project.version}.war. -->
<finalName>${artifactId}</finalName>
<!-- Make sure lasses output dir matches hosted webapp WEB-INF/classes
diff --git a/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
b/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
index 4600423..a3e6562 100644
--- a/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
@@ -6,9 +6,9 @@
<modelVersion>4.0.0</modelVersion>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<packaging>jar</packaging>
<name>${rhq-plugin-name}</name>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 2f7c4be..6bfa045 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -111,9 +111,9 @@
<!--================ Test Deps ================-->
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>test-utils</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index a0497d0..d96cf83 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -31,7 +31,7 @@
</dependency>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-core-domain</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
diff --git a/modules/enterprise/remoting/cli/pom.xml
b/modules/enterprise/remoting/cli/pom.xml
index df15270..24fbb60 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -41,9 +41,9 @@
</dependency>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-core-domain</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
diff --git a/modules/enterprise/server/jar/pom.xml
b/modules/enterprise/server/jar/pom.xml
index 307570e..9bbeedc 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -100,6 +100,98 @@
<scope>test</scope>
</dependency>
+ <!--================ Test Deps ================-->
+
+ <!-- Note, the test deps are intentionally placed above the other scoped deps
because of classpath
+ reasons. Maven orders the [test] classpath in the order listed in the pom.
We specifically
+ need the embeddable-ejb3 jar above the standard ejb3 jars because we need the
embeddble packages
+ loaded when testing. -->
+
+ <dependency>
+ <groupId>jboss.jboss-embeddable-ejb3</groupId>
+ <artifactId>jboss-ejb3-all</artifactId>
+ <version>${jboss-embeddable-ejb3.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-core-client-api</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+
+ <!-- NOTE: The remaining test deps correspond to the classes contained in
hibernate-all.jar and thirdparty-all.jar. -->
+
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ <version>2.7.7</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-entitymanager</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
section. -->
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>javassist</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
section. -->
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>trove</groupId>
+ <artifactId>trove</artifactId>
+ <version>1.0.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.opencsv</groupId>
+ <artifactId>opencsv</artifactId>
+ <version>1.8</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq.helpers</groupId>
+ <artifactId>perftest-support</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant-launcher</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+
+
<!-- 3rd Party Deps -->
<dependency>
@@ -368,97 +460,6 @@
<version>0.1.29</version>
</dependency>
- <!--================ Test Deps ================-->
-
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>rhq-core-client-api</artifactId>
- <version>${version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>jboss.jboss-embeddable-ejb3</groupId>
- <artifactId>jboss-ejb3-all</artifactId>
- <version>${jboss-embeddable-ejb3.version}</version>
- <scope>test</scope>
- </dependency>
-
- <!-- NOTE: The remaining test deps correspond to the classes contained in
hibernate-all.jar and thirdparty-all.jar. -->
-
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>2.7.7</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>hibernate-entitymanager</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement
section. -->
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>javassist</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement
section. -->
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>trove</groupId>
- <artifactId>trove</artifactId>
- <version>1.0.2</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- <version>2.8.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>net.sf.opencsv</groupId>
- <artifactId>opencsv</artifactId>
- <version>1.8</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.rhq.helpers</groupId>
- <artifactId>perftest-support</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant-launcher</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
commit ecd63ba59b3e985481dc76de3044dfad656a8dd2
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:22:25 2011 -0400
[BZ 697850 - Child Resources subtab refreshes twice]
[BZ 704742 - when returning to Configuration>Current tab, the original config
editor is shown for a few seconds while a new/refreshed config editor is being drawn]
For the resource and group detail views (The two level tab views) ensure
that for RefreshableViews the subtab canvas is not rendered until after
refresh() is called on the canvas. This allows the refresh method to
clear stale data from an existing canvas before initiating the async pull
of new data, preventing the user from briefly seeing the stale data and
then having the refresh kick in (which can look a lot like an unnecessary
refresh)
For Tables this works well without any changes to the refresh() method.
That's because the ds invalidateCache method clears the grid. Other
views may have to ensure the canvas is presentable in the refresh impl.
This commit includes a change like this for the current resource config view.
Note that the other 3 config views (resPlugin, groupPlugin, groupConf)
already handled this as needed.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
index 6f078e0..b173c06 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
@@ -26,7 +26,12 @@ package org.rhq.enterprise.gui.coregui.client;
public interface RefreshableView {
/**
- * Refresh this view, i.e. reload its data from the Server.
+ * Refresh this view, i.e. reload its data from the Server. When implementing
refresh keep in mind that
+ * the refresh may be called when revisiting an existing canvas. For example, when
revisiting a subtab in
+ * resource or group detail view. The data on that existing canvas may be displaying
stale data. Especially
+ * for anynchronous refresh of data, the user experience may benefit from the stale
data being
+ * destroyed/wiped/hidden prior to the async call. This can avoid having the user
briefly see the
+ * stale data before the refreshed data is rendered.
*/
void refresh();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
index 1dbc33d..d1ed776 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
@@ -85,7 +85,7 @@ public class SubTabLayout extends LocatableVLayout {
}
}
if (null != currentlySelected) {
- selectSubTabByLocatorId(currentlySelected);
+ selectSubTabByLocatorId(currentlySelected, true);
}
}
@@ -186,14 +186,24 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTab(SubTab subTab) {
+ /**
+ * @param subtab the subtab to select
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the
state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTab(SubTab subTab, boolean showCanvas) {
if (subTab == null) {
throw new IllegalArgumentException("subTab is null.");
}
- return selectSubTabByLocatorId(subTab.getLocatorId());
+ return selectSubTabByLocatorId(subTab.getLocatorId(), showCanvas);
}
- public boolean selectSubTabByLocatorId(String locatorId) {
+ /**
+ * @param name locatorId the subtab locatorId
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the
state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTabByLocatorId(String locatorId, boolean showCanvas) {
boolean foundTab = false;
for (String subTabLocatorId : this.subTabs.keySet()) {
if (subTabLocatorId.equals(locatorId)) {
@@ -210,7 +220,7 @@ public class SubTabLayout extends LocatableVLayout {
}
if (foundTab) {
- setCurrentlySelected();
+ setCurrentlySelected(showCanvas);
}
return foundTab;
@@ -237,7 +247,12 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTabByName(String name) {
+ /**
+ * @param name subtab name
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the
state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTabByName(String name, boolean showCanvas) {
SubTab subTab = getSubTabByName(name);
if (subTab == null) {
return false;
@@ -248,7 +263,7 @@ public class SubTabLayout extends LocatableVLayout {
return false;
}
this.currentlySelected = subTab.getLocatorId();
- setCurrentlySelected();
+ setCurrentlySelected(showCanvas);
return true;
}
}
@@ -293,7 +308,7 @@ public class SubTabLayout extends LocatableVLayout {
}
}
- private void setCurrentlySelected() {
+ private void setCurrentlySelected(boolean showCanvas) {
if (null != this.currentlySelected) {
Button button = this.subTabs.get(this.currentlySelected).getButton();
button.select();
@@ -311,7 +326,7 @@ public class SubTabLayout extends LocatableVLayout {
Canvas canvas = currentSubTab.getCanvas();
if (canvas != null) {
if (hasMember(canvas)) {
- if (!canvas.isVisible()) {
+ if (!canvas.isVisible() && showCanvas) {
canvas.show();
}
} else {
@@ -319,7 +334,7 @@ public class SubTabLayout extends LocatableVLayout {
canvas.setOverflow(Overflow.SCROLL);
}
addMember(canvas);
- if (!canvas.isVisible()) {
+ if (!canvas.isVisible() && showCanvas) {
canvas.show();
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
index c6867ac..1b20ad4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
@@ -253,7 +253,8 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
// select the tab and subTab (no event fired, we're already dealing with
the correct path)
this.tabSet.selectTab(tab);
// this call adds the subtab canvas as a member of the subtablayout
- tab.getLayout().selectSubTab(subtab);
+ // don't show the subtab canvas until after we perform any necessay
rendering.
+ tab.getLayout().selectSubTab(subtab, false);
// get the target canvas
Canvas subView = subtab.getCanvas();
@@ -264,12 +265,16 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
// refresh.
if (subView instanceof BookmarkableView) {
((BookmarkableView) subView).renderView(viewPath);
+ subView.setVisible(true);
} else if (subView instanceof RefreshableView && subView.isDrawn())
{
// Refresh the data on the subtab, so it's not stale.
Log.debug("Refreshing data for [" +
subView.getClass().getName() + "]...");
((RefreshableView) subView).refresh();
+ subView.setVisible(true);
+ } else {
+ subView.setVisible(true);
}
// ensure the tabset is enabled (disabled in onTabSelected), and redraw
@@ -300,7 +305,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
subTab = tab.getLayout().getDefaultSubTab();
}
- tab.getLayout().selectSubTab(subTab);
+ tab.getLayout().selectSubTab(subTab, true);
// Now that the subtab has been selected, select the tab (this will cause a tab
selected event to fire).
this.tabSet.selectTab(tab);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index 0161c08..b980286 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -67,7 +67,6 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
private boolean refreshing = false;
-
public ResourceConfigurationEditView(String locatorId, ResourceComposite
resourceComposite) {
super(locatorId);
@@ -114,6 +113,11 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
this.refreshing = true;
this.buttonbar.setVisible(false);
+ if (editor != null) {
+ editor.destroy();
+ removeMember(editor);
+ }
+
GWTServiceLookup.getConfigurationService().getLatestResourceConfigurationUpdate(resource.getId(),
new AsyncCallback<ResourceConfigurationUpdate>() {
@Override
@@ -122,10 +126,6 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
EnumSet.of(MetadataType.resourceConfigurationDefinition), new
TypeLoadedCallback() {
@Override
public void onTypesLoaded(ResourceType type) {
- if (editor != null) {
- editor.destroy();
- removeMember(editor);
- }
editor = new
ConfigurationEditor(extendLocatorId("Editor"), type
.getResourceConfigurationDefinition(),
result.getConfiguration());
@@ -164,15 +164,15 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
if (result != null) {
String version = String.valueOf(result.getId());
message = new
Message(MSG.view_configurationDetails_messageConcise(version), MSG
- .view_configurationDetails_messageDetailed(version,
resource.getName()),
- Message.Severity.Info);
+ .view_configurationDetails_messageDetailed(version,
resource.getName()),
+ Message.Severity.Info);
} else {
// TODO: i18n
message = new
Message(MSG.view_configurationDetails_configNotUpdatedDueToNoChange(),
- Message.Severity.Warning);
+ Message.Severity.Warning);
}
String configHistoryUrl =
LinkManager.getResourceTabLink(resource.getId(),
- ResourceDetailView.Tab.CONFIGURATION,
ResourceDetailView.ConfigurationSubTab.HISTORY);
+ ResourceDetailView.Tab.CONFIGURATION,
ResourceDetailView.ConfigurationSubTab.HISTORY);
String configHistoryView = configHistoryUrl.substring(1);
CoreGUI.goToView(configHistoryView, message);
}
@@ -191,8 +191,8 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
} else {
this.saveButton.disable();
- message = new
Message(MSG.view_configurationDetails_somePropertiesInvalid(invalidPropertyNames
- .values().toString()), Message.Severity.Error,
EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
+ message = new
Message(MSG.view_configurationDetails_somePropertiesInvalid(invalidPropertyNames.values()
+ .toString()), Message.Severity.Error,
EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
}
messageCenter.notify(message);
} else {
commit 07471e1f014eed497b43cafeddaffa1cabc873c1
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:13:45 2011 -0400
[BZ 536032 - (RHQ-426) session oddities when the same user is logged in from multiple
machines]
Historically a username shared an RHQ session (not the HTTP session, the
underlying RHQ session, the sessionId on the Subject). This had some mild
upside when it was convenient to share a session but has serious downside
as the logout of one gui session or cli job would invalidate the session
for any other gui or cli session using the same username.
So, this changes the behavior to make things behave more in line with what
folks hopefully expect. Each login gets its own RHQ session. Logout or
session timeout will not affect other logins.
One exception may be multiple sessions in the same browser, as there could
be conflict in cookie handling. This is not new and not a use case we are
planning to address.
In addition, I replaced some SubjectManagerLocal methods and supporting
queries with equivalent Criteria calls.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
index 1ae43ca..8c76e70 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
@@ -59,22 +59,6 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
*/
@Entity
@NamedQueries( {
- @NamedQuery(name = Subject.QUERY_FIND_BY_IDS, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.id IN ( :ids ) " //
- + " AND s.fsystem = FALSE " //
- + " AND s.factive = TRUE"),
-
- @NamedQuery(name = Subject.QUERY_FIND_ALL, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.fsystem = false"),
-
- @NamedQuery(name = Subject.QUERY_FIND_BY_NAME, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.name = :name"),
@NamedQuery(name = Subject.QUERY_GET_SUBJECTS_ASSIGNED_TO_ROLE, query = ""
//
+ "SELECT s " //
@@ -230,9 +214,6 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
@Table(name = "RHQ_SUBJECT")
/*@Cache(usage= CacheConcurrencyStrategy.TRANSACTIONAL)*/
public class Subject implements Serializable {
- public static final String QUERY_FIND_ALL = "Subject.findAll";
- public static final String QUERY_FIND_BY_IDS = "Subject.findByIds";
- public static final String QUERY_FIND_BY_NAME = "Subject.findByName";
public static final String QUERY_GET_SUBJECTS_ASSIGNED_TO_ROLE =
"Subject.getSubjectsAssignedToRole";
@@ -313,7 +294,7 @@ public class Subject implements Serializable {
@OneToMany(mappedBy = "owner", fetch = FetchType.LAZY)
private Set<Repo> ownedRepos;
-
+
// When a subject is removed any owned dashboards are removed automatically
@OneToMany(mappedBy = "owner", fetch = FetchType.LAZY, cascade =
CascadeType.REMOVE)
private List<Dashboard> ownedDashboards = null;
@@ -512,14 +493,14 @@ public class Subject implements Serializable {
this.ownedGroups = ownedGroups;
}
- protected Set<Repo> getOwnedrepos(){
+ protected Set<Repo> getOwnedrepos() {
return ownedRepos;
}
-
+
protected void setOwnedRepos(Set<Repo> repos) {
ownedRepos = repos;
}
-
+
protected List<Dashboard> getOwnedDashboards() {
return ownedDashboards;
}
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
index 5fb91e2..57aba89 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
@@ -214,11 +214,13 @@ public class QueryAllTest extends AbstractEJB3Test {
tm.begin();
EntityManager em = getEntityManager();
try {
- Query q = PersistenceUtility.createCountQuery(em, Subject.QUERY_FIND_ALL);
+ String queryString = "SELECT COUNT(*) FROM Subject s WHERE s.fsystem =
false";
+
+ Query q = em.createQuery(queryString);
long count = (Long) q.getSingleResult();
- q = PersistenceUtility.createQueryWithOrderBy(em, Subject.QUERY_FIND_ALL, new
OrderingField("firstName",
- PageOrdering.ASC), new OrderingField("lastName",
PageOrdering.DESC));
+ queryString = "SELECT s FROM Subject s WHERE s.fsystem = false ORDER BY
s.firstName ASC, s.lastName DESC";
+ q = em.createQuery(queryString);
long size = q.getResultList().size();
assert count == size;
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
index 6819ae6..d7c3ae2 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
@@ -1,91 +1,101 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.admin.role;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.ComponentContext;
-import org.apache.struts.tiles.actions.TilesAction;
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.authz.Role;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.legacy.util.RequestUtils;
-import org.rhq.enterprise.gui.legacy.util.SessionUtils;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerLocal;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves data from the BizApp to facilitate display of the
<em>Add Role Users</em> form.
- */
-public class AddUsersFormPrepareAction extends TilesAction {
- @Override
- public ActionForward execute(ComponentContext context, ActionMapping mapping,
ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- Log log = LogFactory.getLog(AddUsersFormPrepareAction.class.getName());
-
- AddUsersForm addForm = (AddUsersForm) form;
- Integer roleId = addForm.getR();
-
- if (roleId == null) {
- roleId = RequestUtils.getRoleId(request);
- }
-
- Role role = (Role) request.getAttribute(Constants.ROLE_ATTR);
- if (role == null) {
- RequestUtils.setError(request, Constants.ERR_ROLE_NOT_FOUND);
- return null;
- }
-
- addForm.setR(role.getId());
-
- PageControl pca = WebUtility.getPageControl(request, "a");
- PageControl pcp = WebUtility.getPageControl(request, "p");
-
- log.trace("available page control: " + pca);
- log.trace("pending page control: " + pcp);
-
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- /* pending users are those on the right side of the "add
- * to list" widget- awaiting association with the rolewhen the form's
"ok" button is clicked. */
- Integer[] pendingUserIds = SessionUtils.getList(request.getSession(),
Constants.PENDING_USERS_SES_ATTR);
-
- log.trace("getting pending users for role [" + roleId +
"]");
- PageList<Subject> pendingUsers =
subjectManager.findSubjectsById(pendingUserIds, pcp);
- request.setAttribute(Constants.PENDING_USERS_ATTR, pendingUsers);
-
- /*
- * available users are all users in the system that are /not/ associated with the
role and are not pending
- */
- log.trace("getting available users for role [" + roleId +
"]");
- PageList<Subject> availableUsers =
subjectManager.findAvailableSubjectsForRole(RequestUtils.getSubject(request),
- roleId, pendingUserIds, pca);
- request.setAttribute(Constants.AVAIL_USERS_ATTR, availableUsers);
-
- return null;
- }
-}
\ No newline at end of file
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.admin.role;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.tiles.ComponentContext;
+import org.apache.struts.tiles.actions.TilesAction;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Role;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.gui.legacy.util.SessionUtils;
+import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves data from the BizApp to facilitate display of the
<em>Add Role Users</em> form.
+ */
+public class AddUsersFormPrepareAction extends TilesAction {
+ @Override
+ public ActionForward execute(ComponentContext context, ActionMapping mapping,
ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Log log = LogFactory.getLog(AddUsersFormPrepareAction.class.getName());
+
+ AddUsersForm addForm = (AddUsersForm) form;
+ Integer roleId = addForm.getR();
+
+ if (roleId == null) {
+ roleId = RequestUtils.getRoleId(request);
+ }
+
+ Role role = (Role) request.getAttribute(Constants.ROLE_ATTR);
+ if (role == null) {
+ RequestUtils.setError(request, Constants.ERR_ROLE_NOT_FOUND);
+ return null;
+ }
+
+ addForm.setR(role.getId());
+
+ PageControl pca = WebUtility.getPageControl(request, "a");
+ PageControl pcp = WebUtility.getPageControl(request, "p");
+
+ log.trace("available page control: " + pca);
+ log.trace("pending page control: " + pcp);
+
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+
+ /* pending users are those on the right side of the "add
+ * to list" widget- awaiting association with the rolewhen the form's
"ok" button is clicked. */
+ Integer[] pendingUserIds = SessionUtils.getList(request.getSession(),
Constants.PENDING_USERS_SES_ATTR);
+
+ log.trace("getting pending users for role [" + roleId +
"]");
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterIds(pendingUserIds);
+ c.addFilterFsystem(false);
+ c.addFilterFactive(true);
+ c.fetchRoles(true);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> pendingUsers =
subjectManager.findSubjectsByCriteria(RequestUtils.getSubject(request), c);
+ request.setAttribute(Constants.PENDING_USERS_ATTR, pendingUsers);
+
+ /*
+ * available users are all users in the system that are /not/ associated with the
role and are not pending
+ */
+ log.trace("getting available users for role [" + roleId +
"]");
+ PageList<Subject> availableUsers =
subjectManager.findAvailableSubjectsForRole(
+ RequestUtils.getSubject(request), roleId, pendingUserIds, pca);
+ request.setAttribute(Constants.AVAIL_USERS_ATTR, availableUsers);
+
+ return null;
+ }
+}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
index e5936fa..c971d38 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
@@ -1,98 +1,98 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.admin.user;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.ComponentContext;
-
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.authz.Role;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.legacy.action.WorkflowPrepareAction;
-import org.rhq.enterprise.gui.legacy.util.RequestUtils;
-import org.rhq.enterprise.gui.legacy.util.SessionUtils;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerLocal;
-import org.rhq.enterprise.server.authz.RoleManagerLocal;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves data to facilitate display of the
<em>AddUserRoles</em> form. The purpose of this is to add
- * Roles to a given user.
- */
-public class AddUserRolesFormPrepareAction extends WorkflowPrepareAction {
- @Override
- @SuppressWarnings("deprecation")
- public ActionForward workflow(ComponentContext context, ActionMapping mapping,
ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- Log log = LogFactory.getLog(AddUserRolesFormPrepareAction.class.getName());
-
- AddUserRolesForm addForm = (AddUserRolesForm) form;
- Integer userId = addForm.getU();
-
- if (userId == null) {
- userId = RequestUtils.getUserId(request);
- }
-
- PageControl pca = WebUtility.getPageControl(request, "a");
- PageControl pcp = WebUtility.getPageControl(request, "p");
-
- log.trace("available page control: " + pca);
- log.trace("pending page control: " + pcp);
- log.trace("getting user [" + userId + "]");
-
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- RoleManagerLocal roleManager = LookupUtil.getRoleManager();
-
- Subject user = subjectManager.getSubjectById(userId);
- if (user == null) {
- throw new NullPointerException("User [" + userId + "] is not
known");
- }
-
- request.setAttribute(Constants.USER_ATTR, user);
- addForm.setU(user.getId());
-
- /* pending roles are those on the right side of the "add
- * to list" widget- awaiting association with the userwhen the form's
"ok" button is clicked. */
- Integer[] pendingRoleIds = SessionUtils.getList(request.getSession(),
Constants.PENDING_ROLES_SES_ATTR);
-
- log.trace("getting pending roles for user [" + userId +
"]");
- PageList<Role> pendingRoles = roleManager.findRolesByIds(pendingRoleIds,
pcp);
- request.setAttribute(Constants.PENDING_ROLES_ATTR, pendingRoles);
-
- /*
- * available roles are all roles in the system that are not associated with the
user and are not pending
- */
- log.trace("getting available roles for user [" + userId +
"]");
- PageList<Role> availableRoles =
roleManager.findAvailableRolesForSubject(RequestUtils.getSubject(request),
- userId, pendingRoleIds, pca);
- request.setAttribute(Constants.AVAIL_ROLES_ATTR, availableRoles);
-
- return null;
- }
-}
\ No newline at end of file
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.admin.user;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.tiles.ComponentContext;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Role;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.action.WorkflowPrepareAction;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.gui.legacy.util.SessionUtils;
+import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.authz.RoleManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves data to facilitate display of the
<em>AddUserRoles</em> form. The purpose of this is to add
+ * Roles to a given user.
+ */
+public class AddUserRolesFormPrepareAction extends WorkflowPrepareAction {
+ @Override
+ @SuppressWarnings("deprecation")
+ public ActionForward workflow(ComponentContext context, ActionMapping mapping,
ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Log log = LogFactory.getLog(AddUserRolesFormPrepareAction.class.getName());
+
+ AddUserRolesForm addForm = (AddUserRolesForm) form;
+ Integer userId = addForm.getU();
+
+ if (userId == null) {
+ userId = RequestUtils.getUserId(request);
+ }
+
+ PageControl pca = WebUtility.getPageControl(request, "a");
+ PageControl pcp = WebUtility.getPageControl(request, "p");
+
+ log.trace("available page control: " + pca);
+ log.trace("pending page control: " + pcp);
+ log.trace("getting user [" + userId + "]");
+
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ RoleManagerLocal roleManager = LookupUtil.getRoleManager();
+
+ Subject user = subjectManager.getSubjectById(userId);
+ if (user == null) {
+ throw new NullPointerException("User [" + userId + "] is not
known");
+ }
+
+ request.setAttribute(Constants.USER_ATTR, user);
+ addForm.setU(user.getId());
+
+ /* pending roles are those on the right side of the "add
+ * to list" widget- awaiting association with the userwhen the form's
"ok" button is clicked. */
+ Integer[] pendingRoleIds = SessionUtils.getList(request.getSession(),
Constants.PENDING_ROLES_SES_ATTR);
+
+ log.trace("getting pending roles for user [" + userId +
"]");
+ PageList<Role> pendingRoles = roleManager.findRolesByIds(pendingRoleIds,
pcp);
+ request.setAttribute(Constants.PENDING_ROLES_ATTR, pendingRoles);
+
+ /*
+ * available roles are all roles in the system that are not associated with the
user and are not pending
+ */
+ log.trace("getting available roles for user [" + userId +
"]");
+ PageList<Role> availableRoles =
roleManager.findAvailableRolesForSubject(RequestUtils.getSubject(request),
+ userId, pendingRoleIds, pca);
+ request.setAttribute(Constants.AVAIL_ROLES_ATTR, availableRoles);
+
+ return null;
+ }
+}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
index 6c0d07d..364e78b 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
@@ -1,46 +1,53 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.admin.user;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.ComponentContext;
-import org.apache.struts.tiles.actions.TilesAction;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves all users from the BizApp.
- */
-public class ListAction extends TilesAction {
- public ActionForward execute(ComponentContext context, ActionMapping mapping,
ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageControl pc = WebUtility.getPageControl(request);
- PageList users = LookupUtil.getSubjectManager().findAllSubjects(pc);
- request.setAttribute(Constants.ALL_USERS_ATTR, users);
-
- return null;
- }
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.admin.user;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.tiles.ComponentContext;
+import org.apache.struts.tiles.actions.TilesAction;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves all users from the BizApp.
+ */
+public class ListAction extends TilesAction {
+ public ActionForward execute(ComponentContext context, ActionMapping mapping,
ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> users =
LookupUtil.getSubjectManager().findSubjectsByCriteria(
+ RequestUtils.getSubject(request), c);
+ request.setAttribute(Constants.ALL_USERS_ATTR, users);
+
+ return null;
+ }
}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
index 6aaafdd2..5c06432 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
@@ -19,7 +19,6 @@
package org.rhq.enterprise.gui.content;
import java.util.ArrayList;
-import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.model.SelectItem;
@@ -27,7 +26,9 @@ import javax.faces.model.SelectItem;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.content.Repo;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
@@ -41,7 +42,7 @@ public class CreateRepoUIBean {
public CreateRepoUIBean() {
initNewRepo();
}
-
+
public Repo getRepo() {
return newRepo;
}
@@ -52,21 +53,25 @@ public class CreateRepoUIBean {
public SelectItem[] getAvailableOwners() {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- List<Subject> subjects =
subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
-
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> subjects = subjectManager.findSubjectsByCriteria(subject,
c);
+
ArrayList<SelectItem> items = new
ArrayList<SelectItem>(subjects.size());
-
+
items.add(new SelectItem(null, "--None--"));
-
- for(Subject s : subjects) {
+
+ for (Subject s : subjects) {
SelectItem item = new SelectItem(s.getName(), s.getName());
items.add(item);
}
-
+
return items.toArray(new SelectItem[items.size()]);
}
-
+
public boolean isRepositoryManager() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject,
Permission.MANAGE_REPOSITORIES);
@@ -90,12 +95,12 @@ public class CreateRepoUIBean {
initNewRepo();
return "save";
}
-
+
public String cancel() {
initNewRepo();
return "cancel";
}
-
+
private void updateRepoOwner(Subject loggedInSubject) {
if (newRepo.getOwner().getName() == null) {
newRepo.setOwner(null);
@@ -107,15 +112,15 @@ public class CreateRepoUIBean {
newRepo.setOwner(s);
}
}
-
+
private void initNewRepo() {
newRepo = new Repo();
-
+
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
+
//use a copy so that we can modify it without invalidating the user in the
session
Subject currenUserCopy =
subjectManager.getSubjectById(EnterpriseFacesContextUtility.getSubject().getId());
-
+
newRepo.setOwner(currenUserCopy);
}
}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
index d74a836..7651abd 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
@@ -19,24 +19,23 @@
package org.rhq.enterprise.gui.content;
import java.util.ArrayList;
-import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.model.SelectItem;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.richfaces.event.UploadEvent;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.content.ContentSyncStatus;
import org.rhq.core.domain.content.Repo;
import org.rhq.core.domain.content.RepoSyncResults;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerBean;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.content.ContentException;
import org.rhq.enterprise.server.content.RepoManagerLocal;
@@ -61,7 +60,7 @@ public class RepoDetailsUIBean {
this.repo = null;
loadRepo();
}
-
+
public boolean getCurrentlySyncing() {
String syncStatus = getSyncStatus();
if (!syncStatus.equals(ContentSyncStatus.SUCCESS.toString())
@@ -105,38 +104,42 @@ public class RepoDetailsUIBean {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject,
Permission.MANAGE_REPOSITORIES);
}
-
+
public boolean isEditable() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().canUpdateRepo(subject,
getRepo().getId());
}
-
+
public boolean isInventoryManager() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().isInventoryManager(subject);
}
-
+
public boolean getHasContentSources() {
return getRepo().getContentSources().size() > 0;
}
-
+
public SelectItem[] getAvailableOwners() {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- List<Subject> subjects =
subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
-
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> subjects = subjectManager.findSubjectsByCriteria(subject,
c);
+
ArrayList<SelectItem> items = new
ArrayList<SelectItem>(subjects.size());
-
+
items.add(new SelectItem(null, "--None--"));
-
- for(Subject s : subjects) {
+
+ for (Subject s : subjects) {
SelectItem item = new SelectItem(s.getName(), s.getName());
items.add(item);
}
-
+
return items.toArray(new SelectItem[items.size()]);
}
-
+
public String sync() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
int[] repoIds = { FacesContextUtility.getRequiredRequestParameter("id",
Integer.class) };
@@ -203,7 +206,7 @@ public class RepoDetailsUIBean {
}
}
}
-
+
private void updateRepoOwner(Subject loggedInSubject) {
if (repo.getOwner().getName() == null) {
repo.setOwner(null);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
index 58cbe8b..39b6076 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
@@ -91,9 +91,10 @@ public class SessionManager {
*
* @param subject
*
- * @return the session id assigned to the new session
+ * @return the Subject associated with session. Note, this may be a copy of the
Subject passed into the method. The
+ * sessionId will be assigned.
*/
- public int put(Subject subject) {
+ public Subject put(Subject subject) {
return put(subject, DEFAULT_TIMEOUT);
}
@@ -103,50 +104,30 @@ public class SessionManager {
* @param subject
* @param timeout the timeout for the session, in milliseconds
*
- * @return the session id assigned to the new session
+ * @return the Subject associated with session. This will be a copy of the Subject
passed into the method (unless
+ * that Subject is overlord). The sessionId will be assigned.
*/
- public synchronized int put(Subject subject, long timeout) {
+ public synchronized Subject put(Subject subject, long timeout) {
Integer key;
do {
key = new Integer(_random.nextInt());
} while (_cache.containsKey(key));
- subject.setSessionId(key);
+ // Each session should have its own POJO Subject so that each can store a
separate sessionId. The exception
+ // is our special-case shared singleton for overlord.
+ Subject sessionSubject;
+ if (subject.equals(overlordSubject)) {
+ sessionSubject = overlordSubject;
+ sessionSubject.setSessionId(key);
- _cache.put(key, new AuthSession(subject, timeout));
-
- return key.intValue();
- }
-
- /**
- * Lookup and return the session ID that is associated with the given username.
- *
- * @param username the username of the {@link Subject} that has a valid session
- *
- * @return session ID for the session of the give user
- *
- * @throws SessionNotFoundException
- * @throws SessionTimeoutException
- */
- public synchronized int getSessionIdFromUsername(String username) throws
SessionNotFoundException,
- SessionTimeoutException {
- for (Map.Entry<Integer, AuthSession> map_entry : _cache.entrySet()) {
- int session_id = map_entry.getKey().intValue();
- AuthSession session = map_entry.getValue();
-
- if (session.getSubject(false).getName().equals(username)) {
- if (session.isExpired()) {
- throw new SessionTimeoutException();
- }
-
- session.getSubject(true); // this is our session - update the last access
time
-
- return session_id;
- }
+ } else {
+ sessionSubject = getSessionSubject(subject, key);
}
- throw new SessionNotFoundException();
+ _cache.put(key, new AuthSession(sessionSubject, timeout));
+
+ return sessionSubject;
}
/**
@@ -200,6 +181,25 @@ public class SessionManager {
return;
}
+ /**
+ * Invalidates all sessions for the given username. This is for testing purposes
ONLY.
+ *
+ * @param username username for the sessions to be invalidated
+ */
+ public synchronized void invalidate(String username) {
+ List<Integer> doomedSessionIds = new
ArrayList<Integer>(_cache.size());
+ for (AuthSession s : _cache.values()) {
+ if (username.equals(s.getSubject(false).getName())) {
+ doomedSessionIds.add(s.getSubject(false).getSessionId());
+ }
+ }
+ for (Integer sessionId : doomedSessionIds) {
+ _cache.remove(new Integer(sessionId));
+ }
+
+ return;
+ }
+
public long getlastAccess(int sessionId) {
AuthSession session = _cache.get(sessionId);
if (session == null) {
@@ -225,23 +225,34 @@ public class SessionManager {
try {
// validate that the superuser session is still valid and update its LAT
getSubject(session_id);
+
} catch (SessionException e) {
// its been a while since the overlord has been needed - its session has
expired.
// We need to create a new session and assign that new session ID to the
instance this singleton holds internally
// no need to synchronize here - its OK if we concurrently create more than
one session, they will eventually expire
- session_id = put(overlordSubject, OVERLORD_TIMEOUT);
+ session_id = put(overlordSubject, OVERLORD_TIMEOUT).getSessionId();
+ overlordSubject.setSessionId(session_id);
}
// we create a separate and detached Subject for each caller - do not share the
copy this singleton holds internally
- Subject copy = new Subject();
- copy.setSessionId(session_id);
- copy.setId(overlordSubject.getId());
- copy.setFsystem(overlordSubject.getFsystem());
- copy.setFactive(overlordSubject.getFactive());
- copy.setName(overlordSubject.getName());
- copy.setFirstName(overlordSubject.getFirstName());
- copy.setLastName(overlordSubject.getLastName());
- copy.setRoles(overlordSubject.getRoles());
+ Subject copy = getSessionSubject(overlordSubject, session_id);
+ return copy;
+ }
+
+ private Subject getSessionSubject(Subject subject, Integer sessionId) {
+ Subject copy = new Subject(subject.getName(), subject.getFactive(),
subject.getFsystem());
+ copy.setId(subject.getId());
+ copy.setSessionId(sessionId);
+
+ copy.setDepartment(subject.getDepartment());
+ copy.setEmailAddress(subject.getEmailAddress());
+ copy.setFirstName(subject.getFirstName());
+ copy.setLastName(subject.getLastName());
+ copy.setLdapRoles(subject.getLdapRoles());
+ copy.setOwnedGroups(subject.getOwnedGroups());
+ copy.setPhoneNumber(subject.getPhoneNumber());
+ copy.setRoles(subject.getRoles());
+ copy.setUserConfiguration(subject.getUserConfiguration());
return copy;
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 5d8ea27..8b9a325 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -128,40 +128,6 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
}
/**
- * @see
org.rhq.enterprise.server.auth.SubjectManagerLocal#findSubjectsById(Integer[],PageControl)
- */
- @SuppressWarnings("unchecked")
- public PageList<Subject> findSubjectsById(Integer[] subjectIds, PageControl pc)
{
- if ((subjectIds == null) || (subjectIds.length == 0)) {
- return new PageList<Subject>(pc);
- }
-
- pc.initDefaultOrderingField("s.name");
-
- String queryName = Subject.QUERY_FIND_BY_IDS;
- Query queryCount = PersistenceUtility.createCountQuery(entityManager,
queryName);
- Query query = PersistenceUtility.createQueryWithOrderBy(entityManager, queryName,
pc);
-
- List<Integer> subjectIdsList = Arrays.asList(subjectIds);
- queryCount.setParameter("ids", subjectIdsList);
- query.setParameter("ids", subjectIdsList);
-
- long count = (Long) queryCount.getSingleResult();
- List<Subject> subjects = query.getResultList();
-
- if (subjects != null) {
- // eagerly load in the members - can't use left-join due to
PersistenceUtility usage; perhaps use EAGER
- for (Subject subject : subjects) {
- subject.getRoles().size();
- }
- } else {
- subjects = new ArrayList<Subject>();
- }
-
- return new PageList<Subject>(subjects, (int) count, pc);
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#updateSubject(Subject,
Subject)
*/
public Subject updateSubject(Subject whoami, Subject subjectToModify) {
@@ -289,17 +255,12 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
* @see org.rhq.enterprise.server.auth.SubjectManagerRemote#getSubjectByName(String)
*/
public Subject getSubjectByName(String username) {
- Subject subject;
- try {
- Query query = entityManager.createNamedQuery(Subject.QUERY_FIND_BY_NAME);
- query.setParameter("name", username);
- subject = (Subject) query.getSingleResult();
- } catch (NoResultException nre) {
- subject = null;
- }
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterName(username);
+ PageList<Subject> result = findSubjectsByCriteria(getOverlord(), c);
- return subject;
+ return result.isEmpty() ? null : result.get(0);
}
/**
@@ -332,24 +293,6 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
}
/**
- * @see
org.rhq.enterprise.server.auth.SubjectManagerLocal#findAllSubjects(PageControl)
- */
- @SuppressWarnings("unchecked")
- public PageList<Subject> findAllSubjects(PageControl pc) {
- pc.initDefaultOrderingField("s.name");
-
- String queryName = Subject.QUERY_FIND_ALL;
- Query subjectQueryCount = PersistenceUtility.createCountQuery(entityManager,
queryName);
- Query subjectQuery = PersistenceUtility.createQueryWithOrderBy(entityManager,
queryName, pc);
-
- long totalCount = (Long) subjectQueryCount.getSingleResult();
-
- List<Subject> subjects = subjectQuery.getResultList();
-
- return new PageList<Subject>(subjects, (int) totalCount, pc);
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#getSubjectById(int)
*/
public Subject getSubjectById(int id) {
@@ -382,17 +325,6 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
// fetch the roles
subject.getRoles().size();
- // let's see if this user was already logged in with a valid session
- try {
- int sessionId = sessionManager.getSessionIdFromUsername(username);
- subject.setSessionId(sessionId);
- //insert processing for LDAP users who have registered before and have
jdbc credentials, but no principal.
- log.debug("Processing subject '" + subject.getName() +
"' for LDAP functionality.");
- //as already logged in as regular JDBC
- subject = processSubjectForLdap(subject, password);
- } catch (SessionException se) {
- // nope, no session; continue on so we can create the session
- }
} else {
// There is no subject in the database yet.
// If LDAP authentication is enabled and we cannot find the subject,
@@ -554,45 +486,26 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#logout(Subject)
+ * @see org.rhq.enterprise.server.auth.SubjectManagerRemote#logout(Subject)
*/
public void logout(Subject subject) {
try {
- int sessionId = sessionManager.getSessionIdFromUsername(subject.getName());
- sessionManager.invalidate(sessionId);
- } catch (SessionTimeoutException ste) {
- // it's ok, logout can be considered successful if the user's session
already timed out
- } catch (SessionNotFoundException snfe) {
- // it's ok, logout can be considered successful if the user's never
logged in to begin with
+ // make sure the Subject is valid by pairing the name and sessionId
+ Subject s = getSubjectByNameAndSessionId(subject.getName(),
subject.getSessionId());
+ sessionManager.invalidate(s.getSessionId());
+ } catch (Exception e) {
+ // ignore invalid logout request
}
}
/**
- * Logs out a user.
- *
- * @param sessionId The sessionId for the user to log out
- */
+ * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#logout(java.lang.int)
+ * */
public void logout(int sessionId) {
sessionManager.invalidate(sessionId);
}
/**
- * @see
org.rhq.enterprise.server.auth.SubjectManagerLocal#isLoggedIn(java.lang.String)
- */
- public boolean isLoggedIn(String username) {
- boolean loggedIn = false;
-
- try {
- sessionManager.getSessionIdFromUsername(username);
- loggedIn = true;
- } catch (SessionException e) {
- // safely ignore
- }
-
- return loggedIn;
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#createPrincipal(Subject,
String, String)
*/
@RequiredPermission(Permission.MANAGE_SECURITY)
@@ -669,17 +582,9 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
}
/**
- * @see
org.rhq.enterprise.server.auth.SubjectManagerLocal#loginUnauthenticated(String, boolean)
+ * @see
org.rhq.enterprise.server.auth.SubjectManagerLocal#loginUnauthenticated(String)
*/
- public Subject loginUnauthenticated(String username, boolean reattach) throws
LoginException {
- if (reattach) {
- try {
- int sessionId = sessionManager.getSessionIdFromUsername(username);
- return sessionManager.getSubject(sessionId);
- } catch (SessionException e) {
- // continue, we'll need to create a session
- }
- }
+ public Subject loginUnauthenticated(String username) throws LoginException {
Subject subject = getSubjectByName(username);
@@ -691,8 +596,8 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
throw new LoginException("User account has been disabled. [" +
username + "]");
}
- sessionManager.put(subject, 1000L * 60 * 2); // 2mins only
-
+ // make sure we return the Subject returned from this call, which may differ from
the one passed in
+ subject = sessionManager.put(subject, 1000L * 60 * 2); // 2mins only
return subject;
}
@@ -869,7 +774,6 @@ public class SubjectManagerBean implements SubjectManagerLocal,
SubjectManagerRe
return new PageList<Subject>(subjects, (int) count, pc);
}
- @SuppressWarnings("unchecked")
public PageList<Subject> findSubjectsByCriteria(Subject subject,
SubjectCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject,
criteria);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
index 2859b48..4b81769 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
@@ -48,16 +48,6 @@ public interface SubjectManagerLocal {
Subject loadUserConfiguration(Integer subjectId);
/**
- * Given a set of subject Ids, this returns a list of all the subjects.
- *
- * @param subjectIds
- * @param pageControl
- *
- * @return all the subjects with the given ID
- */
- PageList<Subject> findSubjectsById(Integer[] subjectIds, PageControl
pageControl);
-
- /**
* This returns the system super user subject that can be used to authorize the
caller for any other system call.
* This must <b>not</b> be exposed to remote clients.
*
@@ -66,27 +56,17 @@ public interface SubjectManagerLocal {
Subject getOverlord();
/**
- * Returns a paged list of all Subjects.
- *
- * @param pageControl the page control that specifies which page of the result set to
return and how sort it
- */
- PageList<Subject> findAllSubjects(PageControl pageControl);
-
- /**
- * Logs in a user without performing any authentication. This method should be used
with care and not available to
+ * Logs in a user without performing any authentication. This method should be used
with care and is not available to
* remote clients. Because of the unauthenticated nature of this login, the new login
session will have a session
- * timeout of only a few seconds. However, if you pass in
<code>true</code> for the "reattach", this method will
- * re-attach to an existing session for the user, if one is active already. If one
does not exist, this method will
- * login and create a new session just as if that parameter was
<code>false</code>.
+ * timeout of only two minutes.
*
- * @param user The user to authenticate and login
- * @param reattach If <code>true</code>, will re-attach to an existing
login session, if one exists
+ * @param username The user to login
*
- * @return the user's {@link Subject}
+ * @return A Subject with an active session for the the user
*
* @throws LoginException if failed to create a new session for the given user
*/
- Subject loginUnauthenticated(String user, boolean reattach) throws LoginException;
+ Subject loginUnauthenticated(String username) throws LoginException;
/**
* Creates a new principal (username and password) in the internal database.
@@ -162,8 +142,6 @@ public interface SubjectManagerLocal {
Subject getSubjectBySessionId(int sessionId) throws Exception;
- boolean isLoggedIn(String username);
-
/**
* Creates a new subject, including their assigned roles, as well as an associated
principal with the specified
* password.
@@ -196,7 +174,7 @@ public interface SubjectManagerLocal {
* @return the subject if the credentials are correct, null otherwise
*/
Subject checkAuthentication(String username, String password);
-
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
index 473d926..d8d3989 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
@@ -146,7 +146,7 @@ public interface SubjectManagerRemote {
/**
* Logs out a user.
*
- * @param username The username for the current user
+ * @param subject The Subject to log out. The sessionId must be valid.
*/
@WebMethod
void logout( //
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index 84ae777..a8b1691 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -391,7 +391,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal,
DiscoveryBossRemot
} else {
Subject creator = this.subjectManager.getSubjectById(creatorSubjectId);
try {
- creator = this.subjectManager.loginUnauthenticated(creator.getName(),
true);
+ creator = this.subjectManager.loginUnauthenticated(creator.getName());
} catch (LoginException e) {
throw new IllegalStateException(
"Unable to temporarily login to provided resource creator user
for resource creation", e);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
index 18c35b9..f4224d2 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
@@ -96,7 +96,7 @@ public class GroupOperationJob extends OperationJob {
jobDetail);
// create a new session even if user is logged in elsewhere, we don't
want to attach to that user's session
- Subject user = getUserWithSession(schedule.getSubject(), false);
+ Subject user = getUserWithSession(schedule.getSubject());
ResourceGroup group = schedule.getGroup();
// we need the operation definition to fill in the history item
@@ -126,10 +126,11 @@ public class GroupOperationJob extends OperationJob {
// now create detail composites from the resource list
List<ResourceOperationDetailsComposite> resourceComposites = new
ArrayList<ResourceOperationDetailsComposite>();
+ Subject creator = getUserWithSession(user);
for (Resource nextResourceToOperateOn : resourcesToOperateOn) {
// create the non-quartz schedule entity for the given job execution
context data
ResourceOperationSchedule resourceSchedule =
createScheduleForResource(schedule, jobDetail.getGroup(),
- getUserWithSession(user, true), nextResourceToOperateOn);
+ creator, nextResourceToOperateOn);
// crate the resource-level history entity for the newly created
non-quartz schedule entity
// this method also does the persisting
@@ -158,7 +159,7 @@ public class GroupOperationJob extends OperationJob {
+ "this resource operation to be cancelled.");
composite.history.setStatus(OperationRequestStatus.CANCELED);
composite.history = (ResourceOperationHistory)
operationManager.updateOperationHistory(
- getUserWithSession(user, true), composite.history);
+ creator, composite.history);
continue;
}
@@ -169,7 +170,7 @@ public class GroupOperationJob extends OperationJob {
do {
Thread.sleep(5000);
updatedOperationHistory =
operationManager.getOperationHistoryByHistoryId(
- getUserWithSession(user, true), resourceHistoryId);
+ getUserWithSession(user), resourceHistoryId);
// if the duration was ridiculously long, let's break out
of here. this will rarely
// be triggered because our operation manager will timeout
long running operations for us
@@ -191,7 +192,7 @@ public class GroupOperationJob extends OperationJob {
// failed to even send to the agent, immediately mark the job as
failed
groupHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
groupHistory = (GroupOperationHistory)
operationManager.updateOperationHistory(
- getUserWithSession(user, true), groupHistory);
+ getUserWithSession(user), groupHistory);
if (schedule.isHaltOnFailure()) {
hadFailure = true;
@@ -200,6 +201,7 @@ public class GroupOperationJob extends OperationJob {
}
} else {
// send the invocation requests without waiting for each to return
+ creator = getUserWithSession(user);
for (ResourceOperationDetailsComposite composite : resourceComposites) {
try {
invokeOperationOnResource(composite, operationManager);
@@ -210,8 +212,8 @@ public class GroupOperationJob extends OperationJob {
// failed to even send to the agent, immediately mark the job as
failed
groupHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
- groupHistory = (GroupOperationHistory)
operationManager.updateOperationHistory(
- getUserWithSession(user, true), groupHistory);
+ groupHistory = (GroupOperationHistory)
operationManager.updateOperationHistory(creator,
+ groupHistory);
// Note: in actuality - I don't think users have a way in the
user interface to turn on halt-on-failure for parallel execution.
// So this isHaltOnFailure will probably always be false. But in
case we want to support this, leave this here.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
index 778838f..955de7a 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
@@ -54,10 +54,10 @@ public abstract class OperationJob implements Job {
*
* @throws Exception
*
- * @see SubjectManagerLocal#loginUnauthenticated(String, boolean)
+ * @see SubjectManagerLocal#loginUnauthenticated(String)
*/
- protected Subject getUserWithSession(Subject user, boolean reattach) throws Exception
{
- return LookupUtil.getSubjectManager().loginUnauthenticated(user.getName(),
reattach);
+ protected Subject getUserWithSession(Subject user) throws Exception {
+ return LookupUtil.getSubjectManager().loginUnauthenticated(user.getName());
}
protected void updateOperationScheduleEntity(JobDetail jobDetail, Date nextFireTime,
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
index c9e7b35..2b01fad 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
@@ -28,7 +28,6 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.operation.OperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.resource.InventoryStatus;
@@ -85,7 +84,7 @@ public class ResourceOperationJob extends OperationJob {
// Login the schedule's subject so its assigned a session, so our
security tests pass.
// Create a new session even if user is logged in elsewhere, we don't
want to attach to that user's session
- schedule.setSubject(getUserWithSession(schedule.getSubject(), false));
+ schedule.setSubject(getUserWithSession(schedule.getSubject()));
// for the security check, can the user who scheduled the operation in the
first
// place still have the authority to execute it against the resource in
question
@@ -161,12 +160,12 @@ public class ResourceOperationJob extends OperationJob {
*/
void invokeOperationOnResource(ResourceOperationSchedule schedule,
ResourceOperationHistory resourceHistory,
OperationManagerLocal operationManager) throws Exception {
- // make sure the session is still valid
- schedule.setSubject(getUserWithSession(schedule.getSubject(), true));
+ // make sure we have a valid session
+ Subject s = getUserWithSession(schedule.getSubject());
+ schedule.setSubject(s);
resourceHistory.setStartedTime();
- resourceHistory = (ResourceOperationHistory)
operationManager.updateOperationHistory(
- getUserWithSession(schedule.getSubject(), true), resourceHistory);
+ resourceHistory = (ResourceOperationHistory)
operationManager.updateOperationHistory(s, resourceHistory);
// now tell the agent to invoke it!
try {
@@ -187,7 +186,7 @@ public class ResourceOperationJob extends OperationJob {
} catch (Exception e) {
// failed to even send to the agent, immediately mark the job as failed
resourceHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
-
operationManager.updateOperationHistory(getUserWithSession(schedule.getSubject(), true),
resourceHistory);
+ operationManager.updateOperationHistory(s, resourceHistory);
operationManager.checkForCompletedGroupOperation(resourceHistory.getId());
throw e;
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
index 50ee3b6..b9fe4df 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
@@ -33,11 +33,11 @@ import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.server.auth.SessionManager;
import org.rhq.enterprise.server.auth.SessionNotFoundException;
-import org.rhq.enterprise.server.auth.SessionTimeoutException;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
@@ -77,14 +77,10 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
// clean out all users' sessions (a user can have more than one session)
while (usernames.size() > 0) {
- String doomed_user = usernames.get(0);
try {
- int session = session_manager.getSessionIdFromUsername(doomed_user);
- session_manager.invalidate(session);
- } catch (SessionTimeoutException e) {
- // keep going - just means we cleaned out that expired session
- usernames.remove(0);
- } catch (SessionNotFoundException e) {
+ String doomed_user = usernames.get(0);
+ session_manager.invalidate(doomed_user);
+ } finally {
usernames.remove(0);
}
}
@@ -106,7 +102,6 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
// create the user
Subject new_user = new Subject("dummy-user", true, false);
new_user = subjectManager.createSubject(superuser, new_user);
- createSession(new_user);
assert new_user.getUserConfiguration() == null : "There should not be
any configuration yet";
// set and persist an empty configuration
@@ -128,6 +123,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert new_user.getUserConfiguration() != null : "A full configuration
should have been set";
assert new_user.getUserConfiguration().getProperties().size() == 2 : "A
full config should have been set";
+ new_user = createSession(new_user);
new_user = subjectManager.updateSubject(new_user, new_user); // let the user
itself change it
config = new_user.getUserConfiguration();
assert config != null : "A full configuration should have been
persisted";
@@ -169,7 +165,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
try {
superuser = subjectManager.getOverlord();
rhqadmin = subjectManager.getSubjectByName("rhqadmin");
- createSession(rhqadmin);
+ rhqadmin = createSession(rhqadmin);
try {
superuser.setFactive(false);
@@ -208,9 +204,9 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
superuser = subjectManager.getOverlord();
- createSession(superuser);
+ superuser = createSession(superuser);
rhqadmin = subjectManager.getSubjectByName("rhqadmin");
- createSession(rhqadmin);
+ rhqadmin = createSession(rhqadmin);
try {
subjectManager.deleteUsers(superuser, new int[] { rhqadmin.getId() });
@@ -268,7 +264,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert rhqadmin.getName().equals("rhqadmin");
assert
authorizationManager.getExplicitGlobalPermissions(rhqadmin).containsAll(all_global_perms);
- createSession(rhqadmin); // our test needs to ensure the rhqadmin user has a
session
+ rhqadmin = createSession(rhqadmin); // our test needs to ensure the rhqadmin user
has a session
// check the subjects that do and do not have principals
Collection<String> all_users_with_principals =
subjectManager.findAllUsersWithPrincipals();
@@ -278,7 +274,19 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert subjectManager.isUserWithPrincipal(rhqadmin.getName());
// get all subjects, whether or not they have a principal
- PageList<Subject> all_subjects =
subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject subject = null;
+ try {
+ subject = subjectManager.loginUnauthenticated("rhqadmin");
+ } catch (Exception e) {
+ assert false : "There must be at least rhqadmin user";
+ }
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> all_subjects =
subjectManager.findSubjectsByCriteria(subject, c);
+
assert all_subjects.size() >= 1 : "There must be at least rhqadmin
user";
assert !all_subjects.contains(superuser) : "The superuser should not have
been returned in the list";
assert all_subjects.contains(rhqadmin) : "Missing user [" + rhqadmin +
"] from: " + all_subjects;
@@ -296,14 +304,14 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
new_user.setDepartment("my-department");
new_user = subjectManager.createSubject(rhqadmin, new_user);
- createSession(new_user);
+ new_user = createSession(new_user);
assert !subjectManager.isUserWithPrincipal(new_user.getName());
subjectManager.createPrincipal(subjectManager.getOverlord(), new_user.getName(),
"my-password");
assert subjectManager.isUserWithPrincipal(new_user.getName());
// make sure it was persisted and you can actually login with it
assert new_user.getId() != 0;
- Subject login_new_user = subjectManager.loginUnauthenticated(new_user.getName(),
false);
+ Subject login_new_user =
subjectManager.loginUnauthenticated(new_user.getName());
assert login_new_user.equals(new_user);
new_user = login_new_user; // login_new_user was given a new session ID
@@ -381,29 +389,45 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
- Subject subject1 = subjectManager.loginUnauthenticated("rhqadmin",
false);
+ Subject subject1 =
subjectManager.loginUnauthenticated("rhqadmin");
int session1 = subject1.getSessionId();
Thread.sleep(500); // just wait a bit
- Subject subject2 = subjectManager.loginUnauthenticated("rhqadmin",
true);
+ Subject subject2 =
subjectManager.loginUnauthenticated("rhqadmin");
int session2 = subject2.getSessionId();
- assert session1 == session2 : "The same session should be been assigned
when logging in twice";
+ assert session1 != session2 : "The same sessionId should never be
assigned when logging in twice";
assert subject1.equals(subject2);
- assert subjectManager.isLoggedIn("rhqadmin");
- subjectManager.logout(session2);
- assert !subjectManager.isLoggedIn("rhqadmin");
+ Subject s = subjectManager.getSubjectByNameAndSessionId("rhqadmin",
subject1.getSessionId());
+ assert s.getSessionId() == session1;
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin",
subject2.getSessionId());
+ assert s.getSessionId() == session2;
- subject2 = subjectManager.loginUnauthenticated("rhqadmin", true);
- session2 = subject2.getSessionId();
+ subjectManager.logout(session1);
+ try {
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin",
subject1.getSessionId());
+ assert false : "Session should be invalid";
+ } catch (SessionNotFoundException ok) {
+ }
+
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin",
subject2.getSessionId());
+ assert s.getSessionId() == session2;
- assert session1 != session2 : "A new session should have been assigned
after logging out";
- assert subject2.equals(subjectManager.getSubjectBySessionId(session2));
+ // this should ne a no-op, no exception
+ subjectManager.logout(session1);
+
+ subjectManager.logout(session2);
+ try {
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin",
subject2.getSessionId());
+ fail("Session should be invalid");
+ } catch (SessionNotFoundException e) {
+ // expected
+ }
try {
- subjectManager.loginUnauthenticated("rhqadminX", true);
+ subjectManager.loginUnauthenticated("rhqadminX");
assert false : "Should not have logged in - provided a bad
username";
} catch (LoginException ok) {
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
index 410feb9..dba76ed 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
@@ -34,7 +34,6 @@ import javax.transaction.TransactionManager;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.DynamicConfigurationPropertyValue;
import org.rhq.core.domain.content.PackageType;
@@ -63,32 +62,32 @@ public class DynamicConfigurationPropertyBeanTest extends
AbstractEJB3Test {
List<DynamicConfigurationPropertyValue> stringList =
bean.lookupValues("foo");
//Verify
- assert stringList !=null;
+ assert stringList != null;
assert stringList.size() == 0;
- }
+ }
@Test(enabled = ENABLED)
public void user() throws Exception {
+ String queryString = "SELECT s FROM Subject s WHERE s.fsystem =
false";
+
// Setup
- int existingUserCount = countForQuery(Subject.QUERY_FIND_ALL);
+ int existingUserCount = countForQuery(queryString, false);
// Test
- List<DynamicConfigurationPropertyValue> users =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_USERS);
+ List<DynamicConfigurationPropertyValue> users =
bean.lookupValues(PropertyExpressionEvaluator.KEY_USERS);
// Verify
outputList(users);
assert users.size() == existingUserCount : "Expected: " +
existingUserCount + ", Found: " + users.size();
- }
+ }
@Test(enabled = ENABLED)
- public void roles() throws Exception{
+ public void roles() throws Exception {
// Setup
int existingRoleCount = countForQuery(Role.QUERY_FIND_ALL);
// Test
- List<DynamicConfigurationPropertyValue> roles =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_ROLES);
+ List<DynamicConfigurationPropertyValue> roles =
bean.lookupValues(PropertyExpressionEvaluator.KEY_ROLES);
// Verify
outputList(roles);
@@ -112,8 +111,7 @@ public class DynamicConfigurationPropertyBeanTest extends
AbstractEJB3Test {
packageType = new PackageType("dynamicConfigPropBeanTestType",
resourceType);
entityManager.persist(packageType);
tx.commit();
- }
- catch (Exception e) {
+ } catch (Exception e) {
if (tx.getStatus() == Status.STATUS_ACTIVE) {
tx.rollback();
}
@@ -123,8 +121,8 @@ public class DynamicConfigurationPropertyBeanTest extends
AbstractEJB3Test {
assert existingPackageTypes > 0 : "Package type created in setup was not
written correctly";
// Test
- List<DynamicConfigurationPropertyValue> types =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_PACKAGE_TYPES);
+ List<DynamicConfigurationPropertyValue> types = bean
+ .lookupValues(PropertyExpressionEvaluator.KEY_PACKAGE_TYPES);
// Verify
assert types.size() == existingPackageTypes : "Expected: " +
existingPackageTypes + ", Found: " + types.size();
@@ -138,12 +136,11 @@ public class DynamicConfigurationPropertyBeanTest extends
AbstractEJB3Test {
resourceType = entityManager.find(ResourceType.class, resourceType.getId());
entityManager.remove(resourceType);
- packageType = entityManager.find(PackageType.class, packageType.getId());
+ packageType = entityManager.find(PackageType.class, packageType.getId());
entityManager.remove(packageType);
tx.commit();
- }
- catch (Exception e) {
+ } catch (Exception e) {
if (tx.getStatus() == Status.STATUS_ACTIVE) {
tx.rollback();
}
@@ -151,10 +148,16 @@ public class DynamicConfigurationPropertyBeanTest extends
AbstractEJB3Test {
}
private int countForQuery(String queryName) throws NotSupportedException,
SystemException {
+ return countForQuery(queryName, true);
+ }
+
+ @SuppressWarnings("unchecked")
+ private int countForQuery(String queryString, boolean isName) throws
NotSupportedException, SystemException {
+
getTransactionManager().begin();
EntityManager entityManager = getEntityManager();
- Query query = entityManager.createNamedQuery(queryName);
+ Query query = (isName) ? entityManager.createNamedQuery(queryString) :
entityManager.createQuery(queryString);
List existing = query.getResultList();
int count = existing.size();
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
index d6b14cb..e580229 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
@@ -60,7 +60,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
PageControl pc = new PageControl(1, 5, new
OrderingField("res.name", PageOrdering.ASC));
- Subject subject = subjectManager.loginUnauthenticated("ghinkle",
true);
+ Subject subject = subjectManager.loginUnauthenticated("ghinkle");
//Subject subject = subjectManager.getOverlord();
createSession(subject);
@@ -187,7 +187,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
try {
DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin",
true);
+ Subject rhqadmin =
subjectManager.loginUnauthenticated("rhqadmin");
createSession(rhqadmin);
Map<Resource, List<Resource>> queue =
discoveryBoss.getQueuedPlatformsAndServers(rhqadmin, PageControl
@@ -200,11 +200,13 @@ public class ResourceStorageTest extends AbstractEJB3Test {
}
}
+ @SuppressWarnings("unused")
@Test(groups = "integration.ejb3")
public void resourceTest() throws Exception {
// TODO GH: Implement actual tests
System.out.println("foo");
+
ResourceManagerLocal resourceManager = (ResourceManagerLocal)
getInitialContext().lookup(
ResourceManagerBean.class.getSimpleName() + "/local");
@@ -214,7 +216,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
AuthorizationManagerLocal authorizationManager = (AuthorizationManagerLocal)
getInitialContext().lookup(
AuthorizationManagerBean.class.getSimpleName() + "/local");
- Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin",
true);
+ Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin");
System.out.println(rhqadmin);
}
}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index abbe782..5811792 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -145,7 +145,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
}
- if (stats!=null)
+ if (stats != null)
start = stats.getQueryExecutionCount();
else
start = 0;
@@ -205,9 +205,10 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
* annotations by creating sessions for different users with different permissions.
*
* @param subject a JON subject
+ * @return the session activated subject, a copy of the subjected passed in.
*/
- public void createSession(Subject subject) {
- SessionManager.getInstance().put(subject);
+ public Subject createSession(Subject subject) {
+ return SessionManager.getInstance().put(subject);
}
/**
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
index 45412c4..6ff56db 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
@@ -87,8 +87,8 @@ public class SessionTestHelper {
em.persist(newSubject);
em.flush();
- SessionManager.getInstance().put(newSubject, 1000 * 300);
-
+ // return the copy, not the original
+ newSubject = SessionManager.getInstance().put(newSubject, 1000 * 300);
return newSubject;
}
diff --git
a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
index 26c9cdf..16c7644 100644
---
a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
+++
b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
@@ -73,31 +73,31 @@ public class CliSender extends AlertSender<CliComponent> {
private static final String ENGINE_NAME = "JavaScript";
private static final int MAX_RESULT_SIZE = 4000;
-
+
public static final String PROP_PACKAGE_ID = "packageId";
public static final String PROP_REPO_ID = "repoId";
public static final String PROP_USER_ID = "userId";
public static final String PROP_USER_NAME = "userName";
public static final String PROP_USER_PASSWORD = "userPassword";
-
+
private static final Log LOG = LogFactory.getLog(CliSender.class);
private static final String SUMMARY_TEMPLATE = "Ran script $packageName in
version $packageVersion from repo $repoName as user $userName.";
private static final String PREVIEW_TEMPLATE = "Run script $packageName from
repo $repoName as user $userName.";
private static final String VALIDATION_ERROR_MESSAGE = "The provided user failed
to authenticate.";
-
+
//no more than 10 concurrently running CLI notifications..
//is that enough?
private static final int MAX_SCRIPT_ENGINES = 10;
private static Queue<ScriptEngine> SCRIPT_ENGINES = new
ArrayDeque<ScriptEngine>(MAX_SCRIPT_ENGINES);
private static int ENGINES_IN_USE = 0;
-
+
/**
* Simple strongly typed representation of the alert configuration
*/
private static class Config {
- Subject subject;
+ Subject subject;
int packageId;
int repoId;
}
@@ -105,36 +105,37 @@ public class CliSender extends AlertSender<CliComponent> {
private static class ExceptionHolder {
public ScriptException scriptException;
}
-
+
public SenderResult send(Alert alert) {
SenderResult result = new SenderResult();
BufferedReader reader = null;
ScriptEngine engine = null;
try {
final Config config = getConfig();
-
+
result.setSummary(createSummary(config, SUMMARY_TEMPLATE));
ByteArrayOutputStream scriptOutputStream = new ByteArrayOutputStream();
PrintWriter scriptOut = new PrintWriter(scriptOutputStream);
engine = getScriptEngine(alert, scriptOut, config);
-
+
final SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new
StandardScriptPermissions());
-
+
InputStream packageBits = getPackageBits(config.packageId, config.repoId);
reader = new BufferedReader(new InputStreamReader(packageBits));
final BufferedReader rdr = reader;
-
+
final ExceptionHolder exceptionHolder = new ExceptionHolder();
-
+
Thread scriptRunner = new Thread(new Runnable() {
public void run() {
try {
//fake the login
- SessionManager.getInstance().put(config.subject,
pluginComponent.getScriptTimeout() * 1000);
+ config.subject =
SessionManager.getInstance().put(config.subject,
+ pluginComponent.getScriptTimeout() * 1000);
sandbox.eval(rdr);
SessionManager.getInstance().invalidate(config.subject.getSessionId());
} catch (ScriptException e) {
@@ -142,20 +143,21 @@ public class CliSender extends AlertSender<CliComponent> {
}
}
}, "Script Runner for alert " + alert);
- scriptRunner.setDaemon(true);
+ scriptRunner.setDaemon(true);
scriptRunner.start();
-
+
if (pluginComponent.getScriptTimeout() <= 0) {
scriptRunner.join();
} else {
scriptRunner.join(pluginComponent.getScriptTimeout() * 1000);
}
-
+
scriptRunner.interrupt();
if (exceptionHolder.scriptException != null) {
- LOG.info("The script execution for CLI notification of alert ["
+ alert + "] failed.", exceptionHolder.scriptException);
-
+ LOG.info("The script execution for CLI notification of alert ["
+ alert + "] failed.",
+ exceptionHolder.scriptException);
+
//make things pretty for the UI
ScriptEngineInitializer initializer =
ScriptEngineFactory.getInitializer(ENGINE_NAME);
String message =
initializer.extractUserFriendlyErrorMessage(exceptionHolder.scriptException);
@@ -164,18 +166,18 @@ public class CliSender extends AlertSender<CliComponent> {
String scriptName = createSummary(config, "script $packageName
($packageVersion) in repo $repoName");
throw new ScriptException(message, scriptName, line, col);
}
-
+
scriptOut.flush();
String scriptOutput =
scriptOutputStream.toString(Charset.defaultCharset().name());
if (scriptOutput.length() == 0) {
scriptOutput = "Script generated no output.";
}
-
+
if (scriptOutput.length() > remainingResultSize(result)) {
scriptOutput = scriptOutput.substring(0, remainingResultSize(result));
}
-
+
result.addSuccessMessage(scriptOutput);
return result;
@@ -188,7 +190,7 @@ public class CliSender extends AlertSender<CliComponent> {
if (engine != null) {
returnEngine(engine);
}
-
+
if (reader != null) {
try {
reader.close();
@@ -213,18 +215,18 @@ public class CliSender extends AlertSender<CliComponent> {
@Override
public AlertSenderValidationResults validateAndFinalizeConfiguration(Subject subject)
{
AlertSenderValidationResults results = new
AlertSenderValidationResults(alertParameters, extraParameters);
-
+
String userIdString = alertParameters.getSimpleValue(PROP_USER_ID, null);
String userName = alertParameters.getSimpleValue(PROP_USER_NAME, null);
String userPassword = alertParameters.getSimpleValue(PROP_USER_PASSWORD, null);
-
+
Integer userId = userIdString == null ? null : Integer.valueOf(userIdString);
-
+
if (userId == null || userId != subject.getId()) {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
+
Subject authSubject = subjectManager.checkAuthentication(userName,
userPassword);
-
+
if (authSubject == null) {
PropertySimple userNameProp = new PropertySimple(PROP_USER_NAME,
userName);
userNameProp.setErrorMessage(VALIDATION_ERROR_MESSAGE);
@@ -243,10 +245,10 @@ public class CliSender extends AlertSender<CliComponent> {
//do not store the password in the database ever
alertParameters.put(new PropertySimple(PROP_USER_PASSWORD, null));
-
+
return results;
}
-
+
private static ScriptEngine getScriptEngine(Alert alert, PrintWriter output, Config
config) throws ScriptException,
IOException, InterruptedException {
Subject user = config.subject;
@@ -257,19 +259,23 @@ public class CliSender extends AlertSender<CliComponent> {
bindings.put("alert", alert);
ScriptEngine engine = takeEngine(bindings);
-
+
return engine;
}
private static InputStream getPackageBits(int packageId, int repoId) throws
IOException {
final ContentSourceManagerLocal csm = LookupUtil.getContentSourceManager();
RepoManagerLocal rm = LookupUtil.getRepoManagerLocal();
- final PackageVersion versionToUse =
rm.getLatestPackageVersion(LookupUtil.getSubjectManager().getOverlord(), packageId,
repoId);
+ final PackageVersion versionToUse =
rm.getLatestPackageVersion(LookupUtil.getSubjectManager().getOverlord(),
+ packageId, repoId);
if (versionToUse == null) {
- throw new IllegalArgumentException("The package with id " +
packageId + " either doesn't exist at all or doesn't have any version.
Can't execute a CLI script without a script to run.");
+ throw new IllegalArgumentException(
+ "The package with id "
+ + packageId
+ + " either doesn't exist at all or doesn't have any
version. Can't execute a CLI script without a script to run.");
}
-
+
PipedInputStream ret = new PipedInputStream();
final PipedOutputStream out = new PipedOutputStream(ret);
@@ -322,31 +328,31 @@ public class CliSender extends AlertSender<CliComponent> {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
RepoManagerLocal rm = LookupUtil.getRepoManagerLocal();
PackageVersion versionToUse = rm.getLatestPackageVersion(overlord,
config.packageId, config.repoId);
-
+
if (versionToUse != null) {
ret = ret.replace("$packageName",
versionToUse.getDisplayName());
- ret = ret.replace("$packageVersion",
versionToUse.getDisplayVersion() == null ? versionToUse.getVersion()
- : versionToUse.getDisplayVersion());
+ ret = ret.replace("$packageVersion",
versionToUse.getDisplayVersion() == null ? versionToUse
+ .getVersion() : versionToUse.getDisplayVersion());
} else {
ret = ret.replace("$packageName", "unknown script with
package id " + config.packageId);
ret = ret.replace("$packageVersion", "no version");
}
-
+
RepoCriteria criteria = new RepoCriteria();
criteria.addFilterId(config.repoId);
-
+
List<Repo> repos = rm.findReposByCriteria(overlord, criteria);
-
+
String repoName;
-
+
if (repos.size() > 0) {
repoName = repos.get(0).getName();
} else {
repoName = "unknown repo with id " + config.repoId;
}
-
+
ret = ret.replace("$repoName", repoName);
-
+
return ret;
} catch (Exception e) {
LOG.info("Failed to create alert sender summary.", e);
@@ -357,10 +363,13 @@ public class CliSender extends AlertSender<CliComponent> {
private Config getConfig() throws IllegalArgumentException {
Config ret = new Config();
- int subjectId = getIntFromConfiguration(PROP_USER_ID, "User id not
specified.", "Failed to read subject id property: ");
- int packageId = getIntFromConfiguration(PROP_PACKAGE_ID, "Package id of the
script not specified.", "Failed to read the package id property: ");
- int repoId = getIntFromConfiguration(PROP_REPO_ID, "Repo to download the
script package from not specified.", "Failed to read the repo id property:
");
-
+ int subjectId = getIntFromConfiguration(PROP_USER_ID, "User id not
specified.",
+ "Failed to read subject id property: ");
+ int packageId = getIntFromConfiguration(PROP_PACKAGE_ID, "Package id of the
script not specified.",
+ "Failed to read the package id property: ");
+ int repoId = getIntFromConfiguration(PROP_REPO_ID, "Repo to download the
script package from not specified.",
+ "Failed to read the repo id property: ");
+
Subject subject = LookupUtil.getSubjectManager().getSubjectById(subjectId);
if (subject == null) {
@@ -370,24 +379,25 @@ public class CliSender extends AlertSender<CliComponent> {
ret.subject = subject;
ret.packageId = packageId;
ret.repoId = repoId;
-
+
return ret;
}
-
- private int getIntFromConfiguration(String propName, String errorMessage, String
convertErrorMessage) throws IllegalArgumentException {
+
+ private int getIntFromConfiguration(String propName, String errorMessage, String
convertErrorMessage)
+ throws IllegalArgumentException {
PropertySimple prop = alertParameters.getSimple(propName);
-
+
if (prop == null) {
- throw new IllegalArgumentException(errorMessage);
+ throw new IllegalArgumentException(errorMessage);
}
-
+
try {
return prop.getIntegerValue();
} catch (Exception e) {
throw new IllegalArgumentException(convertErrorMessage + e.getMessage(), e);
}
}
-
+
private static ScriptEngine takeEngine(StandardBindings bindings) throws
InterruptedException, ScriptException,
IOException {
synchronized (SCRIPT_ENGINES) {
@@ -398,14 +408,14 @@ public class CliSender extends AlertSender<CliComponent> {
ScriptEngine engine = SCRIPT_ENGINES.poll();
if (engine == null) {
- engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME,
- new PackageFinder(Collections.<File> emptyList()), bindings);
+ engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME, new
PackageFinder(Collections
+ .<File> emptyList()), bindings);
} else {
ScriptEngineFactory.injectStandardBindings(engine, bindings, true);
}
-
+
++ENGINES_IN_USE;
-
+
return engine;
}
}
@@ -417,20 +427,20 @@ public class CliSender extends AlertSender<CliComponent> {
SCRIPT_ENGINES.notify();
}
}
-
+
private static int remainingResultSize(SenderResult r) {
//the "10" is a ballpark to allow for some formatting
//done by the receivers of the SenderResult.
int ret = MAX_RESULT_SIZE - r.getSummary().length() - 10;
-
- for(String m : r.getSuccessMessages()) {
+
+ for (String m : r.getSuccessMessages()) {
ret -= m.length() + 10;
}
-
- for(String m : r.getFailureMessages()) {
+
+ for (String m : r.getFailureMessages()) {
ret -= m.length() + 10;
}
-
+
return ret;
}
}
commit 1131a6824bb2f0a312c66f1d628729230f3731c6
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:47:53 2011 -0400
[BZ 627391] There was a 2nd method with the query param name wrong
(cherry picked from commit ff677500c349d4c6e3908e27fa728251bd55a674)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
index 3f4b794..6102a81 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
@@ -252,11 +252,10 @@ public class AuthorizationManagerBean implements
AuthorizationManagerLocal {
Query query = entityManager.createNamedQuery(Subject.QUERY_CAN_VIEW_AUTO_GROUP);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
commit 46a79aff6bfda36a189290488ff53349144ffdff
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:46:59 2011 -0400
[BZ 627391] Fixing JPAQL query that checks autogroup access
(cherry picked from commit da4c70da6d11ec2a8f1a18dba5bdecd4e31337ee)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
index d3530de..3f4b794 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -193,11 +193,10 @@ public class AuthorizationManagerBean implements
AuthorizationManagerLocal {
query.setParameter("permission", permission);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
commit eac0b5c9abaeaf5919b8a27709905d19e71082d1
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 11:08:36 2011 -0400
[BZ 697589] remove getResourceConfigurationMapForCompatibleGroup() from
ConfigurationManagerLocal and ConfigurationManagerBean, since it is not a method anyone
would ever want to call (getResourceConfigurationsForCompatibleGroup() should be used
instead) (
https://bugzilla.redhat.com/show_bug.cgi?id=697589)
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
index 7026b08..7f7c31b 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
@@ -22,8 +22,6 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTService;
import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceManagerLocal;
-import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
/**
@@ -34,8 +32,6 @@ public class ConfigurationGWTServiceImpl extends AbstractGWTServiceImpl
implemen
private static final long serialVersionUID = 1L;
private ConfigurationManagerLocal configurationManager =
LookupUtil.getConfigurationManager();
- private ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
- private ResourceGroupManagerLocal groupManager =
LookupUtil.getResourceGroupManager();
@Override
public void purgePluginConfigurationUpdates(int[] configUpdateIds, boolean
purgeInProgress) throws RuntimeException {
@@ -262,9 +258,6 @@ public class ConfigurationGWTServiceImpl extends
AbstractGWTServiceImpl implemen
@Override
public Map<Integer, Configuration> findResourceConfigurationsForGroup(int
groupId) throws RuntimeException {
try {
- //ResourceGroup group =
this.groupManager.getResourceGroup(getSessionSubject(), groupId);
- //Map<Integer, Configuration> configurations =
this.configurationManager
- // .getResourceConfigurationMapForCompatibleGroup(group);
Map<Integer, Configuration> configurations = this.configurationManager
.getResourceConfigurationsForCompatibleGroup(getSessionSubject(),
groupId);
return SerialUtility.prepare(configurations,
"ConfigurationService.findResourceConfigurationsForGroup");
@@ -358,23 +351,6 @@ public class ConfigurationGWTServiceImpl extends
AbstractGWTServiceImpl implemen
}
}
- private List<ResourceConfigurationComposite>
convertToCompositesList(Map<Integer, Configuration> configurations)
- throws RuntimeException {
- try {
- List<ResourceConfigurationComposite> configurationComposites = new
ArrayList<ResourceConfigurationComposite>(
- configurations.size());
- for (Integer resourceId : configurations.keySet()) {
- Configuration configuration = configurations.get(resourceId);
- ResourceConfigurationComposite configurationComposite = new
ResourceConfigurationComposite(resourceId,
- configuration);
- configurationComposites.add(configurationComposite);
- }
- return configurationComposites;
- } catch (Throwable t) {
- throw getExceptionToThrowToClient(t);
- }
- }
-
private Map<Integer, Configuration>
convertToMap(List<ResourceConfigurationComposite> resourceConfigurations)
throws RuntimeException {
try {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index eab8623..9282df5 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -1814,13 +1814,6 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
}
@SuppressWarnings("unchecked")
- public Map<Integer, Configuration>
getResourceConfigurationMapForCompatibleGroup(ResourceGroup compatibleGroup) {
- Tuple<String, Object> groupIdParameter = new Tuple<String,
Object>("resourceGroupId", compatibleGroup.getId());
- return
executeGetConfigurationMapQuery(Configuration.QUERY_GET_RESOURCE_CONFIG_MAP_BY_GROUP_ID,
100,
- groupIdParameter);
- }
-
- @SuppressWarnings("unchecked")
private Map<Integer, Configuration> executeGetConfigurationMapQuery(String
memberQueryName, int maxSize,
Tuple<String, Object>... parameters) {
Query countQuery = PersistenceUtility.createCountQuery(entityManager,
memberQueryName);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index c36e403..c1222c1 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -400,8 +400,6 @@ public interface ConfigurationManagerLocal {
Map<Integer, Configuration> getResourceConfigurationMapForGroupUpdate(Subject
subject,
Integer groupResourceConfigurationUpdateId);
- Map<Integer, Configuration>
getResourceConfigurationMapForCompatibleGroup(ResourceGroup compatibleGroup);
-
/**
* Returns the current Resource configurations for the members in the specified
compatible group.
*
commit ed1744867c5a3a3bd50f7b822e3400f223daa0b0
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 10:12:23 2011 -0400
[BZ 697589] to load group member configs, call
configurationManager.getResourceConfigurationsForCompatibleGroup(), rather than
configurationManager.getResourceConfigurationMapForCompatibleGroup(), to ensure we get the
latest/live configs for each of the group members
(
https://bugzilla.redhat.com/show_bug.cgi?id=697589)
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
index e1eac94..7026b08 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
@@ -17,7 +17,6 @@ import
org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.PluginConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTService;
@@ -263,10 +262,11 @@ public class ConfigurationGWTServiceImpl extends
AbstractGWTServiceImpl implemen
@Override
public Map<Integer, Configuration> findResourceConfigurationsForGroup(int
groupId) throws RuntimeException {
try {
- ResourceGroup group = this.groupManager.getResourceGroup(getSessionSubject(),
groupId);
+ //ResourceGroup group =
this.groupManager.getResourceGroup(getSessionSubject(), groupId);
+ //Map<Integer, Configuration> configurations =
this.configurationManager
+ // .getResourceConfigurationMapForCompatibleGroup(group);
Map<Integer, Configuration> configurations = this.configurationManager
- .getResourceConfigurationMapForCompatibleGroup(group);
-
+ .getResourceConfigurationsForCompatibleGroup(getSessionSubject(),
groupId);
return SerialUtility.prepare(configurations,
"ConfigurationService.findResourceConfigurationsForGroup");
} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
@@ -388,4 +388,5 @@ public class ConfigurationGWTServiceImpl extends
AbstractGWTServiceImpl implemen
throw getExceptionToThrowToClient(t);
}
}
+
}
commit 6ea278d85a438acc216a33dcd831d53e34e3c85a
Merge: 241f8a1 3ff7587
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 18 15:39:23 2011 +0200
Merge branch 'master-resource-upgrade-fixes'
commit 3ff7587af61a2ee37ad28226f44102528d509f9f
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 18 15:30:04 2011 +0200
Adding tests for resource upgrade revert to original state after failed upgrade and
duplicate resource key handling.
diff --git a/modules/core/plugin-container/pom.xml
b/modules/core/plugin-container/pom.xml
index 7a264f8..fd14685 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -315,6 +315,26 @@
<fileset
dir="${project.build.testOutputDirectory}/tmp/progress/v2"
includes="**/*.class,**/rhq-plugin.xml" />
</jar>
+ <copy
toDir="${project.build.testOutputDirectory}/tmp/duplicate/v1/META-INF">
+ <fileset
file="${project.build.testSourceDirectory}/org/rhq/core/pc/upgrade/plugins/duplicate/v1/rhq-plugin.xml"
/>
+ </copy>
+ <!-- <copy
toDir="${project.build.testOutputDirectory}/tmp/duplicate/v1/org/rhq/core/pc/upgrade/plugins/duplicate/v1">
+ <fileset
file="${project.build.testOutputDirectory}/org/rhq/core/pc/upgrade/plugins/duplicate/v1/*.class"
/>
+ </copy> -->
+ <jar
destfile="${project.build.testOutputDirectory}/resource-upgrade-test-plugin-duplicate-test-1.0.0.jar">
+ <fileset
dir="${project.build.testOutputDirectory}/tmp/duplicate/v1"
includes="**/*.class,**/rhq-plugin.xml" />
+ </jar>
+
+ <copy
toDir="${project.build.testOutputDirectory}/tmp/duplicate/v2/META-INF">
+ <fileset
file="${project.build.testSourceDirectory}/org/rhq/core/pc/upgrade/plugins/duplicate/v2/rhq-plugin.xml"
/>
+ </copy>
+ <!-- <copy
toDir="${project.build.testOutputDirectory}/tmp/duplicate/v2/org/rhq/core/pc/upgrade/plugins/duplicate/v2">
+ <fileset
file="${project.build.testOutputDirectory}/org/rhq/core/pc/upgrade/plugins/duplicate/v2/*.class"
/>
+ </copy> -->
+ <jar
destfile="${project.build.testOutputDirectory}/resource-upgrade-test-plugin-duplicate-test-2.0.0.jar">
+ <fileset
dir="${project.build.testOutputDirectory}/tmp/duplicate/v2"
includes="**/*.class,**/rhq-plugin.xml" />
+ </jar>
+
<delete dir="${project.build.testOutputDirectory}/tmp"
/>
</tasks>
</configuration>
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
index 793c0f6..d3b54aa 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
@@ -59,7 +59,8 @@ public class FakeServerInventory {
private Map<String, Resource> resourceStore = new HashMap<String,
Resource>();
private int counter;
private boolean failing;
-
+ private boolean failUpgrade;
+
private static final Comparator<Resource> ID_COMPARATOR = new
Comparator<Resource>() {
public int compare(Resource o1, Resource o2) {
return o1.getId() - o2.getId();
@@ -122,6 +123,10 @@ public class FakeServerInventory {
synchronized(FakeServerInventory.this) {
throwIfFailing();
+ if (failUpgrade) {
+ throw new RuntimeException("Failing the upgrade
purposefully.");
+ }
+
Set<ResourceUpgradeRequest> requests =
(Set<ResourceUpgradeRequest>) invocation.getParameter(0);
Set<ResourceUpgradeResponse> responses = new
HashSet<ResourceUpgradeResponse>();
@@ -188,6 +193,14 @@ public class FakeServerInventory {
this.failing = failing;
}
+ public synchronized boolean isFailUpgrade() {
+ return failUpgrade;
+ }
+
+ public synchronized void setFailUpgrade(boolean failUpgrade) {
+ this.failUpgrade = failUpgrade;
+ }
+
@SuppressWarnings("serial")
public synchronized Set<Resource> findResourcesByType(final ResourceType type)
{
Set<Resource> result = new HashSet<Resource>();
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
index f68ee01..5f493c9 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
@@ -331,6 +331,55 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
});
}
+ @Test
+ public void testResourcesRevertedToOriginalStateAfterFailedUpgrade() throws Exception
{
+ setCurrentServerSideInventory(new FakeServerInventory());
+
+ //let it all run in v1
+ executeTestWithPlugins(getAllDepsFor(TEST_V1_PLUGIN_NAME,
PARENT_SIBLING_V1_PLUGIN_NAME),
+ new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
+ public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+
+ getCurrentServerSideInventory().setFailUpgrade(true);
+
+ //now let's run with v2 plugins and check the layout of the inventory
+ executeTestWithPlugins(getAllDepsFor(TEST_V2_PLUGIN_NAME,
PARENT_SIBLING_V2_PLUGIN_NAME),
+ new AbstractTestPayload(false, ALL_TYPES) {
+
+ public void test(Map<ResType, Set<Resource>> resources) {
+ checkPresenceOfResourceTypes(resources, getExpectedResourceTypes());
+
+ checkNumberOfResources(resources, ROOT_TYPE, 1);
+ checkNumberOfResources(resources, PARENT_DEP_TYPE, 1);
+
+ //check that the resources are upgraded
+ checkResourcesNotUpgraded(resources.get(PARENT_DEP_SIBLING_TYPE),
1);
+ checkResourcesNotUpgraded(resources.get(PARENT_TYPE), 2);
+ checkResourcesNotUpgraded(resources.get(SIBLING_TYPE), 20);
+ checkResourcesNotUpgraded(resources.get(TEST_TYPE), 20);
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+ }
+
+
@SuppressWarnings("unchecked")
@Override
protected void defineDefaultExpectations(Expectations expectations) {
@@ -358,13 +407,13 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
return deps;
}
- private static void checkPresenceOfResourceTypes(Map<ResType,
Set<Resource>> resources, Set<ResType> expectedTypes) {
+ protected static void checkPresenceOfResourceTypes(Map<ResType,
Set<Resource>> resources, Set<ResType> expectedTypes) {
for (ResType resType : expectedTypes) {
assertNotNull(resources.get(resType), "Expecting some resources of type
" + resType);
}
}
- private static void checkNumberOfResources(Map<ResType, Set<Resource>>
resources, ResType type, int count) {
+ protected static void checkNumberOfResources(Map<ResType, Set<Resource>>
resources, ResType type, int count) {
assertEquals(resources.get(type).size(), count, "Unexpected number of "
+ type + " discovered.");
}
@@ -381,7 +430,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
}
}
- private static void checkResourcesNotUpgraded(Set<Resource> resources, int
expectedSize) {
+ protected static void checkResourcesNotUpgraded(Set<Resource> resources, int
expectedSize) {
assertEquals(resources.size(), expectedSize, "The set of resources has
unexpected size.");
for(Resource res : resources) {
assertFalse(res.getResourceKey().startsWith(UPGRADED_RESOURCE_KEY_PREFIX),
"Resource " + res
@@ -397,7 +446,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
}
}
- private static void checkResourceFailedUpgrade(Resource resource) {
+ protected static void checkResourceFailedUpgrade(Resource resource) {
assertFalse(resource.getResourceKey().startsWith(UPGRADED_RESOURCE_KEY_PREFIX),
"Resource " + resource
+ " seems to be upgraded even though it shouldn't.");
assertTrue(resource.getResourceErrors(ResourceErrorType.UPGRADE).size() == 1,
@@ -409,13 +458,13 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
"A resource that failed to upgrade should be stopped.");
}
- private static void checkOthersUpgraded(Set<Resource> resources, Resource...
failedResource) {
+ protected static void checkOthersUpgraded(Set<Resource> resources, Resource...
failedResource) {
Set<Resource> others = new HashSet<Resource>(resources);
others.removeAll(Arrays.asList(failedResource));
checkResourcesUpgraded(others, others.size());
}
- private void addChildrenToFail(Resource parent, ResType childResType, int...
childrenOrdinals) {
+ protected void addChildrenToFail(Resource parent, ResType childResType, int...
childrenOrdinals) {
InventoryManager inventoryManager =
PluginContainer.getInstance().getInventoryManager();
ResourceContainer parentContainer =
inventoryManager.getResourceContainer(parent);
BaseResourceComponentInterface parentComponent = (BaseResourceComponentInterface)
parentContainer
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
index 0e3bd35..3234c30 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
@@ -20,6 +20,7 @@
package org.rhq.core.pc.upgrade;
import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
@@ -50,6 +51,8 @@ public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureH
private static final String ROOT_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-root-1.0.0.jar";
private static final String UPGRADE_PROGRESS_PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-progress-test-1.0.0.jar";
private static final String UPGRADE_PROGRESS_PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-progress-test-2.0.0.jar";
+ private static final String UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-duplicate-test-1.0.0.jar";
+ private static final String UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-duplicate-test-2.0.0.jar";
private static final ResType TEST_TYPE = new ResType("TestResource",
"test");
private static final ResType PARENT_DEP_TYPE = new
ResType("ParentDependency", "parentdep");
@@ -66,6 +69,8 @@ public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureH
DEPS.put(ROOT_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME));
DEPS.put(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
DEPS.put(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
+ DEPS.put(UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
+ DEPS.put(UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
}
private Set<String> getAllDepsFor(String... plugins) {
@@ -81,13 +86,14 @@ public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureH
@Override
protected Collection<String> getRequiredPlugins() {
return Arrays.asList(BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
PARENT_DEP_V1_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME,
- UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, UPGRADE_PROGRESS_PLUGIN_V2_FILENAME);
+ UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, UPGRADE_PROGRESS_PLUGIN_V2_FILENAME,
UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME,
+ UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME);
}
@Test
public void testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded() throws
Exception {
setCurrentServerSideInventory(new FakeServerInventory());
-
+
executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME),
new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
@@ -107,6 +113,10 @@ public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureH
}
});
+ //the upgrade progress plugin is set to check that the parent resource key
+ //has been upgraded during its upgrade method, so we just need to check here
+ //that everything got upgraded. If it was not, it'd mean that the the
progress
+ //plugin failed the upgrade because it didn't see its parent upgraded.
executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME),
new AbstractTestPayload(false, Arrays.asList(TEST_TYPE, PARENT_DEP_TYPE)) {
public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
@@ -125,13 +135,49 @@ public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureH
}
@Test
- public void testDuplicitResourceKeysHandledCorrectly() {
- //TODO implement
- }
-
- @Test
- public void testResourcesRevertedToOriginalStateAfterFailedUpgrade() {
- //TODO implement
- }
+ public void testDuplicitResourceKeysHandledCorrectly() throws Exception {
+ setCurrentServerSideInventory(new FakeServerInventory());
+
+ executeTestWithPlugins(getAllDepsFor(UPGRADE_DUPLICATE_PLUGIN_V1_FILENAME),
+ new AbstractTestPayload(true, Arrays.asList(PARENT_DEP_TYPE, TEST_TYPE)) {
+
+ public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
+ //there's not much to check with the v1 plugins. let's just
check all the
+ //resources have been discovered
+
assertEquals(resourceUpgradeTestResources.get(PARENT_DEP_TYPE).size(), 1, "The V1
inventory should have 1 parent.");
+ assertEquals(resourceUpgradeTestResources.get(TEST_TYPE).size(), 2,
"The V1 inventory should have 2 test resources.");
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+ //now the V2 test resource is set to create 2 resources with the same resource
keys.
+ //the upgrade should therefore fail.
+ executeTestWithPlugins(getAllDepsFor(UPGRADE_DUPLICATE_PLUGIN_V2_FILENAME),
+ new AbstractTestPayload(false, Arrays.asList(PARENT_DEP_TYPE, TEST_TYPE)) {
+ public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
+
checkResourcesUpgraded(resourceUpgradeTestResources.get(PARENT_DEP_TYPE), 1);
+
+
checkResourcesNotUpgraded(resourceUpgradeTestResources.get(TEST_TYPE), 2);
+
+ for(Resource r : resourceUpgradeTestResources.get(TEST_TYPE)) {
+ checkResourceFailedUpgrade(r);
+ }
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+ }
}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v1/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v1/rhq-plugin.xml
new file mode 100644
index 0000000..58db405
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v1/rhq-plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<plugin name="test"
+ displayName="Resource Upgrade Multi Test"
+ description="Resource Upgrade Multi Test"
+ package="org.rhq.core.pc.upgrade.plugins.multi.base"
+ version="1.0.0"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration">
+
+ <depends plugin="base" useClasses="true"/>
+ <depends plugin="parentdep"/>
+
+ <server name="TestResource"
+ discovery="BaseDiscoveryComponent"
+ class="BaseResourceComponent">
+
+ <runs-inside>
+ <parent-resource-type name="ParentDependency"
plugin="parentdep"/>
+ </runs-inside>
+
+ <plugin-configuration>
+ <c:simple-property name="count" default="2" />
+ <c:simple-property name="key"
default="test-resource-%n,parent-%p" />
+ <c:simple-property name="upgradedKey"
default="UPGRADED-test-resource-duplicate,parent-%p" />
+ </plugin-configuration>
+ </server>
+
+</plugin>
+
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v2/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v2/rhq-plugin.xml
new file mode 100644
index 0000000..81240d9
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/duplicate/v2/rhq-plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<plugin name="test"
+ displayName="Resource Upgrade Multi Test"
+ description="Resource Upgrade Multi Test"
+ package="org.rhq.core.pc.upgrade.plugins.multi.base"
+ version="1.0.0"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration">
+
+ <depends plugin="base" useClasses="true"/>
+ <depends plugin="parentdep"/>
+
+ <server name="TestResource"
+ discovery="BaseUpgradingDiscoveryComponent"
+ class="BaseResourceComponent">
+
+ <runs-inside>
+ <parent-resource-type name="ParentDependency"
plugin="parentdep"/>
+ </runs-inside>
+
+ <plugin-configuration>
+ <c:simple-property name="count" default="2" />
+ <c:simple-property name="key"
default="UPGRADED-test-resource-duplicate,parent-%p" />
+ </plugin-configuration>
+ </server>
+
+</plugin>
+
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
index 57c9010..9649422 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
@@ -22,8 +22,8 @@
<plugin-configuration>
<c:simple-property name="count" default="1" />
- <c:simple-property name="key"
default="test-resource-parent-%n,parent-%p" />
- <c:simple-property name="upgradedKey"
default="UPGRADED-test-resource-parent-%n,parent-%p" />
+ <c:simple-property name="key"
default="test-resource-%n,parent-%p" />
+ <c:simple-property name="upgradedKey"
default="UPGRADED-test-resource-%n,parent-%p" />
<c:simple-property name="checkParentUpgraded"
default="true" />
</plugin-configuration>
</server>
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
index b4691ba..b909026 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
@@ -22,7 +22,7 @@
<plugin-configuration>
<c:simple-property name="count" default="2" />
- <c:simple-property name="key"
default="UPGRADED-test-resource-parent-%n,parent-%p" />
+ <c:simple-property name="key"
default="UPGRADED-test-resource-%n,parent-%p" />
</plugin-configuration>
</server>
commit 0be47f7781ad9be02d583ee42517ed91a268e2c7
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 18 15:24:07 2011 +0200
BZ 704028 - Rethrow the exception after failed upgrade merge with
the server so that stuff gets properly rolledback. Also slightly improved
logging.
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 9a98f81..d29cd56 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -1236,7 +1236,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
return resourceContainer.updateAvailability(availabilityType);
}
- public void mergeResourcesFromUpgrade(Set<ResourceUpgradeRequest>
upgradeRequests) throws PluginContainerException {
+ public void mergeResourcesFromUpgrade(Set<ResourceUpgradeRequest>
upgradeRequests) throws Exception {
Set<ResourceUpgradeResponse> serverUpdates = null;
try {
ServerServices serverServices = this.configuration.getServerServices();
@@ -1247,6 +1247,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
}
} catch (Exception e) {
log.error("Failed to process resource upgrades on the server.",
e);
+ throw e;
}
if (serverUpdates != null) {
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
index e8ca94e..cee582e 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
@@ -152,9 +152,21 @@ public class ResourceUpgradeDelegate {
Resource resource = container.getResource();
String upgradeErrors = null;
if ((upgradeErrors = checkUpgradeValid(resource, request)) !=
null) {
+ //the resource is in its upgraded state but it's going to
get reverted back to the original state
+ //in the code below. Let's use the original resource for
the error message so that we don't confuse
+ //the user.
+ for(ResourceUpgradeRequest orig : originalResourceData) {
+ if (orig.equals(request)) {
+ orig.updateResource(resource);
+ break;
+ }
+ }
String errorString = "Upgrading the resource [" +
resource + "] using these updates [" + request
+ "] would render the inventory invalid because of
the following reasons: " + upgradeErrors;
+ //now switch the resource back to the upgraded state for the
rest of the code below again
+ request.updateResource(resource);
+
log.error(errorString);
IllegalStateException ex = new
IllegalStateException(errorString);
@@ -291,7 +303,7 @@ public class ResourceUpgradeDelegate {
StringBuilder s = new StringBuilder();
if (!checkResourceKeyUniqueAmongSiblings(resource, upgradeReport)) {
- s.append("\nAnother inventoried sibling resource of the same type
already has the proposed resource key.");
+ s.append("\nAnother inventoried sibling resource of the same type
already has the proposed resource key or would have it after the upgrade.");
}
return s.length() > 0 ? s.toString() : null;
commit 241f8a1ee1fe40bdd9522cf97aba37846e36ed1c
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 18 13:55:51 2011 +0200
BZ 694476 - fixing the handling of loaded modules.
diff --git
a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
index 3e11ff3..1f00aec 100644
---
a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
+++
b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
@@ -364,7 +364,7 @@ public class RuntimeApacheConfiguration {
boolean recurseFurther = true;
if (walker.getName(node).equalsIgnoreCase("LoadModule")) {
- state.loadedModules.add(walker.getValue(node));
+ state.loadedModules.add(walker.getValues(node).get(0));
walker.visitOrdinaryNode(node);
} else if (walker.getName(node).equalsIgnoreCase("<IfModule"))
{
String moduleFile = walker.getValue(node);
@@ -391,6 +391,7 @@ public class RuntimeApacheConfiguration {
+ moduleFile + ". If you are using Apache 2.1 or later,
you can try changing the module identifier from the source file to "
+ "the actual module name as used in the LoadModule
directive to get rid of this warning.");
}
+ LOGGED_UNKNOWN_MODULES.add(moduleFile);
continue;
}
commit db84c22836d6e1654fd704a1faf889c3affc21cf
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 17 17:40:00 2011 +0200
Adding the new ResourceUpgradeProgressHandlingTest to:
a) test that parent resources appear upgraded during upgrade of their children
b) test that potential duplicate resource keys are correctly refused during upgrade
c) that resources are rolledback to their original state if the upgrade fails.
diff --git a/modules/core/plugin-container/pom.xml
b/modules/core/plugin-container/pom.xml
index 367e1fa..7a264f8 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -295,6 +295,26 @@
<fileset
dir="${project.build.testOutputDirectory}/tmp/multi/v2"
includes="**/*.class,**/rhq-plugin.xml" />
</jar>
+ <copy
toDir="${project.build.testOutputDirectory}/tmp/progress/v1/META-INF">
+ <fileset
file="${project.build.testSourceDirectory}/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml"
/>
+ </copy>
+ <!-- <copy
toDir="${project.build.testOutputDirectory}/tmp/progress/v1/org/rhq/core/pc/upgrade/plugins/progress/v1">
+ <fileset
file="${project.build.testOutputDirectory}/org/rhq/core/pc/upgrade/plugins/progress/v1/*.class"
/>
+ </copy> -->
+ <jar
destfile="${project.build.testOutputDirectory}/resource-upgrade-test-plugin-progress-test-1.0.0.jar">
+ <fileset
dir="${project.build.testOutputDirectory}/tmp/progress/v1"
includes="**/*.class,**/rhq-plugin.xml" />
+ </jar>
+
+ <copy
toDir="${project.build.testOutputDirectory}/tmp/progress/v2/META-INF">
+ <fileset
file="${project.build.testSourceDirectory}/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml"
/>
+ </copy>
+ <!-- <copy
toDir="${project.build.testOutputDirectory}/tmp/progress/v2/org/rhq/core/pc/upgrade/plugins/progress/v2">
+ <fileset
file="${project.build.testOutputDirectory}/org/rhq/core/pc/upgrade/plugins/progress/v2/*.class"
/>
+ </copy> -->
+ <jar
destfile="${project.build.testOutputDirectory}/resource-upgrade-test-plugin-progress-test-2.0.0.jar">
+ <fileset
dir="${project.build.testOutputDirectory}/tmp/progress/v2"
includes="**/*.class,**/rhq-plugin.xml" />
+ </jar>
+
<delete dir="${project.build.testOutputDirectory}/tmp"
/>
</tasks>
</configuration>
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
index 34732fd..f68ee01 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeFailureHandlingTest.java
@@ -368,7 +368,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
assertEquals(resources.get(type).size(), count, "Unexpected number of "
+ type + " discovered.");
}
- private static void checkResourcesUpgraded(Set<Resource> resources, int
expectedSize) {
+ protected static void checkResourcesUpgraded(Set<Resource> resources, int
expectedSize) {
assertEquals(resources.size(), expectedSize, "The set of resources has
unexpected size.");
for (Resource res : resources) {
assertTrue(res.getResourceKey().startsWith(UPGRADED_RESOURCE_KEY_PREFIX),
"Resource " + res
@@ -441,7 +441,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
}
}
- private Resource findResourceWithOrdinal(ResType resType, int ordinal) {
+ protected Resource findResourceWithOrdinal(ResType resType, int ordinal) {
ResourceType resourceType =
PluginContainer.getInstance().getPluginManager().getMetadataManager()
.getType(resType.getResourceTypeName(),
resType.getResourceTypePluginName());
@@ -451,7 +451,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
return findResourceWithOrdinal(resources, ordinal);
}
- private Resource findResourceWithOrdinal(Set<Resource> resources, int ordinal)
{
+ protected Resource findResourceWithOrdinal(Set<Resource> resources, int
ordinal) {
for (Resource r : resources) {
Configuration pluginConfig = r.getPluginConfiguration();
String ordinalString = pluginConfig.getSimpleValue("ordinal",
null);
@@ -464,7 +464,7 @@ public class ResourceUpgradeFailureHandlingTest extends
ResourceUpgradeTestBase
return null;
}
- private Set<Resource> filterResources(Set<Resource> resources, ResType
resType) {
+ protected Set<Resource> filterResources(Set<Resource> resources, ResType
resType) {
Set<Resource> ret = new HashSet<Resource>(resources);
Iterator<Resource> it = ret.iterator();
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
new file mode 100644
index 0000000..0e3bd35
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeProgressHandlingTest.java
@@ -0,0 +1,137 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.core.pc.upgrade;
+
+import static org.testng.Assert.assertNotNull;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.resource.Resource;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class ResourceUpgradeProgressHandlingTest extends
ResourceUpgradeFailureHandlingTest {
+
+ private static final String BASE_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-base-1.0.0.jar";
+ private static final String PARENT_DEP_V1_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-1.0.0.jar";
+ private static final String PARENT_DEP_V2_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-parentdep-2.0.0.jar";
+ private static final String ROOT_PLUGIN_NAME =
"/resource-upgrade-test-plugin-multi-root-1.0.0.jar";
+ private static final String UPGRADE_PROGRESS_PLUGIN_V1_FILENAME =
"/resource-upgrade-test-plugin-progress-test-1.0.0.jar";
+ private static final String UPGRADE_PROGRESS_PLUGIN_V2_FILENAME =
"/resource-upgrade-test-plugin-progress-test-2.0.0.jar";
+
+ private static final ResType TEST_TYPE = new ResType("TestResource",
"test");
+ private static final ResType PARENT_DEP_TYPE = new
ResType("ParentDependency", "parentdep");
+ private static final ResType ROOT_TYPE = new ResType("Root",
"root");
+
+ private static final HashMap<String, List<String>> DEPS;
+
+ static {
+ DEPS = new HashMap<String, List<String>>();
+
+ DEPS.put(BASE_PLUGIN_NAME, Collections.<String> emptyList());
+ DEPS.put(PARENT_DEP_V1_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME));
+ DEPS.put(PARENT_DEP_V2_PLUGIN_NAME, DEPS.get(PARENT_DEP_V1_PLUGIN_NAME));
+ DEPS.put(ROOT_PLUGIN_NAME, Arrays.asList(BASE_PLUGIN_NAME));
+ DEPS.put(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V1_PLUGIN_NAME));
+ DEPS.put(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME, Arrays.asList(BASE_PLUGIN_NAME,
ROOT_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME));
+ }
+
+ private Set<String> getAllDepsFor(String... plugins) {
+ HashSet<String> deps = new HashSet<String>();
+ for (String plugin : plugins) {
+ deps.add(plugin);
+ deps.addAll(DEPS.get(plugin));
+ }
+
+ return deps;
+ }
+
+ @Override
+ protected Collection<String> getRequiredPlugins() {
+ return Arrays.asList(BASE_PLUGIN_NAME, ROOT_PLUGIN_NAME,
PARENT_DEP_V1_PLUGIN_NAME, PARENT_DEP_V2_PLUGIN_NAME,
+ UPGRADE_PROGRESS_PLUGIN_V1_FILENAME, UPGRADE_PROGRESS_PLUGIN_V2_FILENAME);
+ }
+
+ @Test
+ public void testParentResourceStartedUpgradedWhenChildResourceBeingUpgraded() throws
Exception {
+ setCurrentServerSideInventory(new FakeServerInventory());
+
+ executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V1_FILENAME),
+ new AbstractTestPayload(true, Collections.<ResType> emptyList()) {
+ public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
+ //in here we set up the failures that are going to happen when
+ //the v2 plugins are run
+
+ Resource parent = findResourceWithOrdinal(PARENT_DEP_TYPE, 0);
+ assertNotNull(parent, "Failed to find the parent.");
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+
+ executeTestWithPlugins(getAllDepsFor(UPGRADE_PROGRESS_PLUGIN_V2_FILENAME),
+ new AbstractTestPayload(false, Arrays.asList(TEST_TYPE, PARENT_DEP_TYPE)) {
+ public void test(Map<ResType, Set<Resource>>
resourceUpgradeTestResources) {
+
checkResourcesUpgraded(resourceUpgradeTestResources.get(PARENT_DEP_TYPE), 1);
+ checkResourcesUpgraded(resourceUpgradeTestResources.get(TEST_TYPE),
2);
+ }
+
+ public Expectations getExpectations(Mockery context) throws Exception {
+ return new Expectations() {
+ {
+ defineDefaultExpectations(this);
+ }
+ };
+ }
+ });
+ }
+
+ @Test
+ public void testDuplicitResourceKeysHandledCorrectly() {
+ //TODO implement
+ }
+
+ @Test
+ public void testResourcesRevertedToOriginalStateAfterFailedUpgrade() {
+ //TODO implement
+ }
+
+}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/multi/base/BaseUpgradingDiscoveryComponent.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/multi/base/BaseUpgradingDiscoveryComponent.java
index 5b8af94..a1acf50 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/multi/base/BaseUpgradingDiscoveryComponent.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/multi/base/BaseUpgradingDiscoveryComponent.java
@@ -40,7 +40,7 @@ public class BaseUpgradingDiscoveryComponent<T extends
BaseResourceComponent> ex
int ordinal = pluginConfig.getSimple("ordinal").getIntegerValue();
int parentOrdinal = parent == null ? 0 : parent.getOrdinal();
- boolean fail =
Boolean.getBoolean(pluginConfig.getSimpleValue("failUpgrade",
"false"));
+ boolean fail =
Boolean.parseBoolean(pluginConfig.getSimpleValue("failUpgrade",
"false"));
if (!fail && parent != null) {
String typeName = inventoriedResource.getResourceType().getName();
@@ -52,7 +52,17 @@ public class BaseUpgradingDiscoveryComponent<T extends
BaseResourceComponent> ex
if (fail) {
throw new RuntimeException("Failing the resource upgrade
purposefully.");
}
-
+
+ boolean checkParentUpgraded =
Boolean.parseBoolean(pluginConfig.getSimpleValue("checkParentUpgraded",
"false"));
+
+ if (checkParentUpgraded) {
+ if
(!inventoriedResource.getParentResourceContext().getResourceKey().startsWith("UPGRADED"))
{
+ throw new RuntimeException("The parent resource ["
+ + inventoriedResource.getParentResourceContext().getResourceKey()
+ + "] doesn't seem like it's upgraded but this resource
expects it to be.");
+ }
+ }
+
String newKey = pluginConfig.getSimpleValue("upgradedKey", null);
if (newKey == null) {
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
new file mode 100644
index 0000000..57c9010
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v1/rhq-plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<plugin name="test"
+ displayName="Resource Upgrade Multi Test"
+ description="Resource Upgrade Multi Test"
+ package="org.rhq.core.pc.upgrade.plugins.multi.base"
+ version="1.0.0"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration">
+
+ <depends plugin="base" useClasses="true"/>
+ <depends plugin="parentdep"/>
+
+ <server name="TestResource"
+ discovery="BaseDiscoveryComponent"
+ class="BaseResourceComponent">
+
+ <runs-inside>
+ <parent-resource-type name="ParentDependency"
plugin="parentdep"/>
+ </runs-inside>
+
+ <plugin-configuration>
+ <c:simple-property name="count" default="1" />
+ <c:simple-property name="key"
default="test-resource-parent-%n,parent-%p" />
+ <c:simple-property name="upgradedKey"
default="UPGRADED-test-resource-parent-%n,parent-%p" />
+ <c:simple-property name="checkParentUpgraded"
default="true" />
+ </plugin-configuration>
+ </server>
+
+</plugin>
+
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
new file mode 100644
index 0000000..b4691ba
--- /dev/null
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/plugins/progress/v2/rhq-plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<plugin name="test"
+ displayName="Resource Upgrade Multi Test"
+ description="Resource Upgrade Multi Test"
+ package="org.rhq.core.pc.upgrade.plugins.multi.base"
+ version="1.0.0"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration">
+
+ <depends plugin="base" useClasses="true"/>
+ <depends plugin="parentdep"/>
+
+ <server name="TestResource"
+ discovery="BaseUpgradingDiscoveryComponent"
+ class="BaseResourceComponent">
+
+ <runs-inside>
+ <parent-resource-type name="ParentDependency"
plugin="parentdep"/>
+ </runs-inside>
+
+ <plugin-configuration>
+ <c:simple-property name="count" default="2" />
+ <c:simple-property name="key"
default="UPGRADED-test-resource-parent-%n,parent-%p" />
+ </plugin-configuration>
+ </server>
+
+</plugin>
+
commit 14433fc7a6f81e58d8a66907826ceab2742a09bc
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 17 17:37:14 2011 +0200
synchronizing the FakeServerInvetory to guard against concurrent access,
making sure the resources are returned in the hierarchical order to ensure
they are merged in the plugin container in the correct order.
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
index 0dd3459..793c0f6 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/FakeServerInventory.java
@@ -83,18 +83,20 @@ public class FakeServerInventory {
public synchronized CustomAction mergeInventoryReport(final InventoryStatus
requiredInventoryStatus) {
return new CustomAction("updateServerSideInventory") {
public Object invoke(Invocation invocation) throws Throwable {
- throwIfFailing();
-
- InventoryReport inventoryReport = (InventoryReport)
invocation.getParameter(0);
-
- for (Resource res : inventoryReport.getAddedRoots()) {
- Resource persisted = fakePersist(res, requiredInventoryStatus, new
HashSet<String>());
-
- if (res.getParentResource() == Resource.ROOT) {
- platform = persisted;
+ synchronized (FakeServerInventory.this) {
+ throwIfFailing();
+
+ InventoryReport inventoryReport = (InventoryReport)
invocation.getParameter(0);
+
+ for (Resource res : inventoryReport.getAddedRoots()) {
+ Resource persisted = fakePersist(res, requiredInventoryStatus,
new HashSet<String>());
+
+ if (res.getParentResource() == Resource.ROOT) {
+ platform = persisted;
+ }
}
+ return getSyncInfo();
}
- return getSyncInfo();
}
};
}
@@ -102,11 +104,13 @@ public class FakeServerInventory {
public synchronized CustomAction clearPlatform() {
return new CustomAction("updateServerSideInventory - report platform deleted
on the server") {
public Object invoke(Invocation invocation) throws Throwable {
- throwIfFailing();
-
- platform = null;
-
- return getSyncInfo();
+ synchronized (FakeServerInventory.this) {
+ throwIfFailing();
+
+ platform = null;
+
+ return getSyncInfo();
+ }
}
};
}
@@ -115,45 +119,47 @@ public class FakeServerInventory {
return new CustomAction("upgradeServerSideInventory") {
@SuppressWarnings({ "serial", "unchecked" })
public Object invoke(Invocation invocation) throws Throwable {
- throwIfFailing();
-
- Set<ResourceUpgradeRequest> requests =
(Set<ResourceUpgradeRequest>) invocation.getParameter(0);
- Set<ResourceUpgradeResponse> responses = new
HashSet<ResourceUpgradeResponse>();
-
- for (final ResourceUpgradeRequest request : requests) {
- Resource resource = findResource(platform, new Resource() {
- public int getId() {
- return request.getResourceId();
- }
- }, ID_COMPARATOR);
- if (resource != null) {
- if (request.getNewDescription() != null) {
- resource.setDescription(request.getNewDescription());
+ synchronized(FakeServerInventory.this) {
+ throwIfFailing();
+
+ Set<ResourceUpgradeRequest> requests =
(Set<ResourceUpgradeRequest>) invocation.getParameter(0);
+ Set<ResourceUpgradeResponse> responses = new
HashSet<ResourceUpgradeResponse>();
+
+ for (final ResourceUpgradeRequest request : requests) {
+ Resource resource = findResource(platform, new Resource() {
+ public int getId() {
+ return request.getResourceId();
+ }
+ }, ID_COMPARATOR);
+ if (resource != null) {
+ if (request.getNewDescription() != null) {
+ resource.setDescription(request.getNewDescription());
+ }
+ if (request.getNewName() != null) {
+ resource.setName(request.getNewName());
+ }
+
+ if (request.getNewResourceKey() != null) {
+ resource.setResourceKey(request.getNewResourceKey());
+ }
+
+ if (request.getUpgradeErrorMessage() != null) {
+ ResourceError error = new ResourceError(resource,
ResourceErrorType.UPGRADE,
+ request.getUpgradeErrorMessage(),
request.getUpgradeErrorStackTrace(),
+ request.getTimestamp());
+ resource.getResourceErrors().add(error);
+ }
+
+ ResourceUpgradeResponse resp = new
ResourceUpgradeResponse();
+ resp.setResourceId(resource.getId());
+ resp.setUpgradedResourceName(resource.getName());
+ resp.setUpgradedResourceKey(resource.getResourceKey());
+
resp.setUpgradedResourceDescription(resource.getDescription());
+ responses.add(resp);
}
- if (request.getNewName() != null) {
- resource.setName(request.getNewName());
- }
-
- if (request.getNewResourceKey() != null) {
- resource.setResourceKey(request.getNewResourceKey());
- }
-
- if (request.getUpgradeErrorMessage() != null) {
- ResourceError error = new ResourceError(resource,
ResourceErrorType.UPGRADE,
- request.getUpgradeErrorMessage(),
request.getUpgradeErrorStackTrace(),
- request.getTimestamp());
- resource.getResourceErrors().add(error);
- }
-
- ResourceUpgradeResponse resp = new ResourceUpgradeResponse();
- resp.setResourceId(resource.getId());
- resp.setUpgradedResourceName(resource.getName());
- resp.setUpgradedResourceKey(resource.getResourceKey());
- resp.setUpgradedResourceDescription(resource.getDescription());
- responses.add(resp);
}
+ return responses;
}
- return responses;
}
};
}
@@ -162,21 +168,23 @@ public class FakeServerInventory {
return new CustomAction("getResources") {
@SuppressWarnings("unchecked")
public Object invoke(Invocation invocation) throws Throwable {
- throwIfFailing();
-
- Set<Integer> resourceIds = (Set<Integer>)
invocation.getParameter(0);
- boolean includeDescendants = (Boolean) invocation.getParameter(1);
-
- return getResources(resourceIds, includeDescendants);
+ synchronized (FakeServerInventory.this) {
+ throwIfFailing();
+
+ Set<Integer> resourceIds = (Set<Integer>)
invocation.getParameter(0);
+ boolean includeDescendants = (Boolean) invocation.getParameter(1);
+
+ return getResources(resourceIds, includeDescendants);
+ }
}
};
}
- public boolean isFailing() {
+ public synchronized boolean isFailing() {
return failing;
}
- public void setFailing(boolean failing) {
+ public synchronized void setFailing(boolean failing) {
this.failing = failing;
}
@@ -195,7 +203,9 @@ public class FakeServerInventory {
@SuppressWarnings("serial")
private Set<Resource> getResources(Set<Integer> resourceIds, boolean
includeDescendants) {
- Set<Resource> result = new HashSet<Resource>();
+ //it is important to keep the hierarchical order of the resource in the returned
set
+ //so that plugin container can merge the resources from top to bottom.
+ Set<Resource> result = new LinkedHashSet<Resource>();
for (final Integer id : resourceIds) {
Resource r = findResource(platform, new Resource() {
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
index afe3982..e0526a1 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTestBase.java
@@ -358,7 +358,9 @@ public abstract class ResourceUpgradeTestBase {
try {
//give the pc the time to finish resource upgrade
- Thread.sleep(1000);
+ while (!PluginContainer.getInstance().isStarted()) {
+ Thread.sleep(500);
+ }
//execute full discovery
InventoryManager im = PluginContainer.getInstance().getInventoryManager();
commit ec038dd2d72eeebf345d952f12bdc96409c3154e
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 17 17:35:10 2011 +0200
BZ 704028 - Fixing the resource upgrade logic:
1) The resource key duplicates are checked against what the inventory
will look like after the upgrade finished.
2) The InventoryManager start-up logic has been changed to do the
resource activation and upgrade in one go so that we don't have to
restart the "parent" resources when upgrading their children so that
the upgrade methods of children see the parent resource as if it was
already upgraded.
The initial activation and upgrade will assume the upgrade succeeded
and will only rollback the resources to their initial state if the
upgrade fails.
diff --git
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/upgrade/ResourceUpgradeRequest.java
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/upgrade/ResourceUpgradeRequest.java
index aca9c90..164ea13 100644
---
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/upgrade/ResourceUpgradeRequest.java
+++
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/upgrade/ResourceUpgradeRequest.java
@@ -26,6 +26,7 @@ package org.rhq.core.clientapi.agent.upgrade;
import java.io.PrintWriter;
import java.io.StringWriter;
+import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceUpgradeReport;
/**
@@ -119,6 +120,35 @@ public class ResourceUpgradeRequest extends ResourceUpgradeReport {
setNewResourceKey(report.getNewResourceKey());
}
+ public void fillInFromResource(Resource resource) {
+ setNewDescription(resource.getDescription());
+ setNewName(resource.getName());
+ setNewResourceKey(resource.getResourceKey());
+ }
+
+ public void updateResource(Resource resource) {
+ if (getNewResourceKey() != null) {
+ resource.setResourceKey(getNewResourceKey());
+ }
+
+ if (getNewName() != null) {
+ resource.setName(getNewName());
+ }
+
+ if (getNewDescription() != null) {
+ resource.setDescription(getNewDescription());
+ }
+ }
+
+ /**
+ * Clears all the data to be upgraded apart from the error message, stacktrace and
timestamp
+ */
+ public void clearUpgradeData() {
+ setNewDescription(null);
+ setNewName(null);
+ setNewResourceKey(null);
+ }
+
@Override
public boolean hasSomethingToUpgrade() {
return super.hasSomethingToUpgrade() || upgradeErrorMessage != null ||
upgradeErrorStackTrace != null;
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 6afb021..9a98f81 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -225,7 +225,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
//try the resource upgrade before we have any schedulers set up
//so that we don't get any interventions from concurrently running
//discoveries.
- upgradeResources();
+ activateAndUpgradeResources();
availabilityCollectors = new AvailabilityCollectorThreadPool();
availabilityCollectors.initialize();
@@ -1236,7 +1236,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
return resourceContainer.updateAvailability(availabilityType);
}
- public void mergeResourcesFromUpgrade(Set<ResourceUpgradeRequest>
upgradeRequests) {
+ public void mergeResourcesFromUpgrade(Set<ResourceUpgradeRequest>
upgradeRequests) throws PluginContainerException {
Set<ResourceUpgradeResponse> serverUpdates = null;
try {
ServerServices serverServices = this.configuration.getServerServices();
@@ -1429,44 +1429,42 @@ public class InventoryManager extends AgentService implements
ContainerService,
}
/**
- * This will start the resource's plugin component, creating it first if it has
not yet been created. If the
- * component is already created and started, this method is a no-op.
- *
- * @param resource the resource that the component will manage
- * @param container the wrapper around the resource and its component
- * @param updatedPluginConfig if <code>true</code>, this will indicate
that the resource's plugin configuration is
- * known to have changed since the last time the resource
component was started
- *
- * @throws InvalidPluginConfigurationException when connecting to the managed
resource fails due to an invalid
- * plugin configuration
- * @throws PluginContainerException for all other errors
+ * This method prepares the resource and container for activation.
+ * <p>
+ * After this method has processed the resource and container, it is enough
+ * to call ResourceComponent.start(). All the datastructures needed for that
+ * call are prepared in the container by this method.
+ *
+ * @param resource the resource that we are activating
+ * @param container the container to hold the datastructures
+ * @throws InvalidPluginConfigurationException
+ * @throws PluginContainerException
+ * @return true the resource has been successfully prepared and can be started. False
if the resource should not be started.
*/
- @SuppressWarnings("unchecked")
- public void activateResource(Resource resource, @NotNull ResourceContainer container,
boolean updatedPluginConfig)
- throws InvalidPluginConfigurationException, PluginContainerException {
+ private boolean prepareResourceForActivation(Resource resource, @NotNull
ResourceContainer container, boolean forceReinitialization) throws
InvalidPluginConfigurationException, PluginContainerException {
if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
if (log.isTraceEnabled()) {
log.trace("Skipping activation of " + resource + " - it
has failed to upgrade.");
}
- return;
+ return false;
}
-
+
ResourceComponent component = container.getResourceComponent();
// if the component already exists and is started, and the resource's plugin
config has not changed, there is
// nothing to do, so return immediately
- if ((component != null) && (container.getResourceComponentState() ==
ResourceComponentState.STARTED)
- && !updatedPluginConfig) {
+ if ((component != null) && (container.getResourceComponentState() ==
ResourceComponentState.STARTED
+ && !forceReinitialization)) {
if (log.isTraceEnabled()) {
- log.trace("Skipping activation of " + resource + " - its
component is already started and its plugin "
+ log.trace("No need to prepare the activation of resource " +
resource + " - its component is already started and its plugin "
+ "config has not been updated since it was last
started.");
}
- return;
+ return false;
}
if (log.isDebugEnabled()) {
- log.debug("Starting component for [" + resource + "], current
state=["
- + container.getResourceComponentState() + "], new plugin
config=[" + updatedPluginConfig + "]...");
+ log.debug("Preparing component for [" + resource + "] for
activation, current state=["
+ + container.getResourceComponentState() + "], forcing
reinitialization=[" + forceReinitialization + "]...");
}
// If the component does not even exist yet, we need to instantiate it and set it
on the container.
@@ -1482,6 +1480,10 @@ public class InventoryManager extends AgentService implements
ContainerService,
container.setResourceComponent(component);
}
+ //this is a transient field, so reinitialize it just in case this is invoked just
after
+ //loadFromDisk()
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+
// start the resource, but only if its parent component is running. If the parent
is null, that means
// the resource is, itself, the root platform and we always activate that.
ResourceContainer parentResourceContainer;
@@ -1514,7 +1516,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
ConfigurationUtility.normalizeConfiguration(resource.getPluginConfiguration(), type
.getPluginConfigurationDefinition());
- ResourceComponent parentComponent = null;
+ ResourceComponent<?> parentComponent = null;
if (resource.getParentResource() != null) {
parentComponent = getResourceComponent(resource.getParentResource());
}
@@ -1523,8 +1525,45 @@ public class InventoryManager extends AgentService implements
ContainerService,
container.setResourceContext(context);
+ return true;
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Resource [" + resource + "] not being prepared
for activation; parent isn't started: " + parentResourceContainer);
+ }
+
+ return false;
+ }
+ }
+
+ /**
+ * This will start the resource's plugin component, creating it first if it has
not yet been created. If the
+ * component is already created and started, this method is a no-op.
+ *
+ * @param resource the resource that the component will manage
+ * @param container the wrapper around the resource and its component
+ * @param updatedPluginConfig if <code>true</code>, this will indicate
that the resource's plugin configuration is
+ * known to have changed since the last time the resource
component was started
+ *
+ * @throws InvalidPluginConfigurationException when connecting to the managed
resource fails due to an invalid
+ * plugin configuration
+ * @throws PluginContainerException for all other errors
+ */
+ @SuppressWarnings("unchecked")
+ public void activateResource(Resource resource, @NotNull ResourceContainer container,
boolean updatedPluginConfig)
+ throws InvalidPluginConfigurationException, PluginContainerException {
+ if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
+ if (log.isTraceEnabled()) {
+ log.trace("Skipping activation of " + resource + " - it
has failed to upgrade.");
+ }
+ return;
+ }
+
+ if (prepareResourceForActivation(resource, container, updatedPluginConfig)) {
+
+ ResourceContext context = container.getResourceContext();
+
// Wrap the component in a proxy that will provide locking and a timeout for
the call to start().
- component = container.createResourceComponentProxy(ResourceComponent.class,
FacetLockType.READ,
+ ResourceComponent component =
container.createResourceComponentProxy(ResourceComponent.class, FacetLockType.READ,
COMPONENT_START_TIMEOUT, true, false);
try {
@@ -1560,10 +1599,6 @@ public class InventoryManager extends AgentService implements
ContainerService,
// Finally, inform the rest of the plugin container that this resource has
been activated
fireResourceActivated(resource);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Not activating [" + resource + "]; parent
isn't started: " + parentResourceContainer);
- }
}
}
@@ -1760,10 +1795,7 @@ public class InventoryManager extends AgentService implements
ContainerService,
this.resourceContainers.put(uuid, resourceContainer);
}
- initResourceContainer(this.platform);
- activateFromDisk(this.platform);
-
- log.info("Inventory with size [" +
this.resourceContainers.size() + "] initialized from data file in ["
+ log.info("Inventory with size [" +
this.resourceContainers.size() + "] loaded from data file in ["
+ (System.currentTimeMillis() - start) + "ms]");
}
} catch (Exception e) {
@@ -2630,6 +2662,11 @@ public class InventoryManager extends AgentService implements
ContainerService,
}
private void refreshResourceComponentState(ResourceContainer container, boolean
pluginConfigUpdated) {
+ if (resourceUpgradeDelegate.enabled()) {
+ //don't do anything during upgrade. The resources are only started during
the upgrade process.
+ return;
+ }
+
Resource resource = container.getResource();
switch (resource.getInventoryStatus()) {
case COMMITTED: {
@@ -2652,66 +2689,65 @@ public class InventoryManager extends AgentService implements
ContainerService,
container.setSynchronizationState(ResourceContainer.SynchronizationState.SYNCHRONIZED);
}
- private void upgradeResources() {
+ private void activateAndUpgradeResources() {
try {
- if (!configuration.isInsideAgent()) {
- log.debug("Skipping resource upgrade in embedded mode.");
- return;
- }
-
- log.debug("Executing resource upgrade.");
+ log.info("Starting resource activation and upgrade.");
+ long start = System.currentTimeMillis();
+
+ log.info("Executing the initial inventory synchronization before
upgrade.");
+
boolean syncResult = handleReport(new InventoryReport(getAgent()));
if (!syncResult) {
- log.warn("Resource upgrade failed to sync up the inventory with the
server.");
- return;
+ log.warn("Failed to sync up the inventory with the server. The
resource upgrade will be disabled.");
}
- upgradeResource(getPlatform());
+ log.info("Starting to activate (and upgrade) resources.");
+
+ activateAndUpgradeResourceRecursively(getPlatform(), syncResult);
- log.debug("Sending the upgrade requests to the server.");
+ log.info("Inventory activated and upgrade requests gathered in " +
(System.currentTimeMillis() - start) + "ms.");
+
+ log.info("Sending the upgrade requests to the server.");
resourceUpgradeDelegate.sendRequests();
resourceUpgradeDelegate.disable();
- log.debug("Resource upgrade finished.");
+ log.info("Resource activation and upgrade finished.");
} catch (Throwable t) {
- log.error("Resource upgrade failed with an exception.", t);
+ log.error("Resource activation or upgrade failed with an exception. An
attempt to merely activate the resources will be made now.", t);
+
+ //make sure to at least activate the resources
+ activateAndUpgradeResourceRecursively(getPlatform(), false);
}
}
- private void upgradeResource(Resource resource) {
- ResourceContainer container = getResourceContainer(resource);
- if (container != null) {
- if (container.getResourceComponentState() == ResourceComponentState.STARTED)
{
- try {
- if (resourceUpgradeDelegate.processAndQueue(container)) {
- for (Resource child : resource.getChildResources()) {
- upgradeResource(child);
- }
- }
- } catch (PluginContainerException e) {
- log.error("Exception thrown while upgrading [" + resource +
"].", e);
- }
- } else {
- String message = "The resource container for resource [" +
resource
- + "] wasn't started while upgrading.";
-
- if (resource.getChildResources().isEmpty()) {
- log
- .info(message
- + " If this is the first time the plugin container
starts up and has completely empty inventory, you can ignore this message.");
- } else {
- log
- .error(message
- + " This can potentially cause the discovery to find
resources logically equivalent to already "
- + "existing resources if the corresponding plugins
support upgrade for that particular resource type.");
+ private void activateAndUpgradeResourceRecursively(Resource resource, boolean
doUpgrade) {
+ ResourceContainer container = initResourceContainer(resource);
+
+ boolean activate = true;
+
+ //only do upgrade inside the agent. it does not make sense in embedded mode.
+ if (doUpgrade && configuration.isInsideAgent()) {
+ try {
+ activate = prepareResourceForActivation(resource, container, false);
+ activate = activate &&
resourceUpgradeDelegate.processAndQueue(container);
+ } catch (Throwable t) {
+ log.error("Exception thrown while upgrading [" + resource +
"].", t);
+ activate = false;
+ }
+ }
+
+ if (activate) {
+ try {
+ activateResource(resource, container, false);
+ for (Resource child : resource.getChildResources()) {
+ activateAndUpgradeResourceRecursively(child, doUpgrade);
}
+ } catch (PluginContainerException e) {
+ log.error("Exception thrown while activating [" + resource +
"].", e);
}
- } else {
- log.error("Resource container not initialized for resource [" +
resource
- + "] during upgrade. This should not happen.");
}
}
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
index b3b8716..e8ca94e 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
@@ -59,6 +59,7 @@ public class ResourceUpgradeDelegate {
private boolean enabled = true;
private Set<ResourceUpgradeRequest> requests = new
HashSet<ResourceUpgradeRequest>();
+ private Set<ResourceUpgradeRequest> originalResourceData = new
HashSet<ResourceUpgradeRequest>();
private InventoryManager inventoryManager;
private Set<Resource> failedResources = new HashSet<Resource>();
private Map<Resource, Set<ResourceType>> failedResourceTypesPerParent =
new HashMap<Resource, Set<ResourceType>>();
@@ -85,6 +86,14 @@ public class ResourceUpgradeDelegate {
/**
* Asks the resource's discovery component to upgrade the resource.
+ * The resource will be updated with the data from the upgrade. I.e. when the
resource
+ * is activated after it was queued for upgrade, it will actually start with the
upgraded
+ * data.
+ * <p>
+ * If later on the upgrade fails to finish due to communication error with server or
the
+ * server doesn't approve some upgrades for whatever reason, the resources will
be restarted
+ * with the original data.
+ *
* @param resourceContainer
* @return true if the resource was queued for upgrade with no problems,
* false if there was some problem upgrading and the resource container was
deactivated as
@@ -135,7 +144,62 @@ public class ResourceUpgradeDelegate {
public void sendRequests() throws Throwable {
if (enabled && requests.size() > 0) {
try {
+ //check the validity of the upgrades now that we have a complete picture
+ //about the changes and the inventory looks like it was already
upgraded.
+ for(ResourceUpgradeRequest request : requests) {
+ ResourceContainer container =
inventoryManager.getResourceContainer(request.getResourceId());
+ if (container != null) {
+ Resource resource = container.getResource();
+ String upgradeErrors = null;
+ if ((upgradeErrors = checkUpgradeValid(resource, request)) !=
null) {
+ String errorString = "Upgrading the resource [" +
resource + "] using these updates [" + request
+ + "] would render the inventory invalid because of
the following reasons: " + upgradeErrors;
+
+ log.error(errorString);
+
+ IllegalStateException ex = new
IllegalStateException(errorString);
+ ex.fillInStackTrace();
+
+ //set the error and clear out everything else, so that we
send the error
+ //to the server and locally roll back to the previous state.
+ request.setErrorProperties(ex);
+ request.clearUpgradeData();
+
+ if (request.getUpgradeErrorMessage() != null) {
+ rememberFailure(resource);
+ inventoryManager.deactivateResource(resource);
+ }
+
+ }
+ }
+ }
+
+ //now before we talk to server and sync up the upgraded data,
+ //reset the resources to their original values so that any changes
+ //the server makes to the upgrade data are applied to the
"vanilla" state
+ //of the resources. i.e we only want to make changes the server
approves.
+ for (ResourceUpgradeRequest request : originalResourceData) {
+ ResourceContainer container =
inventoryManager.getResourceContainer(request.getResourceId());
+ if (container != null) {
+ Resource resource = container.getResource();
+ request.updateResource(resource);
+ }
+ }
+
+ //merge the resources with the data as received from the server
+ //(this can differ from what the upgrade "wants" because the
server is
+ //free to disallow some changes, e.g. resource name change)
inventoryManager.mergeResourcesFromUpgrade(requests);
+
+ //and now restart all the "touched" resources with the true
intended
+ //data
+ for (ResourceUpgradeRequest request : requests) {
+ ResourceContainer container =
inventoryManager.getResourceContainer(request.getResourceId());
+ if (container != null) {
+ Resource resource = container.getResource();
+ inventoryManager.activateResource(resource, container, true);
+ }
+ }
} catch (Throwable t) {
mergeFailed = true;
@@ -168,7 +232,7 @@ public class ResourceUpgradeDelegate {
ResourceContext<?> parentResourceContext = parentResourceContainer == null
? null : parentResourceContainer.getResourceContext();
Resource resource = resourceContainer.getResource();
-
+
ResourceDiscoveryComponent<ResourceComponent<T>> discoveryComponent =
PluginContainer.getInstance()
.getPluginComponentFactory().getDiscoveryComponent(resource.getResourceType(),
parentResourceContainer);
@@ -194,44 +258,32 @@ public class ResourceUpgradeDelegate {
}
if (upgradeReport != null && upgradeReport.hasSomethingToUpgrade()) {
- String upgradeErrors = null;
- if ((upgradeErrors = checkUpgradeValid(resource, upgradeReport)) != null) {
- String errorString = "Upgrading the resource [" + resource +
"] using these updates [" + upgradeReport
- + "] would render the inventory invalid because of the following
reasons: " + upgradeErrors;
-
- log.error(errorString);
-
- IllegalStateException ex = new IllegalStateException(errorString);
- ex.fillInStackTrace();
-
- request.setErrorProperties(ex);
- } else {
- request.fillInFromReport(upgradeReport);
- }
-
+ request.fillInFromReport(upgradeReport);
}
- //everything went ok, let's queue a upgrade request that will be sent to the
server
if (request.hasSomethingToUpgrade()) {
requests.add(request);
}
if (request.getUpgradeErrorMessage() != null) {
- failedResources.add(resource);
-
- Set<ResourceType> failedResourceTypesInParent =
failedResourceTypesPerParent.get(parentResource);
- if (failedResourceTypesInParent == null) {
- failedResourceTypesInParent = new HashSet<ResourceType>();
- failedResourceTypesPerParent.put(parentResource,
failedResourceTypesInParent);
- }
-
- failedResourceTypesInParent.add(resource.getResourceType());
-
- inventoryManager.deactivateResource(resource);
-
+ rememberFailure(resource);
return false;
}
-
+
+ //alright, everything went fine with the upgrade. Let's update the data of
the resource
+ //right now so that it starts up as if it was already upgraded. This is to ensure
that
+ //its children will use a parent component that behaves like the upgraded one.
+ //We are going to roll back the upgraded data if the upgrade fails to sync with
the server
+ //later on.
+
+ //remember the original values
+ ResourceUpgradeRequest original = new ResourceUpgradeRequest(resource.getId());
+ original.fillInFromResource(resource);
+ originalResourceData.add(original);
+
+ //update the resource
+ request.updateResource(resource);
+
return true;
}
@@ -248,6 +300,7 @@ public class ResourceUpgradeDelegate {
private boolean checkResourceKeyUniqueAmongSiblings(Resource resource,
ResourceUpgradeReport upgradeReport) {
Resource parent = resource.getParentResource();
if (parent == null) {
+ //there is only a single platform resource on an agent
return true;
}
@@ -267,4 +320,17 @@ public class ResourceUpgradeDelegate {
return true;
}
+
+ private void rememberFailure(Resource resource) {
+ failedResources.add(resource);
+ Resource parentResource = resource.getParentResource();
+
+ Set<ResourceType> failedResourceTypesInParent =
failedResourceTypesPerParent.get(parentResource);
+ if (failedResourceTypesInParent == null) {
+ failedResourceTypesInParent = new HashSet<ResourceType>();
+ failedResourceTypesPerParent.put(parentResource,
failedResourceTypesInParent);
+ }
+
+ failedResourceTypesInParent.add(resource.getResourceType());
+ }
}