@@ -90,3 +90,70 @@ def take_action(self, parsed_args):
9090 s , columns ,
9191 formatters = {},
9292 ) for s in data ))
93+
94+
95+ class SetType (command .Command ):
96+ """Set type command"""
97+
98+ api = 'volume'
99+ log = logging .getLogger (__name__ + '.SetType' )
100+
101+ def get_parser (self , prog_name ):
102+ parser = super (SetType , self ).get_parser (prog_name )
103+ parser .add_argument (
104+ 'type' ,
105+ metavar = '<type>' ,
106+ help = 'Type ID to update' ,
107+ )
108+ parser .add_argument (
109+ 'meta_data' ,
110+ metavar = '<key=value>' ,
111+ help = 'meta-data to add to volume type' ,
112+ )
113+ return parser
114+
115+ def take_action (self , parsed_args ):
116+ self .log .debug ('take_action(%s)' % parsed_args )
117+
118+ meta = dict (v .split ('=' ) for v in parsed_args .meta_data .split (' ' ))
119+ volume_client = self .app .client_manager .volume
120+ volume_type = volume_client .volume_types .get (
121+ parsed_args .type
122+ )
123+
124+ volume_type .set_keys (meta )
125+
126+ return
127+
128+
129+ class UnsetType (command .Command ):
130+ """Unset type command"""
131+
132+ api = 'volume'
133+ log = logging .getLogger (__name__ + '.UnsetType' )
134+
135+ def get_parser (self , prog_name ):
136+ parser = super (UnsetType , self ).get_parser (prog_name )
137+ parser .add_argument (
138+ 'type' ,
139+ metavar = '<type>' ,
140+ help = 'Type ID to update' ,
141+ )
142+ parser .add_argument (
143+ 'meta_data' ,
144+ metavar = '<key>' ,
145+ help = 'meta-data to remove from volume type (key only)' ,
146+ )
147+ return parser
148+
149+ def take_action (self , parsed_args ):
150+ self .log .debug ('take_action(%s)' % parsed_args )
151+ volume_client = self .app .client_manager .volume
152+ volume_type = volume_client .volume_types .get (
153+ parsed_args .type
154+ )
155+ key_list = []
156+ key_list .append (parsed_args .meta_data )
157+ volume_type .unset_keys (key_list )
158+
159+ return
0 commit comments