<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style>
<!--
@font-face
        {font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
.MsoChpDefault
        {font-size:10.0pt;
        font-family:"Calibri","sans-serif"}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.WordSection1
        {}
-->
</style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-GB">I’m very new to snappy so please excuse me for any questions that seem obvious.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">I have snapcraft.yaml that looks as follows:</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">--------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p class="MsoNormal"><span lang="EN-GB">% cat snapcraft.yaml </span></p>
<p class="MsoNormal"><span lang="EN-GB">name: openswitch-appliance</span></p>
<p class="MsoNormal"><span lang="EN-GB">version: 0.3.0-rc0-1</span></p>
<p class="MsoNormal"><span lang="EN-GB">summary: OpenSwitch NOS for the Appliance.</span></p>
<p class="MsoNormal"><span lang="EN-GB">description: A standalone version of the OpenSwitch NOS (www.openswitch.net) Appliance targeted at an Oracle VirtualBox running Ubuntu-Core with one management interface and seven "front-panel" network adapters.</span></p>
<p class="MsoNormal"><span lang="EN-GB">confinement: devmode</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">apps:</span></p>
<p class="MsoNormal"><span lang="EN-GB">  start-openswitch:</span></p>
<p class="MsoNormal"><span lang="EN-GB">    command: usr/sbin/start-openswitch</span></p>
<p class="MsoNormal"><span lang="EN-GB">    plugs: [ network, network-control, network-bind, network-manager, network-observe, gsettings ]</span></p>
<p class="MsoNormal"><span lang="EN-GB">  stop-openswitch:</span></p>
<p class="MsoNormal"><span lang="EN-GB">    command: usr/sbin/stop-openswitch</span></p>
<p class="MsoNormal"><span lang="EN-GB">    plugs: [ network, network-control, network-bind, network-manager, network-observe, gsettings ]</span></p>
<p class="MsoNormal"><span lang="EN-GB">  vtysh:</span></p>
<p class="MsoNormal"><span lang="EN-GB">    command: usr/sbin/start-vtysh</span></p>
<p class="MsoNormal"><span lang="EN-GB">  shell:</span></p>
<p class="MsoNormal"><span lang="EN-GB">    command: bin/bash</span></p>
<p class="MsoNormal"><span lang="EN-GB">    plugs: [ network, network-control, network-bind, network-manager, network-observe, gsettings ]</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">parts:</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">  ops-init:</span></p>
<p class="MsoNormal"><span lang="EN-GB">   plugin: make</span></p>
<p class="MsoNormal"><span lang="EN-GB">    source: src/ops-init</span></p>
<p class="MsoNormal"><span lang="EN-GB">    stage-packages: [ binutils, file, strace, bash, iputils-ping, traceroute ]</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">  openswitch:</span></p>
<p class="MsoNormal"><span lang="EN-GB">    plugin: x-openswitch</span></p>
<p class="MsoNormal"><span lang="EN-GB">#    source: https://github.com/ops-snappy/ops-build.git</span></p>
<p class="MsoNormal"><span lang="EN-GB">#    source: ../ops-build</span></p>
<p class="MsoNormal"><span lang="EN-GB">    source: /builds/dgarrod/ops-build</span></p>
<p class="MsoNormal"><span lang="EN-GB">    platform: appliance</span></p>
<p class="MsoNormal"><span lang="EN-GB">#    skip-native-build: true</span></p>
<p class="MsoNormal"><span lang="EN-GB">    skip-native-build: true</span></p>
<p class="MsoNormal"><span lang="EN-GB">    stage-packages: [ resolvconf ]</span></p>
<div style="border:none; border-bottom:solid windowtext 1.0pt; padding:0in 0in 2.0pt 0in">
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">    after: [ ops-init ]</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">--------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">The important point here is that there are multiple commands that are part of the snap. I start our snap using the command:</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">sudo /snap/bin/openswitch-appliance.start-openswitch</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Inside the SNAP this creates a couple of namespaces (swns and nonet):</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">/sbin/ip netns add swns</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">/sbin/ip netns add nonet</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">The problem is that if I then start up another command in the SNAP, specifically a bash shell using:</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">sudo /snap/bin/openswitch-appliance.bash</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">I can’t get at the swns or nonet namespaces from the bash shell that gets started. I get errors like:</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">root@Snappy-Appliance:/home/netop# ip netns exec swns bash</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">RTNETLINK answers: Invalid argument</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">RTNETLINK answers: Invalid argument</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">setting the network namespace "swns" failed: Invalid argument</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">root@Snappy-Appliance:/home/netop# ip netns pids swns</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">RTNETLINK answers: Invalid argument</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">RTNETLINK answers: Invalid argument</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Why is this? I thought all commands for my “snap” are somehow part of the same “snap”, even though they are in different process trees. It apparently isn’t the case. How do I get namespaces
 to play across these commands.</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Note that currently I’m installing my SNAP --devmode and I’m also connecting all the network related plug/slots.</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">  sudo snap connect openswitch-appliance:network-control ubuntu-core:network-control</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">  sudo snap connect openswitch-appliance:network-manager ubuntu-core:network-manager</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">  sudo snap connect openswitch-appliance:network-observe ubuntu-core:network-observe
</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">The only way I’ve sort of worked around this is to start up a “bash” shell using my snap bash command and then actually starting my subsystem from within this bash shell. So now all processes
 only went through the one “command”. But for a number of reasons this isn’t going to work for me.</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Another way of asking my questions is how do I get all my “apps” in my SNAP to be able to play nicely together? Are they one “snap” or not, even when started separately?</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Thanks,</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB">Dave Garrod</span></p>
<p class="MsoNormal" style="border:none; padding:0in"><span lang="EN-GB"> </span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="2"><br>
DISCLAIMER:<br>
This e-mail and any attachments to it may contain confidential and proprietary material and is solely for the use of the intended recipient. Any review, use, disclosure, distribution or copying of this transmittal is prohibited except by or on behalf of the
 intended recipient. If you have received this transmittal in error, please notify the sender and destroy this e-mail and any attachments and all copies, whether electronic or printed.<br>
</font>
</body>
</html>