def test_time_series_iter_issues_many_pages(self): """Test against issues endpoint.""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/issues" item_key = "issues" streamer = cloudpassage.TimeSeries(session, start_time, start_url, item_key) dupes = [] item_counter = 0 item_ids = set([]) for item in streamer: print("Item counter: %s Item ID: %s Item timestamp: %s" % (item_counter, item["id"], item["created_at"])) assert "id" in item if item["id"] in item_ids: print("Duplicate ^^^") dupes.append(item["id"]) item_ids.add(item["id"]) item_counter += 1 if item_counter > 5: break if dupes: print("Dupes:") pprint.pprint(dupes) assert False
def test_time_series_iter_events_many_pages_internal_killswitch(self): """Test triggering exit w/ StopIteration in TimeSeries().__iter__()""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/events" item_key = "events" streamer = cloudpassage.TimeSeries(session, start_time, start_url, item_key) dupes = [] item_counter = 0 item_ids = set([]) for item in streamer: print("Item counter: %s Item ID: %s Item timestamp: %s" % (item_counter, item["id"], item["created_at"])) assert "id" in item if item["id"] in item_ids: print("Duplicate ^^^") dupes.append(item["id"]) item_ids.add(item["id"]) item_counter += 1 if item_counter > 60: streamer.stop = True # This triggers a StopIteration if dupes: print("Dupes:") pprint.pprint(dupes) assert False
def test_scan_history_by_date(self): """This test requires scan results in your account, produced in the last week. If no such records exist, this test will fail. """ scan = self.build_scan_object() until = utility.time_string_now() since = datetime.datetime.utcnow() - datetime.timedelta(weeks=1) scan_list = scan.scan_history(max_pages=2, since=since, until=until) assert "id" in scan_list[0]
def test_fim_policy_create_delete(self): request = self.build_fim_policy_object() with open(policy_file, 'r') as policy_file_object: policy_body = policy_file_object.read() pol_meta = utility.determine_policy_metadata(policy_body) self.remove_policy_by_name(pol_meta["policy_name"]) policy_id = request.create(policy_body) request.delete(policy_id) with pytest.raises(cloudpassage.CloudPassageResourceExistence) as e: request.describe(policy_id) assert policy_id in str(e)
def test_time_series_iter_events_many_pages_fail(self): """Test against events endpoint.""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/eventss" item_key = "events" with pytest.raises(cloudpassage.CloudPassageValidation): cloudpassage.TimeSeries(session, start_time, start_url, item_key) assert False # Should bail and never hit this assertion. assert True
def test_lids_policy_create_delete(self): deleted = False request = self.build_lids_policy_object() with open(policy_file, 'rb') as policy_file_object: policy_body = policy_file_object.read() pol_meta = utility.determine_policy_metadata(policy_body) self.remove_policy_by_name(pol_meta["policy_name"]) policy_id = request.create(policy_body) request.delete(policy_id) try: request.describe(policy_id) except cloudpassage.CloudPassageResourceExistence: deleted = True assert deleted
def test_configuration_policy_create_delete(self): """This test attempts to create and delete a configuration policy. """ request = self.build_config_policy_object() # newname = "Functional Test Name Change" with open(policy_file, 'r') as policy_file_object: policy_body = policy_file_object.read() pol_meta = utility.determine_policy_metadata(policy_body) self.remove_policy_by_name(pol_meta["policy_name"]) pol_dict = json.loads(policy_body) pol_dict["policy"]["name"] = "testpol 1" policy_id = request.create(json.dumps(pol_dict)) request.delete(policy_id) with pytest.raises(cloudpassage.CloudPassageResourceExistence) as e: request.describe(policy_id) assert policy_id in str(e)
from cloudpassage.exceptions import CloudPassageValidation # noqa: F401 from cloudpassage.exceptions import CloudPassageRateLimit # noqa: F401 from cloudpassage.firewall_policy import FirewallInterface # noqa: F401 from cloudpassage.firewall_policy import FirewallPolicy # noqa: F401 from cloudpassage.firewall_policy import FirewallRule # noqa: F401 from cloudpassage.firewall_policy import FirewallService # noqa: F401 from cloudpassage.firewall_policy import FirewallZone # noqa: F401 from cloudpassage.halo import HaloSession # noqa: F401 from cloudpassage.http_helper import HttpHelper # noqa: F401 from cloudpassage.issue import Issue # noqa: F401 from cloudpassage.lids_policy import LidsPolicy # noqa: F401 from cloudpassage.local_user_account import LocalUserAccount # noqa: F401 from cloudpassage.local_user_group import LocalUserGroup # noqa: F401 from cloudpassage.scan import Scan # noqa: F401 from cloudpassage.server import Server # noqa: F401 from cloudpassage.server_group import ServerGroup # noqa: F401 from cloudpassage.special_events_policy import SpecialEventsPolicy # NOQA from cloudpassage.system_announcement import SystemAnnouncement # noqa: F401 from cloudpassage.time_series import TimeSeries # noqa: F401 from cloudpassage.utility import Utility as init_util minimum = {"2": "2.7.10", "3": "3.6.5"} installed = init_util.get_installed_python_version() if init_util.verify_python_version(installed, minimum) is False: err_msg = "Warning: Minimum supported Python version %s" % minimum print(err_msg) __author__ = "CloudPassage" __version__ = "1.2.3" __license__ = "BSD"
def test_one_day_ago_until_now(self): event = self.create_event_obj() until = utility.time_string_now() since = datetime.datetime.utcnow() - datetime.timedelta(days=1) event_list = event.list_all(10, since=since, until=until) assert "id" in event_list[0]