openpkg/register.pod

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

michael@428 1
michael@428 2 =pod
michael@428 3
michael@428 4 =head1 NAME
michael@428 5
michael@428 6 B<openpkg register> - OpenPKG Registry Command-Line Client
michael@428 7
michael@428 8 =head1 SYNOPSIS
michael@428 9
michael@428 10 B<register> [-u|--user=<user|token>] [-l|--link=<token>] [I<-d|--desc=<text>>]
michael@428 11 [-m|--mode=fake|post|wipe] [I<-a|--args=<args>>]
michael@428 12 [I<--plat=<text>>] [I<--orel=<text>>] [I<--uuid=<file>>]
michael@428 13 [I<--conf=<file>>] [I<--prep=<file>>] [I<--tran=<file>>]
michael@428 14 [I<--util=<file>>] [--data=<tag>[,<tag>...]]
michael@428 15 [I<-P|--preparation>] [I<-T|--transaction>]
michael@428 16 [I<-U|--utilization>] [I<-C|--convenience>]
michael@428 17 [I<-I|--interaction>]
michael@428 18 [I<-v|--verbose>] [I<-h|--help>]
michael@428 19
michael@428 20 B<register> -S|--printstatus
michael@428 21
michael@428 22 B<register> -R|--rewriteurls [I<url> ...]
michael@428 23
michael@428 24 =head1 DESCRIPTION
michael@428 25
michael@428 26 B<openpkg register> is the Command-Line Client the OpenPKG Registry. It is
michael@428 27 used by administrators to register an instance with the OpenPKG Registry for
michael@428 28 later association.
michael@428 29
michael@428 30 After association, B<openpkg register> can be used for repetitive
michael@428 31 reregistrations which update the heartbeat of the instance on the Registry
michael@428 32 server, avoiding premature depature from the database. It is assumed that
michael@428 33 every instance will be reregistered daily. Dormant
michael@428 34 instances might be discarded from the Registry, revoking their access to
michael@428 35 additional resources.
michael@428 36
michael@428 37 =head1 PRIMARY OPERATIONS
michael@428 38
michael@428 39 The following primary operations are available:
michael@428 40
michael@428 41 =over 4
michael@428 42
michael@428 43 =item B<-h>, B<--help>
michael@428 44
michael@428 45 Display brief usage message.
michael@428 46
michael@428 47 =item B<-v>, B<--verbose>
michael@428 48
michael@428 49 Display progress information during data posting.
michael@428 50
michael@428 51 =item B<-P>, B<--preparation>
michael@428 52
michael@428 53 Execute the primary operation "preparation".
michael@428 54 Creates registry data for one request and dumps it stdout
michael@428 55 in XML format. That request can be filtered and piped into
michael@428 56 the transaction phase or it can be copied and pasted into the
michael@428 57 XMLdump CGI facility manually.
michael@428 58 A copy of the output of the last run is also saved to the C<${REGISTRY_PREP}> file.
michael@428 59
michael@428 60 =item B<-T>, B<--transaction>
michael@428 61
michael@428 62 Execute the primary operation "transaction".
michael@428 63 Reads registry data with one request from stdin, executes
michael@428 64 the transaction and writes registry data with one or more
michael@428 65 responses to stdout in XML format.
michael@428 66 Depending on the mode of operation, the transaction might be an actual
michael@428 67 transport to the XMLdump CGI facility or a fake activity which complements the
michael@428 68 manual preparation.
michael@428 69 A copy of the output of the last run is also saved to the C<${REGISTRY_TRAN}> file.
michael@428 70
michael@428 71 =item B<-U>, B<--utilization>
michael@428 72
michael@428 73 Execute the primary operation "utilization".
michael@428 74 Reads registry data with one response from stdin and updates the local
michael@428 75 registry information.
michael@428 76 Depending on the mode of operation, the utilization might be an actual
michael@428 77 processing of a transaction response or a fake activity which complements the
michael@428 78 manual transaction.
michael@428 79 Anyway, this step finalizes the registration process and makes the instance
michael@428 80 assume it has been properly registered. This status can be printed. URL
michael@428 81 rewriting is activated.
michael@428 82 A copy of the output of the last run is also saved to the C<${REGISTRY_UTIL}> file.
michael@428 83
michael@428 84 =item B<-C>, B<--convenience>
michael@428 85
michael@428 86 Execute the primary operation "convenience".
michael@428 87 This executes the three primary operations "preparation", "transaction" and
michael@428 88 "utilization" in that order and pipes data through this chain.
michael@428 89
michael@428 90 =item B<-I>, B<--interaction>
michael@428 91
michael@428 92 Execute the primary operation "interaction".
michael@428 93 Like "convenience" but user is interactively asked for information. This is
michael@428 94 the easiest way to do registration but it is not meat to be automated.
michael@428 95
michael@428 96 =item B<-S>, B<--printstatus>
michael@428 97
michael@428 98 If the instance has been registered, information about the registration is printed in a
michael@428 99 format suitable for shell evaluation and return code is true.
michael@428 100 Otherwise nothing is printed and return code is false.
michael@428 101
michael@428 102 =item B<-R>, B<--rewriteurls> [I<url> ...]
michael@428 103
michael@428 104 If the instance has been registered, the given URLs are rewritten to prepend
michael@428 105 user:pass information before hostnames below the openpkg.(org|net|com)
michael@428 106 domains. Note the username is is UUID_REGISTRY and the password is the
michael@428 107 concatenation of UUID_INSTANCE and UUID_PLATFORM from the
michael@428 108 PREFIX/etc/openpkg/uuid file. Both informations are not meant to be used for
michael@428 109 traditional authentication, they are merly statistical information.
michael@428 110 Otherwise the URLs are returned verbatim.
michael@428 111
michael@428 112 =back
michael@428 113
michael@428 114 =head1 STANDARD OPTIONS
michael@428 115
michael@428 116 Standard options are typically used to automate registration (not
michael@428 117 association).
michael@428 118
michael@428 119 =over 4
michael@428 120
michael@428 121 =item B<-m>, B<--mode> fake|post|wipe
michael@428 122
michael@428 123 Overrides C<${REGISTRY_MODE}> variable in C<${REGISTRY_CONF}> file.
michael@428 124 Has no default and is a manadatory setting.
michael@428 125
michael@428 126 In B<post> mode, transactions are carried out using real network connectivity.
michael@428 127 The "preparation" step creates a XMLdump and writes it into the
michael@428 128 C<${REGISTRY_PREP}> file. The "transaction" step posts it to the DropXML form
michael@428 129 using a HTTP request. The response coming back from Registration server is
michael@428 130 also in XML format and is saved to C<${REGISTRY_TRAN}> file. The
michael@428 131 "utilization" step processes this response and writes the final results to the
michael@428 132 C<${REGISTRY_UTIL}> file.
michael@428 133
michael@428 134 In B<fake> mode, no network connectivity takes place.
michael@428 135 The "prepararation" step creates a XMLdump and writes it into the
michael@428 136 C<${REGISTRY_PREP}> file. The "transaction" step is a fake only. It assumes a
michael@428 137 successful response from the Registration server and saves it to
michael@428 138 C<${REGISTRY_TRAN}> file. The "utilization" step processes this response and
michael@428 139 writes the final results to the C<${REGISTRY_UTIL}> file.
michael@428 140 I<Note>: fake mode is meant as a way to register instances which cannot or must
michael@428 141 not post data directly to the Registration server.
michael@428 142
michael@428 143 In B<wipe> mode, the registration is wiped out locally. The status is reset
michael@428 144 and URL rewriting is disabled.
michael@428 145 I<Note>: the registration server is not contacted, the instace must be removed
michael@428 146 manually using the web interface.
michael@428 147 I<Note>: wiping registration is highly recommended as a precursor action of
michael@428 148 cloning activities.
michael@428 149
michael@428 150 =item B<-a>, B<--args> "arg [arg ...]"
michael@428 151
michael@428 152 Overrides C<${REGISTRY_ARGS}> variable in C<${REGISTRY_CONF}> file.
michael@428 153 Complements the mode and is specific to it.
michael@428 154 Defaults to "http://registry.openpkg.org/register" which is the official registry of the OpenPKG Project.
michael@428 155 This default is useful for "post" mode.
michael@428 156
michael@428 157 =item B<-u>, B<--user> I<user|token>
michael@428 158
michael@428 159 Overrides C<${REGISTRY_USER}> variable in C<${REGISTRY_CONF}> file.
michael@428 160 Indicates the registry user which will find this registration in his arrival queue.
michael@428 161 The user can also specified as a token which is enabled for use as "user".
michael@428 162 If the token is also enabled for "assoc" the registered instance is immediately associated
michael@428 163 to the user with no need for the user to visit the web interface.
michael@428 164 This information in submitted via the "registry_user" attribute of the XML request.
michael@428 165 Retrieves default online from http://openpkg.org/go/autoregister and is a manadatory setting.
michael@428 166
michael@428 167 =item B<-l>, B<--link> I<token>
michael@428 168
michael@428 169 Overrides C<${REGISTRY_LINK}> variable in C<${REGISTRY_CONF}> file.
michael@428 170 Indicates the registry user which will find this registration linked to his token.
michael@428 171 The link must be specified as a token which is enabled for use as "link".
michael@428 172 If a user token is used and the link token is also enabled for "assoc" then the registered instance
michael@428 173 is immediately associated to the user with no need for the user to visit the web interface.
michael@428 174 This information in submitted via the "registry_link" attribute of the XML request.
michael@428 175 Has no default and is an optional setting.
michael@428 176 Be aware that linked users see the same information about an instance as the associated user
michael@428 177 can find on his "association" page but they cannot alter or delete information.
michael@428 178
michael@428 179 =item B<-d>, B<--desc> I<description>
michael@428 180
michael@428 181 Overrides C<${REGISTRY_DESC}> variable in C<${REGISTRY_CONF}> file.
michael@428 182 Indicates a human readable description of the instance.
michael@428 183 This information in submitted via the "registry_desc" attribute of the XML request.
michael@428 184 It appears in the "description" column on the "association" page of the web form and can be edited on the server side.
michael@428 185 Defaults to "openpkg://${FQDN}${PREFIX}"
michael@428 186
michael@428 187 =back
michael@428 188
michael@428 189 =head1 ADVANCED OPTIONS
michael@428 190
michael@428 191 Advanced options can be enganged to tailor and fully automate a registration
michael@428 192 (not association).
michael@428 193
michael@428 194 =over 4
michael@428 195
michael@428 196 =item B<--plat>
michael@428 197
michael@428 198 Overrides C<${REGISTRY_PLAT}> variable in C<${REGISTRY_CONF}> file.
michael@428 199 Indicates the platform. Concatenated information from CPU architecture (arch) and Operating System (os).
michael@428 200 This information in submitted via the "registry_plat" attribute of the XML request.
michael@428 201 Defaults to "%{l_platform -p}", e.g. "ix86-freebsd6.1"
michael@428 202
michael@428 203 =item B<--orel>
michael@428 204
michael@428 205 Overrides C<${REGISTRY_VERS}> variable in C<${REGISTRY_CONF}> file.
michael@428 206 Indicates the OpenPKG release.
michael@428 207 This information in submitted via the "registry_orel" attribute of the XML request.
michael@428 208 Defaults to "%{l_openpkg_release}", e.g. "OpenPKG-CURRENT", "OpenPKG-2-STABLE", "OpenPKG-2.5",
michael@428 209
michael@428 210 =item B<--uuid>
michael@428 211
michael@428 212 Overrides C<${REGISTRY_UUID}> variable in C<${REGISTRY_CONF}> file.
michael@428 213 Indicates the UUID file of the instance.
michael@428 214 This information in submitted via the "uuid_registry", "uuid_instance" and "uuid_platform" attributes of the XML request.
michael@428 215 Defaults to F<${PREFIX}/etc/openpkg/uuid>
michael@428 216
michael@428 217 =item B<--conf>
michael@428 218
michael@428 219 Overrides C<${REGISTRY_CONF}> variable from previous C<${REGISTRY_CONF}> file. Processing
michael@428 220 of the current configuration file is aborted immediately with all variables
michael@428 221 read so far kept. THe new configuration file is read in immediately and
michael@428 222 processing continues there. This works similar to an include but is more
michael@428 223 primitive as it does not allow nesting, only chaining.
michael@428 224 Defaults to F<${PREFIX}/etc/openpkg/register.conf>
michael@428 225
michael@428 226 =item B<--prep>
michael@428 227
michael@428 228 Overrides C<${REGISTRY_PREP}> variable in C<${REGISTRY_CONF}> file.
michael@428 229 File to save a copy of the output from the "preparation" step.
michael@428 230 Defaults to F<${PREFIX}/etc/openpkg/register.prep>
michael@428 231
michael@428 232 =item B<--tran>
michael@428 233
michael@428 234 Overrides C<${REGISTRY_TRAN}> variable in C<${REGISTRY_CONF}> file.
michael@428 235 File to save a copy of the output from the "transaction" step.
michael@428 236 Defaults to F<${PREFIX}/etc/openpkg/register.tran>
michael@428 237
michael@428 238 =item B<--util>
michael@428 239
michael@428 240 Overrides C<${REGISTRY_UTIL}> variable in C<${REGISTRY_CONF}> file.
michael@428 241 File to save a copy of the output from the "utilization" step.
michael@428 242 Defaults to F<${PREFIX}/etc/openpkg/register.util>
michael@428 243
michael@428 244 =item B<--data>
michael@428 245
michael@428 246 Overrides C<${REGISTRY_DATA}> variable in C<${REGISTRY_CONF}> file.
michael@428 247 Comma separated list of tags to prepare. Available tags are "request",
michael@428 248 "package" and "provides". The "request" refers to the whole thing and
michael@428 249 is mandatory. The "package" includes name-version-release information
michael@428 250 for all installed packages and "provides" adds more details required to
michael@428 251 capture package options. For details see OPENPKG_PREP below.
michael@428 252 Defaults to "request,package,provides"
michael@428 253
michael@428 254 =back
michael@428 255
michael@428 256 =head1 FILES
michael@428 257
michael@428 258 The following files are used by B<openpkg register>:
michael@428 259
michael@428 260 =over 4
michael@428 261
michael@428 262 =item OPENPKG_UUID=F<${PREFIX}/etc/openpkg/uuid>
michael@428 263
michael@428 264 UUID_REGISTRY="..."
michael@428 265 UUID_INSTANCE="..."
michael@428 266 UUID_PLATFORM="..."
michael@428 267
michael@428 268 =item OPENPKG_CONF=F<${PREFIX}/etc/openpkg/register.conf>
michael@428 269
michael@428 270 Format suitable for shell evaluation. Interactive mode appends remarked date
michael@428 271 and current settings for reuse as new defaults for future runs. Can be preset
michael@428 272 to customize or automate registration.
michael@428 273
michael@428 274 =item OPENPKG_PREP=F<${PREFIX}/etc/openpkg/register.prep>
michael@428 275
michael@428 276 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
michael@428 277 <!DOCTYPE registry
michael@428 278 PUBLIC "-//OpenPKG//DTD OpenPKG Registry 0.0.1//EN"
michael@428 279 "http://registry.openpkg.org/registry.dtd" []>
michael@428 280 <registry>
michael@428 281 <request id="..."
michael@428 282 registry_user="me@example.com"
michael@428 283 registry_desc="openpkg://rm0.openpkg.net/openpkg-dev"
michael@428 284 registry_plat="ix86-freebsd6.1"
michael@428 285 registry_orel="OpenPKG-CURRENT"
michael@428 286 uuid_registry="..."
michael@428 287 uuid_instance="..."
michael@428 288 uuid_platform="..."
michael@428 289 />
michael@428 290 <package id="..." name="ssmtp" version="2.61" release="20050608">
michael@428 291 <provides name="ssmtp::with_ssl" flag="=" version="no"/>
michael@428 292 <provides name="MTA" flag="" version=""/>
michael@428 293 <provides name="ssmtp" flag="=" version="2.61-20050608"/>
michael@428 294 </package>
michael@428 295 </registry>
michael@428 296
michael@428 297 The XML request starts with <?xml version ...> and <!DOCTYPE registry ...>
michael@428 298 headers followed by a <registry> container. The request is inside a <request>
michael@428 299 tag. Successful submission into the XMLdump form requires the headers and
michael@428 300 exactly one container. It is possible to merge multiple requests into a single
michael@428 301 container manually or otherwise and submit them all at once.
michael@428 302
michael@428 303 =item OPENPKG_TRAN=F<${PREFIX}/etc/openpkg/register.tran>
michael@428 304
michael@428 305 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
michael@428 306 <!DOCTYPE registry
michael@428 307 PUBLIC "-//OpenPKG//DTD OpenPKG Registry 0.0.1//EN"
michael@428 308 "http://registry.openpkg.org/registry.dtd" []>
michael@428 309 <registry>
michael@428 310 <response id="..." done="yes">openpkg://rm0.openpkg.net/openpkg-dev</response>
michael@428 311 </registry>
michael@428 312
michael@428 313 The XML response starts with <?xml version ...> and <!DOCTYPE registry ...>
michael@428 314 headers followed by a <registry> container. The response is inside a <request>
michael@428 315 tag. The data carried in the tag comes from the "description" column on the
michael@428 316 "association" page of the web form and can be edited on the server side.
michael@428 317
michael@428 318 =item OPENPKG_UTIL=F<${PREFIX}/etc/openpkg/register.util>
michael@428 319
michael@428 320 REGISTRY_DBID="..."
michael@428 321 REGISTRY_DONE="yes"
michael@428 322 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix"
michael@428 323
michael@428 324 =back
michael@428 325
michael@428 326 =head1 EXAMPLES
michael@428 327
michael@428 328 # su - openpkg-mop
michael@428 329 $ openpkg register --printstatus
michael@428 330 REGISTRY_DBID="..."
michael@428 331 REGISTRY_DONE="yes"
michael@428 332 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix"
michael@428 333 $ openpkg register --printstatus >/dev/null && echo "Yup"
michael@428 334 Yup
michael@428 335 $ eval `openpkg register --printstatus`; echo DONE=$REGISTRY_DONE
michael@428 336 DONE=yes
michael@428 337 $ openpkg register --mode=wipe
michael@428 338 $ openpkg register --printstatus || echo "Nope"
michael@428 339 Nope
michael@428 340 $ openpkg register --user=thl@openpkg.net --mode=post
michael@428 341 REGISTRY_DBID="...."
michael@428 342 REGISTRY_DONE="yes"
michael@428 343 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix"
michael@428 344 $ openpkg register --printstatus >/dev/null && echo "Yup"
michael@428 345 Yup
michael@428 346 $ openpkg register --rewriteurls http://download.openpkg.org/foo/bar
michael@428 347 ftp://...:...@download.openpkg.org/foo/bar
michael@428 348
michael@428 349 =head1 SEE ALSO
michael@428 350
michael@428 351 bash(1), C<openpkg man uuid>, C<http://registry.openpkg.org/>
michael@428 352
michael@428 353 =head1 AUTHOR
michael@428 354
michael@428 355 Thomas Lotterer E<lt>thl@openpkg.orgE<gt>
michael@428 356
michael@428 357 =cut
michael@428 358

mercurial