Skip to content

Commit

Permalink
Adding command line argument to allow for credentials to be passed in…
Browse files Browse the repository at this point in the history
… via file
  • Loading branch information
GregBestland committed Dec 2, 2015
1 parent 96ed06e commit 6ab12d5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
4 changes: 3 additions & 1 deletion ccmlib/cmds/cluster_cmds.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ def get_parser(self):
help="The username to use to download DSE with", default=None)
parser.add_option("--dse-password", type="string", dest="dse_password",
help="The password to use to download DSE with", default=None)
parser.add_option("--dse-credentials", type="string", dest="dse_credentials_file",
help="A file containing the dse_username, and dse_password.", default=None)
parser.add_option("--install-dir", type="string", dest="install_dir",
help="Path to the cassandra or dse directory to use [default %default]", default="./")
parser.add_option('-n', '--nodes', type="string", dest="nodes",
Expand Down Expand Up @@ -138,7 +140,7 @@ def validate(self, parser, options, args):
def run(self):
try:
if self.options.dse or (not self.options.version and common.isDse(self.options.install_dir)):
cluster = DseCluster(self.path, self.name, install_dir=self.options.install_dir, version=self.options.version, dse_username=self.options.dse_username, dse_password=self.options.dse_password, opscenter=self.options.opscenter, verbose=True)
cluster = DseCluster(self.path, self.name, install_dir=self.options.install_dir, version=self.options.version, dse_username=self.options.dse_username, dse_password=self.options.dse_password, dse_credentials_file=self.options.dse_credentials_file, opscenter=self.options.opscenter, verbose=True)
else:
cluster = Cluster(self.path, self.name, install_dir=self.options.install_dir, version=self.options.version, verbose=True)
except OSError as e:
Expand Down
16 changes: 13 additions & 3 deletions ccmlib/dse_cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import shutil
import signal
import subprocess
import ConfigParser

from six import iteritems

Expand All @@ -13,9 +14,12 @@

class DseCluster(Cluster):

def __init__(self, path, name, partitioner=None, install_dir=None, create_directory=True, version=None, dse_username=None, dse_password=None, opscenter=None, verbose=False):
self.dse_username = dse_username
self.dse_password = dse_password
def __init__(self, path, name, partitioner=None, install_dir=None, create_directory=True, version=None, dse_username=None, dse_password=None, dse_credentials_file=None, opscenter=None, verbose=False):
if dse_credentials_file:
self.load_credentials_from_file(dse_credentials_file)
else:
self.dse_username = dse_username
self.dse_password = dse_password
self.opscenter = opscenter
super(DseCluster, self).__init__(path, name, partitioner, install_dir, create_directory, version, verbose)

Expand All @@ -26,6 +30,12 @@ def load_from_repository(self, version, verbose):
shutil.copytree(odir, target_dir)
return repository.setup_dse(version, self.dse_username, self.dse_password, verbose)

def load_credentials_from_file(self, dse_credentials_file):
parser = ConfigParser.ConfigParser()
parser.read(dse_credentials_file)
self.dse_username = parser.get('dse_credentials','dse_username')
self.dse_password = parser.get('dse_credentials','dse_password')

def hasOpscenter(self):
return os.path.exists(os.path.join(self.get_path(), 'opscenter'))

Expand Down

0 comments on commit 6ab12d5

Please sign in to comment.