def parse_command(command_name, payload): """Parse and build a BgUtil command.""" # Import that here only because we are inside a command and `commands` # need to be able to import files from all commands. from biggraphite.cli import commands cmd = None for cmd in commands.COMMANDS: if cmd.NAME == command_name: break if not cmd or cmd.NAME != command_name: raise UnknownCommandException(command_name) parser = NonExitingArgumentParser(add_help=False) parser.add_argument( "--help", action=_HelpAction, default=argparse.SUPPRESS, help="Show this help message and exit.", ) bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) if not payload: arguments = [] else: arguments = payload.get("arguments", []) args = [a for a in arguments] opts = parser.parse_args(args) return cmd, opts
def test_run(self): self.accessor.drop_all_metrics() cmd = command_list.CommandList() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) name = "foo.bar" metadata = bg_metric.MetricMetadata( retention=bg_metric.Retention.from_string("1440*60s")) self.accessor.create_metric(bg_test_utils.make_metric(name, metadata)) opts = parser.parse_args(["foo.*"]) cmd.run(self.accessor, opts) metrics = command_list.list_metrics(self.accessor, opts.glob, opts.graphite) self.assertEqual(name, list(metrics)[0].name) opts = parser.parse_args(["--graphite", "foo.{bar}"]) metrics = command_list.list_metrics(self.accessor, opts.glob, opts.graphite) self.assertEqual(name, list(metrics)[0].name)
def parse_command(command_name, payload): """Parse and build a BgUtil command.""" # Import that here only because we are inside a command and `commands` # need to be able to import files from all commands. from biggraphite.cli import commands cmd = None for cmd in commands.COMMANDS: if cmd.NAME == command_name: break if not cmd or cmd.NAME != command_name: raise UnknownCommandException(command_name) parser = NonExitingArgumentParser(add_help=False) parser.add_argument( "--help", action=_HelpAction, default=argparse.SUPPRESS, help="Show this help message and exit.", ) bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) if not payload: arguments = [] else: arguments = payload.get("arguments", []) args = [a for a in arguments] opts = parser.parse_args(args) return cmd, opts
def test_run(self): cmd = command_test.CommandTest() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args([]) cmd.run(self.accessor, opts)
def test_run(self): cmd = command_web.CommandWeb() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["--dry-run"]) cmd.run(self.accessor, opts)
def test_run(self, prometheus_registry_mock): cmd = command_web.CommandWeb() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["--dry-run"]) cmd.run(self.accessor, opts)
def test_run(self): cmd = command_write.CommandWrite() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["metric", "1"]) cmd.run(self.accessor, opts)
def test_run(self): cmd = command_repair.CommandRepair() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["--shard=0", "--nshards=5"]) cmd.run(self.accessor, opts)
def test_run(self): cmd = command_syncdb.CommandSyncdb() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["--retention", "86400*1s:10080*60s"]) cmd.run(self.accessor, opts) opts = parser.parse_args(["--dry_run"]) cmd.run(self.accessor, opts)
def test_run(self): name = "foo.bar" metadata = bg_metric.MetricMetadata.create( retention=bg_metric.Retention.from_string("1440*60s")) self.accessor.create_metric(bg_test_utils.make_metric(name, metadata)) cmd = command_read.CommandRead() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args([name]) cmd.run(self.accessor, opts)
def test_run(self): name = "foo.bar" metadata = bg_metric.MetricMetadata.create( retention=bg_metric.Retention.from_string("1440*60s") ) self.accessor.create_metric(bg_test_utils.make_metric_with_defaults(name, metadata)) cmd = command_read.CommandRead() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args([name]) cmd.run(self.accessor, opts)
def test_run(self): cmd = command_clean.CommandClean() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args([ "--shard=0", "--nshards=5", "--clean-cache", "--clean-backend", "--clean-corrupted", ]) cmd.run(self.accessor, opts)
def test_run(self): name = "foo.bar" metadata = bg_metric.MetricMetadata.create( retention=bg_metric.Retention.from_string("1440*60s") ) self.accessor.create_metric(bg_test_utils.make_metric(name, metadata)) self.accessor.flush() cmd = command_graphite_web.CommandGraphiteWeb() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["foo.bar"]) cmd.run(self.accessor, opts)
def get_output(self, args, mock_stdout): self.accessor.drop_all_metrics() for metric in self.metrics: self.accessor.create_metric( bg_test_utils.make_metric(metric, self.metadata)) cmd = command_du.CommandDu() parser = argparse.ArgumentParser(add_help=False) bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(args) cmd.run(self.accessor, opts) return mock_stdout.getvalue()
def test_run(self): name = "foo.bar" metadata = bg_metric.MetricMetadata.create( retention=bg_metric.Retention.from_string("1440*60s")) self.accessor.create_metric( bg_test_utils.make_metric_with_defaults(name, metadata)) self.accessor.flush() cmd = command_graphite_web.CommandGraphiteWeb() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(["foo.bar"]) cmd.run(self.accessor, opts)
def parse_opts(args): """Parse command line arguments.""" parser = argparse.ArgumentParser(description="BigGraphite command line utility.") bg_settings.add_argparse_arguments(parser) subparsers = parser.add_subparsers(help="commands") for command in COMMANDS: subparser = subparsers.add_parser( command.NAME, add_help=False ) # accept -h for du # but we still want --help subparser.add_argument( "--help", action="help", help="show this help message and exit" ) command.add_arguments(subparser) subparser.set_defaults(func=command.run) return parser.parse_args(args)
def get_output(self, args, mock_stdout): self.accessor.drop_all_metrics() for metric in self.metrics: self.accessor.create_metric( bg_test_utils.make_metric(metric, self.metadata) ) cmd = command_stats.CommandStats() parser = argparse.ArgumentParser(add_help=False) bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args(args) cmd.run(self.accessor, opts) return mock_stdout.getvalue()
def test_run(self): cmd = command_clean.CommandClean() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args( [ "--shard=0", "--nshards=5", "--clean-cache", "--clean-backend", "--clean-corrupted", ] ) cmd.run(self.accessor, opts)
def test_run_with_args(self): cmd = command_test.CommandTest() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) opts = parser.parse_args( [ "--cassandra_contact_points=127.0.0.1,192.168.0.1", "--cassandra_contact_points_metadata=127.0.0.1,192.168.1.1", ] ) settings = bg_settings.settings_from_args(opts) self.assertIsInstance(settings["cassandra_contact_points"], list) self.assertIsInstance(settings["cassandra_contact_points_metadata"], list) cmd.run(self.accessor, opts)
def test_run(self): self.accessor.drop_all_metrics() cmd = command_delete.CommandDelete() parser = argparse.ArgumentParser() bg_setting.add_argparse_arguments(parser) cmd.add_arguments(parser) name = "foo.bar" metadata = bg_metric.MetricMetadata( retention=bg_metric.Retention.from_string("1440*60s")) self.accessor.create_metric(bg_test_utils.make_metric(name, metadata)) opts = parser.parse_args(["foo", "--recursive", "--dry-run"]) cmd.run(self.accessor, opts) self.assertIn(name, self.accessor.glob_metric_names("*.*")) opts = parser.parse_args(["foo", "--recursive"]) cmd.run(self.accessor, opts) self.assertNotIn(name, self.accessor.glob_metric_names("*.*"))
def test_run(self): self.accessor.drop_all_metrics() cmd = command_delete.CommandDelete() parser = argparse.ArgumentParser() bg_setting.add_argparse_arguments(parser) cmd.add_arguments(parser) name = "foo.bar" metadata = bg_metric.MetricMetadata( retention=bg_metric.Retention.from_string("1440*60s") ) self.accessor.create_metric(bg_test_utils.make_metric(name, metadata)) opts = parser.parse_args(["foo", "--recursive", "--dry-run"]) cmd.run(self.accessor, opts) self.assertIn(name, self.accessor.glob_metric_names("*.*")) opts = parser.parse_args(["foo", "--recursive"]) cmd.run(self.accessor, opts) self.assertNotIn(name, self.accessor.glob_metric_names("*.*"))
def test_run(self): self.accessor.drop_all_metrics() cmd = command_list.CommandList() parser = argparse.ArgumentParser() bg_settings.add_argparse_arguments(parser) cmd.add_arguments(parser) name = "foo.bar" metadata = bg_metric.MetricMetadata.create( retention=bg_metric.Retention.from_string("1440*60s") ) self.accessor.create_metric(bg_test_utils.make_metric_with_defaults(name, metadata)) opts = parser.parse_args(["foo.*"]) cmd.run(self.accessor, opts) metrics = command_list.list_metrics(self.accessor, opts.glob, opts.graphite) self.assertEqual(name, list(metrics)[0].name) opts = parser.parse_args(["--graphite", "foo.{bar}"]) metrics = command_list.list_metrics(self.accessor, opts.glob, opts.graphite) self.assertEqual(name, list(metrics)[0].name)
def _parse_opts(args): parser = argparse.ArgumentParser( description="Import whisper files into BigGraphite.") parser.add_argument( "root_directory", metavar="WHISPER_DIR", help="directory in which to find whisper files", ) parser.add_argument( "--filter", type=str, default=r".*\.wsp", help="Only import metrics matching this filter", ) parser.add_argument( "--prefix", metavar="WHISPER_PREFIX", default="", help="prefix to prepend to metric names", ) parser.add_argument( "--quiet", action="store_const", default=False, const=True, help="Show no output unless there are problems.", ) parser.add_argument( "--process", metavar="N", type=int, help="number of concurrent process", default=multiprocessing.cpu_count(), ) parser.add_argument("--no-data", action="store_true", help="Do not import data, only metadata.") parser.add_argument("--no-metadata", action="store_true", help="Do not import metadata, only data.") parser.add_argument( "--ignored_stages", nargs="*", help="Do not import data for these stages.", default=[], ) parser.add_argument( "--time-start", action=command.ParseDateTimeArg, help="Read points written later than this time.", default=datetime.datetime.fromtimestamp(0), required=False, ) parser.add_argument( "--time-end", action=command.ParseDateTimeArg, help="Read points written earlier than this time.", default=datetime.datetime.now(), required=False, ) bg_settings.add_argparse_arguments(parser) opts = parser.parse_args(args) opts.ignored_stages = [ bg_metric.Stage.from_string(s) for s in opts.ignored_stages ] return opts
def _parse_opts(args): parser = argparse.ArgumentParser( description="Import whisper files into BigGraphite." ) parser.add_argument( "root_directory", metavar="WHISPER_DIR", help="directory in which to find whisper files", ) parser.add_argument( "--filter", type=str, default=r".*\.wsp", help="Only import metrics matching this filter", ) parser.add_argument( "--prefix", metavar="WHISPER_PREFIX", default="", help="prefix to prepend to metric names", ) parser.add_argument( "--quiet", action="store_const", default=False, const=True, help="Show no output unless there are problems.", ) parser.add_argument( "--process", metavar="N", type=int, help="number of concurrent process", default=multiprocessing.cpu_count(), ) parser.add_argument( "--no-data", action="store_true", help="Do not import data, only metadata." ) parser.add_argument( "--no-metadata", action="store_true", help="Do not import metadata, only data." ) parser.add_argument( "--ignored_stages", nargs="*", help="Do not import data for these stages.", default=[], ) parser.add_argument( "--time-start", action=command.ParseDateTimeArg, help="Read points written later than this time.", default=datetime.datetime.fromtimestamp(0), required=False, ) parser.add_argument( "--time-end", action=command.ParseDateTimeArg, help="Read points written earlier than this time.", default=datetime.datetime.now(), required=False, ) bg_settings.add_argparse_arguments(parser) opts = parser.parse_args(args) opts.ignored_stages = [bg_metric.Stage.from_string(s) for s in opts.ignored_stages] return opts