doc/api/python/nokia.nokiaccm-pysrc.html
author Simon Howkins <simonh@symbian.org>
Tue, 30 Mar 2010 13:57:59 +0100
changeset 952 ea541face66b
parent 432 f2ddfa555b0f
permissions -rw-r--r--
Re-apply changes to allow sources.csv to specify a revision by a *local* tag in the web repository. Uses "hg id" instead of "hg in", so not affected by the aborts we had previously. And no need for an empty repo this time either.

<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>nokia.nokiaccm</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="nokia-module.html">Package&nbsp;nokia</a> ::
        Module&nbsp;nokiaccm
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="nokia.nokiaccm-pysrc.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<h1 class="epydoc">Source Code for <a href="nokia.nokiaccm-module.html">Module nokia.nokiaccm</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#============================================================================ </tt> </tt>
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Name        : nokiaccm.py </tt> </tt>
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Part of     : Helium </tt> </tt>
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment">#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).</tt> </tt>
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#All rights reserved.</tt> </tt>
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#This component and the accompanying materials are made available</tt> </tt>
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#under the terms of the License "Eclipse Public License v1.0"</tt> </tt>
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#which accompanies this distribution, and is available</tt> </tt>
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#at the URL "http://www.eclipse.org/legal/epl-v10.html".</tt> </tt>
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Initial Contributors:</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Nokia Corporation - initial contribution.</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Contributors:</tt> </tt>
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Description:</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#===============================================================================</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">""" Nokia specific interface to Synergy sessions. """</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">netrc</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Method buildtools.Command.path()=buildtools.Command-class.html#path,Method sysdef.api.SpecialInstruction.path()=sysdef.api.SpecialInstruction-class.html#path,Method sysdef.api.Unit.path()=sysdef.api.Unit-class.html#path"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module fileutils=fileutils-module.html"><a title="fileutils" class="py-name" href="#" onclick="return doclink('link-1', 'fileutils', 'link-1');">fileutils</a></tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Package ccm=ccm-module.html"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-2', 'ccm', 'link-2');">ccm</a></tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Package nokia=nokia-module.html"><a title="nokia" class="py-name" href="#" onclick="return doclink('link-3', 'nokia', 'link-3');">nokia</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module nokia.gscm=nokia.gscm-module.html"><a title="nokia.gscm" class="py-name" href="#" onclick="return doclink('link-4', 'gscm', 'link-4');">gscm</a></tt> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-comment"># Uncomment this line to enable logging in this module, or configure logging elsewhere</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#logging.basicConfig(level=logging.DEBUG)</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt id="link-5" class="py-name" targets="Variable archive.builders._logger=archive.builders-module.html#_logger,Variable archive.mappers._logger=archive.mappers-module.html#_logger,Variable archive.tools._logger=archive.tools-module.html#_logger,Variable ats3._logger=ats3-module.html#_logger,Variable ats3.aste._logger=ats3.aste-module.html#_logger,Variable ats3.dropgenerator._logger=ats3.dropgenerator-module.html#_logger,Variable ats3.parsers._logger=ats3.parsers-module.html#_logger,Variable ats3.testconfigurator._logger=ats3.testconfigurator-module.html#_logger,Variable build.io._logger=build.io-module.html#_logger,Variable build.model._logger=build.model-module.html#_logger,Variable ccm._logger=ccm-module.html#_logger,Variable ccm.extra._logger=ccm.extra-module.html#_logger,Variable comments._logger=comments-module.html#_logger,Variable configuration._logger=configuration-module.html#_logger,Variable configuration_model._logger=configuration_model-module.html#_logger,Variable delta_zip._logger=delta_zip-module.html#_logger,Variable integration.quality._logger=integration.quality-module.html#_logger,Variable nokia.gscm._logger=nokia.gscm-module.html#_logger,Variable nokia.nokiaccm._logger=nokia.nokiaccm-module.html#_logger,Variable pathaddition.match._logger=pathaddition.match-module.html#_logger,Variable preparation._logger=preparation-module.html#_logger,Variable symbian.log._logger=symbian.log-module.html#_logger,Variable sysdef.api._logger=sysdef.api-module.html#_logger"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-5', '_logger', 'link-5');">_logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"nokia.nokiaccm"</tt><tt class="py-op">)</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
<a name="open_session"></a><div id="open_session-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="open_session-toggle" onclick="return toggle('open_session');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nokia.nokiaccm-module.html#open_session">open_session</a><tt class="py-op">(</tt><tt class="py-param">username</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">engine</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dbpath</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">database</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">reuse</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="open_session-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="open_session-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-docstring">"""Provides a Session object.</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">    Attempts to return a Session, based either on existing Synergy</tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">    sessions or by creating a new one.</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring">    - If a .netrc file can be found on the user's personal drive,</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">      that will be read to obtain Synergy login information if it </tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">      is defined there. This will be used to fill in any missing </tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">      parameters not passed in the call to open_session().</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">      </tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">      The format of the .netrc file entries should be:</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">      </tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-docstring">      machine synergy login USERNAME password foobar account DATABASE_PATH@SERVER</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">      </tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring">      If the details refer to a specific database, the machine can be the database name,</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">      instead of "synergy".</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">    - If an existing session is running that matches the supplied</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">      parameters, it will reuse that.</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt>     </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-comment"># See if a .netrc file can be used</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">username</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">engine</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">dbpath</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">"win32"</tt><tt class="py-op">:</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'HOME'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"H:"</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt id="link-6" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-6', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Opening .netrc file'</tt><tt class="py-op">)</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-name">netrc_file</tt> <tt class="py-op">=</tt> <tt class="py-name">netrc</tt><tt class="py-op">.</tt><tt class="py-name">netrc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">            <tt class="py-name">netrc_info</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt class="py-comment"># If settings for a specific database </tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt id="link-7" class="py-name" targets="Method ccm.AbstractSession.database()=ccm.AbstractSession-class.html#database"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-7', 'database', 'link-7');">database</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-name">netrc_info</tt> <tt class="py-op">=</tt> <tt class="py-name">netrc_file</tt><tt class="py-op">.</tt><tt class="py-name">authenticators</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-8', 'database', 'link-7');">database</a></tt><tt class="py-op">)</tt>             </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">            <tt class="py-comment"># if not found just try generic one</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">netrc_info</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                <tt class="py-name">netrc_info</tt> <tt class="py-op">=</tt> <tt class="py-name">netrc_file</tt><tt class="py-op">.</tt><tt class="py-name">authenticators</tt><tt class="py-op">(</tt><tt class="py-string">'synergy'</tt><tt class="py-op">)</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                 </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">netrc_info</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">n_username</tt><tt class="py-op">,</tt> <tt class="py-name">n_account</tt><tt class="py-op">,</tt> <tt class="py-name">n_password</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">netrc_info</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">username</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                    <tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">n_username</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                    <tt class="py-name">password</tt> <tt class="py-op">=</tt> <tt class="py-name">n_password</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">n_account</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt class="py-name">n_dbpath</tt><tt class="py-op">,</tt> <tt class="py-name">n_engine</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">n_account</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'@'</tt><tt class="py-op">)</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">dbpath</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n_dbpath</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                        <tt id="link-9" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-9', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Database path set using .netrc (%s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">n_dbpath</tt><tt class="py-op">)</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                        <tt class="py-name">dbpath</tt> <tt class="py-op">=</tt> <tt class="py-name">n_dbpath</tt> </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">engine</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n_engine</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                        <tt id="link-10" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-10', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Database engine set using .netrc (%s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">n_engine</tt><tt class="py-op">)</tt> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                        <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt class="py-name">n_engine</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt id="link-11" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-11', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Error accessing .netrc file'</tt><tt class="py-op">)</tt> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-comment"># using environment username in case username is not defined.</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">username</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'USERNAME'</tt><tt class="py-op">]</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-comment"># looking for dbpath using GSCM database</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">dbpath</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt id="link-12" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-12', 'database', 'link-7');">database</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt id="link-13" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-13', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Database path set using the GSCM database.'</tt><tt class="py-op">)</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">dbpath</tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="nokia" class="py-name" href="#" onclick="return doclink('link-14', 'nokia', 'link-3');">nokia</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="nokia.gscm" class="py-name" href="#" onclick="return doclink('link-15', 'gscm', 'link-4');">gscm</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Function nokia.gscm.get_db_path()=nokia.gscm-module.html#get_db_path"><a title="nokia.gscm.get_db_path" class="py-name" href="#" onclick="return doclink('link-16', 'get_db_path', 'link-16');">get_db_path</a></tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-17', 'database', 'link-7');">database</a></tt><tt class="py-op">)</tt>         </tt>
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-comment"># looking for engine host using GSCM database</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">engine</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt id="link-18" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-18', 'database', 'link-7');">database</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt id="link-19" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-19', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Database engine set using the GSCM database.'</tt><tt class="py-op">)</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="nokia" class="py-name" href="#" onclick="return doclink('link-20', 'nokia', 'link-3');">nokia</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="nokia.gscm" class="py-name" href="#" onclick="return doclink('link-21', 'gscm', 'link-4');">gscm</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Function nokia.gscm.get_engine_host()=nokia.gscm-module.html#get_engine_host"><a title="nokia.gscm.get_engine_host" class="py-name" href="#" onclick="return doclink('link-22', 'get_engine_host', 'link-22');">get_engine_host</a></tt><tt class="py-op">(</tt><tt id="link-23" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-23', 'database', 'link-7');">database</a></tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">             </tt>
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">     </tt>
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt class="py-name">_sessions</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt class="py-comment"># See if any currently running sessions can be used, only if no password submitted, else use a brand new session!</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">reuse</tt><tt class="py-op">:</tt> </tt>
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">current_sessions</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-24', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Function ccm.running_sessions()=ccm-module.html#running_sessions"><a title="ccm.running_sessions" class="py-name" href="#" onclick="return doclink('link-25', 'running_sessions', 'link-25');">running_sessions</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">current_session</tt> <tt class="py-keyword">in</tt> <tt class="py-name">current_sessions</tt><tt class="py-op">:</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">current_session</tt><tt class="py-op">.</tt><tt class="py-name">dbpath</tt> <tt class="py-op">==</tt> <tt class="py-name">dbpath</tt><tt class="py-op">:</tt> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">current_session</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-26" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-26', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Variable ccm.CCM_BIN=ccm-module.html#CCM_BIN"><a title="ccm.CCM_BIN" class="py-name" href="#" onclick="return doclink('link-27', 'CCM_BIN', 'link-27');">CCM_BIN</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-28" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-28', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class ccm.CCMException=ccm.CCMException-class.html"><a title="ccm.CCMException" class="py-name" href="#" onclick="return doclink('link-29', 'CCMException', 'link-29');">CCMException</a></tt><tt class="py-op">(</tt><tt class="py-string">"Could not find CM/Synergy executable in the path."</tt><tt class="py-op">)</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-comment"># Looking for router address using GSCM database</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">router_address</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-30" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-30', 'database', 'link-7');">database</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">dbpath</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">            <tt id="link-31" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-31', 'database', 'link-7');">database</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-32', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt><tt class="py-name">dbpath</tt><tt class="py-op">)</tt> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt id="link-33" class="py-name" targets="Method fileutils.Lock.lock()=fileutils.Lock-class.html#lock"><a title="fileutils.Lock.lock" class="py-name" href="#" onclick="return doclink('link-33', 'lock', 'link-33');">lock</a></tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="fileutils" class="py-name" href="#" onclick="return doclink('link-34', 'fileutils', 'link-1');">fileutils</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Class fileutils.Lock=fileutils.Lock-class.html"><a title="fileutils.Lock" class="py-name" href="#" onclick="return doclink('link-35', 'Lock', 'link-35');">Lock</a></tt><tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-36', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Variable ccm.CCM_SESSION_LOCK=ccm-module.html#CCM_SESSION_LOCK"><a title="ccm.CCM_SESSION_LOCK" class="py-name" href="#" onclick="return doclink('link-37', 'CCM_SESSION_LOCK', 'link-37');">CCM_SESSION_LOCK</a></tt><tt class="py-op">)</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="fileutils.Lock.lock" class="py-name" href="#" onclick="return doclink('link-38', 'lock', 'link-33');">lock</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fileutils.Lock.lock" class="py-name" href="#" onclick="return doclink('link-39', 'lock', 'link-33');">lock</a></tt><tt class="py-op">(</tt><tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-comment"># if we have the database name we can switch to the correct Synergy router</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt id="link-40" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-40', 'database', 'link-7');">database</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-name">router_address</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="nokia" class="py-name" href="#" onclick="return doclink('link-41', 'nokia', 'link-3');">nokia</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="nokia.gscm" class="py-name" href="#" onclick="return doclink('link-42', 'gscm', 'link-4');">gscm</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Function nokia.gscm.get_router_address()=nokia.gscm-module.html#get_router_address"><a title="nokia.gscm.get_router_address" class="py-name" href="#" onclick="return doclink('link-43', 'get_router_address', 'link-43');">get_router_address</a></tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="ccm.AbstractSession.database" class="py-name" href="#" onclick="return doclink('link-44', 'database', 'link-7');">database</a></tt><tt class="py-op">)</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">"win32"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">router_address</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">                    <tt class="py-name">routerfile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-45', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-46', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-47', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="ccm.CCM_BIN" class="py-name" href="#" onclick="return doclink('link-48', 'CCM_BIN', 'link-27');">CCM_BIN</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"../etc/_router.adr"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">                    <tt class="py-name">current_router</tt> <tt class="py-op">=</tt> <tt class="py-name">routerfile</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                    <tt class="py-name">routerfile</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method build.model.BOM.close()=build.model.BOM-class.html#close,Method build.model.SessionCreator.close()=build.model.SessionCreator-class.html#close,Method buildtools.AbstractOutputWriter.close()=buildtools.AbstractOutputWriter-class.html#close,Method ccm.AbstractSession.close()=ccm.AbstractSession-class.html#close,Method ccm.Session.close()=ccm.Session-class.html#close,Method ccm.SessionPool.close()=ccm.SessionPool-class.html#close,Method ccm.extra.CachedSessionProvider.close()=ccm.extra.CachedSessionProvider-class.html#close,Method ccm.extra.SessionProvider.close()=ccm.extra.SessionProvider-class.html#close,Method log2xml.LogWriter.close()=log2xml.LogWriter-class.html#close,Method preparation.PreparationBuilder.close()=preparation.PreparationBuilder-class.html#close,Method sysdef.io.FlashImageSizeWriter.close()=sysdef.io.FlashImageSizeWriter-class.html#close"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-49', 'close', 'link-49');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">current_router</tt> <tt class="py-op">!=</tt> <tt class="py-name">router_address</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                        <tt id="link-50" class="py-name"><a title="archive.builders._logger
archive.mappers._logger
archive.tools._logger
ats3._logger
ats3.aste._logger
ats3.dropgenerator._logger
ats3.parsers._logger
ats3.testconfigurator._logger
build.io._logger
build.model._logger
ccm._logger
ccm.extra._logger
comments._logger
configuration._logger
configuration_model._logger
delta_zip._logger
integration.quality._logger
nokia.gscm._logger
nokia.nokiaccm._logger
pathaddition.match._logger
preparation._logger
symbian.log._logger
sysdef.api._logger" class="py-name" href="#" onclick="return doclink('link-50', '_logger', 'link-5');">_logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Updating %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-51', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">normpath</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-52', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-53', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-54', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="ccm.CCM_BIN" class="py-name" href="#" onclick="return doclink('link-55', 'CCM_BIN', 'link-27');">CCM_BIN</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"../etc/_router.adr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                        <tt class="py-name">routerfile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-56', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-57', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-58', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="ccm.CCM_BIN" class="py-name" href="#" onclick="return doclink('link-59', 'CCM_BIN', 'link-27');">CCM_BIN</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"../etc/_router.adr"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"w+"</tt><tt class="py-op">)</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                        <tt class="py-name">routerfile</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method archive.builders.ArchivePreBuilder.write()=archive.builders.ArchivePreBuilder-class.html#write,Method build.model.BOMDeltaXMLWriter.write()=build.model.BOMDeltaXMLWriter-class.html#write,Method build.model.BOMXMLWriter.write()=build.model.BOMXMLWriter-class.html#write,Method buildtools.AbstractOutputWriter.write()=buildtools.AbstractOutputWriter-class.html#write,Method buildtools.AntWriter.write()=buildtools.AntWriter-class.html#write,Method buildtools.EBSWriter.write()=buildtools.EBSWriter-class.html#write,Method buildtools.MakeWriter.write()=buildtools.MakeWriter-class.html#write,Method buildtools.StringWriter.write()=buildtools.StringWriter-class.html#write,Method flash_config.FlashConfigurationWriter.write()=flash_config.FlashConfigurationWriter-class.html#write,Method helium.documentation.APIDeltaWriter.write()=helium.documentation.APIDeltaWriter-class.html#write,Method sis.SisPreBuilder.write()=sis.SisPreBuilder-class.html#write,Method sysdef.io.FlashImageSizeWriter.write()=sysdef.io.FlashImageSizeWriter-class.html#write,Method sysdef.io.MakeWriter.write()=sysdef.io.MakeWriter-class.html#write,Method sysdef.io.MakeWriter2.write()=sysdef.io.MakeWriter2-class.html#write,Method sysdef.io.MakeWriter3.write()=sysdef.io.MakeWriter3-class.html#write,Method version.Version.write()=version.Version-class.html#write"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-60', 'write', 'link-60');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">router_address</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                        <tt class="py-name">routerfile</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-61', 'close', 'link-49');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">         </tt>
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-comment"># If no existing sessions were available, start a new one</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">new_session</tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-62', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Class ccm.Session=ccm.Session-class.html"><a title="ccm.Session" class="py-name" href="#" onclick="return doclink('link-63', 'Session', 'link-63');">Session</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Static Method ccm.Session.start()=ccm.Session-class.html#start"><a title="ccm.Session.start" class="py-name" href="#" onclick="return doclink('link-64', 'start', 'link-64');">start</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">engine</tt><tt class="py-op">,</tt> <tt class="py-name">dbpath</tt><tt class="py-op">)</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt id="link-65" class="py-name"><a title="fileutils.Lock.lock" class="py-name" href="#" onclick="return doclink('link-65', 'lock', 'link-33');">lock</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method fileutils.Lock.unlock()=fileutils.Lock-class.html#unlock"><a title="fileutils.Lock.unlock" class="py-name" href="#" onclick="return doclink('link-66', 'unlock', 'link-66');">unlock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">new_session</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt id="link-67" class="py-name"><a title="fileutils.Lock.lock" class="py-name" href="#" onclick="return doclink('link-67', 'lock', 'link-33');">lock</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fileutils.Lock.unlock" class="py-name" href="#" onclick="return doclink('link-68', 'unlock', 'link-66');">unlock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-69" class="py-name"><a title="ccm" class="py-name" href="#" onclick="return doclink('link-69', 'ccm', 'link-2');">ccm</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="ccm.CCMException" class="py-name" href="#" onclick="return doclink('link-70', 'CCMException', 'link-29');">CCMException</a></tt><tt class="py-op">(</tt><tt class="py-string">"Cannot open session for user '%s'"</tt> <tt class="py-op">%</tt> <tt class="py-name">username</tt><tt class="py-op">)</tt> </tt>
</div><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0beta1 on Wed Sep 09 13:44:21 2009
    </td>
    <td align="right" class="footer">
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie()
  // -->
</script>
  
</body>
</html>