Пример #1
0
def delete_nodegroups_driver(nodegroups: List[str], ignore_nonexistent: bool, yes: bool, use_regexp: bool, base_url: Url) -> None:
    if not nodegroups:
        print('No nodegroups specified for deletion: doing nothing.')
        return

    sparql_connection(base_url, None, [], None)
    allIDs = semtk3.get_nodegroup_store_data().get_column('ID')

    if use_regexp:
        regexps = [re.compile(regex_str) for regex_str in nodegroups]
        nonexistent = [r.pattern for r in regexps if not any(r.search(i) for i in allIDs)]
        to_delete = [i for i in allIDs if any(r.search(i) for r in regexps)]
    else:
        nonexistent = [n for n in nodegroups if n not in allIDs]
        to_delete = [n for n in nodegroups if n in allIDs]

    if nonexistent:
        print('The following nodegroups do not exist: {}'.format(', '.join(str_highlight(s) for s in nonexistent)))
        if not ignore_nonexistent:
            print(str_bad('Aborting. Remove the nonexistent IDs or use --ignore-nonexistent.'))
            sys.exit(1)

    if not yes:
        print('The following nodegroups would be removed: {}'.format(', '.join(str_highlight(s) for s in to_delete)))

    def on_confirmed() -> None:
        for nodegroup in to_delete:
            delete_nodegroup(nodegroup)
    confirm(on_confirmed, yes)
Пример #2
0
def delete_all_nodegroups_driver(yes: bool, base_url: Url) -> None:
    sparql_connection(base_url, None, [], None)
    allIDs = semtk3.get_nodegroup_store_data().get_column('ID')

    if not yes:
        print('The following nodegroups would be removed: {}'.format(' '.join(str_highlight(s) for s in allIDs)))

    def on_confirmed() -> None:
        for nodegroup in allIDs:
            delete_nodegroup(nodegroup)
    confirm(on_confirmed, yes)
Пример #3
0
    # set semtk3 logging to DEBUG   (below we switch it to the more typical logging.INFO)
    semtk3.get_logger().setLevel(level=logging.INFO)

    semtk3.set_headers({"extra": "idk"})
    if not semtk3.check_services():
        print("A service failed.  Check logs")

    # don't want to demo mucking with nodegroup store.  Also need valid local folder path.
    #semtk3.retrieve_from_store("regex", "folder path")
    #semtk3.delete_nodegroup_from_store("nodegroup_id")
    #semtk3.store_nodegroups("folder path")

    #
    # get a list of nodegroups
    #
    table = semtk3.get_nodegroup_store_data()
    print(table.get_rows())

    #
    # get a table of constraints for a nodegroup_id
    #
    nodegroup_id = "Lighting Weekly Units Sold"
    table = semtk3.get_constraints_by_id(nodegroup_id)
    print(table.get_rows())

    #
    # logging
    # show only high-level logging (e.g. percent complete)
    #
    semtk3.get_logger().setLevel(level=logging.INFO)
Пример #4
0
 def list_nodegroups() -> SemtkTable:
     sparql_connection(base_url, None, [], None)
     return semtk3.get_nodegroup_store_data()