annotate usr/src/cmd/beadm/BootEnvironment.py @ 13025:3c7681e3e323

PSARC 2010/059 SNAP BE Management 6964804 SNAP BE management into ON 6971379 libbe should capture and give useful error when installgrub or ict.py fails. 6971390 beadm does not support labeled brand zones 6971394 BEADM_ERR_BE_DOES_NOT_EXIST has an extra space 6971397 libbe error messages need internationalization 6971402 Remove be_get_last_zone_be_callback 6971409 be_create_menu returns errors from both be_errno_t and errno sets
author Glenn Lagasse <glenn.lagasse@oracle.com>
date Wed, 04 Aug 2010 12:28:19 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13025
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
1 # CDDL HEADER START
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
2 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
3 # The contents of this file are subject to the terms of the
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
4 # Common Development and Distribution License (the "License").
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
5 # You may not use this file except in compliance with the License.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
6 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
7 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
8 # or http://www.opensolaris.org/os/licensing.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
9 # See the License for the specific language governing permissions
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
10 # and limitations under the License.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
11 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
12 # When distributing Covered Code, include this CDDL HEADER in each
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
13 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
14 # If applicable, add the following below this CDDL HEADER, with the
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
15 # fields enclosed by brackets "[]" replaced with your own identifying
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
16 # information: Portions Copyright [yyyy] [name of copyright owner]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
17 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
18 # CDDL HEADER END
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
19 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
20
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
21 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
22 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
23 #
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
24
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
25 """Boot Environment classes used by beadm."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
26
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
27 import datetime
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
28
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
29 class BootEnvironment:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
30 """Boot Environment object that is used by beadm to manage command line
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
31 options, arguments and the log."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
32
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
33 def __init__(self):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
34 self.trgt_rpool = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
35 self.trgt_be_name_or_snapshot = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
36 self.src_be_name_or_snapshot = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
37 self.properties = {}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
38 self.log_id = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
39 self.log = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
40 self.msg_buf = {}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
41 self.description = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
42
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
43 class listBootEnvironment:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
44 """Base class for beadm list
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
45 Determine the BE's to display. Prints command output according to option:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
46 -d - dataset
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
47 -s - snapshot
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
48 -a - all (both dataset and snapshot)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
49 <none> - only BE information
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
50 The -H option produces condensed, parseable output
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
51 The ';' delimits each field in the output. BEs with multiple
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
52 datasets will have multiple lines in the output.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
53 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
54
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
55 def list(self, be_list, ddh, be_name):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
56 """ print all output for beadm list command
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
57 be_list - list of all BEs
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
58 ddh - if True, Do not Display Headers - just parseable data
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
59 be_name - user-specified BE, if any
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
60
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
61 returns 0 for success
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
62 side effect: beadm list output printed to stdout
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
63 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
64
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
65 #If we're listing Headers, initialize the array holding the
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
66 #column widths with the header widths themselves. Later on,
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
67 #the data in this array will get adjusted as we process actual
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
68 #row data and find that a piece of data is wider than its
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
69 #column header.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
70 bemaxout = [0 for i in range(len(self.hdr[0]))]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
71 if not ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
72 #iterate all header rows since their fields may not
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
73 #be of equal length.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
74 for header in self.hdr:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
75 icol = 0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
76 for hc in header:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
77 if len(hc) + 1 > bemaxout[icol]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
78 bemaxout[icol] = len(hc) + 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
79 icol += 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
80
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
81 #collect BEs
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
82 beout = {} #matrix of output text [row][attribute]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
83 beoutname = {} #list of BE names [row]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
84 be_space = {} #space used totals for BE [BE name]['space_used','ibei']
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
85 ibe = 0 #BE index
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
86 spacecol = -1 #to contain column where space used is displayed
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
87 for be in be_list:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
88 if 'orig_be_name' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
89 cur_be = be['orig_be_name']
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
90 cur_be_obj = be
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
91
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
92 #if BE name specified, collect matching BEs
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
93 if be_name is not None and not self.beMatch(be, be_name):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
94 continue
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
95 attrs = ()
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
96 #identify BE|dataset|snapshot attributes
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
97 att = ''
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
98 for att in ('orig_be_name', 'dataset', 'snap_name'):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
99 if att in be and att in self.lattrs:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
100 attrs = self.lattrs[att]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
101 if att == 'orig_be_name':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
102 be_space[cur_be] = {}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
103 be_space[cur_be]['space_used'] = 0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
104 be_space[cur_be]['ibe'] = ibe
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
105 if not ddh and len(cur_be) + 1 > bemaxout[0]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
106 bemaxout[0] = len(cur_be) + 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
107 break
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
108 beout[ibe] = {}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
109 beoutname[ibe] = cur_be
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
110
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
111 icol = 0 #first column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
112 for at in attrs:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
113 #for option -s, withhold subordinate datasets
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
114 if self.__class__.__name__ == 'SnapshotList' and \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
115 att == 'snap_name' and 'snap_name' in be and \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
116 '/' in be[att]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
117 break
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
118 #convert output to readable format and save
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
119 save = self.getAttr(at, be, ddh, cur_be_obj)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
120 beout[ibe][at] = save
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
121 #maintain maximum column widths
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
122 if not ddh and len(save) + 1 > bemaxout[icol]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
123 bemaxout[icol] = len(save) + 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
124 #sum all snapshots for BE
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
125 if at == 'space_used' and 'space_used' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
126 spacecol = icol
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
127 icol += 1 #next column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
128 ibe += 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
129 if 'space_used' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
130 #sum all snapshots and datasets for BE in 'beadm list'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
131 if isinstance(self, BEList):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
132 be_space[cur_be]['space_used'] += be.get('space_used')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
133 elif cur_be in be_space and \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
134 ('space_used' not in be_space[cur_be] or
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
135 be_space[cur_be]['space_used'] == 0):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
136 #list space used separately for other options
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
137 be_space[cur_be]['space_used'] = be.get('space_used')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
138
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
139 #output format total lengths for each BE with any snapshots
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
140 for cur_be in be_space:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
141 save = self.getSpaceValue(be_space[cur_be]['space_used'], ddh)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
142 ibe = be_space[cur_be]['ibe']
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
143 beout[ibe]['space_used'] = save
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
144 #expand column if widest column entry
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
145 if (spacecol != -1) and \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
146 (not ddh and len(save) + 1 > bemaxout[spacecol]):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
147 bemaxout[spacecol] = len(save) + 1
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
148
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
149 #print headers in columns
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
150 if not ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
151 for header in self.hdr:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
152 outstr = ''
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
153 for icol in range(len(header)):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
154 outstr += header[icol].ljust(bemaxout[icol])
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
155 if outstr != '':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
156 print outstr
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
157
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
158 #print collected output in columns
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
159 outstr = ''
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
160 prev_be = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
161 cur_be = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
162 for ibe in beout: #index output matrix
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
163 if beoutname[ibe] != None:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
164 cur_be = beoutname[ibe]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
165 #find attributes for BE type
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
166 curtype = None
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
167 for att in ('orig_be_name', 'dataset', 'snap_name'):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
168 if att in beout[ibe]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
169 attrs = self.lattrs[att]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
170 curtype = att
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
171 break
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
172
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
173 if curtype == None: #default to BE
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
174 curtype = 'orig_be_name'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
175 if 'orig_be_name' in self.lattrs:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
176 attrs = self.lattrs['orig_be_name']
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
177 else: attrs = ()
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
178
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
179 if not ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
180 if prev_be != cur_be and cur_be != None:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
181 #for -d,-s,-a, print BE alone on line
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
182 if self.__class__.__name__ != 'BEList':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
183 print cur_be
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
184 prev_be = cur_be
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
185
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
186 #print for one BE/snapshot/dataset
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
187 icol = 0 #first column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
188
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
189 #if this is a 'dataset' or 'snap_name', start line with BE
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
190 #name token
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
191 if ddh and curtype != 'orig_be_name':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
192 outstr = cur_be
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
193
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
194 for at in attrs: #for each attribute specified in table
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
195 if ddh: #add separators for parsing
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
196 if outstr != '':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
197 outstr += ';' #attribute separator
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
198 if at in beout[ibe] and beout[ibe][at] != '-' and \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
199 beout[ibe][at] != '':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
200 outstr += beout[ibe][at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
201 else: #append text justified in column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
202 if at in beout[ibe]:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
203 outstr += beout[ibe][at].ljust(bemaxout[icol])
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
204 icol += 1 #next column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
205
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
206 if outstr != '':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
207 print outstr
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
208 outstr = ''
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
209
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
210 return 0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
211
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
212 def beMatch(self, be, be_name):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
213 """find match on user-specified BE."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
214
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
215 if 'orig_be_name' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
216 return be.get('orig_be_name') == be_name
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
217 if 'dataset' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
218 if be.get('dataset') == be_name:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
219 return True
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
220 out = be.get('dataset').split("/")
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
221 return out[0] == be_name
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
222 if 'snap_name' in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
223 if be.get('snap_name') == be_name:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
224 return True
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
225 out = be.get('snap_name').split('@')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
226 if out[0] == be_name:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
227 return True
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
228 out = be.get('snap_name').split('/')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
229 return out[0] == be_name
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
230 return False
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
231
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
232 def getAttr(self, at, be, ddh, beobj):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
233 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
234 Extract information by attribute and format for printing
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
235 returns '?' if normally present attribute not found - error.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
236 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
237 if at == 'blank':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
238 return ' '
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
239 if at == 'dash':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
240 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
241 if at == 'orig_be_name':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
242 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
243 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
244 ret = be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
245 if ddh or self.__class__.__name__ == 'BEList':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
246 return ret
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
247 return ' ' + ret #indent
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
248 if at == 'snap_name':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
249 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
250 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
251 if self.__class__.__name__ == 'CompleteList':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
252 ret = self.prependRootDS(be[at], beobj)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
253 else:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
254 ret = be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
255 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
256 return ret
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
257 return ' ' + ret #indent
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
258 if at == 'dataset':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
259 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
260 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
261 if self.__class__.__name__ == 'DatasetList' or \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
262 self.__class__.__name__ == 'CompleteList':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
263 ret = self.prependRootDS(be[at], beobj)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
264 else:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
265 ret = be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
266 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
267 return ret
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
268 return ' ' + ret #indent
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
269 if at == 'active':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
270 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
271 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
272 ret = ''
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
273 if 'active' in be and be['active']:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
274 ret += 'N'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
275 if 'active_boot' in be and be['active_boot']:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
276 ret += 'R'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
277 if ret == '':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
278 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
279 return ret
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
280 if at == 'mountpoint':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
281 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
282 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
283 if 'mounted' not in be or not be['mounted']:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
284 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
285 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
286 if at == 'space_used':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
287 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
288 return '0'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
289 return self.getSpaceValue(be[at], ddh)
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
290 if at == 'mounted':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
291 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
292 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
293 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
294 if at == 'date':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
295 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
296 return '?'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
297 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
298 return str(be[at]) #timestamp in seconds
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
299 sec = str(datetime.datetime.fromtimestamp(be[at]))
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
300 return sec[0:len(sec)-3] #trim seconds
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
301 if at == 'policy':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
302 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
303 return '?'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
304 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
305 if at == 'root_ds':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
306 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
307 return '?'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
308 if ddh or self.__class__.__name__ == 'BEList':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
309 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
310 return ' ' + be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
311 if at == 'uuid_str':
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
312 if at not in be:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
313 return '-'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
314 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
315 #default case - no match on attribute
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
316 return be[at]
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
317
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
318 def getSpaceValue(self, num, ddh):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
319 """Readable formatting for disk space size."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
320
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
321 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
322 return str(num) #return size in bytes as string
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
323
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
324 kilo = 1024.0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
325 mega = 1048576.0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
326 giga = 1073741824.0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
327 tera = 1099511627776.0
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
328
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
329 if num == None:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
330 return '0'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
331 if num < kilo:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
332 return str(num) + 'B'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
333 if num < mega:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
334 return str('%.1f' % (num / kilo)) + 'K'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
335 if num < giga:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
336 return str('%.2f' % (num / mega)) + 'M'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
337 if num < tera:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
338 return str('%.2f' % (num / giga)) + 'G'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
339 return str('%.2f' % (num / tera)) + 'T'
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
340
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
341 def prependRootDS(self, val, beobj):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
342 """Prepend root dataset name with BE name stripped."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
343
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
344 root_ds = beobj.get('root_ds')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
345 return root_ds[0:root_ds.rfind('/')+1] + val
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
346
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
347
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
348 """Top level "beadm list" derived classes defined here.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
349 Only table definition is done here - all methods are in the base class.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
350 Tables driving list:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
351 hdr - list of text to output for each column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
352 lattrs - dictionary of attributes
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
353 Each entry specifies either BE, dataset, snapshot with
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
354 an attribute key:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
355 orig_be_name - for BEs
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
356 dataset - for datasets
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
357 snap_name - for snapshots
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
358 Each list item in entry indicates specific datum for
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
359 column
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
360 Number of hdr columns must equal number of lattrs entries
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
361 unless ddh (dontDisplayHeaders) is true.
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
362 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
363 class BEList(listBootEnvironment):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
364 """specify header and attribute information for BE-only output"""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
365
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
366 def __init__(self, ddh):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
367 """Init function for the class."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
368 self.hdr = \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
369 ('BE','Active','Mountpoint','Space','Policy','Created'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
370 ('--','------','----------','-----','------','-------')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
371 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
372 self.lattrs = {'orig_be_name':('orig_be_name', 'uuid_str',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
373 'active', 'mountpoint', 'space_used', 'policy',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
374 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
375 else:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
376 self.lattrs = {'orig_be_name':('orig_be_name', 'active',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
377 'mountpoint', 'space_used', 'policy', 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
378
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
379 class DatasetList(listBootEnvironment):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
380 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
381 specify header and attribute information for dataset output,
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
382 -d option
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
383 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
384 def __init__(self, ddh):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
385 """Init function for the class."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
386
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
387 self.hdr = \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
388 ('BE/Dataset','Active','Mountpoint','Space','Policy','Created'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
389 ('----------','------','----------','-----','------','-------')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
390 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
391 self.lattrs = { \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
392 'orig_be_name':('orig_be_name', 'root_ds', 'active',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
393 'mountpoint', 'space_used', 'policy', 'date'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
394 'dataset':('dataset', 'dash', 'mountpoint', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
395 'policy', 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
396 else:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
397 self.lattrs = { \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
398 'orig_be_name':('root_ds', 'active', 'mountpoint',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
399 'space_used', 'policy', 'date'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
400 'dataset':('dataset', 'dash', 'mountpoint', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
401 'policy', 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
402
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
403 class SnapshotList(listBootEnvironment):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
404 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
405 specify header and attribute information for snapshot output,
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
406 -s option
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
407 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
408 def __init__(self, ddh):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
409 """Init function for the class."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
410
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
411 self.hdr = \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
412 ('BE/Snapshot','Space','Policy','Created'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
413 ('-----------','-----','------','-------')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
414 self.lattrs = {'snap_name':('snap_name', 'space_used', 'policy',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
415 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
416
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
417 class CompleteList(listBootEnvironment):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
418 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
419 specify header and attribute information for BE and/or dataset and/or
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
420 snapshot output,
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
421 -a or -ds options
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
422 """
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
423 def __init__(self, ddh):
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
424 """Init function for the class."""
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
425
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
426 self.hdr = \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
427 ('BE/Dataset/Snapshot','Active','Mountpoint','Space','Policy','Created'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
428 ('-------------------','------','----------','-----','------','-------')
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
429 if ddh:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
430 self.lattrs = { \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
431 'orig_be_name':('orig_be_name', 'root_ds', 'active',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
432 'mountpoint', 'space_used', 'policy', 'date'),
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
433 'dataset':('dataset', 'dash', 'mountpoint', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
434 'policy', 'date'),
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
435 'snap_name':('snap_name', 'dash', 'dash', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
436 'policy', 'date')}
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
437 else:
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
438 self.lattrs = { \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
439 'orig_be_name':('root_ds', 'active', 'mountpoint',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
440 'space_used', 'policy', 'date'), \
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
441 'dataset':('dataset', 'dash', 'mountpoint', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
442 'policy', 'date'),
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
443 'snap_name':('snap_name', 'dash', 'dash', 'space_used',
3c7681e3e323 PSARC 2010/059 SNAP BE Management
Glenn Lagasse <glenn.lagasse@oracle.com>
parents:
diff changeset
444 'policy', 'date')}