2016-01-21 13:18:55 +01:00
#
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
#########################################################################################
2016-01-21 13:42:38 +01:00
# This is the messages.properties file
2016-01-21 13:18:55 +01:00
#########################################################################################
2018-01-12 09:58:25 +01:00
# Menu items
dashboard.upload.caption = Upload
dashboard.upload.caption-long = Upload Management
dashboard.tenantconfig.caption = System Config
dashboard.tenantconfig.caption-long = System Configuration
dashboard.distributions.caption = Distributions
dashboard.distributions.caption-long = Distributions Management
dashboard.filters.caption = Target Filters
dashboard.filters.caption-long = Target Filter Management
dashboard.deployment.caption = Deployment
2018-07-13 08:37:43 +02:00
dashboard.deployment.caption-long = Deployment Management
2018-01-12 09:58:25 +01:00
dashboard.rollouts.caption = Rollout
dashboard.rollouts.caption-long = Rollout Management
2016-01-21 13:18:55 +01:00
# Button names prefix with - button
button.save = Save
button.delete = Delete
button.delete.all = Delete All
button.assign.all = Save Assign
button.actions = You have actions
button.no.actions = No actions
button.ok = OK
button.cancel = Cancel
button.upload.file = Upload File
2016-09-01 10:19:55 +02:00
button.no.auto.assignment = none
button.auto.assignment.desc = Select auto assign distribution set
2018-06-04 16:36:56 +02:00
button.approve = Approve
button.deny = Deny
button.apply = Apply
2016-01-21 13:18:55 +01:00
bulk.targets.upload = Please upload csv file.
bulkupload.ds.name = DS Name
2016-09-23 15:39:19 +02:00
button.discard = Discard
2016-12-19 16:05:23 +01:00
notification.unread.button.title = Notifications
notification.unread.button.description = Notifications ({0} unread)
2016-01-21 13:18:55 +01:00
# Headers prefix with - header
header.target.table = Targets
header.dist.table = Distributions
header.filter.tag = Filter by Tag
header.target.filter.tag = Filters
header.first.assignment.table = Targets
header.second.assignment.table = Distributions
header.dist.first.assignment.table = Distributions
header.dist.second.assignment.table = Software Modules
header.third.assignment.table = Discard
header.one.deletedist.table = Distribution Name
header.second.deletedist.table = Discard Changes
header.first.deletetarget.table = Target Name
header.second.deletetarget.table = Discard Changes
header.first.deleteswmodule.table = Delete software
header.first.delete.dist.type.table = DistributionSetType
header.second.delete.dist.type.table = Discard
header.first.delete.swmodule.type.table = Software Module Type
header.second.delete.swmodule.type.table = Discard
header.dist.twintable.selected = Selected
header.dist.twintable.available = Available
header.target.installed = Installed
header.target.assigned = Assigned
2016-09-23 15:39:19 +02:00
header.type = Type
header.migrations.step = IsRequiredMigrationStep
header.action = Actions
header.action.run = Run
2018-06-04 16:36:56 +02:00
header.action.approve = Approve
2016-09-23 15:39:19 +02:00
header.action.pause = Pause
header.action.update = Edit
2017-01-26 09:37:20 +01:00
header.action.copy = Copy
2017-02-18 07:19:28 +01:00
header.action.delete = Delete
2016-09-23 15:39:19 +02:00
header.status = Status
2016-01-21 13:18:55 +01:00
2016-12-19 16:05:23 +01:00
# event container
target.created.event.container.notifcation.message = targets created
target.deleted.event.container.notifcation.message = targets deleted
distribution.created.event.container.notifcation.message = distribution sets created
distribution.deleted.event.container.notifcation.message = distribution sets deleted
target.tag.created.event.container.notifcation.message = target tags created
target.tag.deleted.event.container.notifcation.message = target tags deleted
target.tag.updated.event.container.notifcation.message = target tags changed
software.module.created.event.container.notifcation.message = software module created
software.module.deleted.event.container.notifcation.message = software module deleted
distribution.set.tag.created.event.container.notifcation.message = distribution set tags created
distribution.set.tag.deleted.event.container.notifcation.message = distribution set tags deleted
distribution.set.tag.updated.event.container.notifcation.message = distribution set tags changed
2016-01-21 13:18:55 +01:00
# Captions prefix with - caption
2018-07-18 18:55:52 +02:00
caption.filter.by.type = Filter by type
caption.bulk.upload = Bulk Upload
2018-07-13 08:37:43 +02:00
caption.action.history = Action history
caption.action.history.for = Action history for {0}
2018-07-18 18:55:52 +02:00
caption.artifact.details = Artifact Details
caption.artifact.details.of = Artifact Details of {0}
caption.action.states = Action States
caption.action.messages = Messages
2016-01-21 13:18:55 +01:00
caption.error = Error
caption.new.softwaremodule.application = Configure New Application
caption.new.softwaremodule.os = Configure New OS
caption.filter.simple = Simple Filter
caption.filter.custom = Custom Filter
2016-06-22 13:13:54 +02:00
caption.metadata = Metadata
2018-07-18 18:55:52 +02:00
caption.rollout.name = Rollout name
2016-01-21 13:18:55 +01:00
2018-07-02 09:09:13 +02:00
caption.target = Target
caption.distribution = Distribution
caption.tag = Tag
caption.type = Type
caption.software.module = Software Module
caption.rollout = Rollout
2018-09-11 16:47:44 +02:00
caption.rollout.approve = Approve Rollout
2018-07-02 09:09:13 +02:00
caption.create.new = Create new {0}
2018-07-13 08:37:43 +02:00
caption.update = Edit {0}
2018-07-02 09:09:13 +02:00
2016-09-01 10:19:55 +02:00
caption.select.auto.assign.dist = Select auto assignment distribution set
2016-01-21 13:18:55 +01:00
caption.bulk.upload.targets = Bulk Upload
caption.softwares.distdetail.tab = Modules
caption.tags.tab = Tags
caption.logs.tab = Logs
caption.attributes.tab = Attributes
caption.types.tab = Types
caption.save.window = Action Details
caption.assign.dist.accordion.tab = Assign Software Module
caption.delete.dist.accordion.tab = Delete Distributions
caption.delete.target.accordion.tab = Delete Targets
caption.delete.swmodule.accordion.tab = Delete SW Modules
2018-07-02 09:09:13 +02:00
caption.delete.dist.set.type.accordion.tab = Delete Distribution set type
caption.delete.sw.module.type.accordion.tab = Delete Software module type
caption.panel.dist.installed = Installed Distribution set
caption.panel.dist.assigned = Assigned Distribution set
2016-06-21 13:41:06 +02:00
caption.cancel.action.confirmbox = Confirm Action Cancellation
2016-01-21 13:42:38 +01:00
caption.forcequit.action.confirmbox = Confirm force quit action
2016-01-21 13:18:55 +01:00
caption.forced.datefield = Force update at time
caption.force.action.confirmbox = Confirm Force Active Action
2016-06-21 13:41:06 +02:00
caption.confirm.abort.action = Confirm Abort Action
2016-01-21 13:18:55 +01:00
2019-02-13 14:18:30 +01:00
caption.config.create = create
caption.config.edit = edit
caption.config.delete = delete
2016-06-22 13:13:54 +02:00
caption.metadata.popup = Metadata of
2016-09-01 10:19:55 +02:00
caption.confirm.assign.consequences = Auto assign consequences
caption.auto.assignment.ds = Auto assignment
2016-01-21 13:18:55 +01:00
2018-04-04 10:01:55 +02:00
caption.maintenancewindow.enabled = Use maintenance window
caption.maintenancewindow.schedule = Schedule
caption.maintenancewindow.duration = Duration
caption.maintenancewindow.timezone = Time Zone (from GMT)
245 maintenance window (#535)
* Maintenance Window: Introduced dynamic update to polling time. (#245)
Resolves #245
Added new configuration parameters and controller handling that can be
used to enable reduction in polling time near to start of a maintenance
window.
- The device may only get to know of start of maintenance window when
the device polls the server. If a window is available, server responds
with maintenanceWindow as 'available' and the update as 'forced'. Hence,
as the time for start of a maintenance window approaches, the device
should poll the server more often in order to decrease the possibility
of missing the maintenance window start time due to non-alignment of
polling with the start time, or due to packet losses and other network
issues.
- Additional configuration parameter is introduced that will be used to
specify the minimum number of times the controller should poll between
current time and the start of maintenance window. Using this parameter,
an "inverse exponential back-off" scheme for reducing the polling time
is implemented.
- Implemented inverse exponential back-off for polling.
For example, considering default polling-time = 00:05:00,
min-polling-time = 00:00:30, maintenance-window-poll-count = 3, we
expect that controller should poll the server 3 times between current
time and start of a maintenance window. Thus in following scenario
controller will get to know of start of maintenance 3 secs after
scheduled start. Whereas without this scheme, delay may be as much as 4
minutes.
time until start: 00:21:00; polling time: 00:05:00
time until start: 00:16:00; polling time: 00:05:00
time until start: 00:11:00; polling time: 00:03:40
time until start: 00:07:20; polling time: 00:02:27
time until start: 00:04:53; polling time: 00:01:38
time until start: 00:02:10; polling time: 00:00:43
time until start: 00:01:27; polling time: 00:00:30
time until start: 00:00:57; polling time: 00:00:30
time until start: 00:00:27; polling time: 00:00:30
time until start: -00:00:03; polling time: 00:05:00
- Once a maintenance window starts, the polling time is reverted to
default. Polling time is not changed near the end of a maintenance
window.
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Updated the DMF API.
Added maintenance window handling for DMF API. Currently no timer or
scheduler is used to send updates to devices when a maintenance window
becomes available. The device can simulate a poll behaviour by sending a
message on UPDATE_ACTION_STATUS topic. Depending on whether there is a
maintenance window available or not, server should send
DOWNLOAD_AND_INSTALL or DOWNLOAD_AND_SKIP.
- Additional action status (DOWNLOADED) and event topic
(DOWNLOAD_AND_SKIP)
- Server sends DOWNLOAD_AND_SKIP or DOWNLOAD_AND_INSTALL based on
maintenance window using ControllerManagement
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Added tests for DDI and Management APIs.
Added test cases for DDI and Management API to test for maintenance
window related logic.
- Tests for Management API for DistributionSet assignment with and
without valid maintenance schedule specified.
- Tests for lapsed maintenance schedule.
- Additional test helper methods.
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Added new fields, enums, APIs and helper classes.
Extended the data model and Action API to support maintenance schedule.
Also provided helper classes to parse cron expression and calculate
maintenance window based on the schedule.
- DOWNLOADED status added to Action interface for controller to record
action status.
- Extra fields and APIs are added to Action to set schedule, duration
and time zone of maintenance window.
- Maintenance schedule can be defined using: a cron expression (e.g. "0
30 10-13 ? * WED,FRI" for 30 minutes past the hour, between 10:00 AM
and 01:59 PM, only on Wednesday and Friday), a duration (e.g. "00:30:00"
for 30 minutes) and the time zone (e.g. "+02:00" for CET summer time or
"+00:00" for UTC) relative to which maintenance window start time is
calculated.
- Extra APIs added to check if a maintenance schedule is defined or
lapsed and if a maintenance window is available based on the schedule.
- Added database fields to store the schedule, duration and timezone of
maintenance window.
- Added helper classes to parse and calculate the maintenance window
schedule.
- Added exception handling classes to handle invalid maintenance window
schedule.
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Extended JSON model for REST APIs.
Extended the JSON model to support defining and communicating the
maintenance window information using the REST APIs.
- Additional JSON objects are defined to extend request and response
bodies.
- When requesting a distribution set assignment to a target, the
maintenance schedule information can be specified. Example below
specifies a maintenance schedule at 11:00 PM, only on Saturday, only in
2017, for 30 minutes. Maintenance window start time is then calculated
relative to the time zone specified, in this case CET summer time.
$ curl 'http://127.0.0.1:8080/rest/v1/targets/2/assignedDS' -i -X POST
-H 'Content-Type: application/json;charset=UTF-8' -d '{
"forcetime" : "0",
"id" : "1",
"type" : "forced",
"maintenanceWindow": {
"schedule": "0 0 23 ? * SAT 2017",
"duration": "00:30:00",
"timezone": "+02:00"
}
}'
- When device requests the action information it gets to know if there
is a 'maintenance schedule' for this action or not based on presence of
maintenanceWindow field in the response. The value of maintenanceWindow
is either 'available' (i.e. the maintenance window is now available as
per defined schedule and the update can progress) or 'unavailable'
(implying that maintenance window is not available now and update should
not be attempted). If there is no 'maintenance schedule' defined, the
field is null or not present.
$ curl
'http://127.0.0.1:8080/default/controller/v1/2/deploymentBase/1?c=411629670'
-i -H 'Accept: application/hal+json'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1665
{
"id": "1",
"deployment": {
"download": "forced",
"update": "forced",
"chunks": [ {
"part": "os",
"version": "1",
"name": "1",
"artifacts" : [ {
"filename" : "binary.tgz",
"hashes" : {
"sha1" : "8b71973e835cd0718827238b1cf89f0079e44dae",
"md5" : "a90218782025c48e09ba0436cf30d029"
},
"size" : 5,
"_links" : {
"download" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
},
"download-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
}
}
} ]
} ],
"maintenanceWindow": "available"
}
}
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Added additional UI elements.
Added additional UI elements to specify maintenance window schedule in
hawkBit UI while assigning distribution set(s) to target(s).
- Added UI control to hawkBit UI when distribution set assignment is
confirmed.
- Also added required theme updates and resource strings.
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
* Maintenance Window: Modified DDI and Mgmt APIs for maintenance window.
Modified controller management and deployment management to handle
maintenance window schedule in Management API and DDI API.
- Modified REST endpoints to accept and respond with maintenance window
information.
$ curl 'http://127.0.0.1:8080/rest/v1/targets/2/assignedDS' -i -X POST
-H 'Content-Type: application/json;charset=UTF-8' -d '{
"forcetime" : "0",
"id" : "1",
"type" : "forced",
"maintenanceWindow": {
"schedule": "0 0 23 ? * SAT 2017",
"duration": "00:30:00",
"timezone": "+02:00"
}
}'
- Check for availability of a maintenance window based on the schedule.
- Device gets go-ahead to install by change in ETAG and 'update' status
to 'forced' when it polls during an available maintenance window.
$ curl
'http://127.0.0.1:8080/default/controller/v1/2/deploymentBase/1?c=411659461'
-i -H 'Accept: application/hal+json'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1665
{
"id": "1",
"deployment": {
"download": "forced",
"update": "forced",
"chunks": [ {
"part": "os",
"version": "1",
"name": "1",
"artifacts" : [ {
"filename" : "binary.tgz",
"hashes" : {
"sha1" : "8b71973e835cd0718827238b1cf89f0079e44dae",
"md5" : "a90218782025c48e09ba0436cf30d029"
},
"size" : 5,
"_links" : {
"download" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
},
"download-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
}
}
} ]
} ],
"maintenanceWindow": "available"
}
}
- In case the current available maintenance window lapses, the device is
again sent 'update' status as 'skip'. The device may choose then to
abort the update and restart during next available window.
$ curl
'http://127.0.0.1:8080/default/controller/v1/2/deploymentBase/1?c=411659455'
-i -H 'Accept: application/hal+json'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 1665
{
"id": "1",
"deployment": {
"download": "forced",
"update": "skip",
"chunks": [ {
"part": "os",
"version": "1",
"name": "1",
"artifacts" : [ {
"filename" : "binary.tgz",
"hashes" : {
"sha1" : "8b71973e835cd0718827238b1cf89f0079e44dae",
"md5" : "a90218782025c48e09ba0436cf30d029"
},
"size" : 5,
"_links" : {
"download" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
},
"download-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz"
},
"md5sum-http" : {
"href" :
"http://127.0.0.1:8080/api/v1/default/download/controller/2/softwaremodules/8/filename/binary.tgz.MD5SUM"
}
}
} ]
} ],
"maintenanceWindow": "unavailable"
}
}
- In case the entire maintenance schedule lapses, before device is able
to send the completed status, the action is canceled.
$ curl 'http://127.0.0.1:8080/default/controller/v1/2' -i -H 'Accept:
application/hal+json'
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 340
{
"config": {
"polling": {
"sleep": "00:05:00"
}
},
"_links": {
"cancelAction": {
"href":
"http://127.0.0.1:8080/default/controller/v1/2/cancelAction/1"
},
"configData": {
"href":
"http://127.0.0.1:8080/default/controller/v1/2/configData"
}
}
}
Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Himanshu Kumar Singh <himanshu.singh@siemens.com>
Signed-off-by: Raju HS <raju.hs@siemens.com>
2018-03-06 16:17:31 +01:00
2016-01-21 13:18:55 +01:00
# Labels prefix with - label
2018-07-18 18:55:52 +02:00
label.create.filter = Create Filter
label.sign.out = Sign Out
label.menu = Menu
label.active = Active
label.action.id = Action Id
label.no.tag = NO TAG
label.action.forced = Forced
label.action.soft = Soft
label.action.time.forced = Time Forced
2016-01-21 13:18:55 +01:00
label.dist.details.type = Type :
label.dist.details.name = Name :
label.dist.details.version = Version :
label.dist.details.vendor = Vendor :
label.dist.details.ah = Application :
label.dist.details.os = OS :
label.modified.date = Last modified at :
label.modified.by = Last modified by :
label.created.at = Created at :
label.created.by = Created by :
label.target.count = Targets :
label.description = Description :
label.ip = Address :
label.type = Type :
label.assigned.type = Assignment type :
label.assigned.count = {0} Assigned
label.installed.count = {0} Installed
label.mandatory.field = * Mandatory Field
label.components.drop.area = Drop here to delete
label.software.module.drop.area = Delete Software
label.create.tag = Create Tag
2018-07-13 08:37:43 +02:00
label.update.tag = Edit Tag
2016-01-21 13:18:55 +01:00
label.create.type = Create Type
2018-07-13 08:37:43 +02:00
label.update.type = Edit Type
2016-01-21 13:18:55 +01:00
label.singleAssign.type = Firmware (FW)
label.multiAssign.type = Software (SW)
2018-07-02 09:09:13 +02:00
label.choose.type.color = Type Color
label.choose.tag.color = Tag Color
2016-01-21 13:18:55 +01:00
label.combobox.type = Select Type
2016-10-17 21:59:53 +02:00
label.target.filtered.total = Total Filtered Targets :
2016-02-04 15:10:44 +01:00
label.filter = Filter :
label.target.filter.count = Total Targets :
label.filter.selected = Selected :
label.filter.shown = Shown :
2016-10-17 21:59:53 +02:00
label.filter.targets = Filtered Targets :
2016-01-21 13:18:55 +01:00
label.filter.status = Status,
2016-09-07 11:29:01 +02:00
label.filter.overdue = Overdue,
2016-01-21 13:18:55 +01:00
label.filter.tags = Tags,
label.filter.text = Search Text
label.filter.dist = Distribution,
label.filter.custom = Custom
label.target.filter.truncated = {0} targets has been truncated in the list due the target size limit of {1}, use filters to reduce the targets to be shown
label.inactive = In-active
label.finished = Finished
label.error = Error
label.warning = Warning
label.running = Running
label.cancelled = Cancelled
label.cancelling = Canceling
label.retrieved = Retrieved
label.download = Downloading
label.unknown = Unknown
label.target.id = Controller Id :
label.target.ip = Controller IP :
label.target.security.token = Security token :
label.filter.by.status = Filter by Status
2016-09-13 16:19:53 +02:00
label.filter.by.overdue = Filter by Overdue
2016-01-21 13:18:55 +01:00
label.target.controller.attrs = <b>Controller attributes</b>
2018-08-02 15:15:14 +02:00
label.target.attributes.update.pending = Update pending..
2016-01-21 13:18:55 +01:00
label.target.lastpolldate = Last poll :
label.tag.name = Tag name
Feature soft autoassignment (#789)
* Repository layer and database migration
* Changed target filter management to update auto assignment action type together with distribution set, extended mgmt API, adapted auto assign checker/scheduler, changed auto assign distribution set select table to combobox, added filter functionality (needs refactoring)
* Refactored auto assignment dialog window, added soft/forced option group, restructured action type option group layout
* Added forced icon to target filter table autoassignment cell for the forced auto assign actions
* First working draft of distribution set select combobox for auto assignment window
* Optimised filtering queries, added alphabetical sorting on distribution set name and version
* Refactoring of distribution bean query for lazy loading
* Distribution set combobox refactoring and comments
* Added verification of auto assign distribution set validity (completed, not deleted), exdended target filter query fields with auto assign action type field, added rsql filter tests, added repository layer tests
* Added mgmt API tests
* Changed target filter rest docu tests to include auto-assignment type
* Updated hawkbit docs with auto-assignment description
* Added debouncing to key and value input fields of metadata popup layout to get rid of unnecessary value change events, removed redundant set value call in common dialog window, minimizing the repaint components calls
* Fixed sonar findings
* Reverted changes of common dialog window validaton, setting the value of the field explicitly as before, until we rethink the whole concept of validaton mechanism
* Fixed review findings
* Removed rsql filtering by filter auto-assign action type, due to missing conversion of disallowed timeforced action type
* Small fix regarding usage of page request
* Updated sql script version for flyway
* Extended tests for soft deleted distribution sets for auto-assignment and filter string within distribution set specification builder
Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch-si.com>
2019-03-13 13:35:22 +01:00
label.configuration.auth.header = Allow targets to authenticate via a certificate authenticated by a reverse proxy
2016-01-21 13:42:38 +01:00
label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and manage multiple targets through a gateway security token
label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token
2018-07-19 15:23:14 +02:00
label.configuration.repository.autoclose.action = Autoclose running actions when a new distribution set is assigned
label.configuration.repository.autocleanup.action = Automatically delete terminated actions
label.configuration.repository.autocleanup.action.prefix = Delete actions with status
label.configuration.repository.autocleanup.action.body = after
label.configuration.repository.autocleanup.action.suffix = day(s)
label.configuration.repository.autocleanup.action.expiry.invalid = The specified number of days is invalid. Please enter a positive integer value between 1 and 1000.
2016-04-08 17:15:15 +02:00
label.configuration.anonymous.download = Allow targets to download artifacts without security credentials
2018-07-19 15:23:14 +02:00
label.configuration.repository.autocleanup.action.notice = Warning: The actions are deleted from the repository and cannot be restored
label.unsupported.browser.ie = Sorry! Your current browser is not supported. Please use Internet Explorer 11 and above
label.auto.assign.description = When an auto assign distribution set is selected, it will be automatically assigned to all targets that match the target filter.
label.auto.assign.enable = Enable auto assignment
label.scheduled = Scheduled
2018-06-04 16:36:56 +02:00
label.approval.decision = Approval decision
label.approval.remark = Remark (optional)
2018-07-18 18:55:52 +02:00
label.drop.area.upload = Drop Files to upload
2018-12-13 09:07:10 +01:00
label.errorthreshold.option.percent = %
label.errorthreshold.option.count = Count
label.targetUpdateStatus.unknown = Unknown
label.targetUpdateStatus.in_sync = In Sync
label.targetUpdateStatus.pending = Pending
label.targetUpdateStatus.error = Error
label.targetUpdateStatus.registered = Registered
2016-01-21 13:18:55 +01:00
# Checkbox label prefix with - checkbox
checkbox.dist.migration.required = Required Migration Step :
checkbox.dist.required.migration.step = Required Migration Step
# TextFields prefix with - textfield
textfield.name = Name
textfield.key = Key
textfield.version = Version
textfield.vendor = Vendor
textfield.description = Description
textfield.customfiltername = Filter name
2016-06-22 13:13:54 +02:00
textfield.value = Value
2016-01-21 13:18:55 +01:00
prompt.target.id = Controller ID
#Tooltips prefix with - tooltip
2018-07-18 18:55:52 +02:00
tooltip.delete.custom.filter = Delete Custom Filter
tooltip.update.custom.filter = Edit Custom Filter
2016-01-21 13:18:55 +01:00
tooltip.add.module = Add Software Module
tooltip.status.unknown = Unknown
tooltip.status.registered = Registered
tooltip.status.pending = Pending
tooltip.status.error = Error
tooltip.status.insync = In-sync
2016-09-07 11:29:01 +02:00
tooltip.status.overdue = Overdue
2016-01-21 13:18:55 +01:00
tooltip.delete.module = Select and delete Software Module
2019-03-13 13:49:13 +01:00
tooltip.forced.item = Device is supposed to install the update immediately
tooltip.soft.item = Device can execute the update at any time, e.g. with user approval or according to its regular update time plan
tooltip.timeforced.item = Soft update which turns into a forced update after a specific time
tooltip.timeforced.forced.in = Auto forcing in {0}
tooltip.timeforced.forced.since = Auto forced since {0}
2016-01-21 13:18:55 +01:00
tooltip.check.for.mandatory = Check to make Mandatory
tooltip.artifact.icon = Show Artifact Details
tooltip.click.to.edit = Click to edit
2018-07-13 08:37:43 +02:00
tooltip.metadata.icon = Manage Metadata..
tooltip.next.maintenance.window = next on {0}
2018-08-02 15:15:14 +02:00
tooltip.target.attributes.update.request = Request attributes update
tooltip.target.attributes.update.requested = Update already requested
2018-12-13 09:07:10 +01:00
tooltip.documentation.link = Documentation
2018-08-02 15:15:14 +02:00
2017-12-14 08:42:45 +01:00
#rollout action
tooltip.rollout.run = Run
2018-06-04 16:36:56 +02:00
tooltip.rollout.approve = Approve
2017-12-14 08:42:45 +01:00
tooltip.rollout.pause = Pause
2018-07-13 08:37:43 +02:00
tooltip.rollout.update = Edit..
2017-12-14 08:42:45 +01:00
tooltip.rollout.copy = Copy..
2018-07-13 08:37:43 +02:00
tooltip.delete = Delete..
2018-07-18 18:55:52 +02:00
tooltip.overdue = Overdue for {0}
2018-07-13 08:37:43 +02:00
2019-03-13 13:49:13 +01:00
#rollout status
tooltip.rollout.status.creating = Creating
tooltip.rollout.status.waiting_for_approval = Waiting for approval
tooltip.rollout.status.approval_denied = Approval denied
tooltip.rollout.status.ready = Ready
tooltip.rollout.status.paused = Paused
tooltip.rollout.status.starting = Starting
tooltip.rollout.status.stopped = Stopped
tooltip.rollout.status.running = Running
tooltip.rollout.status.finished = Finished
tooltip.rollout.status.deleting = Deleting
tooltip.rollout.status.deleted = Deleted
2018-07-13 08:37:43 +02:00
tooltip.close = Close
tooltip.search = Search
tooltip.save = Save
tooltip.add = Create..
tooltip.maximize = Maximize
tooltip.minimize = Minimize
tooltip.bulkUpload = Bulk Upload..
tooltip.showTags = Show Tags
tooltip.update = Edit..
tooltip.reset = Reset
tooltip.configure = Configure..
tooltip.target.status.unknown = Status unknown
tooltip.target.pin = Pin target
tooltip.distribution.set.pin = Pin distribution set
tooltip.in.time = In Time
2016-01-21 13:18:55 +01:00
# Notification messages prefix with - message
message.save.success = {0} saved successfully
message.update.success = {0} updated successfully
message.delete.success = {0} deleted successfully
message.dist.pending.action = Target {0} is already assigned with distribution {1} . Pending for action
message.empty.target.tags = No Tags Created
2016-01-21 13:42:38 +01:00
message.empty.disttype.tags = No Distribution type tags created
2016-01-21 13:18:55 +01:00
message.select.row = Please select a row to drag
2018-12-13 09:07:10 +01:00
message.error = Unknown error occurred during the operation. Please contact administrator
2016-01-21 13:18:55 +01:00
message.dist.assigned.one = {0} is assigned to {1}
message.dist.assigned.many = {0} DistributionSets are assigned to {1}
message.dist.unassigned.one = {0} is unassigned from {1}
message.dist.unassigned.many = {0} DistributionSets are unassigned from {1}
message.target.assigned.one = {0} is assigned to {1}
message.target.assigned.many = {0} Targets are assigned to {1}
message.target.unassigned.one = {0} is unassigned from {1}
message.target.unassigned.many = {0} Targets are unassigned from {1}
message.target.assigned.pending = Some target(s) are already assigned.Pending for action
message.cannot.delete = Cannot be deleted
2018-12-13 09:07:10 +01:00
message.check.softwaremodule = Please provide both name and version!
2016-01-21 13:18:55 +01:00
message.duplicate.softwaremodule = {0} : {1} already exists!
2018-12-13 09:07:10 +01:00
message.tag.delete = Please deselect the tag {0} before deleting
message.dist.type.check.delete = Please deselect the distribution type {0} before deleting
2016-01-21 13:42:38 +01:00
message.cannot.delete.default.dstype = Default distribution set type cannot be deleted
2018-12-13 09:07:10 +01:00
message.swmodule.type.check.delete = Please deselect the Software Module type {0} before deleting
2016-10-17 21:59:53 +02:00
message.targets.already.deleted = Few Target(s) are already deleted. Pending for action
2016-01-21 13:18:55 +01:00
message.dists.already.deleted = Few distribution(s) are already deleted.Pending for action
message.target.deleted.pending = Target(s) already deleted.Pending for action
message.dist.deleted.pending = Distribution(s) already deleted.Pending for action
message.dist.delete.success = All selected distribution sets are deleted successfully !
message.target.delete.success = All selected targets are deleted successfully !
message.target.discard.success = All targets selected for delete are discarded successfully !
message.software.discard.success = All software modules selected for delete are discarded successfully !
message.software.type.discard.success = All software moduleTypes selected for delete are discarded successfully !
message.assign.software.discard.success = All software moduleTypes selected for assign are discarded successfully !
message.software.delete.success = All software modules selected for delete are deleted successfully !
message.software.type.delete.success = All software modules types selected for delete are deleted successfully !
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully !
message.new.dist.save.success = {0} - {1} saved successfully
message.dist.update.success = {0} - {1} updated successfully
message.duplicate.dist = Distribution set [{0}] or version [{1}] must be unique, entered value already exists.
message.error.view = No such view: {0}
message.accessdenied.view = No access to view: {0}
2018-07-18 18:55:52 +02:00
message.no.data = No Data
message.data.available = Data available
2016-01-21 13:18:55 +01:00
message.target.assignment = {0} Assignment(s) done
message.target.deleted = {0} Target(s) deleted
message.dist.deleted = {0} Distribution set(s) deleted
message.tag.update.mandatory = Please select the Tag to update
message.tag.duplicate.check = {0} already exists, please enter another value
message.type.key.duplicate.check = Distribution type with key {0} already exists, please give another value
2018-07-02 09:09:13 +02:00
message.type.update.mandatory = Please select the Distribution set type to update
2016-01-21 13:18:55 +01:00
message.type.key.swmodule.duplicate.check = Software Module type with key {0} already exists, please give another value
message.no.action.history = No action history is available for the target : {0}
message.no.available = --No messages available--
message.no.actionupdateds.available = No other updates available for this action
message.mandatory.check = Mandatory details are missing
message.target.duplicate.check = Target [ {0} ] must be unique, entered value already exists.
2016-11-28 17:58:52 +01:00
message.target.whitespace.check = Please enter a valid controller ID with no whitespaces
2018-01-19 11:23:41 +01:00
message.permission.insufficient = Missing permissions to perform this action: {0}
2016-01-21 13:18:55 +01:00
message.dists.tag.assigned = {0} DistributionSet's assigned to Tag {1}
message.dists.tag.unassigned = {0} DistributionSet's un-assigned from Tag {1}
message.dist.no.operation = {0} - already assigned/installed, No operation
2016-06-21 13:41:06 +02:00
message.error.softmodule.deleted = The selected Software Module is already deleted
2016-01-21 13:42:38 +01:00
message.cancel.action = Cancel..
2016-01-21 13:18:55 +01:00
message.cancel.action.success = Action cancelled successfully !
message.cancel.action.failed = Unable to cancel the action !
2018-07-02 09:09:13 +02:00
message.cancel.action.confirm = Are you sure you want to cancel this action?
2016-01-21 13:18:55 +01:00
message.target.alreadyAssigned = {0} Target(s) were already assigned
message.force.action = Force
2018-07-02 09:09:13 +02:00
message.force.action.confirm = Are you sure you want to force this action?
2016-01-21 13:18:55 +01:00
message.force.action.success = Action forced successfully !
2016-01-21 13:42:38 +01:00
message.forcequit.action = Force Quit..
message.forcequit.action.success = Action has been force quit successfully !
message.forcequit.action.failed = Force Quitting the action is not possible !
2018-07-02 09:09:13 +02:00
message.forcequit.action.confirm = Attention!\nForce quit should only be used when the assignment action is not working properly.\nForce quitting an action has no effect on the connected target. It is just resetting \nthe data stored on the SP update server. \nAre you absolutely sure you want to force quit this action?
2016-01-21 13:18:55 +01:00
message.distribution.no.update = distribution {0} set is already assigned to targets and cannot be changed
message.action.not.allowed = Action not allowed
2016-08-15 17:57:52 +02:00
message.action.did.not.work = Action did not work. Please try again.
2016-01-21 13:18:55 +01:00
message.onlyone.distribution.assigned = Only one distribution set can be assigned
message.onlyone.distribution.dropallowed = Only one distribution set can be dropped
2016-06-21 13:41:06 +02:00
message.error.missing.typenameorkey = Missing Type Name or Key or Software Module type
2016-01-21 13:18:55 +01:00
message.tag.cannot.be.assigned = Target/DS cannot be assigned to {0}
message.no.targets.assiged.fortag = No targets are assigned to tag {0}
2016-01-21 13:42:38 +01:00
message.error.missing.tagname = Please select tag name
2016-01-21 13:18:55 +01:00
message.type.delete = Please unclick the distribution type {0}, then try to delete
2018-07-02 09:09:13 +02:00
message.error.dist.set.type.update = Distribution set type is already assigned to set(s) and cannot be changed
2016-01-21 13:18:55 +01:00
message.no.directory.upload = Directory upload is not supported
2018-11-12 08:57:10 +01:00
message.drop.onlyFiles = Please drop files only
2018-07-02 09:09:13 +02:00
message.delete.filter.confirm = Are you sure you want to delete custom filter?
2016-01-21 13:18:55 +01:00
message.delete.filter.success = Custom filter {0} deleted Successfully!
message.create.filter.success = Custom filter {0} created Successfully!
message.update.filter.success = Custom filter updated Successfully!
message.target.filter.validation = Please enter name and query
message.target.filter.duplicate = {0} already exists, please enter another value
2016-01-21 13:42:38 +01:00
message.tag.use.bulk.upload = {0} cannot be deleted .It is in use in targets bulk upload
message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists
message.bulk.upload.tag.assignments.failed = Few tag assignments failed as tags no longer exists
2016-09-01 10:19:55 +02:00
message.confirm.assign.consequences.none = This auto assignment will not have any effect on the currently available targets. In future added targets might match the filter and will receive the selected distribution set automatically.
message.confirm.assign.consequences.text = When you confirm this auto assignment, {0} targets which match the filter will immediately get assigned with the selected distribution set.
2018-04-04 10:01:55 +02:00
message.maintenancewindow.schedule.validation.error = Please enter a valid Cron expression
message.maintenancewindow.duration.validation.error = Please enter the duration in the format hh:mm:ss, error is at {0} position
2016-01-21 13:18:55 +01:00
# action info
action.target.table.selectall = Select all (Ctrl+A)
action.target.table.clear = Clear selections
#reused messages
soft.module.jvm = Runtime
soft.module.application = Application
soft.module.os = OS
#Artifact upload
2016-06-21 13:41:06 +02:00
message.error.noSwModuleSelected = Please select a Software Module
2018-07-02 09:09:13 +02:00
message.error.multiSwModuleSelected = Please select only one Software Module
2016-02-08 13:20:50 +01:00
message.no.duplicateFiles = Duplicate files selected
2018-07-02 09:09:13 +02:00
message.delete.artifact = Are you sure you want to delete artifact {0} ?
2016-06-21 13:41:06 +02:00
message.swModule.deleted = {0} Software Module(s) deleted
2018-07-02 09:09:13 +02:00
message.error.swModule.notDeleted = Upload is running for Software Module(s)
2016-01-21 13:18:55 +01:00
message.upload.failed = Streaming Failed
2018-07-02 09:09:13 +02:00
message.uploadedfile.size.exceeded = File size exceeded. Allowed size {0} bytes
2018-12-17 10:17:46 +01:00
message.uploadedfile.illegalFilename = Filename contains illegal characters
2018-07-02 09:09:13 +02:00
message.artifact.deleted = Artifact with file {0} deleted successfully
2016-05-19 10:51:12 +05:30
2016-01-21 13:42:38 +01:00
2019-02-13 14:18:30 +01:00
artifact.upload.popup.caption = Upload status
artifact.upload.status.caption = Status
artifact.upload.progress.caption = Progress
artifact.upload.reason.caption = Reason
artifact.filename.caption = File name
artifact.filesize.bytes.caption = Size(B)
artifact.softwaremodule.type.caption = Type
2016-01-21 13:18:55 +01:00
2016-06-21 13:41:06 +02:00
upload.swModuleTable.header = Software Module
2016-01-21 13:18:55 +01:00
upload.selectedfile.name = file selected for upload
upload.file.name = File name
upload.sha1 = SHA1 checksum
upload.md5 = MD5 checksum
upload.last.modified.date = Last modified date
upload.failed = Failed
upload.success = Success
upload.validation = Validation
upload.action = Action
upload.result.status = Upload status
upload.file = Upload File
caption.tab.details = Details
caption.tab.description = Description
caption.delete.artifact.confirmbox = Confirm Artifact Delete Action
custom.filter.name = Filter Name
custom.filter.created.by = Created By
custom.created.date = Created Date
#Manage distributions view
label.drop.dist.delete.area = Drop here<br>to delete
label.no.tag.assigned = NO TAG
caption.assign.software.dist.accordion.tab = Assign Software Modules
2018-11-30 09:05:18 +01:00
message.software.assignment = {0} Software Module Assignment(s) done
2017-06-20 07:55:31 +02:00
message.dist.inuse = Distribution {0} is already assigned to target
message.software.dist.already.assigned = Software Module {0} is already assigned to Distribution {1}
message.software.dist.type.notallowed = Software Module {0} cannot be assigned, because Distribution {1} does not support the Software Module Type {2}
2018-03-01 14:45:21 +01:00
message.software.already.dragged = Software Module {0} was already dragged to this Distribution.
2016-01-21 13:18:55 +01:00
message.target.assigned = {0} is assigned to {1}
2018-07-02 09:09:13 +02:00
message.dist.type.delete = Distribution Type deleted successfully.
message.sw.module.type.delete = Software Module Type deleted successfully.
2016-01-21 13:18:55 +01:00
message.dist.type.discard.success = All Distribution Types are discarded successfully !
message.dist.discard.success = All Distributions are discarded successfully !
message.assign.discard.success = All assignments are discarded successfully !
2018-07-02 09:09:13 +02:00
message.target.ds.assign.success = Assignment saved successfully !
2016-01-21 13:42:38 +01:00
message.bulk.upload.assignment.failed = Distribution set assignment failed as distribution set no longer exists!
2019-02-13 14:18:30 +01:00
message.bulk.upload.result.success = Successful: {0}
message.bulk.upload.result.fail = Failed: {0}
2016-06-22 13:13:54 +02:00
message.key.missing = Key is missing !
message.value.missing = Value is missing !
message.metadata.saved = Metadata with key {0} successfully saved !
message.metadata.updated = Metadata with key {0} successfully updated !
message.metadata.duplicate.check = Metadata with key {0} already exists, please enter another value
message.metadata.deleted.successfully = Metadata with key {0} successfully deleted !
2018-07-02 09:09:13 +02:00
message.confirm.delete.metadata = Are you sure you want to delete metadata with key {0} ?
2016-08-05 10:49:24 +02:00
message.error.notification.ds.target.assigned = Distribution set {0}:{1} is already assigned to targets and cannot be changed
2016-01-21 13:18:55 +01:00
# Login view
2018-07-02 09:09:13 +02:00
notification.login.title = Welcome to Bosch IoT Software Provisioning.
notification.login.description = Please login with your Bosch Identity Management credentials.
2016-01-21 13:18:55 +01:00
notification.login.failed.title = Login failed!
notification.login.failed.description = Login with the given credentials failed.
notification.login.failed.credentialsexpired.title = Password Expired!
notification.login.failed.credentialsexpired.description = Password has been expired or needs to be set initially, please visit the User Management to change or set your password.
label.login.tenant = Tenant
label.login.username = Username
label.login.password = Password
2018-08-15 09:20:04 +02:00
label.login.disclaimer = Privacy Notice
2016-01-21 13:18:55 +01:00
button.login.signin = Sign in
2018-08-15 09:20:04 +02:00
button.login.agreeandsignin = Agree & Sign in
2016-01-21 13:18:55 +01:00
# Links
link.documentation.name = Documentation
link.demo.name = Demo
link.requestaccount.name = Request Account
link.support.name = Support
link.usermanagement.name = User Management
# System Configuration View
2015-12-22 16:30:00 +01:00
notification.configuration.save.successful = Saved changes
notification.configuration.save.notpossible = Saving was not possible, because of invalid user input.
2018-07-19 15:23:14 +02:00
configuration.defaultdistributionset.title = Distribution Configuration
configuration.defaultdistributionset.select.label = Select the default distribution set type:
2016-01-21 13:18:55 +01:00
configuration.savebutton.tooltip = Save Configurations
configuration.cancellbutton.tooltip = Cancel Configurations
configuration.authentication.title = Authentication Configuration
2017-10-10 17:26:43 +02:00
configuration.repository.title = Repository Configuration
2015-12-22 16:30:00 +01:00
configuration.polling.title = Polling Configuration
configuration.polling.time = Polling Time
configuration.polling.overduetime = Polling Overdue Time
2016-01-07 12:56:40 +01:00
configuration.polling.custom.value = use a custom value
2018-06-04 16:36:56 +02:00
configuration.rollout.title = Rollout Configuration
configuration.rollout.approval.label = Approve rollout before it can be started
2016-01-21 13:18:55 +01:00
#Calendar
calendar.year = year
calendar.years = years
calendar.month = month
calendar.months = months
calendar.day = day
calendar.days = days
calendar.hour = hour
calendar.hours = hours
calendar.minute = minute
calendar.minutes = minutes
calendar.second = second
calendar.seconds = seconds
header.name = Name
header.vendor = Vendor
header.version = Version
header.description = Description
header.createdBy = Created By
header.createdDate = Created Date
header.modifiedBy = Modified By
header.modifiedDate = Modified Date
header.delete = Delete
2019-03-13 13:49:13 +01:00
header.maintenancewindow = Maintenance Window
2016-01-21 13:18:55 +01:00
header.assigned.ds = Assigned DS
header.installed.ds = Installed DS
header.target.status = Status
header.target.tags = Tags
2018-07-18 18:55:52 +02:00
header.total.targets = Targets
2016-06-22 13:13:54 +02:00
header.key = Key
header.value = Value
2017-12-16 17:17:54 +01:00
metadata.targetvisible = Visible for targets
2016-09-01 10:19:55 +02:00
header.auto.assignment.ds = Auto assignment
header.target.filter.name = Target filter name
header.target.filter.query = Target filter query
2018-06-04 16:36:56 +02:00
header.approvalDecidedBy = Decided By
header.approvalRemark = Approval Remark
2016-01-21 13:18:55 +01:00
distribution.details.header = Distribution set
target.details.header = Target
header.caption.mandatory = Mandatory
header.caption.typename = SoftwareModuleType
header.caption.softwaremodule = SoftwareModule
2016-06-21 13:41:06 +02:00
message.sw.unassigned = Software Module {0} successfully unassigned
2016-01-21 13:18:55 +01:00
header.caption.upload.details = Upload details
combo.type.tag.name = Type tag name
label.yes = Yes
label.no = No
2016-02-04 15:10:44 +01:00
#rollout - start
header.distributionset = Distribution set
2017-04-18 12:06:53 +02:00
header.numberofgroups = Groups
2016-02-04 15:10:44 +01:00
header.detail.status = Detail status
header.rolloutgroup.installed.percentage = % Finished
header.rolloutgroup.threshold.error = Error threshold
header.rolloutgroup.threshold = Trigger threshold
header.rolloutgroup.target.date = Date and time
header.rolloutgroup.target.message = Messages
rollout.group.label.target.truncated = {0} targets has been truncated in the list due the target size limit of {1}
2017-01-26 09:37:20 +01:00
prompt.groups = Groups
2016-02-04 15:10:44 +01:00
prompt.number.of.groups = Number of groups
2016-05-24 17:21:51 +02:00
prompt.tigger.threshold = Trigger threshold
2016-02-04 15:10:44 +01:00
prompt.error.threshold = Error threshold
2018-07-02 09:09:13 +02:00
prompt.distribution.set = Distribution set
2017-01-26 09:37:20 +01:00
button.rollout.groups.def.button = Define groups
button.rollout.add.group = Add Group
2016-06-21 13:41:06 +02:00
caption.configure.rollout = Configure Rollout
2017-01-26 09:37:20 +01:00
caption.configure.rollout.groups = Configure Deployment Groups
2016-06-23 09:33:43 +02:00
prompt.target.filter = Custom Target Filter
2016-02-04 15:10:44 +01:00
message.rollout.nonzero.group.number = Number of groups must be greater than zero
message.rollout.max.group.number = Number of groups must not be greater than 500
message.rollout.duplicate.check = Rollout [ {0} ] must be unique, entered value already exists.
2018-02-19 08:27:54 +01:00
message.rollout.name.empty = Please enter a name for Rollout
2016-02-04 15:10:44 +01:00
message.correct.invalid.value = Please correct invalid values
message.enter.number = Please enter number
message.rollout.field.value.range = Value should be in range {0} to {1}
2018-01-23 15:32:40 +01:00
message.rollout.filter.target.exists = The selected target filter does not match any existing target
2018-05-02 12:09:29 +02:00
message.rollout.max.group.size.exceeded = The maximum group size of {0} targets is exceeded. Please increase the number of groups or select a different target filter
message.rollout.max.group.size.exceeded.advanced = The maximum size of {0} targets is exceeded for this group. Please re-distribute the targets across the groups and create further groups if needed
2016-02-04 15:10:44 +01:00
message.rollout.started = Rollout {0} started successfully
message.rollout.paused = Rollout {0} paused successfully
message.rollout.resumed = Rollout {0} resumed successfully
2017-02-18 07:19:28 +01:00
message.rollout.deleted = Rollout {0} deleted successfully
2016-02-04 15:10:44 +01:00
message.rollout.noofgroups.or.targetfilter.missing = Please enter number of groups and select target filter
message.rollouts = Rollouts
label.target.per.group = Targets per group :
message.dist.already.assigned = Distribution {0} is already assigned to target
2016-06-21 13:41:06 +02:00
message.error.creating.rollout = Server error. Error creating Rollout. Please contact the administrator
message.error.starting.rollout = Server error. Error starting Rollout. Please contact the administrator
2017-02-18 07:19:28 +01:00
message.delete.rollout = You are about to delete the rollout "{0}".\n{1}Are you sure?
message.delete.rollout.details = There are {0} running updates that will continue and {1} scheduled updates that will terminate.\n
2017-01-26 09:37:20 +01:00
caption.rollout.group.definition.desc = Define which groups the Rollout should have.
header.target.percentage = Target percentage
textfield.target.percentage = Target percentage
textfield.rollout.group.default.name = Group {0}
message.rollout.group.name.invalid = Enter a group name with a length between 1 and 64
caption.rollout.tabs.simple = Number of Groups
caption.rollout.tabs.advanced = Advanced Group definition
caption.rollout.generate.groups = Generate the groups automatically with the specified thresholds.
caption.rollout.action.type = Action type
message.rollout.remaining.targets.error = Not all targets are addressed
textfield.rollout.copied.name = Copy of {0}
label.rollout.targets.in.group = {0} in {1}
caption.rollout.start.type = Start type
caption.rollout.start.manual = Manual
caption.rollout.start.manual.desc = The user starts the rollout manually.
caption.rollout.start.auto = Auto
caption.rollout.start.auto.desc = The rollout is started as soon as it is created.
caption.rollout.start.scheduled = Scheduled
caption.rollout.start.scheduled.desc = The rollout starts as soon as it is ready and the set time has passed.
label.rollout.calculating = Calculating groups ...
2016-02-04 15:10:44 +01:00
#rollout - end
2016-01-21 13:18:55 +01:00
#Menu
2018-01-12 09:58:25 +01:00
menu.user.description = Tenant: {0} User: {1}
2016-04-15 12:53:39 +02:00
#Target Filter Management
breadcrumb.target.filter.custom.filters = Custom Filters
2016-09-23 15:39:19 +02:00
notification.configuration.save = Saved changes
controller.polling.title = Polling Configuration
controller.polling.time = Polling Time
2017-01-31 09:19:59 +01:00
# entity not exist
target.not.exists = Target {0} does not exists. Maybe the target was deleted.
targets.not.exists = Targets does not exists. Maybe the targets was deleted.
distributionsets.not.exists = Distribution sets do not exists. Maybe the sets were deleted.
Feature soft autoassignment (#789)
* Repository layer and database migration
* Changed target filter management to update auto assignment action type together with distribution set, extended mgmt API, adapted auto assign checker/scheduler, changed auto assign distribution set select table to combobox, added filter functionality (needs refactoring)
* Refactored auto assignment dialog window, added soft/forced option group, restructured action type option group layout
* Added forced icon to target filter table autoassignment cell for the forced auto assign actions
* First working draft of distribution set select combobox for auto assignment window
* Optimised filtering queries, added alphabetical sorting on distribution set name and version
* Refactoring of distribution bean query for lazy loading
* Distribution set combobox refactoring and comments
* Added verification of auto assign distribution set validity (completed, not deleted), exdended target filter query fields with auto assign action type field, added rsql filter tests, added repository layer tests
* Added mgmt API tests
* Changed target filter rest docu tests to include auto-assignment type
* Updated hawkbit docs with auto-assignment description
* Added debouncing to key and value input fields of metadata popup layout to get rid of unnecessary value change events, removed redundant set value call in common dialog window, minimizing the repaint components calls
* Fixed sonar findings
* Reverted changes of common dialog window validaton, setting the value of the field explicitly as before, until we rethink the whole concept of validaton mechanism
* Fixed review findings
* Removed rsql filtering by filter auto-assign action type, due to missing conversion of disallowed timeforced action type
* Small fix regarding usage of page request
* Updated sql script version for flyway
* Extended tests for soft deleted distribution sets for auto-assignment and filter string within distribution set specification builder
Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch-si.com>
2019-03-13 13:35:22 +01:00
message.selected.distributionset.not.found = Distribution set {0} does not exist in the repository, is incomplete or deleted. Please select a new one.
2017-01-31 09:19:59 +01:00
targettag.not.exists = Target tag {0} does not exists. Maybe the target tag was deleted.
2018-07-02 09:09:13 +02:00
caption.entity.target.tag = Target Tag
caption.entity.distribution.tag = Distribution Tag
caption.entity.distribution.type = Distribution set Type
caption.entity.software.module.type = Software Module Type
2018-02-19 08:27:54 +01:00
validator.textfield.min.length = Please enter a text consisting of at least one and a maximum of {0} characters.
2018-07-02 09:09:13 +02:00
caption.entity.delete.action.confirmbox = Confirm Deletion
message.confirm.delete.entity = Are you sure you want to delete {0} {1}{2}?
caption.entity.assign.action.confirmbox = Confirm Assignment
message.confirm.assign.entity = Are you sure you want to assign distribution {0} to {1} {2}?
message.confirm.assign.multiple.entities = Are you sure you want to assign {0} {1} to distribution {2}?
2018-12-17 10:17:46 +01:00
# character descriptions
character.whitespace = whitespace
character.digits = digits
character.quotationMarks = quotation marks
character.slashes = slashes
2019-03-14 12:43:47 +01:00
# Vaadin system messages
vaadin.system.sessionexpired.caption = Session Expired
vaadin.system.sessionexpired.message = Take note of any unsaved data, and click here or press ESC key to continue.
vaadin.system.communicationerror.caption = Communication problem
vaadin.system.communicationerror.message = Take note of any unsaved data, and click here or press ESC to continue.
vaadin.system.internalerror.caption = Internal error
vaadin.system.internalerror.message = Please notify the administrator. Take note of any unsaved data, and click here or press ESC to continue.
vaadin.system.tryingreconnect = Server connection lost, trying to reconnect...