Display output with AnsibleAnsible playbook not working trying to run make & configure with complex...
What materials can be used to make a humanoid skin warm?
Can we track matter through time by looking at different depths in space?
Doesn't allowing a user mode program to access kernel space memory and execute the IN and OUT instructions defeat the purpose of having CPU modes?
How do electrons receive energy when a body is heated?
Possible to detect presence of nuclear bomb?
How do spaceships determine each other's mass in space?
Street obstacles in New Zealand
School performs periodic password audits. Is my password compromised?
What is the purpose of "me" in "Je me suis trompé dans mon calcul."?
Are all players supposed to be able to see each others' character sheets?
What is better: yes / no radio, or simple checkbox?
Trig Subsitution When There's No Square Root
Should I take out a loan for a friend to invest on my behalf?
How is it possible to drive VGA displays at such high pixel clock frequencies?
Does "Until when" sound natural for native speakers?
Called into a meeting and told we are being made redundant (laid off) and "not to share outside". Can I tell my partner?
After `ssh` without `-X` to a machine, is it possible to change `$DISPLAY` to make it work like `ssh -X`?
Is this Paypal Github SDK reference really a dangerous site?
Does Christianity allow for believing on someone else's behalf?
Having the player face themselves after the mid-game
Why restrict private health insurance?
For which categories of spectra is there an explicit description of the fibrant objects via lifting properties?
Do cubics always have one real root?
Outlet with 3 sets of wires
Display output with Ansible
Ansible playbook not working trying to run make & configure with complex switchesHow to encrypt binary files in Ansible?Ansible sudo error while building on Atlasansible run global variableAnsible's idempotency with command and file modulesHandling keyboard-interactive inputs with AnsibleLoop over Ansible variable array in Jinja2 templateCan someone get root privileges with an ansible installation?Ansible is stalling while running bundler modulePrint Ansible facts from a loop
I have a Ansible play for PGBouncer that displays some output from a stats module built into PGBouncer.
My issue is that when Ansible prints the output to the terminal it mangles the newlines. Instead of seeing
----------
| OUTPUT |
----------
I see
----------n| OUTPUT |n----------
Does anyone know how to get Ansible to "pretty print" the output?
ansible
add a comment |
I have a Ansible play for PGBouncer that displays some output from a stats module built into PGBouncer.
My issue is that when Ansible prints the output to the terminal it mangles the newlines. Instead of seeing
----------
| OUTPUT |
----------
I see
----------n| OUTPUT |n----------
Does anyone know how to get Ansible to "pretty print" the output?
ansible
add a comment |
I have a Ansible play for PGBouncer that displays some output from a stats module built into PGBouncer.
My issue is that when Ansible prints the output to the terminal it mangles the newlines. Instead of seeing
----------
| OUTPUT |
----------
I see
----------n| OUTPUT |n----------
Does anyone know how to get Ansible to "pretty print" the output?
ansible
I have a Ansible play for PGBouncer that displays some output from a stats module built into PGBouncer.
My issue is that when Ansible prints the output to the terminal it mangles the newlines. Instead of seeing
----------
| OUTPUT |
----------
I see
----------n| OUTPUT |n----------
Does anyone know how to get Ansible to "pretty print" the output?
ansible
ansible
asked Oct 28 '14 at 4:11
mjalldaymjallday
3891514
3891514
add a comment |
add a comment |
5 Answers
5
active
oldest
votes
There isn't a way to do what you want natively in Ansible.
You can do this as a workaround:
ansible-playbook ... | sed 's/\n/n/g'
1
On OSX I had to usesed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20
– Navin
Jul 1 '17 at 7:29
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostlynappear in result, so you could use this regexp in your debug message:msg: "{{ result.stdout | regex_replace('\n', 'n') }}"
– klml
Oct 1 '18 at 9:27
add a comment |
If you want more human friendly output define:
ANSIBLE_STDOUT_CALLBACK=debug
This will make ansible use the debug output module (previously named human_log) whinch despite its unfortunate name is less verbose and much easier to read by humans.
If you get an error that this module is not available, upgrade Ansible or add this module locally if you cannot upgrade ansible, it will work with over versions of ansible like 2.0 or probaly even 1.9.
Another option to configure this is to add stdout_callback = debug to your ansible.cfg
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
add a comment |
You can use a callback plugin. This will re-parse your output and is easily turned on and off.
2
Note: With ansible 2.0.x you need to inherit fromCallbackBaseimported withfrom ansible.plugins.callback import CallbackBasefor the callback class to work.
– allo
May 22 '16 at 20:10
add a comment |
Found this way in Ansible Project group forum:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('n') }}"
We basically turn this into list by splitting it by newline and then printing that list.
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can addignore_errors: yesto original command and later something like `- assert: that: "test.rc == 0".
– jhutar
Jul 10 '17 at 14:01
add a comment |
You can use the pause module:
- pause:
prompt: "{{ variable_blob.stdout }}"
Moves on without input by defining minutes or seconds but then user input is not captured.
Credit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "2"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f640130%2fdisplay-output-with-ansible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
There isn't a way to do what you want natively in Ansible.
You can do this as a workaround:
ansible-playbook ... | sed 's/\n/n/g'
1
On OSX I had to usesed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20
– Navin
Jul 1 '17 at 7:29
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostlynappear in result, so you could use this regexp in your debug message:msg: "{{ result.stdout | regex_replace('\n', 'n') }}"
– klml
Oct 1 '18 at 9:27
add a comment |
There isn't a way to do what you want natively in Ansible.
You can do this as a workaround:
ansible-playbook ... | sed 's/\n/n/g'
1
On OSX I had to usesed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20
– Navin
Jul 1 '17 at 7:29
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostlynappear in result, so you could use this regexp in your debug message:msg: "{{ result.stdout | regex_replace('\n', 'n') }}"
– klml
Oct 1 '18 at 9:27
add a comment |
There isn't a way to do what you want natively in Ansible.
You can do this as a workaround:
ansible-playbook ... | sed 's/\n/n/g'
There isn't a way to do what you want natively in Ansible.
You can do this as a workaround:
ansible-playbook ... | sed 's/\n/n/g'
answered Oct 28 '14 at 15:23
jarvjarv
90575
90575
1
On OSX I had to usesed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20
– Navin
Jul 1 '17 at 7:29
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostlynappear in result, so you could use this regexp in your debug message:msg: "{{ result.stdout | regex_replace('\n', 'n') }}"
– klml
Oct 1 '18 at 9:27
add a comment |
1
On OSX I had to usesed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20
– Navin
Jul 1 '17 at 7:29
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostlynappear in result, so you could use this regexp in your debug message:msg: "{{ result.stdout | regex_replace('\n', 'n') }}"
– klml
Oct 1 '18 at 9:27
1
1
On OSX I had to use
sed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20– Navin
Jul 1 '17 at 7:29
On OSX I had to use
sed -e 's/\n/'$'\n/g'. Also relevant: comicjk.com/20– Navin
Jul 1 '17 at 7:29
3
3
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
see sorins answer serverfault.com/a/846232/240508 which is the correct one in 2017 and ansible >2.3
– Vadimo
Sep 27 '17 at 22:28
Mostly
n appear in result, so you could use this regexp in your debug message: msg: "{{ result.stdout | regex_replace('\n', 'n') }}"– klml
Oct 1 '18 at 9:27
Mostly
n appear in result, so you could use this regexp in your debug message: msg: "{{ result.stdout | regex_replace('\n', 'n') }}"– klml
Oct 1 '18 at 9:27
add a comment |
If you want more human friendly output define:
ANSIBLE_STDOUT_CALLBACK=debug
This will make ansible use the debug output module (previously named human_log) whinch despite its unfortunate name is less verbose and much easier to read by humans.
If you get an error that this module is not available, upgrade Ansible or add this module locally if you cannot upgrade ansible, it will work with over versions of ansible like 2.0 or probaly even 1.9.
Another option to configure this is to add stdout_callback = debug to your ansible.cfg
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
add a comment |
If you want more human friendly output define:
ANSIBLE_STDOUT_CALLBACK=debug
This will make ansible use the debug output module (previously named human_log) whinch despite its unfortunate name is less verbose and much easier to read by humans.
If you get an error that this module is not available, upgrade Ansible or add this module locally if you cannot upgrade ansible, it will work with over versions of ansible like 2.0 or probaly even 1.9.
Another option to configure this is to add stdout_callback = debug to your ansible.cfg
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
add a comment |
If you want more human friendly output define:
ANSIBLE_STDOUT_CALLBACK=debug
This will make ansible use the debug output module (previously named human_log) whinch despite its unfortunate name is less verbose and much easier to read by humans.
If you get an error that this module is not available, upgrade Ansible or add this module locally if you cannot upgrade ansible, it will work with over versions of ansible like 2.0 or probaly even 1.9.
Another option to configure this is to add stdout_callback = debug to your ansible.cfg
If you want more human friendly output define:
ANSIBLE_STDOUT_CALLBACK=debug
This will make ansible use the debug output module (previously named human_log) whinch despite its unfortunate name is less verbose and much easier to read by humans.
If you get an error that this module is not available, upgrade Ansible or add this module locally if you cannot upgrade ansible, it will work with over versions of ansible like 2.0 or probaly even 1.9.
Another option to configure this is to add stdout_callback = debug to your ansible.cfg
answered Apr 24 '17 at 13:20
sorinsorin
3,402195184
3,402195184
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
add a comment |
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
9
9
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
this should be the ACCEPTED answer in 2017 the human friendly log output is shipped out of the box.
– Vadimo
Sep 27 '17 at 22:27
1
1
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
Here some more tips to make this more permanent: github.com/ansible/ansible/issues/27078#issuecomment-364560173
– kramer65
Apr 10 '18 at 16:55
add a comment |
You can use a callback plugin. This will re-parse your output and is easily turned on and off.
2
Note: With ansible 2.0.x you need to inherit fromCallbackBaseimported withfrom ansible.plugins.callback import CallbackBasefor the callback class to work.
– allo
May 22 '16 at 20:10
add a comment |
You can use a callback plugin. This will re-parse your output and is easily turned on and off.
2
Note: With ansible 2.0.x you need to inherit fromCallbackBaseimported withfrom ansible.plugins.callback import CallbackBasefor the callback class to work.
– allo
May 22 '16 at 20:10
add a comment |
You can use a callback plugin. This will re-parse your output and is easily turned on and off.
You can use a callback plugin. This will re-parse your output and is easily turned on and off.
answered Apr 16 '15 at 17:27
xddsgxddsg
1,65311828
1,65311828
2
Note: With ansible 2.0.x you need to inherit fromCallbackBaseimported withfrom ansible.plugins.callback import CallbackBasefor the callback class to work.
– allo
May 22 '16 at 20:10
add a comment |
2
Note: With ansible 2.0.x you need to inherit fromCallbackBaseimported withfrom ansible.plugins.callback import CallbackBasefor the callback class to work.
– allo
May 22 '16 at 20:10
2
2
Note: With ansible 2.0.x you need to inherit from
CallbackBase imported with from ansible.plugins.callback import CallbackBase for the callback class to work.– allo
May 22 '16 at 20:10
Note: With ansible 2.0.x you need to inherit from
CallbackBase imported with from ansible.plugins.callback import CallbackBase for the callback class to work.– allo
May 22 '16 at 20:10
add a comment |
Found this way in Ansible Project group forum:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('n') }}"
We basically turn this into list by splitting it by newline and then printing that list.
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can addignore_errors: yesto original command and later something like `- assert: that: "test.rc == 0".
– jhutar
Jul 10 '17 at 14:01
add a comment |
Found this way in Ansible Project group forum:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('n') }}"
We basically turn this into list by splitting it by newline and then printing that list.
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can addignore_errors: yesto original command and later something like `- assert: that: "test.rc == 0".
– jhutar
Jul 10 '17 at 14:01
add a comment |
Found this way in Ansible Project group forum:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('n') }}"
We basically turn this into list by splitting it by newline and then printing that list.
Found this way in Ansible Project group forum:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('n') }}"
We basically turn this into list by splitting it by newline and then printing that list.
answered Sep 30 '16 at 9:53
jhutarjhutar
18117
18117
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can addignore_errors: yesto original command and later something like `- assert: that: "test.rc == 0".
– jhutar
Jul 10 '17 at 14:01
add a comment |
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can addignore_errors: yesto original command and later something like `- assert: that: "test.rc == 0".
– jhutar
Jul 10 '17 at 14:01
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
That makes shell output much more legible! Nice!
– Asfand Qazi
Nov 23 '16 at 11:58
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
This solution appears to have one major drawback - if the execution of the "Example test" module fails, usually the whole playbook build fails and you'll never see the formatted output, especially the one for stderr which is probably most interesting.
– René
Jul 10 '17 at 13:33
@René you are right. For that you can add
ignore_errors: yes to original command and later something like `- assert: that: "test.rc == 0".– jhutar
Jul 10 '17 at 14:01
@René you are right. For that you can add
ignore_errors: yes to original command and later something like `- assert: that: "test.rc == 0".– jhutar
Jul 10 '17 at 14:01
add a comment |
You can use the pause module:
- pause:
prompt: "{{ variable_blob.stdout }}"
Moves on without input by defining minutes or seconds but then user input is not captured.
Credit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
You can use the pause module:
- pause:
prompt: "{{ variable_blob.stdout }}"
Moves on without input by defining minutes or seconds but then user input is not captured.
Credit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
You can use the pause module:
- pause:
prompt: "{{ variable_blob.stdout }}"
Moves on without input by defining minutes or seconds but then user input is not captured.
Credit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
You can use the pause module:
- pause:
prompt: "{{ variable_blob.stdout }}"
Moves on without input by defining minutes or seconds but then user input is not captured.
Credit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered 7 mins ago
wolfman-rackwolfman-rack
1
1
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
wolfman-rack is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f640130%2fdisplay-output-with-ansible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown