@@ 232-279 (lines=48) @@ | ||
229 | ||
230 | return self._send_xml_command(cmd) |
|
231 | ||
232 | def modify_filter( |
|
233 | self, |
|
234 | filter_id: str, |
|
235 | *, |
|
236 | comment: Optional[str] = None, |
|
237 | name: Optional[str] = None, |
|
238 | term: Optional[str] = None, |
|
239 | filter_type: Optional[FilterType] = None, |
|
240 | ) -> Any: |
|
241 | """Modifies an existing filter. |
|
242 | ||
243 | Arguments: |
|
244 | filter_id: UUID of the filter to be modified |
|
245 | comment: Comment on filter. |
|
246 | name: Name of filter. |
|
247 | term: Filter term. |
|
248 | filter_type: Resource type filter applies to. |
|
249 | ||
250 | Returns: |
|
251 | The response. See :py:meth:`send_command` for details. |
|
252 | """ |
|
253 | if not filter_id: |
|
254 | raise RequiredArgument( |
|
255 | function=self.modify_filter.__name__, argument='filter_id' |
|
256 | ) |
|
257 | ||
258 | cmd = XmlCommand("modify_filter") |
|
259 | cmd.set_attribute("filter_id", filter_id) |
|
260 | ||
261 | if comment: |
|
262 | cmd.add_element("comment", comment) |
|
263 | ||
264 | if name: |
|
265 | cmd.add_element("name", name) |
|
266 | ||
267 | if term: |
|
268 | cmd.add_element("term", term) |
|
269 | ||
270 | if filter_type: |
|
271 | if not isinstance(filter_type, FilterType): |
|
272 | raise InvalidArgumentType( |
|
273 | function=self.modify_filter.__name__, |
|
274 | argument='filter_type', |
|
275 | arg_type=FilterType.__name__, |
|
276 | ) |
|
277 | cmd.add_element("type", filter_type.value) |
|
278 | ||
279 | return self._send_xml_command(cmd) |
|
280 | ||
@@ 110-153 (lines=44) @@ | ||
107 | cmd.add_element("copy", filter_id) |
|
108 | return self._send_xml_command(cmd) |
|
109 | ||
110 | def create_filter( |
|
111 | self, |
|
112 | name: str, |
|
113 | *, |
|
114 | filter_type: Optional[FilterType] = None, |
|
115 | comment: Optional[str] = None, |
|
116 | term: Optional[str] = None, |
|
117 | ) -> Any: |
|
118 | """Create a new filter |
|
119 | ||
120 | Arguments: |
|
121 | name: Name of the new filter |
|
122 | filter_type: Filter for entity type |
|
123 | comment: Comment for the filter |
|
124 | term: Filter term e.g. 'name=foo' |
|
125 | ||
126 | Returns: |
|
127 | The response. See :py:meth:`send_command` for details. |
|
128 | """ |
|
129 | if not name: |
|
130 | raise RequiredArgument( |
|
131 | function=self.create_filter.__name__, argument="name" |
|
132 | ) |
|
133 | ||
134 | cmd = XmlCommand("create_filter") |
|
135 | _xmlname = cmd.add_element("name", name) |
|
136 | ||
137 | if comment: |
|
138 | cmd.add_element("comment", comment) |
|
139 | ||
140 | if term: |
|
141 | cmd.add_element("term", term) |
|
142 | ||
143 | if filter_type: |
|
144 | if not isinstance(filter_type, FilterType): |
|
145 | raise InvalidArgumentType( |
|
146 | function=self.create_filter.__name__, |
|
147 | argument="filter_type", |
|
148 | arg_type=FilterType.__name__, |
|
149 | ) |
|
150 | ||
151 | cmd.add_element("type", filter_type.value) |
|
152 | ||
153 | return self._send_xml_command(cmd) |
|
154 | ||
155 | def delete_filter( |
|
156 | self, filter_id: str, *, ultimate: Optional[bool] = False |