def main(): parser = argparse.ArgumentParser() parser.add_argument("-r", "--region", dest="regions", action="append", help="optional list of regions") parser.add_argument("-q", "--quiet", action="store_true", help="Supress logging messages") parser.add_argument("-j", "--concurrency", type=int, default=4) args = parser.parse_args() logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s") if not args.quiet: log.setLevel(logging.DEBUG) else: log.setLevel(logging.ERROR) logging.getLogger("boto").setLevel(logging.CRITICAL) if not args.regions: args.regions = DEFAULT_REGIONS instances_to_tag = [] for r in args.regions: instances_to_tag.extend(get_instances_to_tag(r)) if instances_to_tag: populate_spot_requests_cache( r, [i.spot_instance_request_id for i in instances_to_tag]) for i in instances_to_tag: log.debug("tagging %s", i) copy_spot_request_tags(i)
def test_copy_spot_request_tags(m_get_spot_request): req = mock.Mock() req.tags = {"t1": "v1", "t2": "v2", "t3": "v3"} m_get_spot_request.return_value = req i = mock.Mock() i.tags = {"t3": "v0", "t4": "vx"} i.id = "id1" copy_spot_request_tags(i) i.connection.create_tags.assert_called_once_with( ["id1"], {"t1": "v1", "t2": "v2", "moz-state": "ready"})
def test_copy_spot_request_tags(m_get_spot_request): req = mock.Mock() req.tags = {"t1": "v1", "t2": "v2", "t3": "v3"} m_get_spot_request.return_value = req i = mock.Mock() i.tags = {"t3": "v0", "t4": "vx"} i.id = "id1" copy_spot_request_tags(i) i.connection.create_tags.assert_called_once_with(["id1"], { "t1": "v1", "t2": "v2", "moz-state": "ready" })
def test_no_req(m_get_spot_request): m_get_spot_request.return_value = None i = mock.Mock() copy_spot_request_tags(i) i.connection.create_tags.assert_not_called()