Skip to content

Commit

Permalink
Adding support to take nova/neutron password as an argument in provis…
Browse files Browse the repository at this point in the history
…ioning scripts

Change-Id: Ie121031c8c6d63d09a6245c534c7b3958ce58dda
Partial-Bug: 1461658
  • Loading branch information
npchandran committed Jun 9, 2015
1 parent 330adff commit 06e5772
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 15 deletions.
3 changes: 3 additions & 0 deletions contrail_provisioning/compute/openstack.py
Expand Up @@ -42,6 +42,9 @@ def build_ctrl_details(self):
ctrl_infos.append('CONTROLLER=%s' % self._args.keystone_ip)
ctrl_infos.append('AMQP_SERVER=%s' % self._args.amqp_server_ip)
ctrl_infos.append('HYPERVISOR=%s' % self._args.hypervisor)
ctrl_infos.append('NOVA_PASSWORD=%s' % self._args.nova_password)
ctrl_infos.append('NEUTRON_PASSWORD=%s' % self._args.neutron_password)
ctrl_infos.append('SERVICE_TENANT_NAME=%s' % self._args.service_tenant_name)
if self._args.haproxy:
ctrl_infos.append('QUANTUM=127.0.0.1')
else:
Expand Down
8 changes: 4 additions & 4 deletions contrail_provisioning/compute/scripts/compute-server-setup.sh
Expand Up @@ -74,9 +74,9 @@ if [ $CONTROLLER != $COMPUTE ] ; then
openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_inject_partition -1
openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host $AMQP_SERVER
openstack-config --set /etc/nova/nova.conf DEFAULT glance_host $CONTROLLER
openstack-config --set /etc/nova/nova.conf DEFAULT $TENANT_NAME service
openstack-config --set /etc/nova/nova.conf DEFAULT $TENANT_NAME $SERVICE_TENANT_NAME
openstack-config --set /etc/nova/nova.conf DEFAULT $ADMIN_USER $OS_NET
openstack-config --set /etc/nova/nova.conf DEFAULT $ADMIN_PASSWD $ADMIN_TOKEN
openstack-config --set /etc/nova/nova.conf DEFAULT $ADMIN_PASSWD $NEUTRON_PASSWORD
openstack-config --set /etc/nova/nova.conf DEFAULT $ADMIN_AUTH_URL $AUTH_PROTOCOL://$CONTROLLER:35357/v2.0/
openstack-config --set /etc/nova/nova.conf DEFAULT $OS_URL ${QUANTUM_PROTOCOL}://$QUANTUM:9696/
openstack-config --set /etc/nova/nova.conf DEFAULT $OS_URL_TIMEOUT 300
Expand All @@ -99,9 +99,9 @@ if [ $CONTROLLER != $COMPUTE ] ; then
openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova_contrail_vif.contrailvif.ContrailNetworkAPI
fi
fi
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password $ADMIN_TOKEN
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password $NOVA_PASSWORD
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host $CONTROLLER
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357
Expand Down
12 changes: 11 additions & 1 deletion contrail_provisioning/compute/setup.py
Expand Up @@ -40,6 +40,9 @@ def __init__(self, args_str = None):
'keystone_auth_port':'35357',
'keystone_admin_user':None,
'keystone_admin_passwd':None,
'service_tenant_name': 'service',
'nova_password':None,
'neutron_password':None,
'keystone_admin_tenant_name':'admin',
'amqp_server_ip':'127.0.0.1',
'quantum_service_protocol':'http',
Expand Down Expand Up @@ -96,6 +99,9 @@ def parse_args(self, args_str):
parser.add_argument("--keystone_admin_user", help = "Keystone admin tenants user name")
parser.add_argument("--keystone_admin_password", help = "Keystone admin user's password")
parser.add_argument("--keystone_admin_tenant_name", help = "Keystone admin tenant name")
parser.add_argument("--service_tenant_name", help="Tenant name of the services tenant")
parser.add_argument("--nova_password", help = "Password of Nova user")
parser.add_argument("--neutron_password", help = "Password of Neutron user")
parser.add_argument("--quantum_service_protocol", help = "Protocol of neutron for nova to use")
parser.add_argument("--quantum_port", help = "Quantum server port")
parser.add_argument("--amqp_server_ip", help = "IP of the AMQP server to be used for openstack")
Expand All @@ -117,7 +123,11 @@ def parse_args(self, args_str):
parser.add_argument("--dpdk", help = "vRouter/DPDK mode.", action="store_true")

self._args = parser.parse_args(self.remaining_argv)

# Using keystone admin password for nova/neutron if not supplied
if not self._args.nova_password:
self._args.nova_password = self._args.keystone_admin_password
if not self._args.neutron_password:
self._args.neutron_password = self._args.keystone_admin_password


def main(args_str = None):
Expand Down
12 changes: 9 additions & 3 deletions contrail_provisioning/config/openstack.py
Expand Up @@ -127,6 +127,7 @@ def build_ctrl_details(self):
ctrl_infos.append('ADMIN_TOKEN=%s' % self._args.keystone_admin_passwd)
ctrl_infos.append('CONTROLLER=%s' % self._args.keystone_ip)
ctrl_infos.append('AMQP_SERVER=%s' % self._args.amqp_server_ip)
ctrl_infos.append('NEUTRON_PASSWORD=%s' % self._args.neutron_password)
if self._args.haproxy:
ctrl_infos.append('QUANTUM=127.0.0.1')
else:
Expand All @@ -147,9 +148,14 @@ def run_services(self):
quantum_ip = self._args.internal_vip
else:
quantum_ip = self.cfgm_ip
quant_args = "--ks_server_ip %s --quant_server_ip %s --tenant %s --user %s --password %s --svc_password %s --root_password %s" \
%(self._args.keystone_ip, quantum_ip, self._args.keystone_admin_tenant_name, self._args.keystone_admin_user, self._args.keystone_admin_passwd, self._args.keystone_admin_passwd,
env.password)
quant_args = '--ks_server_ip %s ' % self._args.keystone_ip + \
'--quant_server_ip %s ' % quantum_ip + \
'--tenant %s ' % self._args.keystone_admin_tenant_name + \
'--user %s ' % self._args.keystone_admin_user + \
'--password %s ' % self._args.keystone_admin_passwd + \
'--svc_password %s ' % self._args.neutron_password + \
'--svc_tenant_name %s ' % self._args.keystone_service_tenant_name + \
'--root_password %s' % env.password
if self._args.region_name:
quant_args += " --region_name %s" %(self._args.region_name)
if self._args.manage_neutron == 'yes':
Expand Down
14 changes: 8 additions & 6 deletions contrail_provisioning/config/quantum_in_keystone_setup.py
Expand Up @@ -31,6 +31,7 @@ def __init__(self, args_str = None):

self._args_user = self._args.user
self._args_passwd = self._args.password
self._args_quant_tenant_name = self._args.svc_tenant_name
self._args_svc_passwd = self._args.svc_password
self._args_region_name = self._args.region_name
self._args_tenant_id = self._args.tenant
Expand All @@ -46,7 +47,6 @@ def __init__(self, args_str = None):
# self._enable_quantum = True

# some constants
self._quant_tenant_name = "service"
self._quant_svc_type = "network"
if os.path.exists("/etc/neutron"):
self._quant_svc_name = "neutron"
Expand Down Expand Up @@ -89,6 +89,7 @@ def _parse_quant_args(self, args_str):
'user': 'admin',
'password': 'contrail123',
'svc_password': 'contrail123',
'svc_tenant_name': 'service',
'root_password': 'c0ntrail123',
'region_name': 'RegionOne',
}
Expand Down Expand Up @@ -117,7 +118,8 @@ def _parse_quant_args(self, args_str):
parser.add_argument("--tenant", help = "Tenant ID on keystone server")
parser.add_argument("--user", help = "User ID to access keystone server")
parser.add_argument("--password", help = "Password to access keystone server")
parser.add_argument("--svc_password", help = "Quantum service password on keystone server")
parser.add_argument("--svc_password", help = "Quantum/Neutron service password on keystone server")
parser.add_argument("--svc_tenant_name", help = "Quantum/Neutron service tenant name on keystone server")
parser.add_argument("--root_password", help = "Root password for keystone server")
parser.add_argument("--region_name", help = "Region Name for quantum endpoint")

Expand All @@ -128,18 +130,18 @@ def _parse_quant_args(self, args_str):
def quant_set_tenant_id(self):
# check if quantum tenant exists
try:
quant_tenant = self.kshandle.tenants.find(name=self._quant_tenant_name)
quant_tenant = self.kshandle.tenants.find(name=self._args_quant_tenant_name)
if quant_tenant:
# service tenant exists! return
print "tenant %s exists!" % (self._quant_tenant_name)
print "tenant %s exists!" % (self._args_quant_tenant_name)
return quant_tenant.id
except exceptions.NotFound as e:
pass

# tenant does not exist, create one
try:
quant_tenant = self.kshandle.tenants.create(tenant_name=self._quant_tenant_name,
description=self._quant_tenant_name,
quant_tenant = self.kshandle.tenants.create(tenant_name=self._args_quant_tenant_name,
description=self._args_quant_tenant_name,
enabled=True)
except Exception as e:
print e
Expand Down
Expand Up @@ -80,7 +80,7 @@ for svc in $net_svc_name; do
openstack-config --set /etc/$svc/$svc.conf DEFAULT allow_overlapping_ips True
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken admin_tenant_name $SERVICE_TENANT
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken admin_user $svc
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken admin_password $ADMIN_TOKEN
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken admin_password $NEUTRON_PASSWORD
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken auth_host $CONTROLLER
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken admin_token $SERVICE_TOKEN
openstack-config --set /etc/$svc/$svc.conf keystone_authtoken auth_protocol $AUTH_PROTOCOL
Expand Down
5 changes: 5 additions & 0 deletions contrail_provisioning/config/setup.py
Expand Up @@ -33,6 +33,7 @@ def __init__(self, args_str = None):
'keystone_admin_passwd': 'contrail123',
'keystone_admin_tenant_name': 'admin',
'keystone_service_tenant_name' : 'service',
'neutron_password': None,
'service_token': '',
'use_certs': False,
'multi_tenancy': True,
Expand Down Expand Up @@ -82,6 +83,7 @@ def parse_args(self, args_str):
help = "Auth protocol used to talk to keystone")
parser.add_argument("--keystone_auth_port", help = "Port of Keystone to talk to",
default = '35357')
parser.add_argument("--neutron_password", help="Password of neutron user")
parser.add_argument("--keystone_service_tenant_name",
help="Tenant name of the networking service user - neutron/quantum")
parser.add_argument("--keystone_admin_token",
Expand All @@ -104,6 +106,9 @@ def parse_args(self, args_str):
parser.add_argument("--orchestrator", help="Orchestrator used by contrail")

self._args = parser.parse_args(self.remaining_argv)
# Using keystone admin password for nova/neutron if not supplied
if not self._args.neutron_password:
self._args.neutron_password = self._args.keystone_admin_passwd

def main(args_str = None):
config_args = ConfigSetup(args_str)._args
Expand Down

0 comments on commit 06e5772

Please sign in to comment.