import repository from arizona
[raven.git] / webpage / tptags.html
1  <html>
2 <head>
3 <title> Stork Project </title>
4 <LINK href="stork.css" rel="stylesheet" type="text/css">
5
6 </head>
7
8 <body>
9
10
11 <div class="display" align="center">
12         <table border="0">
13         <tr>
14                 <td width="170" valign="top">
15
16                                 <br/>
17                                 <table cellpadding="3" width="170" id="links" class="links">
18                                         <tr>
19                                                 <td align="right">
20
21                                                         <ul class="links">
22
23                                                                 <a href = "index.html"><h3>Stork</h3></a>
24                                                                 <li class="links"><a href="tutmain.html">Stork Tutorial</a></li>
25
26                                                                 <li class="links"><a href="advanced.html">Advanced Usage</a></li>
27                                                                 <li class="links"><a href="arch.html">Stork Architecture</a></li>
28                                                                 <li class="links"><a href="filelist.html">Stork File List</a></li>
29                                                                 <li class="links"><a href="about.html">About Us</a></li>
30                                                                 <li class="links"><a href="apps.html">Related Links</a></li>
31                                                                 <li class="links"><a href="contact.html">Contact Stork</a></li>
32                                                                 <h4>Links</h4>
33                                                                 <li class="links"><a href="http://appmanager.berkeley.intel-research.net/plcontrol/apps.php?appid=1029">
34                                                                 Slice Status</a></li>
35                                                                 <li class="links"><a href="https://stork-repository.cs.arizona.edu">Stork Repository</a></li>
36                                                         </ul>
37
38                                                  </td>
39                                         </tr>
40                                 </table>
41                                 <br/>
42                 </td>
43
44                 <td valign="top">
45                 <table class="info" cellpadding="0" width="700" >
46                 <tr  height="75"><td colspan="3"><img style="margin-left: -0px;" src="images/stork-header.png" alt="stork logo"/></td></tr>
47                 <tr  bgcolor="#444444" class="headerrow" width="100%" height="2">
48
49                         <th colspan="2"> Stork: Advanced Usage</th>
50
51                 </tr>
52                 <tr valign="top" align="left">
53
54                         <td>
55                                 <table cellpadding="8" id="content" class="content">
56                                         <tr>
57                                                 <td>
58
59                                                         <h1><a name = "top"></a>Using Tags</h1>
60
61
62
63 <p>Tags are user-defined labels that may be assigned to packages and are used as an
64 additional means of classification or sorting. For example, a 'beta' tag may be applied
65 to beta packages and a 'stable' tag applied to stable packages. A particular node may
66 then be configured to install the stable or beta packages.
67
68
69 <p><h3>Assigning tags to packages:</h3>
70
71 Tags are assigned by using Stork Trusted Packages File (tpfile) and they are assigned at
72 the time you add a package to your tpfile. For example, the following command adds
73 package1.tar.gz to your trusted packages file and applies the "beta" tag to it.
74
75 <br><code><b>./storkutil.py --tags "beta" addfile package1.tar.gz</b></code>
76
77 <br>You can apply multiple tags to a package by separating them with a comma. For example:
78
79 <br><b><code>./storkutil.py --tags "untested,experimental,beta" addfile package1.tar.gz</code></b>
80
81 <br>The default trusted packages files provided by stork for Planet Lab packages are already
82 tagged with the PlanetLabV3 and PlanetLabV4 tags as appropriate.
83
84
85 <p><h3>Requiring tags when installing packages:</h3>
86
87 Unless you specifically ask Stork to apply preferential treatment to tagged packages,
88 Stork will ignore your tags and install packages in the default order specified by your
89 trusted packages file. There are several ways to influence package installation. We'll
90 use the stork client (stork.py) for these examples.
91
92 <p><li><b>'#tag' syntax</b></li>
93 By appending a '#' and the tag name, you can tell stork that you want a
94 package with that specific tag. The following example will install package1 using the tag
95 'beta':
96
97 <br><code><b>./stork.py package1#beta</b></code>
98
99 <br>When using the '#' syntax, the tag requirement is only applied to the package you name on
100 the command line. Packages required for dependency resolution are not required to have
101 the listed tag.
102
103 <p><li><b>'--requiretags' command line option</li></b> The '--requiretags' option specifies a list of
104 tags that must be met by all packages, including any that you name on the command line,
105 plus their dependencies. For example:
106
107 <br><code><b>./stork.py --requiretags beta package1</b></code>
108
109 <p><li><b>Tag preference rules</li></b> The previous methods of using tags have focused on controlling
110 what packages are allowed based on their tags. Tag preference rules are a way for you to
111 specify which tags you prefer using a sorting mechanism. Tag preference rules use the
112 format &quot;tag1&lt;tag2&quot; and imply that tag1 receives a higher preference than tag2. The
113 following example prefers PlanetLabV4 packages instead of PlanetLabV3 packages:
114
115 <br><code><b>./stork.py --tagprefrules &quot;PlanetLabV4&lt;PlanetLabV3&quot; lynx</code></b>
116
117 <br>You may specify multiple rules separated by a comma. For example:
118
119 <br><code><b>./stork.py --tagprefrules &quot;PlanetLabV4&lt;PlanetLabV3,Stable&lt;Unstable&quot; lynx</code></b>
120
121 <br>The first rule listed is the primary sort key and the second rule is a secondary sort
122 key. The preceeding example first sorts the trusted packages such that PlanetLabV4
123 packages are preferred to PlanetLabV3, and then sorts such that Stable packages are
124 preferred to Unstable packages. Packages that do not match your tag preference rules are always sorted behind packages
125 that do match the rule. In the proceeding examples, a package that did not contain
126 PlanetLabV3 or PlanetLabV4 would be pushed behind all of the PlanetLabV3 and PlanetLabV4
127 packages.
128
129
130 <p><h3>Mandatory Tags:</h3>
131
132 The default behavior of Stork is to not require the user to specify a tag when installing
133 packages. For example, if a package is tagged 'beta' and you do not specify any tag
134 requirements when using stork.py, then the 'beta' package is still available for
135 installation.
136
137 <p>However, there are times when you may wish to specify that a package can only be
138 installed when a user specifically requests that tag and can never be installed by
139 default. This is done by using a special syntax when adding the package to the trusted
140 packages file. For example:
141
142 <br><code><b>./storkutil.py --tags "+beta" addfile package1.tar.gz</b></code>
143
144 <br>When a tag is preceded by a plus sign as it is in the "+beta" in the above example, it is
145 considered a mandatory tag. The package may only be installed when the user specifically
146 requests packages with that tag using either the #tag syntax or the --requiretags command
147 line option.
148
149 <p>The following two examples will install the package:
150 <br><code><b>./stork.py package1#beta</code></b>
151 <br><code><b>./stork.py --requiretags beta package1</code></b>
152
153 <p>The following command will not install the package:
154 <br><code><b>./stork.py package1
155
156
157
158
159
160                                                         <center><a href = "index.html">Home</a>     <a href = "#top">Top</a></center>
161
162
163                                                 </td>
164                                         </tr>
165                                 </table>
166                         </td>
167                 </tr>
168
169        </table>
170        </td>
171
172      </tr>
173      <tr>
174         <td></td>
175         <td>
176                 <a href="http://www.planet-lab.org"><img style="border: 0px; border-style: none;" src="images/powered_by_pl_grey.png" alt="powered by planetlab"></a>
177
178                                         <a href="http://www.cs.arizona.edu"><img style="position:relative; left: 20px; border: 0px; border-style: none;" src="images/template_logo_small_grey.png" alt="University of Arizona, Computer Science logo"></a>
179
180
181
182
183
184         </td>
185      </tr>
186
187 </table>
188
189 </div>
190
191
192 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
193 </script>
194 <script type="text/javascript">
195 _uacct = "UA-1868232-1";
196 urchinTracker();
197 </script>
198 </body>
199 </html>
200
201 </code></b>tekey and me.publickey: