File: UrlCmd.rst

package info (click to toggle)
ecflow 5.15.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,868 kB
  • sloc: cpp: 269,341; python: 22,756; sh: 3,609; perl: 770; xml: 333; f90: 204; ansic: 141; makefile: 70
file content (55 lines) | stat: -rw-r--r-- 1,276 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ecflow.UrlCmd
/////////////


.. py:class:: UrlCmd
   :module: ecflow

   Bases: :py:class:`~Boost.Python.instance`

Executes a command ECF_URL_CMD to display a url.

It needs the definition structure and the path to node.

Constructor::

   UrlCmd(defs, node_path)
      defs_ptr  defs   : pointer to a definition structure
      string node_path : The node path.


Exceptions

- raises RuntimeError if the definition is empty
- raises RuntimeError if the node path is empty
- raises RuntimeError if the node path cannot be found in the definition
- raises RuntimeError if ECF_URL_CMD not defined or if variable substitution fails

Usage:
Lets assume that the server has the following definition::

   suite s
      edit ECF_URL_CMD  "${BROWSER:=firefox} -new-tab %ECF_URL_BASE%/%ECF_URL%"
      edit ECF_URL_BASE "http://www.ecmwf.int"
      family f
         task t1
            edit ECF_URL "publications/manuals/ecflow"
         task t2
            edit ECF_URL index.html

::

   try:
      ci = Client()
      ci.sync_local()
      url = UrlCmd(ci.get_defs(),'/suite/family/task')
      print(url.execute())
   except RuntimeError, e:
       print(str(e))


.. py:method:: UrlCmd.execute( (UrlCmd)arg1) -> None :
   :module: ecflow

Displays url in the chosen browser