Skip to content

Commit

Permalink
Added sqoop command
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-tr-adamson committed Oct 10, 2014
1 parent 0cab300 commit 4c871c3
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
21 changes: 20 additions & 1 deletion ccmlib/cmds/node_cmds.py
Expand Up @@ -38,7 +38,8 @@ def node_cmds():
"nodetool",
"dsetool",
"setworkload",
"hive"
"hive",
"sqoop"
]

class NodeShowCmd(Cmd):
Expand Down Expand Up @@ -617,3 +618,21 @@ def validate(self, parser, options, args):

def run(self):
self.node.hive(self.options.verbose, self.hive_options)

class NodeSqoopCmd(Cmd):
def description(self):
return "Launch a sqoop session connected to this node"

def get_parser(self):
usage = "usage: ccm node_name sqoop [options] [hive_options]"
parser = self._get_default_parser(usage, self.description(), ignore_unknown_options=True)
parser.add_option('-v', '--verbose', action="store_true", dest="verbose",
help="With --exec, show cli output after completion", default=False)
return parser

def validate(self, parser, options, args):
Cmd.validate(self, parser, options, args, node_name=True, load_cluster=True)
self.sqoop_options = args[1:] + parser.get_ignored()

def run(self):
self.node.sqoop(self.options.verbose, self.sqoop_options)
10 changes: 9 additions & 1 deletion ccmlib/dse_node.py
Expand Up @@ -190,6 +190,14 @@ def hive(self, show_output=False, hive_options=[]):
p = subprocess.Popen(args, env=env)
p.wait()

def sqoop(self, show_output=False, sqoop_options=[]):
env = common.make_dse_env(self.get_install_dir(), self.get_path())
dse = common.join_bin(self.get_install_dir(), 'bin', 'dse')
args = [dse, 'sqoop']
args += sqoop_options
p = subprocess.Popen(args, env=env)
p.wait()

def import_dse_config_files(self):
self._update_config()
if not os.path.isdir(os.path.join(self.get_path(), 'resources', 'dse', 'conf')):
Expand Down Expand Up @@ -238,7 +246,7 @@ def __update_yaml(self):
if 'dse_yaml_file' in full_options:
with open(full_options['dse_yaml_file'], 'r') as f:
user_yaml = yaml.load(f)
data = common.yaml_merge(user_yaml, data)
data = common.yaml_merge(data, user_yaml)

with open(conf_file, 'w') as f:
yaml.safe_dump(data, f, default_flow_style=False)
Expand Down
3 changes: 3 additions & 0 deletions ccmlib/node.py
Expand Up @@ -631,6 +631,9 @@ def dsetool(self, cmd):
def hive(self, show_output=False, hive_options=[]):
raise common.ArgumentError('Cassandra nodes do not support hive')

def sqoop(self, show_output=False, sqoop_options=[]):
raise common.ArgumentError('Cassandra nodes do not support sqoop')

def scrub(self, options):
scrub_bin = self.get_tool('sstablescrub')
env = common.make_cassandra_env(self.get_install_cassandra_root(), self.get_node_cassandra_root())
Expand Down

0 comments on commit 4c871c3

Please sign in to comment.