Tenant to project migration for RequestContext
Change-Id: I98dfc0b5883c74d67b430eaa8348c11d74ce1518
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
- openstack-cover-jobs
|
- openstack-cover-jobs
|
||||||
- openstack-lower-constraints-jobs
|
|
||||||
- openstack-python3-yoga-jobs
|
- openstack-python3-yoga-jobs
|
||||||
- publish-openstack-docs-pti
|
- publish-openstack-docs-pti
|
||||||
- release-notes-jobs-python3
|
- release-notes-jobs-python3
|
||||||
|
|||||||
@@ -119,14 +119,14 @@ class ContextHook(hooks.PecanHook):
|
|||||||
ctx = context.RequestContext(auth_token=recv_auth_token,
|
ctx = context.RequestContext(auth_token=recv_auth_token,
|
||||||
auth_token_info=auth_token_info,
|
auth_token_info=auth_token_info,
|
||||||
user=user_id,
|
user=user_id,
|
||||||
tenant=project_id,
|
project_id=project_id,
|
||||||
domain=domain,
|
domain=domain,
|
||||||
user_domain=user_domain_id,
|
user_domain=user_domain_id,
|
||||||
project_domain=project_domain_id,
|
project_domain=project_domain_id,
|
||||||
user_name=user_name,
|
user_name=user_name,
|
||||||
roles=roles,
|
roles=roles,
|
||||||
password=password,
|
password=password,
|
||||||
tenant_name=tenant_name)
|
project_name=tenant_name)
|
||||||
state.request.security_context = ctx
|
state.request.security_context = ctx
|
||||||
|
|
||||||
def _get_roles(self, req):
|
def _get_roles(self, req):
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class AppHandler(handler.Handler):
|
|||||||
db_obj = objects.registry.App()
|
db_obj = objects.registry.App()
|
||||||
db_obj.id = uuidutils.generate_uuid()
|
db_obj.id = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.deleted = False
|
db_obj.deleted = False
|
||||||
|
|
||||||
# create a delegation trust_id\token, if required
|
# create a delegation trust_id\token, if required
|
||||||
@@ -108,8 +108,8 @@ class AppHandler(handler.Handler):
|
|||||||
raw_content_json['password'] = decoded_password
|
raw_content_json['password'] = decoded_password
|
||||||
|
|
||||||
raw_content_json['auth_url'] = self.context.auth_url
|
raw_content_json['auth_url'] = self.context.auth_url
|
||||||
raw_content_json['tenant'] = self.context.tenant
|
raw_content_json['tenant'] = self.context.project_id
|
||||||
raw_content_json['tenant_name'] = self.context.tenant_name
|
raw_content_json['tenant_name'] = self.context.project_name
|
||||||
|
|
||||||
db_obj.raw_content = json.dumps(raw_content_json)
|
db_obj.raw_content = json.dumps(raw_content_json)
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ class AppHandler(handler.Handler):
|
|||||||
try:
|
try:
|
||||||
self.context = keystone_utils.create_delegation_context(
|
self.context = keystone_utils.create_delegation_context(
|
||||||
app_obj, self.context)
|
app_obj, self.context)
|
||||||
self.context.tenant = app_obj.project_id
|
self.context.project_id = app_obj.project_id
|
||||||
self.context.user = app_obj.user_id
|
self.context.user = app_obj.user_id
|
||||||
self.context.user_name = app_obj.trust_user
|
self.context.user_name = app_obj.trust_user
|
||||||
except exception.AuthorizationFailure as auth_ex:
|
except exception.AuthorizationFailure as auth_ex:
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ class AssemblyHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.username = self.context.user_name
|
db_obj.username = self.context.user_name
|
||||||
|
|
||||||
db_obj.status = ASSEMBLY_STATES.QUEUED
|
db_obj.status = ASSEMBLY_STATES.QUEUED
|
||||||
@@ -143,7 +143,7 @@ class AssemblyHandler(handler.Handler):
|
|||||||
image.image_format = CONF.api.image_format
|
image.image_format = CONF.api.image_format
|
||||||
image.uuid = uuidutils.generate_uuid()
|
image.uuid = uuidutils.generate_uuid()
|
||||||
image.user_id = self.context.user
|
image.user_id = self.context.user
|
||||||
image.project_id = self.context.tenant
|
image.project_id = self.context.project_id
|
||||||
image.status = IMAGE_STATES.QUEUED
|
image.status = IMAGE_STATES.QUEUED
|
||||||
image.create(self.context)
|
image.create(self.context)
|
||||||
test_cmd = artifact.get('unittest_cmd')
|
test_cmd = artifact.get('unittest_cmd')
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class ComponentHandler(handler.Handler):
|
|||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.create(self.context)
|
db_obj.create(self.context)
|
||||||
return db_obj
|
return db_obj
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class ExtensionHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.create(self.context)
|
db_obj.create(self.context)
|
||||||
return db_obj
|
return db_obj
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class InfrastructureStackHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
|
|
||||||
self._create_zaqar_queue(db_obj.uuid)
|
self._create_zaqar_queue(db_obj.uuid)
|
||||||
db_obj.heat_stack_id = self._deploy_infra(data.get('image_id'))
|
db_obj.heat_stack_id = self._deploy_infra(data.get('image_id'))
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class LanguagePackHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.status = image.States.QUEUED
|
db_obj.status = image.States.QUEUED
|
||||||
db_obj.artifact_type = 'language_pack'
|
db_obj.artifact_type = 'language_pack'
|
||||||
if lp_metadata:
|
if lp_metadata:
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ class PipelineHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.trigger_id = uuidutils.generate_uuid()
|
db_obj.trigger_id = uuidutils.generate_uuid()
|
||||||
|
|
||||||
# create the trust_id and store it.
|
# create the trust_id and store it.
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ class PlanHandler(handler.Handler):
|
|||||||
db_obj.name = data['name']
|
db_obj.name = data['name']
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.trigger_id = uuidutils.generate_uuid()
|
db_obj.trigger_id = uuidutils.generate_uuid()
|
||||||
|
|
||||||
# create a delegation trust_id\token, if required
|
# create a delegation trust_id\token, if required
|
||||||
@@ -206,7 +206,7 @@ class PlanHandler(handler.Handler):
|
|||||||
try:
|
try:
|
||||||
self.context = keystone_utils.create_delegation_context(
|
self.context = keystone_utils.create_delegation_context(
|
||||||
plan_obj, self.context)
|
plan_obj, self.context)
|
||||||
self.context.tenant = plan_obj.project_id
|
self.context.project_id = plan_obj.project_id
|
||||||
self.context.user = plan_obj.user_id
|
self.context.user = plan_obj.user_id
|
||||||
self.context.user_name = plan_obj.username
|
self.context.user_name = plan_obj.username
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class SensorHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.create(self.context)
|
db_obj.create(self.context)
|
||||||
return db_obj
|
return db_obj
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class ServiceHandler(handler.Handler):
|
|||||||
db_obj.update(data)
|
db_obj.update(data)
|
||||||
db_obj.uuid = uuidutils.generate_uuid()
|
db_obj.uuid = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.create(self.context)
|
db_obj.create(self.context)
|
||||||
return db_obj
|
return db_obj
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class WorkflowHandler(handler.Handler):
|
|||||||
db_obj = objects.registry.Workflow()
|
db_obj = objects.registry.Workflow()
|
||||||
db_obj.id = uuidutils.generate_uuid()
|
db_obj.id = uuidutils.generate_uuid()
|
||||||
db_obj.user_id = self.context.user
|
db_obj.user_id = self.context.user
|
||||||
db_obj.project_id = self.context.tenant
|
db_obj.project_id = self.context.project_id
|
||||||
db_obj.deleted = False
|
db_obj.deleted = False
|
||||||
|
|
||||||
db_obj.app_id = data['app_id']
|
db_obj.app_id = data['app_id']
|
||||||
@@ -176,7 +176,7 @@ class WorkflowHandler(handler.Handler):
|
|||||||
image.image_format = CONF.api.image_format
|
image.image_format = CONF.api.image_format
|
||||||
image.uuid = uuidutils.generate_uuid()
|
image.uuid = uuidutils.generate_uuid()
|
||||||
image.user_id = self.context.user
|
image.user_id = self.context.user
|
||||||
image.project_id = self.context.tenant
|
image.project_id = self.context.project_id
|
||||||
image.status = IMAGE_STATES.QUEUED
|
image.status = IMAGE_STATES.QUEUED
|
||||||
image.create(self.context)
|
image.create(self.context)
|
||||||
test_cmd = wf_obj.config['test_cmd']
|
test_cmd = wf_obj.config['test_cmd']
|
||||||
@@ -260,14 +260,14 @@ class PlanAssemblyAdapter(object):
|
|||||||
plan = objects.registry.Plan()
|
plan = objects.registry.Plan()
|
||||||
plan.uuid = self.app_obj.id
|
plan.uuid = self.app_obj.id
|
||||||
plan.user_id = self.context.user
|
plan.user_id = self.context.user
|
||||||
plan.project_id = self.context.tenant
|
plan.project_id = self.context.project_id
|
||||||
plan.name = self.app_obj.name
|
plan.name = self.app_obj.name
|
||||||
plan.create(self.context)
|
plan.create(self.context)
|
||||||
|
|
||||||
assembly = objects.registry.Assembly()
|
assembly = objects.registry.Assembly()
|
||||||
assembly.plan_id = plan.id
|
assembly.plan_id = plan.id
|
||||||
assembly.user_id = self.context.user
|
assembly.user_id = self.context.user
|
||||||
assembly.project_id = self.context.tenant
|
assembly.project_id = self.context.project_id
|
||||||
assembly.name = self.app_obj.name
|
assembly.name = self.app_obj.name
|
||||||
assembly.uuid = uuidutils.generate_uuid()
|
assembly.uuid = uuidutils.generate_uuid()
|
||||||
|
|
||||||
|
|||||||
@@ -33,14 +33,14 @@ CONF.register_opts(AUTH_OPTS)
|
|||||||
|
|
||||||
|
|
||||||
class RequestContext(context.RequestContext):
|
class RequestContext(context.RequestContext):
|
||||||
def __init__(self, auth_token=None, user=None, tenant=None, domain=None,
|
def __init__(self, auth_token=None, user=None, project_id=None,
|
||||||
user_domain=None, project_domain=None, is_admin=False,
|
domain=None, user_domain=None, project_domain=None,
|
||||||
read_only=False, request_id=None, user_name=None, roles=None,
|
is_admin=False, read_only=False, request_id=None,
|
||||||
auth_url=None, trust_id=None, auth_token_info=None,
|
user_name=None, roles=None, auth_url=None, trust_id=None,
|
||||||
password=None, tenant_name=None):
|
auth_token_info=None, password=None, project_name=None):
|
||||||
super(RequestContext, self).__init__(auth_token=auth_token,
|
super(RequestContext, self).__init__(auth_token=auth_token,
|
||||||
user=user,
|
user=user,
|
||||||
tenant=tenant,
|
project_id=project_id,
|
||||||
domain=domain,
|
domain=domain,
|
||||||
user_domain=user_domain,
|
user_domain=user_domain,
|
||||||
project_domain=project_domain,
|
project_domain=project_domain,
|
||||||
@@ -54,9 +54,9 @@ class RequestContext(context.RequestContext):
|
|||||||
self.trust_id = trust_id
|
self.trust_id = trust_id
|
||||||
self.auth_token_info = auth_token_info
|
self.auth_token_info = auth_token_info
|
||||||
self.password = password
|
self.password = password
|
||||||
self.tenant_name = tenant_name
|
self.project_name = project_name
|
||||||
global_admin_id = CONF.get('solum_admin_tenant_id')
|
global_admin_id = CONF.get('solum_admin_tenant_id')
|
||||||
if global_admin_id and global_admin_id == tenant:
|
if global_admin_id and global_admin_id == project_id:
|
||||||
self.is_admin = True
|
self.is_admin = True
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ class KeystoneClientV3(object):
|
|||||||
cfg.CONF, 'keystone_authtoken', **kwargs)
|
cfg.CONF, 'keystone_authtoken', **kwargs)
|
||||||
elif self.context.auth_token is not None:
|
elif self.context.auth_token is not None:
|
||||||
kwargs['token'] = self.context.auth_token
|
kwargs['token'] = self.context.auth_token
|
||||||
kwargs['project_id'] = self.context.tenant
|
kwargs['project_id'] = self.context.project_id
|
||||||
auth = identity.Token(
|
auth = identity.Token(
|
||||||
auth_url=kwargs['auth_url'],
|
auth_url=kwargs['auth_url'],
|
||||||
token=kwargs['token'],
|
token=kwargs['token'],
|
||||||
@@ -177,7 +177,7 @@ class KeystoneClientV3(object):
|
|||||||
self.context.auth_token = client.auth_ref.auth_token
|
self.context.auth_token = client.auth_ref.auth_token
|
||||||
self.context.auth_url = self.endpoint
|
self.context.auth_url = self.endpoint
|
||||||
self.context.user = client.auth_ref.user_id
|
self.context.user = client.auth_ref.user_id
|
||||||
self.context.tenant = client.auth_ref.project_id
|
self.context.project_id = client.auth_ref.project_id
|
||||||
self.context.user_name = client.auth_ref.username
|
self.context.user_name = client.auth_ref.username
|
||||||
|
|
||||||
return client
|
return client
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
# will be considered support-only data. This list may be too restrictive and
|
# will be considered support-only data. This list may be too restrictive and
|
||||||
# can be relaxed more as needed. This is only used if import_context() is
|
# can be relaxed more as needed. This is only used if import_context() is
|
||||||
# called.
|
# called.
|
||||||
_TRACE_USER_KEYS = ["user", "tenant"]
|
_TRACE_USER_KEYS = ["user", "project_id"]
|
||||||
_TRACE_CONTEXT_IGNORE = ["auth_token", "trust_id"]
|
_TRACE_CONTEXT_IGNORE = ["auth_token", "trust_id"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class Component(sql.Base, abstract.Component):
|
|||||||
comp.description = description
|
comp.description = description
|
||||||
comp.assembly_id = assem.id
|
comp.assembly_id = assem.id
|
||||||
comp.user_id = ctxt.user
|
comp.user_id = ctxt.user
|
||||||
comp.project_id = ctxt.tenant
|
comp.project_id = ctxt.project_id
|
||||||
comp.resource_uri = resource_uri
|
comp.resource_uri = resource_uri
|
||||||
comp.heat_stack_id = stack_id
|
comp.heat_stack_id = stack_id
|
||||||
comp.create(ctxt)
|
comp.create(ctxt)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class Image(sql.Base, abstract.Image):
|
|||||||
try:
|
try:
|
||||||
session = Image.get_session()
|
session = Image.get_session()
|
||||||
oper_result = session.query(cls).filter_by(
|
oper_result = session.query(cls).filter_by(
|
||||||
project_id=context.tenant, status='READY')
|
project_id=context.project_id, status='READY')
|
||||||
cnt = oper_result.count()
|
cnt = oper_result.count()
|
||||||
return cnt
|
return cnt
|
||||||
except exc.NoResultFound:
|
except exc.NoResultFound:
|
||||||
@@ -75,8 +75,9 @@ class Image(sql.Base, abstract.Image):
|
|||||||
result = session.query(cls).filter_by(
|
result = session.query(cls).filter_by(
|
||||||
artifact_type='language_pack', uuid=name_or_uuid)
|
artifact_type='language_pack', uuid=name_or_uuid)
|
||||||
if include_operators_lp is True:
|
if include_operators_lp is True:
|
||||||
|
project_id = context.project_id
|
||||||
result = result.filter(
|
result = result.filter(
|
||||||
Image.project_id.in_([operator_id, context.tenant]))
|
Image.project_id.in_([operator_id, project_id]))
|
||||||
return result.one()
|
return result.one()
|
||||||
else:
|
else:
|
||||||
return sql.filter_by_project(context, result).one()
|
return sql.filter_by_project(context, result).one()
|
||||||
@@ -94,7 +95,7 @@ class Image(sql.Base, abstract.Image):
|
|||||||
artifact_type='language_pack', name=name)
|
artifact_type='language_pack', name=name)
|
||||||
if include_operators_lp is True:
|
if include_operators_lp is True:
|
||||||
result = result.filter(
|
result = result.filter(
|
||||||
Image.project_id.in_([operator_id, context.tenant]))
|
Image.project_id.in_([operator_id, context.project_id]))
|
||||||
return result.one()
|
return result.one()
|
||||||
else:
|
else:
|
||||||
return sql.filter_by_project(context, result).one()
|
return sql.filter_by_project(context, result).one()
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ def filter_by_project(context, query):
|
|||||||
if context.is_admin:
|
if context.is_admin:
|
||||||
return query
|
return query
|
||||||
try:
|
try:
|
||||||
query = query.filter_by(project_id=context.tenant)
|
query = query.filter_by(project_id=context.project_id)
|
||||||
except sqla_exc.InvalidRequestError:
|
except sqla_exc.InvalidRequestError:
|
||||||
# No project_id column.
|
# No project_id column.
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -45,6 +45,6 @@ class UserlogList(abstract.UserlogList):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def get_all_by_id(cls, context, resource_uuid):
|
def get_all_by_id(cls, context, resource_uuid):
|
||||||
session = sql.Base.get_session()
|
session = sql.Base.get_session()
|
||||||
logs = session.query(Userlog).filter_by(project_id=context.tenant)
|
logs = session.query(Userlog).filter_by(project_id=context.project_id)
|
||||||
logs = logs.filter_by(resource_uuid=resource_uuid)
|
logs = logs.filter_by(resource_uuid=resource_uuid)
|
||||||
return logs.order_by(Userlog.created_at).all()
|
return logs.order_by(Userlog.created_at).all()
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class TestAuth(base.BaseTestCase):
|
|||||||
self.assertIsInstance(ctx, context.RequestContext)
|
self.assertIsInstance(ctx, context.RequestContext)
|
||||||
self.assertEqual(ctx.auth_token,
|
self.assertEqual(ctx.auth_token,
|
||||||
fakes.fakeAuthTokenHeaders['X-Auth-Token'])
|
fakes.fakeAuthTokenHeaders['X-Auth-Token'])
|
||||||
self.assertEqual(ctx.tenant,
|
self.assertEqual(ctx.project_id,
|
||||||
fakes.fakeAuthTokenHeaders['X-Project-Id'])
|
fakes.fakeAuthTokenHeaders['X-Project-Id'])
|
||||||
self.assertEqual(ctx.user,
|
self.assertEqual(ctx.user,
|
||||||
fakes.fakeAuthTokenHeaders['X-User-Id'])
|
fakes.fakeAuthTokenHeaders['X-User-Id'])
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
def test_context_to_dict(self):
|
def test_context_to_dict(self):
|
||||||
ctx = context.RequestContext(auth_token='_token_',
|
ctx = context.RequestContext(auth_token='_token_',
|
||||||
user='_user_',
|
user='_user_',
|
||||||
tenant='_tenant_',
|
project_id='_project_id_',
|
||||||
domain='_domain_',
|
domain='_domain_',
|
||||||
user_domain='_user_domain_',
|
user_domain='_user_domain_',
|
||||||
project_domain='_project_domain_',
|
project_domain='_project_domain_',
|
||||||
@@ -41,7 +41,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
ctx_dict = ctx.to_dict()
|
ctx_dict = ctx.to_dict()
|
||||||
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
||||||
self.assertEqual(ctx_dict['user'], '_user_')
|
self.assertEqual(ctx_dict['user'], '_user_')
|
||||||
self.assertEqual(ctx_dict['tenant'], '_tenant_')
|
self.assertEqual(ctx_dict['project_id'], '_project_id_')
|
||||||
self.assertEqual(ctx_dict['domain'], '_domain_')
|
self.assertEqual(ctx_dict['domain'], '_domain_')
|
||||||
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
||||||
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
||||||
@@ -60,7 +60,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
self.CONF.config(solum_admin_tenant_id='fake_tenant_id')
|
self.CONF.config(solum_admin_tenant_id='fake_tenant_id')
|
||||||
ctx = context.RequestContext(auth_token='_token_',
|
ctx = context.RequestContext(auth_token='_token_',
|
||||||
user='_user_',
|
user='_user_',
|
||||||
tenant='fake_tenant_id',
|
project_id='fake_tenant_id',
|
||||||
domain='_domain_',
|
domain='_domain_',
|
||||||
user_domain='_user_domain_',
|
user_domain='_user_domain_',
|
||||||
project_domain='_project_domain_',
|
project_domain='_project_domain_',
|
||||||
@@ -75,7 +75,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
ctx_dict = ctx.to_dict()
|
ctx_dict = ctx.to_dict()
|
||||||
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
||||||
self.assertEqual(ctx_dict['user'], '_user_')
|
self.assertEqual(ctx_dict['user'], '_user_')
|
||||||
self.assertEqual(ctx_dict['tenant'], 'fake_tenant_id')
|
self.assertEqual(ctx_dict['project_id'], 'fake_tenant_id')
|
||||||
self.assertEqual(ctx_dict['domain'], '_domain_')
|
self.assertEqual(ctx_dict['domain'], '_domain_')
|
||||||
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
||||||
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
||||||
@@ -93,7 +93,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
self.CONF.config(solum_admin_tenant_id='fake_tenant_id')
|
self.CONF.config(solum_admin_tenant_id='fake_tenant_id')
|
||||||
ctx = context.RequestContext(auth_token='_token_',
|
ctx = context.RequestContext(auth_token='_token_',
|
||||||
user='_user_',
|
user='_user_',
|
||||||
tenant='_tenant_id_',
|
project_id='_tenant_id_',
|
||||||
domain='_domain_',
|
domain='_domain_',
|
||||||
user_domain='_user_domain_',
|
user_domain='_user_domain_',
|
||||||
project_domain='_project_domain_',
|
project_domain='_project_domain_',
|
||||||
@@ -108,7 +108,7 @@ class TestContext(base.BaseTestCase):
|
|||||||
ctx_dict = ctx.to_dict()
|
ctx_dict = ctx.to_dict()
|
||||||
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
self.assertEqual(ctx_dict['auth_token'], '_token_')
|
||||||
self.assertEqual(ctx_dict['user'], '_user_')
|
self.assertEqual(ctx_dict['user'], '_user_')
|
||||||
self.assertEqual(ctx_dict['tenant'], '_tenant_id_')
|
self.assertEqual(ctx_dict['project_id'], '_tenant_id_')
|
||||||
self.assertEqual(ctx_dict['domain'], '_domain_')
|
self.assertEqual(ctx_dict['domain'], '_domain_')
|
||||||
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
self.assertEqual(ctx_dict['user_domain'], '_user_domain_')
|
||||||
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
self.assertEqual(ctx_dict['project_domain'], '_project_domain_')
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class KeystoneClientTest(base.BaseTestCase):
|
|||||||
"""Test creating the client, token auth."""
|
"""Test creating the client, token auth."""
|
||||||
# TODO(zhurong): should unskip the test
|
# TODO(zhurong): should unskip the test
|
||||||
self.skipTest('Skipping this test for bug #1686560')
|
self.skipTest('Skipping this test for bug #1686560')
|
||||||
self.ctx.tenant = None
|
self.ctx.project_id = None
|
||||||
self.ctx.trust_id = None
|
self.ctx.trust_id = None
|
||||||
solum_ks_client = solum_keystoneclient.KeystoneClientV3(self.ctx)
|
solum_ks_client = solum_keystoneclient.KeystoneClientV3(self.ctx)
|
||||||
solum_ks_client.client
|
solum_ks_client.client
|
||||||
@@ -70,7 +70,7 @@ class KeystoneClientTest(base.BaseTestCase):
|
|||||||
"""Test creating the client, token auth."""
|
"""Test creating the client, token auth."""
|
||||||
# TODO(zhurong): should unskip the test
|
# TODO(zhurong): should unskip the test
|
||||||
self.skipTest('Skipping this test for bug #1686560')
|
self.skipTest('Skipping this test for bug #1686560')
|
||||||
self.ctx.tenant = 'abcd1234'
|
self.ctx.project_id = 'abcd1234'
|
||||||
self.ctx.trust_id = None
|
self.ctx.trust_id = None
|
||||||
self.ctx.auth_token_info = {'access': {'token': {'id': 'placeholder'}}}
|
self.ctx.auth_token_info = {'access': {'token': {'id': 'placeholder'}}}
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ class KeystoneClientTest(base.BaseTestCase):
|
|||||||
def test_init_trust_token_token(self, mock_ks):
|
def test_init_trust_token_token(self, mock_ks):
|
||||||
# TODO(zhurong): should unskip the test
|
# TODO(zhurong): should unskip the test
|
||||||
self.skipTest('Skipping this test for bug #1686560')
|
self.skipTest('Skipping this test for bug #1686560')
|
||||||
self.ctx.tenant = None
|
self.ctx.project_id = None
|
||||||
self.ctx.trust_id = None
|
self.ctx.trust_id = None
|
||||||
self.ctx.auth_token_info = {'token': {}}
|
self.ctx.auth_token_info = {'token': {}}
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ class KeystoneClientTest(base.BaseTestCase):
|
|||||||
def test_init_trust_token_none(self, mock_ks):
|
def test_init_trust_token_none(self, mock_ks):
|
||||||
# TODO(zhurong): should unskip the test
|
# TODO(zhurong): should unskip the test
|
||||||
self.skipTest('Skipping this test for bug #1686560')
|
self.skipTest('Skipping this test for bug #1686560')
|
||||||
self.ctx.tenant = None
|
self.ctx.project_id = None
|
||||||
self.ctx.trust_id = None
|
self.ctx.trust_id = None
|
||||||
self.ctx.auth_token_info = {'not_this': 'urg'}
|
self.ctx.auth_token_info = {'not_this': 'urg'}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ solum.TLS.trace = trace_data.TraceData()
|
|||||||
# Just putting highly recognizable values in context
|
# Just putting highly recognizable values in context
|
||||||
CONTEXT = context.RequestContext(auth_token='_auth_token_',
|
CONTEXT = context.RequestContext(auth_token='_auth_token_',
|
||||||
user='_user_',
|
user='_user_',
|
||||||
tenant='_tenant_',
|
project_id='_project_id_',
|
||||||
domain='_domain_',
|
domain='_domain_',
|
||||||
user_domain='_user_domain_',
|
user_domain='_user_domain_',
|
||||||
project_domain='_project_domain_',
|
project_domain='_project_domain_',
|
||||||
@@ -54,7 +54,7 @@ class TestTraceData(base.BaseTestCase):
|
|||||||
solum.TLS.trace.import_context(CONTEXT)
|
solum.TLS.trace.import_context(CONTEXT)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
solum.TLS.trace._user_data,
|
solum.TLS.trace._user_data,
|
||||||
{'user': '_user_', 'tenant': '_tenant_'})
|
{'user': '_user_', 'project_id': '_project_id_'})
|
||||||
self.assertEqual(({
|
self.assertEqual(({
|
||||||
'auth_token_info': '_auth_token_info_',
|
'auth_token_info': '_auth_token_info_',
|
||||||
'auth_url': '_auth_url_',
|
'auth_url': '_auth_url_',
|
||||||
@@ -62,7 +62,7 @@ class TestTraceData(base.BaseTestCase):
|
|||||||
'global_request_id': None,
|
'global_request_id': None,
|
||||||
'is_admin': False,
|
'is_admin': False,
|
||||||
'is_admin_project': True,
|
'is_admin_project': True,
|
||||||
'project': '_tenant_',
|
'project': '_project_id_',
|
||||||
'project_domain': '_project_domain_',
|
'project_domain': '_project_domain_',
|
||||||
'read_only': False,
|
'read_only': False,
|
||||||
'resource_uuid': None,
|
'resource_uuid': None,
|
||||||
@@ -70,7 +70,7 @@ class TestTraceData(base.BaseTestCase):
|
|||||||
'show_deleted': False,
|
'show_deleted': False,
|
||||||
'system_scope': None,
|
'system_scope': None,
|
||||||
'user_domain': '_user_domain_',
|
'user_domain': '_user_domain_',
|
||||||
'user_identity': u'_user_ _tenant_ _domain_ '
|
'user_identity': u'_user_ _project_id_ _domain_ '
|
||||||
'_user_domain_ _project_domain_',
|
'_user_domain_ _project_domain_',
|
||||||
'user_name': '_user_name_'}), solum.TLS.trace._support_data)
|
'user_name': '_user_name_'}), solum.TLS.trace._support_data)
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class TestApp(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
self.data = [{'id': 'test-uuid-555',
|
self.data = [{'id': 'test-uuid-555',
|
||||||
'project_id': self.ctx.tenant,
|
'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'name': 'testapp',
|
'name': 'testapp',
|
||||||
'description': 'fake app for testing',
|
'description': 'fake app for testing',
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class TestAssembly(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'name': 'assembly1',
|
'name': 'assembly1',
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class TestComponent(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
self.data_assembly = [
|
self.data_assembly = [
|
||||||
{'project_id': self.ctx.tenant,
|
{'project_id': self.ctx.project_id,
|
||||||
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'name': 'assembly1',
|
'name': 'assembly1',
|
||||||
@@ -39,7 +39,7 @@ class TestComponent(base.BaseTestCase):
|
|||||||
utils.create_models_from_data(assembly.Assembly, self.data_assembly,
|
utils.create_models_from_data(assembly.Assembly, self.data_assembly,
|
||||||
self.ctx)
|
self.ctx)
|
||||||
|
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
||||||
'name': 'component_no_assembly',
|
'name': 'component_no_assembly',
|
||||||
@@ -48,7 +48,7 @@ class TestComponent(base.BaseTestCase):
|
|||||||
'parent_component_id': '87d98s',
|
'parent_component_id': '87d98s',
|
||||||
'tags': 'component tags',
|
'tags': 'component tags',
|
||||||
'heat_stack_id': '4c712026-dcd5-4664-90b8-0915494c1332'},
|
'heat_stack_id': '4c712026-dcd5-4664-90b8-0915494c1332'},
|
||||||
{'project_id': self.ctx.tenant,
|
{'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'uuid': '70763488-72e0-44ac-a612-e94bf5488555',
|
'uuid': '70763488-72e0-44ac-a612-e94bf5488555',
|
||||||
'name': 'component_assembly',
|
'name': 'component_assembly',
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class TestExtension(base.BaseTestCase):
|
|||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'uuid': 'test-uuid-42',
|
self.data = [{'uuid': 'test-uuid-42',
|
||||||
'project_id': self.ctx.tenant,
|
'project_id': self.ctx.project_id,
|
||||||
'user_id': '55f41cf46df74320b9486a35f5d28a11',
|
'user_id': '55f41cf46df74320b9486a35f5d28a11',
|
||||||
'name': 'logstash',
|
'name': 'logstash',
|
||||||
'version': '2.13',
|
'version': '2.13',
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class TestImage(base.BaseTestCase):
|
|||||||
super(TestImage, self).setUp()
|
super(TestImage, self).setUp()
|
||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'uuid': '25f7fa50-b980-4452-a550-dea5fd98ffc2',
|
'uuid': '25f7fa50-b980-4452-a550-dea5fd98ffc2',
|
||||||
'name': 'image1',
|
'name': 'image1',
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class TestInfrastructureStack(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'uuid': 'ceda0408-c93d-4772-abb2-18f65189d440',
|
'uuid': 'ceda0408-c93d-4772-abb2-18f65189d440',
|
||||||
'name': 'o1',
|
'name': 'o1',
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class TestOperation(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
||||||
'name': 'o1',
|
'name': 'o1',
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class TestPipeline(base.BaseTestCase):
|
|||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'project_id': self.ctx.tenant,
|
self.data = [{'project_id': self.ctx.project_id,
|
||||||
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
'uuid': 'ce43e347f0b0422825245b3e5f140a81cef6e65b',
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'name': 'pipeline1',
|
'name': 'pipeline1',
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class TestPlan(base.BaseTestCase):
|
|||||||
{'href': 'http://github.com/some/project'}}]}
|
{'href': 'http://github.com/some/project'}}]}
|
||||||
self.data = [{'uuid': 'test-uuid-123',
|
self.data = [{'uuid': 'test-uuid-123',
|
||||||
'name': 'fakeplan',
|
'name': 'fakeplan',
|
||||||
'project_id': self.ctx.tenant,
|
'project_id': self.ctx.project_id,
|
||||||
'user_id': 'fred',
|
'user_id': 'fred',
|
||||||
'description': 'some description',
|
'description': 'some description',
|
||||||
'raw_content': raw_content}]
|
'raw_content': raw_content}]
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class TestSensor(base.BaseTestCase):
|
|||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
|
|
||||||
self.data = [{'uuid': 'test-uuid-34dsxD',
|
self.data = [{'uuid': 'test-uuid-34dsxD',
|
||||||
'project_id': self.ctx.tenant,
|
'project_id': self.ctx.project_id,
|
||||||
'user_id': '55f41cf46df74320b9486a35f5d28a11',
|
'user_id': '55f41cf46df74320b9486a35f5d28a11',
|
||||||
'name': 'hb',
|
'name': 'hb',
|
||||||
'description': 'A heartbeat sensor',
|
'description': 'A heartbeat sensor',
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class TestUserlog(base.BaseTestCase):
|
|||||||
'resource_type': 'app',
|
'resource_type': 'app',
|
||||||
'strategy': 'local',
|
'strategy': 'local',
|
||||||
'location': '/dev/null',
|
'location': '/dev/null',
|
||||||
'project_id': self.ctx.tenant,
|
'project_id': self.ctx.project_id,
|
||||||
'strategy_info': '{}',
|
'strategy_info': '{}',
|
||||||
}]
|
}]
|
||||||
utils.create_models_from_data(userlog.Userlog, self.data, self.ctx)
|
utils.create_models_from_data(userlog.Userlog, self.data, self.ctx)
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ class TestWorkflow(base.BaseTestCase):
|
|||||||
super(TestWorkflow, self).setUp()
|
super(TestWorkflow, self).setUp()
|
||||||
self.db = self.useFixture(utils.Database())
|
self.db = self.useFixture(utils.Database())
|
||||||
self.ctx = utils.dummy_context()
|
self.ctx = utils.dummy_context()
|
||||||
self.data = [self._get_data(self.ctx.tenant)]
|
self.data = [self._get_data(self.ctx.project_id)]
|
||||||
utils.create_models_from_data(workflow.Workflow, self.data, self.ctx)
|
utils.create_models_from_data(workflow.Workflow, self.data, self.ctx)
|
||||||
|
|
||||||
def _get_data(self, tenant_id):
|
def _get_data(self, project_id):
|
||||||
|
|
||||||
source = dict()
|
source = dict()
|
||||||
source['repository'] = "https://github.com"
|
source['repository'] = "https://github.com"
|
||||||
@@ -40,7 +40,7 @@ class TestWorkflow(base.BaseTestCase):
|
|||||||
jsondata['source'] = source
|
jsondata['source'] = source
|
||||||
jsondata['config'] = workflow
|
jsondata['config'] = workflow
|
||||||
jsondata['actions'] = ["test", "build", "deploy"]
|
jsondata['actions'] = ["test", "build", "deploy"]
|
||||||
jsondata['project_id'] = tenant_id
|
jsondata['project_id'] = project_id
|
||||||
jsondata['user_id'] = 'fred'
|
jsondata['user_id'] = 'fred'
|
||||||
jsondata['id'] = '123'
|
jsondata['id'] = '123'
|
||||||
return jsondata
|
return jsondata
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ CONF = cfg.CONF
|
|||||||
def dummy_context(user='test_username', tenant_id='fake_project_id',
|
def dummy_context(user='test_username', tenant_id='fake_project_id',
|
||||||
user_name='usr_name'):
|
user_name='usr_name'):
|
||||||
return context.RequestContext(user=user,
|
return context.RequestContext(user=user,
|
||||||
tenant=tenant_id,
|
project_id=tenant_id,
|
||||||
user_name=user_name)
|
user_name=user_name)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env,
|
env=test_env,
|
||||||
@@ -246,7 +246,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
expected_tag = fake_image.docker_image_name
|
expected_tag = fake_image.docker_image_name
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
expected_loc, expected_tag],
|
expected_loc, expected_tag],
|
||||||
env=test_env,
|
env=test_env,
|
||||||
stdout=-1)
|
stdout=-1)
|
||||||
@@ -308,7 +308,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -383,7 +383,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
# self.assertTrue(mock_shelve.call().__setitem__.called)
|
# self.assertTrue(mock_shelve.call().__setitem__.called)
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -437,7 +437,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
'auto',
|
'auto',
|
||||||
''],
|
''],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -483,7 +483,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
'new_app', self.ctx.tenant,
|
'new_app', self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -531,7 +531,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
'contrib/lp-chef/docker/unittest-app')
|
'contrib/lp-chef/docker/unittest-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
self.ctx.tenant,
|
self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -571,7 +571,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
'contrib/lp-chef/docker/unittest-app')
|
'contrib/lp-chef/docker/unittest-app')
|
||||||
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
mock_popen.assert_called_once_with([script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
self.ctx.tenant,
|
self.ctx.project_id,
|
||||||
self.expected_img_id,
|
self.expected_img_id,
|
||||||
self.img_name],
|
self.img_name],
|
||||||
env=test_env, stdout=-1)
|
env=test_env, stdout=-1)
|
||||||
@@ -622,12 +622,12 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
expected = [
|
expected = [
|
||||||
mock.call([u_script, 'git://example.com/foo',
|
mock.call([u_script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
self.ctx.tenant, self.expected_img_id,
|
self.ctx.project_id, self.expected_img_id,
|
||||||
self.img_name], env=test_env,
|
self.img_name], env=test_env,
|
||||||
stdout=-1),
|
stdout=-1),
|
||||||
mock.call([b_script, 'git://example.com/foo',
|
mock.call([b_script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'], 'new_app',
|
git_info['commit_sha'], 'new_app',
|
||||||
self.ctx.tenant, self.expected_img_id,
|
self.ctx.project_id, self.expected_img_id,
|
||||||
self.img_name], env=test_env,
|
self.img_name], env=test_env,
|
||||||
stdout=-1)]
|
stdout=-1)]
|
||||||
self.assertEqual(expected, mock_popen.call_args_list)
|
self.assertEqual(expected, mock_popen.call_args_list)
|
||||||
@@ -687,7 +687,7 @@ class HandlerTest(base.BaseTestCase):
|
|||||||
expected = [
|
expected = [
|
||||||
mock.call([u_script, 'git://example.com/foo',
|
mock.call([u_script, 'git://example.com/foo',
|
||||||
git_info['commit_sha'],
|
git_info['commit_sha'],
|
||||||
self.ctx.tenant, self.expected_img_id,
|
self.ctx.project_id, self.expected_img_id,
|
||||||
self.img_name], env=test_env,
|
self.img_name], env=test_env,
|
||||||
stdout=-1)]
|
stdout=-1)]
|
||||||
self.assertEqual(expected, mock_popen.call_args_list)
|
self.assertEqual(expected, mock_popen.call_args_list)
|
||||||
@@ -791,7 +791,7 @@ class TestBuildCommand(base.BaseTestCase):
|
|||||||
self.assertIn(self.expect_b, cmd[0])
|
self.assertIn(self.expect_b, cmd[0])
|
||||||
self.assertEqual('http://example.com/a.git', cmd[1])
|
self.assertEqual('http://example.com/a.git', cmd[1])
|
||||||
self.assertEqual('testa', cmd[3])
|
self.assertEqual('testa', cmd[3])
|
||||||
self.assertEqual(ctx.tenant, cmd[4])
|
self.assertEqual(ctx.project_id, cmd[4])
|
||||||
if self.base_image_id == 'auto' and self.image_format == 'qcow2':
|
if self.base_image_id == 'auto' and self.image_format == 'qcow2':
|
||||||
self.assertEqual('cedarish', cmd[5])
|
self.assertEqual('cedarish', cmd[5])
|
||||||
else:
|
else:
|
||||||
@@ -811,7 +811,7 @@ class TestBuildCommand(base.BaseTestCase):
|
|||||||
self.assertIn(self.expect_u, cmd[0])
|
self.assertIn(self.expect_u, cmd[0])
|
||||||
self.assertEqual('http://example.com/a.git', cmd[1])
|
self.assertEqual('http://example.com/a.git', cmd[1])
|
||||||
self.assertEqual('asdf', cmd[2])
|
self.assertEqual('asdf', cmd[2])
|
||||||
self.assertEqual(ctx.tenant, cmd[3])
|
self.assertEqual(ctx.project_id, cmd[3])
|
||||||
|
|
||||||
|
|
||||||
class TestLanguagePackBuildCommand(base.BaseTestCase):
|
class TestLanguagePackBuildCommand(base.BaseTestCase):
|
||||||
@@ -833,7 +833,7 @@ class TestLanguagePackBuildCommand(base.BaseTestCase):
|
|||||||
self.assertIn('lp-cedarish/docker/build-lp', cmd[0])
|
self.assertIn('lp-cedarish/docker/build-lp', cmd[0])
|
||||||
self.assertEqual('http://example.com/a.git', cmd[1])
|
self.assertEqual('http://example.com/a.git', cmd[1])
|
||||||
self.assertEqual('testa', cmd[2])
|
self.assertEqual('testa', cmd[2])
|
||||||
self.assertEqual(ctx.tenant, cmd[3])
|
self.assertEqual(ctx.project_id, cmd[3])
|
||||||
|
|
||||||
@mock.patch('solum.worker.handlers.shell.Handler._get_environment')
|
@mock.patch('solum.worker.handlers.shell.Handler._get_environment')
|
||||||
@mock.patch('solum.objects.registry')
|
@mock.patch('solum.objects.registry')
|
||||||
@@ -864,7 +864,7 @@ class TestLanguagePackBuildCommand(base.BaseTestCase):
|
|||||||
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-lp')
|
script = os.path.join(proj_dir, 'contrib/lp-cedarish/docker/build-lp')
|
||||||
mock_execute.assert_called_once_with(
|
mock_execute.assert_called_once_with(
|
||||||
script, 'git://example.com/foo',
|
script, 'git://example.com/foo',
|
||||||
'lp_name', self.ctx.tenant,
|
'lp_name', self.ctx.project_id,
|
||||||
env_variables=test_env,
|
env_variables=test_env,
|
||||||
run_as_root=True,
|
run_as_root=True,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class TenantLogger(object):
|
|||||||
t = time.time()
|
t = time.time()
|
||||||
print_tm = dt.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')
|
print_tm = dt.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')
|
||||||
log_line['@timestamp'] = print_tm
|
log_line['@timestamp'] = print_tm
|
||||||
log_line['project_id'] = self.ctxt.tenant
|
log_line['project_id'] = self.ctxt.project_id
|
||||||
log_line['stage_id'] = self.assem.uuid
|
log_line['stage_id'] = self.assem.uuid
|
||||||
log_line['task'] = self.stage
|
log_line['task'] = self.stage
|
||||||
log_line['message'] = message
|
log_line['message'] = message
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class DockerHandler(base.BaseHandler):
|
|||||||
def _prepare(self, git_info, lp_obj_name, lp_img_tag, logger):
|
def _prepare(self, git_info, lp_obj_name, lp_img_tag, logger):
|
||||||
"""Create working dir and download LP only once for an app workflow."""
|
"""Create working dir and download LP only once for an app workflow."""
|
||||||
if self.work_dir is None or self.source_sha is None:
|
if self.work_dir is None or self.source_sha is None:
|
||||||
tenant = self.context.tenant
|
tenant = self.context.project_id
|
||||||
self.work_dir = '/tmp/apps/{tenant}/{id}'.format(
|
self.work_dir = '/tmp/apps/{tenant}/{id}'.format(
|
||||||
tenant=tenant, id=self.assembly.uuid)
|
tenant=tenant, id=self.assembly.uuid)
|
||||||
try:
|
try:
|
||||||
@@ -117,7 +117,7 @@ class DockerHandler(base.BaseHandler):
|
|||||||
|
|
||||||
def build_lp(self, lp_name, git_info):
|
def build_lp(self, lp_name, git_info):
|
||||||
logger = self._get_tenant_logger('language_pack')
|
logger = self._get_tenant_logger('language_pack')
|
||||||
tenant = self.context.tenant
|
tenant = self.context.project_id
|
||||||
ts = utils.timestamp()
|
ts = utils.timestamp()
|
||||||
ranid = (''.join(random.choice(string.ascii_uppercase)
|
ranid = (''.join(random.choice(string.ascii_uppercase)
|
||||||
for _ in range(20)))
|
for _ in range(20)))
|
||||||
@@ -286,7 +286,7 @@ class DockerHandler(base.BaseHandler):
|
|||||||
logger.upload()
|
logger.upload()
|
||||||
return
|
return
|
||||||
|
|
||||||
tenant = self.context.tenant
|
tenant = self.context.project_id
|
||||||
ts = utils.timestamp()
|
ts = utils.timestamp()
|
||||||
storage_obj_name = '{name}-{ts}-{sha}'.format(name=app_name, ts=ts,
|
storage_obj_name = '{name}-{ts}-{sha}'.format(name=app_name, ts=ts,
|
||||||
sha=self.source_sha)
|
sha=self.source_sha)
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ class Handler(object):
|
|||||||
if run_cmd is not None:
|
if run_cmd is not None:
|
||||||
user_env['RUN_CMD'] = run_cmd
|
user_env['RUN_CMD'] = run_cmd
|
||||||
|
|
||||||
user_env['PROJECT_ID'] = ctxt.tenant
|
user_env['PROJECT_ID'] = ctxt.project_id
|
||||||
|
|
||||||
user_env['BUILD_ID'] = uuidutils.generate_uuid()
|
user_env['BUILD_ID'] = uuidutils.generate_uuid()
|
||||||
user_env['SOLUM_TASK_DIR'] = cfg.CONF.worker.task_log_dir
|
user_env['SOLUM_TASK_DIR'] = cfg.CONF.worker.task_log_dir
|
||||||
@@ -300,15 +300,15 @@ class Handler(object):
|
|||||||
|
|
||||||
if artifact_type == 'language_pack':
|
if artifact_type == 'language_pack':
|
||||||
build_lp = os.path.join(build_app_path, 'build-lp')
|
build_lp = os.path.join(build_app_path, 'build-lp')
|
||||||
return [build_lp, source_uri, name, ctxt.tenant]
|
return [build_lp, source_uri, name, ctxt.project_id]
|
||||||
|
|
||||||
if stage == 'unittest':
|
if stage == 'unittest':
|
||||||
build_app = os.path.join(build_app_path, 'unittest-app')
|
build_app = os.path.join(build_app_path, 'unittest-app')
|
||||||
return [build_app, source_uri, commit_sha, ctxt.tenant,
|
return [build_app, source_uri, commit_sha, ctxt.project_id,
|
||||||
base_image_id, lp_image_tag]
|
base_image_id, lp_image_tag]
|
||||||
elif stage == 'build':
|
elif stage == 'build':
|
||||||
build_app = os.path.join(build_app_path, 'build-app')
|
build_app = os.path.join(build_app_path, 'build-app')
|
||||||
return [build_app, source_uri, commit_sha, name, ctxt.tenant,
|
return [build_app, source_uri, commit_sha, name, ctxt.project_id,
|
||||||
base_image_id, lp_image_tag]
|
base_image_id, lp_image_tag]
|
||||||
|
|
||||||
def _get_parameter_env(self, ctxt, source_uri, assembly_id, build_id):
|
def _get_parameter_env(self, ctxt, source_uri, assembly_id, build_id):
|
||||||
@@ -697,7 +697,7 @@ class Handler(object):
|
|||||||
source_format, 'docker', '',
|
source_format, 'docker', '',
|
||||||
artifact_type)
|
artifact_type)
|
||||||
|
|
||||||
lp_access = get_lp_access_method(ctxt.tenant)
|
lp_access = get_lp_access_method(ctxt.project_id)
|
||||||
|
|
||||||
user_env = {}
|
user_env = {}
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user