You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>Create a new button for VMs with “Open Url” checked and either w/ or w/o a “Dialog” and “Request” has to be <codeclass="language-plaintext highlighter-rouge">TestOpenUrl</code></p>
518
+
<p>Create a new button for VMs with “Open Url” checked and either with or without a “Dialog” and “Request” has to be <codeclass="language-plaintext highlighter-rouge">TestOpenUrl</code></p>
519
519
520
520
<p>Go to VM summary page and click the new button.</p>
<p>Change the <codeclass="language-plaintext highlighter-rouge">pick</code> before the commit you want to squach to <codeclass="language-plaintext highlighter-rouge">squash</code> and edit
774
+
<p>Change the <codeclass="language-plaintext highlighter-rouge">pick</code> before the commit you want to squash to <codeclass="language-plaintext highlighter-rouge">squash</code> and edit
775
775
the commit message after squash in a following popup vi window. A commit
<h2id="macos-airdrop--handoff-listens-on-port-5000">macOS AirDrop & Handoff listens on port 5000</h2>
951
+
<h2id="macos-airdrop--handoff-listens-on-port-5000">macOS AirDrop & Handoff Listens on Port 5000</h2>
952
952
953
-
<p>If you run workers like we do on appliances using <codeclass="language-plaintext highlighter-rouge">ruby lib/workers/bin/evm_server.rb</code> remote console workers will try to bind to port 5000. This can fail on macOS with:</p>
953
+
<p>If you run workers like we do on appliances using <codeclass="language-plaintext highlighter-rouge">ruby lib/workers/bin/evm_server.rb</code>, remote console workers will try to bind to port 5000. This can fail on macOS with:</p>
954
954
955
955
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>Address already in use - bind(2) for "0.0.0.0" port 5000
<li><codeclass="language-plaintext highlighter-rouge">s_(msgid, seperator = "|")</code> – translates <codeclass="language-plaintext highlighter-rouge">msgid</code>, but if there are no localized text, it returns a last part of <codeclass="language-plaintext highlighter-rouge">msgid</code> separated by <codeclass="language-plaintext highlighter-rouge">separator</code> (<codeclass="language-plaintext highlighter-rouge">|</code> by default)
545
+
<li><codeclass="language-plaintext highlighter-rouge">s_(msgid, separator = "|")</code> – translates <codeclass="language-plaintext highlighter-rouge">msgid</code>, but if there is no localized text, it returns a last part of <codeclass="language-plaintext highlighter-rouge">msgid</code> separated by <codeclass="language-plaintext highlighter-rouge">separator</code> (<codeclass="language-plaintext highlighter-rouge">|</code> by default)
<li><codeclass="language-plaintext highlighter-rouge">ns_(msgid, msgid_plural, n, seperator = "|")</code> – similar to the <codeclass="language-plaintext highlighter-rouge">n_()</code>, but if there is no localized text, it returns a last part of <codeclass="language-plaintext highlighter-rouge">msgid</code> separated by <codeclass="language-plaintext highlighter-rouge">separator</code>.
550
+
<li><codeclass="language-plaintext highlighter-rouge">ns_(msgid, msgid_plural, n, separator = "|")</code> – similar to the <codeclass="language-plaintext highlighter-rouge">n_()</code>, but if there is no localized text, it returns a last part of <codeclass="language-plaintext highlighter-rouge">msgid</code> separated by <codeclass="language-plaintext highlighter-rouge">separator</code>.
<spanclass="nt"><span</span><spanclass="na">ng=</span><spanclass="s">if="!magicVariable"</span><spanclass="na">translate</span><spanclass="nt">></span>It's not there<spanclass="nt"></span></span>
<spanclass="nt"><span</span><spanclass="na">ng-if=</span><spanclass="s">"!magicVariable"</span><spanclass="na">translate</span><spanclass="nt">></span>It's not there<spanclass="nt"></span></span>
<td>Backporting and release: “blocker”, “fine/yes”, “fine/no”, “darga/yes”, “darga/no”, etc. The darkest color is for the most recent release, the middle color is the release before that, and the lightest color is for any release older than that.</td>
Copy file name to clipboardExpand all lines: docs/guides/remote_consoles.html
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -476,13 +476,13 @@
476
476
477
477
<h3id="remote-consoles">Remote Consoles</h3>
478
478
479
-
<p>Remote consoles allow you to access the screen of a VM through the browser. Each supported protocol has a its own Javascript client and they all connect to a common WebSocket endpoint. This endpoint is provided by the Rails application under <codeclass="language-plaintext highlighter-rouge">/ws/console</code> and in production it’s being served by the <codeclass="language-plaintext highlighter-rouge">RemoteConsoleWorker</code>. This worker runs a <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/rack_server.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::RackServer</code></a> middleware as a web server and it’s responsible for proxying and translating between the remote console endpoint and the incoming WebSocket connections.</p>
479
+
<p>Remote consoles allow you to access the screen of a VM through the browser. Each supported protocol has its own JavaScript client and they all connect to a common WebSocket endpoint. This endpoint is provided by the Rails application under <codeclass="language-plaintext highlighter-rouge">/ws/console</code> and in production it’s being served by the <codeclass="language-plaintext highlighter-rouge">RemoteConsoleWorker</code>. This worker runs a <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/rack_server.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::RackServer</code></a> middleware as a web server and it’s responsible for proxying and translating between the remote console endpoint and the incoming WebSocket connections.</p>
480
480
481
481
<p>The server can also be mounted into the development setup of Rails by setting the <codeclass="language-plaintext highlighter-rouge">MOUNT_REMOTE_CONSOLE_PROXY</code> environment variable:</p>
482
482
<divclass="language-sh highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="nv">MOUNT_REMOTE_CONSOLE_PROXY</span><spanclass="o">=</span>1 bin/rails server
483
483
</code></pre></div></div>
484
484
485
-
<p>The proxy is implemented using an event loop and the <ahref="https://github.com/skateman/surro-gate">surro-gate</a> gem as the selector for testing the readiness of socket pairs. The translation is done using adapters that are available as subclasses of <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/server_adapter.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::ServerAdapter</code></a> for WebSocket and <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/client_adapter.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::ClientAdapter</code></a> for the client protocols. Implementing a new protocol requires to create a new subclass in and update the <codeclass="language-plaintext highlighter-rouge">.new</code> method in the related adapter to be able to select it based on the passed context.</p>
485
+
<p>The proxy is implemented using an event loop and the <ahref="https://github.com/skateman/surro-gate">surro-gate</a> gem as the selector for testing the readiness of socket pairs. The translation is done using adapters that are available as subclasses of <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/server_adapter.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::ServerAdapter</code></a> for WebSocket and <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/remote_console/client_adapter.rb"><codeclass="language-plaintext highlighter-rouge">RemoteConsole::ClientAdapter</code></a> for the client protocols. Implementing a new protocol requires creating a new subclass and updating the <codeclass="language-plaintext highlighter-rouge">.new</code> method in the related adapter to be able to select it based on the passed context.</p>
486
486
487
487
<p>The VNC and SPICE consoles are supported out of the box and there is also support for WebMKS. However, due to licensing problems we are not allowed to ship the WebMKS assets. They can be retrieved from the VMware website after accepting the license agreement. Pasting the <codeclass="language-plaintext highlighter-rouge">webmks</code> folder with all the assets into the <codeclass="language-plaintext highlighter-rouge">public</code> folder in the core repo automatically enables the support for this console type.</p>
<h3id="testing-rbac-on-checked-items">Testing RBAC on checked items</h3>
495
495
496
-
<p>Make sure, the introduced code is checking the permissions on items checked in UI.
496
+
<p>Make sure the introduced code is checking the permissions on items checked in UI.
497
497
There is a list of classes, that support RBAC check in <ahref="https://github.com/ManageIQ/manageiq/blob/master/lib/rbac/filterer.rb#L8"><codeclass="language-plaintext highlighter-rouge">CLASSES_THAT_PARTICIPATE_IN_RBAC</code></a></p>
<p>In case that no records are found, the method raises an <codeclass="language-plaintext highlighter-rouge">ActiveRecord::RecordNotFound</code> exception.</p>
546
546
547
-
<p>That means the double checking the variable with loaded records is not necessary, and therefore can be removed.</p>
547
+
<p>That means double checking the variable with loaded records is not necessary, and therefore can be removed.</p>
<spanclass="nv">$ </span>vagrant halt <spanclass="c"># shutdown the VM</span>
530
530
</code></pre></div></div>
531
531
532
-
<p>Ports 3000 for the UI and 4000 for the API are forwared to your local machine, so you can access them through <ahref="http://127.0.0.1:3000">http://127.0.0.1:3000</a> and <ahref="http://127.0.0.1:4000">http://127.0.0.1:4000</a></p>
532
+
<p>Ports 3000 for the UI and 4000 for the API are forwarded to your local machine, so you can access them through <ahref="http://127.0.0.1:3000">http://127.0.0.1:3000</a> and <ahref="http://127.0.0.1:4000">http://127.0.0.1:4000</a></p>
0 commit comments