Skip to content

Commit 6204f80

Browse files
committed
fix examples
1 parent 104bb9b commit 6204f80

File tree

3 files changed

+36
-27
lines changed

3 files changed

+36
-27
lines changed
Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
1-
from cbapi.protection import CbEnterpriseProtectionAPI
2-
from cbapi.protection.models import Computer
1+
from cbapi.example_helpers import get_cb_protection_object, build_cli_parser
2+
from cbapi.protection.models import Computer, Policy
3+
import sys
34

4-
p = CbEnterpriseProtectionAPI()
5+
def main():
6+
parser = build_cli_parser("Revert computers in policy to previous policy")
7+
parser.add_argument("--policy", "-p", help="Policy name or ID", required=True)
8+
args = parser.parse_args()
59

6-
for computer in p.select(Computer).where("policyId:5"):
7-
print("%s was in %s" % (computer.name, computer.policyName))
8-
computer.policyId = computer.previousPolicyId
9-
computer.save()
10-
print ("%s is now in %s" % (computer.name, "is now in", computer.policyName))
10+
p = get_cb_protection_object(args)
11+
12+
try:
13+
policyId = int(args.policy)
14+
except ValueError:
15+
policyId = p.select(Policy).where("name:{}".format(args.policy)).id
16+
17+
for computer in p.select(Computer).where("policyId:{}".format(policyId)):
18+
print("%s was in %s" % (computer.name, computer.policyName))
19+
computer.policyId = computer.previousPolicyId
20+
computer.save()
21+
print("%s is now in %s" % (computer.name, computer.policyName))
22+
23+
if __name__ == '__main__':
24+
sys.exit(main())
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
1-
from cbapi.protection import CbEnterpriseProtectionAPI, Computer
1+
from cbapi.example_helpers import get_cb_protection_object, build_cli_parser
2+
from cbapi.protection.models import Computer
23
from collections import defaultdict
34
import sys
4-
import argparse
5+
from six import iteritems
56

67

78
def main():
8-
parser = argparse.ArgumentParser("delete duplicate computers")
9-
parser.add_argument("--profile", "-p", help="profile name", default="default")
9+
parser = build_cli_parser("Delete duplicate computers")
1010
parser.add_argument("--dry-run", "-d", help="perform a dry run, don't actually delete the computers",
1111
action="store_true", dest="dry_run")
1212

1313
args = parser.parse_args()
14-
p = CbEnterpriseProtectionAPI(profile=args.profile)
14+
p = get_cb_protection_object(args)
1515

1616
computer_list = defaultdict(list)
1717
for computer in p.select(Computer).where("deleted:false"):
1818
computer_list[computer.name].append({"id": computer.id, "offline": computer.daysOffline})
1919

20-
for computer_name, computer_ids in computer_list.iteritems():
20+
for computer_name, computer_ids in iteritems(computer_list):
2121
if len(computer_ids) > 1:
2222
sorted_computers = sorted(computer_ids, key=lambda x: x["offline"], reverse=True)
2323
for computer_id in sorted_computers[:-1]:
24-
print("deleting computer id %d (offline %d days, hostname %s)" % (computer_id["id"],
25-
computer_id["offline"],
26-
computer_name))
27-
if not args.dry_run:
28-
print("deleting from server...")
29-
p.select(Computer, computer_id["id"]).delete()
24+
if computer_id["offline"] > 0:
25+
print("deleting computer id %d (offline %d days, hostname %s)" % (computer_id["id"],
26+
computer_id["offline"],
27+
computer_name))
28+
if not args.dry_run:
29+
print("deleting from server...")
30+
p.select(Computer, computer_id["id"]).delete()
3031

3132
if __name__ == '__main__':
3233
sys.exit(main())

src/cbapi/oldmodels.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313
log = logging.getLogger(__name__)
1414

1515

16-
class UnimplementedError(Exception):
17-
pass
18-
19-
2016
class CreatableModelMixin(object):
2117
pass
2218

@@ -157,10 +153,8 @@ def _attribute(self, attrname, default=None):
157153

158154
def __str__(self):
159155
ret = '{0:s}.{1:s}:\n'.format(self.__class__.__module__, self.__class__.__name__)
160-
try:
156+
if self.webui_link:
161157
ret += "-> available via web UI at %s" % self.webui_link
162-
except UnimplementedError:
163-
pass
164158

165159
ret += u'\n'.join(['%-20s : %s' %
166160
(a, getattr(self, a, "")) for a in self._stat_titles])

0 commit comments

Comments
 (0)