Completed
Pull Request — master (#2977)
by Lakshmi
05:22
created

TimerBranch.__init__()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
1
# Licensed to the StackStorm, Inc ('StackStorm') under one or more
2
# contributor license agreements.  See the NOTICE file distributed with
3
# this work for additional information regarding copyright ownership.
4
# The ASF licenses this file to You under the Apache License, Version 2.0
5
# (the "License"); you may not use this file except in compliance with
6
# the License.  You may obtain a copy of the License at
7
#
8
#     http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15
16
from st2client.models import Timer
17
from st2client.commands import resource
18
19
20
class TimerBranch(resource.ResourceBranch):
21
    def __init__(self, description, app, subparsers, parent_parser=None):
22
        super(TimerBranch, self).__init__(
23
            Timer, description, app, subparsers,
24
            parent_parser=parent_parser,
25
            read_only=True,
26
            commands={
27
                'list': TimerListCommand,
28
                'get': TimerGetCommand
29
            })
30
31
32
class TimerListCommand(resource.ResourceListCommand):
33
    display_attributes = ['id', 'pack', 'name', 'type', 'parameters']
34
35
    def __init__(self, resource, *args, **kwargs):
0 ignored issues
show
Comprehensibility Bug introduced by
resource is re-defining a name which is already available in the outer-scope (previously defined on line 17).

It is generally a bad practice to shadow variables from the outer-scope. In most cases, this is done unintentionally and might lead to unexpected behavior:

param = 5

class Foo:
    def __init__(self, param):   # "param" would be flagged here
        self.param = param
Loading history...
36
        super(TimerListCommand, self).__init__(resource, *args, **kwargs)
37
38
        self.parser.add_argument('-ty', '--timer-type', type=str, dest='timer_type',
39
                                 help=('List N most recent %s.' %
40
                                       resource.get_plural_display_name().lower()),
41
                                 required=False)
42
43
    @resource.add_auth_token_to_kwargs_from_cli
44
    def run(self, args, **kwargs):
45
        if args.timer_type:
46
            kwargs['timer_type'] = args.timer_type
47
48
        if kwargs:
49
            return self.manager.query(**kwargs)
50
        else:
51
            return self.manager.get_all(**kwargs)
52
53
54
class TimerGetCommand(resource.ResourceGetCommand):
55
    display_attributes = ['all']
56
    attribute_display_order = ['type', 'pack', 'name', 'description', 'parameters']
57