def run(argv=None): ''' Main function of |info_cname|. ''' ff = FFFlash(parsed_args(argv)) ff.log(info.ident) if not ff.access_for('api'): return (not ff.log('error loading API file', level=False)) modified = [] if ff.access_for('sidecars'): modified.append(handle_sidecars(ff)) if ff.access_for('nodelist'): modified.append(handle_nodelist(ff)) if ff.args.dry: ff.log('\n{}'.format(ff.api.pretty()), level='API file preview') else: if any(modified): ff.save() ff.log('saved api file') return (not any(modified))
def test_handle_nodelist_count_some_nodes(tmpdir, fffake): apifile = tmpdir.join('api_file.json') apifile.write_text(dumps({'state': { 'nodes': 0, 'description': '' }}), 'utf-8') nl = tmpdir.join('nodelist.json') def _n(c, o): return {'status': {'clients': c, 'online': o}} dt = [(choice(range(42)), choice([True, False])) for _ in range(23)] nl.write_text( dumps({ 'version': 1, 'nodes': [_n(c, o) for c, o in dt], 'updated_at': 'never' }), 'utf-8') ff = fffake(apifile, nodelist=nl, dry=True) assert ff.api.c.get('state').get('nodes') == 0 assert handle_nodelist(ff) is True assert ff.api.c.get('state').get('nodes') == sum([o for _, o in dt]) assert tmpdir.remove() is None
def run(argv=None): ''' Main function of |info_cname|. ''' ff = FFFlash(parsed_args(argv)) ff.log(info.ident) if not ff.access_for('api'): return (not ff.log('error loading API file', level=False)) modified = [] if ff.access_for('sidecars'): modified.append( handle_sidecars(ff) ) if ff.access_for('nodelist'): modified.append( handle_nodelist(ff) ) if ff.args.dry: ff.log('\n{}'.format(ff.api.pretty()), level='API file preview') else: if any(modified): ff.save() ff.log('saved api file') return (not any(modified))
def test_handle_nodelist_empty_nodelist(tmpdir, fffake): apifile = tmpdir.join("api_file.json") apifile.write_text(dumps({"a": "b"}), "utf-8") nl = tmpdir.join("nodelist.json") nl.write_text(dumps(""), "utf-8") ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False nl.write_text(dumps({"a": "b"}), "utf-8") ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False nl.write_text(dumps({"version": 1, "nodes": [], "updated_at": "never"}), "utf-8") ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None
def test_handle_nodelist_invalid_nodelist_locations(tmpdir, fffake): apifile = tmpdir.join("api_file.json") apifile.write_text(dumps({"a": "b"}), "utf-8") for nodelist in [tmpdir.join("nodelist.json"), "http://localhost/404/not-found/does/not/exist.json"]: ff = fffake(apifile, nodelist=nodelist, dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None
def test_handle_nodelist_invalid_nodelist_locations(tmpdir, fffake): apifile = tmpdir.join('api_file.json') apifile.write_text(dumps({'a': 'b'}), 'utf-8') for nodelist in [ tmpdir.join('nodelist.json'), 'http://localhost/404/not-found/does/not/exist.json', ]: ff = fffake(apifile, nodelist=nodelist, dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None
def test_handle_nodelist_empty_nodelist(tmpdir, fffake): apifile = tmpdir.join('api_file.json') apifile.write_text(dumps({'a': 'b'}), 'utf-8') nl = tmpdir.join('nodelist.json') nl.write_text(dumps(''), 'utf-8') ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False nl.write_text(dumps({'a': 'b'}), 'utf-8') ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False nl.write_text(dumps({ 'version': 1, 'nodes': [], 'updated_at': 'never' }), 'utf-8') ff = fffake(apifile, nodelist=nl, dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None
def test_handle_nodelist_dry_launch_rankfile(tmpdir, fffake): apifile = tmpdir.join("api_file.json") apifile.write_text(dumps({"a": "b"}), "utf-8") nl = tmpdir.join("nodelist.json") nl.write_text(dumps({"version": 0, "nodes": [], "updated_at": "never"}), "utf-8") rf = tmpdir.join("rankfile.json") assert tmpdir.listdir() == [apifile, nl] ff = fffake(apifile, nodelist=nl, rankfile=rf, dry=True) assert handle_nodelist(ff) is False assert tmpdir.listdir() == [apifile, nl] assert tmpdir.remove() is None
def test_handle_nodelist_count_some_nodes(tmpdir, fffake): apifile = tmpdir.join("api_file.json") apifile.write_text(dumps({"state": {"nodes": 0, "description": ""}}), "utf-8") nl = tmpdir.join("nodelist.json") def _n(c, o): return {"status": {"clients": c, "online": o}} dt = [(choice(range(42)), choice([True, False])) for _ in range(23)] nl.write_text(dumps({"version": 1, "nodes": [_n(c, o) for c, o in dt], "updated_at": "never"}), "utf-8") ff = fffake(apifile, nodelist=nl, dry=True) assert ff.api.c.get("state").get("nodes") == 0 assert handle_nodelist(ff) is True assert ff.api.c.get("state").get("nodes") == sum([o for _, o in dt]) assert tmpdir.remove() is None
def test_handle_nodelist_dry_launch_rankfile(tmpdir, fffake): apifile = tmpdir.join('api_file.json') apifile.write_text(dumps({'a': 'b'}), 'utf-8') nl = tmpdir.join('nodelist.json') nl.write_text(dumps({ 'version': 0, 'nodes': [], 'updated_at': 'never' }), 'utf-8') rf = tmpdir.join('rankfile.json') assert tmpdir.listdir() == [apifile, nl] ff = fffake(apifile, nodelist=nl, rankfile=rf, dry=True) assert handle_nodelist(ff) is False assert tmpdir.listdir() == [apifile, nl] assert tmpdir.remove() is None
def test_handle_nodelist_launch_rankfile(tmpdir, fffake): apifile = tmpdir.join("api_file.json") apifile.write_text(dumps({"a": "b"}), "utf-8") nl = tmpdir.join("nodelist.json") nl.write_text(dumps({"version": 0, "nodes": [], "updated_at": "never"}), "utf-8") rf = tmpdir.join("rankfile.json") assert tmpdir.listdir() == [apifile, nl] ff = fffake(apifile, nodelist=nl, rankfile=rf) assert handle_nodelist(ff) is True assert tmpdir.listdir() == [apifile, nl, rf] res = loads(rf.read_text("utf-8")) assert res assert res.get("nodes") == [] assert res.get("updated_at", False) != "never" assert tmpdir.remove() is None
def test_handle_nodelist_launch_rankfile(tmpdir, fffake): apifile = tmpdir.join('api_file.json') apifile.write_text(dumps({'a': 'b'}), 'utf-8') nl = tmpdir.join('nodelist.json') nl.write_text(dumps({ 'version': 0, 'nodes': [], 'updated_at': 'never' }), 'utf-8') rf = tmpdir.join('rankfile.json') assert tmpdir.listdir() == [apifile, nl] ff = fffake(apifile, nodelist=nl, rankfile=rf) assert handle_nodelist(ff) is True assert tmpdir.listdir() == [apifile, nl, rf] res = loads(rf.read_text('utf-8')) assert res assert res.get('nodes') == [] assert res.get('updated_at', False) != 'never' assert tmpdir.remove() is None
def test_handle_nodelist_without_nodelist(tmpdir, fffake): ff = fffake(tmpdir.join("api_file.json"), dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None
def test_handle_nodelist_without_nodelist(tmpdir, fffake): ff = fffake(tmpdir.join('api_file.json'), dry=True) assert handle_nodelist(ff) is False assert tmpdir.remove() is None