Merge "Change version of pip on more newest" into queens
diff --git a/.gitreview b/.gitreview
index 4c67617..ab8c003 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,5 +1,5 @@
[gerrit]
-host=gerrit.mcp.mirantis.net
+host=gerrit.mcp.mirantis.com
port=29418
project=mcp/docker-ci-tempest.git
defaultbranch=queens
diff --git a/Dockerfile b/Dockerfile
index 08d60db..0cf5aa4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,6 +11,9 @@
ARG IRONIC_TAG="mcp/queens"
ARG MANILA_TAG="mcp/queens"
ARG TELEMETRY_TAG="mcp/queens"
+ARG OCTAVIA_TAG="mcp/queens"
+ARG PATROLE_TAG="0.4.x"
+ARG TUNGSTEN_TAG="0.1.x"
# global openstack requirements repo
# This is the commit where tempest version is 18.0.0 in u-c
ARG UPPER_CONSTRAINTS_TAG="6e64e622e8608ab817dbc809d99e02e4cfdd9f59"
@@ -30,7 +33,12 @@
&& echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > apt.conf.d/docker-gzip-indexes \
&& echo 'APT::Get::Install-Recommends "false"; APT::Get::Install-Suggests "false";' > apt.conf.d/docker-recommends \
&& apt-get update && apt-get upgrade -y \
- && apt-get install -y vim-tiny git-core python-pip libffi-dev libssl-dev python-dev python3-dev iputils-ping patch
+ && apt-get install -y vim-tiny git-core python-pip libffi-dev libssl-dev python-dev python3-dev iputils-ping patch openssh-server
+
+RUN mkdir -p /root/.ssh
+COPY bin/ssh/config /root/.ssh/
+COPY bin/ssh/mcp-jenkins.key /root/.ssh/
+RUN chmod 400 /root/.ssh/mcp-jenkins.key
#Due to upstream bug we should use fixed version of pip
RUN pip install -U 'pip==18.0'
@@ -39,45 +47,60 @@
RUN git clone https://github.com/openstack/requirements.git openstack_requirements && \
pushd openstack_requirements; git checkout $UPPER_CONSTRAINTS_TAG; popd ;
-RUN sed -i -e 's|tempest===18.0.0|git+https://gerrit.mcp.mirantis.net/packaging/sources/tempest@mcp/queens#egg=tempest|g' \
+RUN sed -i -e 's|tempest===18.0.0|git+ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/tempest@mcp/queens#egg=tempest|g' \
/var/lib/openstack_requirements/upper-constraints.txt;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/tempest-horizon tempest-horizon-plugin ; \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/tempest-horizon tempest-horizon-plugin; \
pushd tempest-horizon-plugin ; git checkout $HORIZON_TAG; \
- pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/barbican-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/barbican-tempest-plugin && \
pushd barbican-tempest-plugin; git checkout $BARBICAN_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/designate-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/designate-tempest-plugin && \
pushd designate-tempest-plugin; git checkout $DESIGNATE_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/heat-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/heat-tempest-plugin && \
pushd heat-tempest-plugin; git checkout $HEAT_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/ironic-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/ironic-tempest-plugin && \
pushd ironic-tempest-plugin; git checkout $IRONIC_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/manila-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/manila-tempest-plugin && \
pushd manila-tempest-plugin; git checkout $MANILA_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/telemetry-tempest-plugin && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/telemetry-tempest-plugin && \
pushd telemetry-tempest-plugin; git checkout $TELEMETRY_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
popd;
-RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/tempest && \
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/octavia-tempest-plugin && \
+ pushd octavia-tempest-plugin; git checkout $OCTAVIA_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
+ popd;
+
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/patrole patrole-tempest-plugin ; \
+ pushd /var/lib/patrole-tempest-plugin; git checkout $PATROLE_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
+ popd;
+
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/contrail/tungsten-tempest tungsten-tempest-plugin ; \
+ pushd /var/lib/tungsten-tempest-plugin; git checkout $TUNGSTEN_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt . ; \
+ popd;
+
+RUN git clone ssh://mcp-jenkins@gerrit.mcp.mirantis.com:29418/packaging/sources/tempest && \
pushd tempest; git checkout $TEMPEST_TAG; \
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
pip install . ; popd;
@@ -93,9 +116,14 @@
RUN apt-get -y autoremove; apt-get -y clean;
RUN rm -rf /root/.cache
RUN rm -rf /var/lib/apt/lists/*
+RUN rm -rf /root/.ssh
+
+RUN echo "BUILD_TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S' -u)" > /etc/build_timestamp
+
#
COPY bin/entrypoint.sh /usr/bin/entrypoint.sh
COPY bin/run_tempest.sh /usr/bin/run-tempest
+COPY bin/opencontrail/policy.json /etc/opencontrail/policy.json
ENV LOG_DIR='/root/tempest'
diff --git a/bin/entrypoint.sh b/bin/entrypoint.sh
index 3c9b695..6b15745 100755
--- a/bin/entrypoint.sh
+++ b/bin/entrypoint.sh
@@ -3,7 +3,7 @@
set -xe
function _info(){
- echo -e "=== INFO: PIKE"
+ echo -e "=== INFO: QUEENS"
set +x
echo -e "=== INFO: tempest version:"
tempest --version
diff --git a/bin/opencontrail/policy.json b/bin/opencontrail/policy.json
new file mode 100644
index 0000000..c2ab0ab
--- /dev/null
+++ b/bin/opencontrail/policy.json
@@ -0,0 +1,294 @@
+{
+ "list_api_access_lists": "role:admin",
+ "create_api_access_lists": "role:admin",
+ "show_api_access_list": "role:admin",
+ "update_api_access_list": "role:admin",
+ "delete_api_access_list": "role:admin",
+ "list_access_control_lists": "role:admin",
+ "create_access_control_lists": "role:admin",
+ "show_access_control_list": "role:admin",
+ "update_access_control_list": "role:admin",
+ "delete_access_control_list": "role:admin",
+ "list_alarms": "role:admin",
+ "create_alarms": "role:admin",
+ "show_alarm": "role:admin",
+ "update_alarm": "role:admin",
+ "delete_alarm": "role:admin",
+ "list_alias_ips": "role:admin",
+ "create_alias_ips": "role:admin",
+ "show_alias_ip": "role:admin",
+ "update_alias_ip": "role:admin",
+ "delete_alias_ip": "role:admin",
+ "list_alias_ip_pools": "role:admin",
+ "create_alias_ip_pools": "role:admin",
+ "show_alias_ip_pool": "role:admin",
+ "update_alias_ip_pool": "role:admin",
+ "delete_alias_ip_pool": "role:admin",
+ "list_analytics_nodes": "role:admin",
+ "show_analytics_node": "role:admin",
+ "create_analytics_nodes": "role:admin",
+ "update_analytics_node": "role:admin",
+ "delete_analytics_node": "role:admin",
+ "list_provider_attachments": "role:admin",
+ "create_provider_attachments": "role:admin",
+ "show_provider_attachment": "role:admin",
+ "update_provider_attachment": "role:admin",
+ "delete_provider_attachment": "role:admin",
+ "list_customer_attachments": "role:admin",
+ "create_customer_attachments": "role:admin",
+ "show_customer_attachment": "role:admin",
+ "update_customer_attachment": "role:admin",
+ "delete_customer_attachment": "role:admin",
+ "list_bgp_as_a_services": "role:admin",
+ "create_bgp_as_a_services": "role:admin",
+ "show_bgp_as_a_service": "role:admin",
+ "delete_bgp_as_a_service": "role:admin",
+ "update_bgp_as_a_service": "role:admin",
+ "list_config_nodes": "role:admin",
+ "create_config_nodes": "role:admin",
+ "delete_config_node": "role:admin",
+ "show_config_node": "role:admin",
+ "update_config_node": "role:admin",
+ "create_config_roots": "role:admin",
+ "delete_config_root": "role:admin",
+ "show_config_root": "role:admin",
+ "update_config_root": "role:admin",
+ "list_config_roots": "role:admin",
+ "list_global_system_configs": "role:admin",
+ "create_global_system_configs": "role:admin",
+ "show_global_system_config": "role:admin",
+ "update_global_system_config": "role:admin",
+ "delete_global_system_config": "role:admin",
+ "list_database_nodes": "role:admin",
+ "show_database_node": "role:admin",
+ "create_database_nodes": "role:admin",
+ "update_database_node": "role:admin",
+ "delete_database_node": "role:admin",
+ "list_discovery_service_assignments": "role:admin",
+ "create_discovery_service_assignments": "role:admin",
+ "show_discovery_service_assignment": "role:admin",
+ "update_discovery_service_assignment": "role:admin",
+ "delete_discovery_service_assignment": "role:admin",
+ "list_domains": "role:admin",
+ "create_domains": "role:admin",
+ "show_domain": "role:admin",
+ "update_domain": "role:admin",
+ "delete_domain": "role:admin",
+ "list_dsa_rules": "role:admin",
+ "show_dsa_rule": "role:admin",
+ "create_dsa_rules": "role:admin",
+ "update_dsa_rule": "role:admin",
+ "delete_dsa_rule": "role:admin",
+ "create_floating_ip_pools": "role:admin",
+ "list_floating_ip_pools": "role:admin",
+ "show_floating_ip_pool": "role:admin",
+ "update_floating_ip_pool": "role:admin",
+ "delete_floating_ip_pool": "role:admin",
+ "create_floating_ips": "role:admin",
+ "list_floating_ips": "role:admin",
+ "show_floating_ip": "role:admin",
+ "update_floating_ip": "role:admin",
+ "delete_floating_ip": "role:admin",
+ "list_forwarding_classs": "role:admin",
+ "show_forwarding_class": "role:admin",
+ "create_forwarding_classs": "role:admin",
+ "update_forwarding_class": "role:admin",
+ "delete_forwarding_class": "role:admin",
+ "fqname_to_id": "role:admin",
+ "id_to_fqname": "role:admin",
+ "list_instance_ips": "role:admin",
+ "create_instance_ips": "role:admin",
+ "show_instance_ip": "role:admin",
+ "update_instance_ip": "role:admin",
+ "delete_instance_ip": "role:admin",
+ "list_physical_interfaces": "role:admin",
+ "create_physical_interfaces": "role:admin",
+ "update_physical_interface": "role:admin",
+ "delete_physical_interface": "role:admin",
+ "show_physical_interface": "role:admin",
+ "list_logical_interfaces": "role:admin",
+ "create_logical_interfaces": "role:admin",
+ "update_logical_interface": "role:admin",
+ "delete_logical_interface": "role:admin",
+ "show_logical_interface": "role:admin",
+ "list_load_balancers": "role:admin",
+ "create_load_balancers": "role:admin",
+ "show_load_balancer": "role:admin",
+ "update_load_balancer": "role:admin",
+ "delete_load_balancer": "role:admin",
+ "list_load_balancer_health_monitors": "role:admin",
+ "create_load_balancer_health_monitors": "role:admin",
+ "show_load_balancer_health_monitor": "role:admin",
+ "update_load_balancer_health_monitor": "role:admin",
+ "delete_load_balancer_health_monitor": "role:admin",
+ "list_load_balancer_listeners": "role:admin",
+ "create_load_balancer_listeners": "role:admin",
+ "show_load_balancer_listener": "role:admin",
+ "update_load_balancer_listener": "role:admin",
+ "delete_load_balancer_listener": "role:admin",
+ "list_load_balancer_pools": "role:admin",
+ "create_load_balancer_pools": "role:admin",
+ "show_load_balancer_pool": "role:admin",
+ "update_load_balancer_pool": "role:admin",
+ "delete_load_balancer_pool": "role:admin",
+ "list_load_balancer_members": "role:admin",
+ "create_load_balancer_members": "role:admin",
+ "show_load_balancer_member": "role:admin",
+ "update_load_balancer_member": "role:admin",
+ "delete_load_balancer_member": "role:admin",
+ "list_namespaces": "role:admin",
+ "create_namespaces": "role:admin",
+ "show_namespace": "role:admin",
+ "update_namespace": "role:admin",
+ "delete_namespace": "role:admin",
+ "list_network_ipams": "role:admin",
+ "create_network_ipams": "role:admin",
+ "show_network_ipam": "role:admin",
+ "delete_network_ipam": "role:admin",
+ "update_network_ipam": "role:admin",
+ "list_network_policys": "role:admin",
+ "create_network_policys": "role:admin",
+ "show_network_policy": "role:admin",
+ "update_network_policy": "role:admin",
+ "delete_network_policy": "role:admin",
+ "list_port_tuples": "role:admin",
+ "show_port_tuple": "role:admin",
+ "create_port_tuples": "role:admin",
+ "update_port_tuple": "role:admin",
+ "delete_port_tuple": "role:admin",
+ "list_projects": "role:admin",
+ "create_projects": "role:admin",
+ "show_project": "role:admin",
+ "update_project": "role:admin",
+ "delete_project": "role:admin",
+ "list_qos_configs": "role:admin",
+ "create_qos_configs": "role:admin",
+ "show_qos_config": "role:admin",
+ "delete_qos_config": "role:admin",
+ "update_qos_config": "role:admin",
+ "list_global_qos_configs": "role:admin",
+ "create_global_qos_configs": "role:admin",
+ "show_global_qos_config": "role:admin",
+ "update_global_qos_config": "role:admin",
+ "delete_global_qos_config": "role:admin",
+ "list_qos_queues": "role:admin",
+ "create_qos_queues": "role:admin",
+ "show_qos_queue": "role:admin",
+ "delete_qos_queue": "role:admin",
+ "update_qos_queue": "role:admin",
+ "list_route_tables": "role:admin",
+ "show_route_table": "role:admin",
+ "create_route_tables": "role:admin",
+ "update_route_table": "role:admin",
+ "delete_route_table": "role:admin",
+ "list_interface_route_tables": "role:admin",
+ "show_interface_route_table": "role:admin",
+ "create_interface_route_tables": "role:admin",
+ "update_interface_route_table": "role:admin",
+ "delete_interface_route_table": "role:admin",
+ "list_route_targets": "role:admin",
+ "show_route_target": "role:admin",
+ "create_route_targets": "role:admin",
+ "update_route_target": "role:admin",
+ "delete_route_target": "role:admin",
+ "list_route_aggregates": "role:admin",
+ "show_route_aggregate": "role:admin",
+ "create_route_aggregates": "role:admin",
+ "update_route_aggregate": "role:admin",
+ "delete_route_aggregate": "role:admin",
+ "list_physical_routers": "role:admin",
+ "create_physical_routers": "role:admin",
+ "show_physical_router": "role:admin",
+ "update_physical_router": "role:admin",
+ "delete_physical_router": "role:admin",
+ "list_bgp_routers": "role:admin",
+ "create_bgp_routers": "role:admin",
+ "show_bgp_router": "role:admin",
+ "update_bgp_router": "role:admin",
+ "delete_bgp_router": "role:admin",
+ "list_global_vrouter_configs": "role:admin",
+ "create_global_vrouter_configs": "role:admin",
+ "show_global_vrouter_config": "role:admin",
+ "update_global_vrouter_config": "role:admin",
+ "delete_global_vrouter_config": "role:admin",
+ "list_logical_routers": "role:admin",
+ "create_logical_routers": "role:admin",
+ "show_logical_router": "role:admin",
+ "update_logical_router": "role:admin",
+ "delete_logical_router": "role:admin",
+ "list_virtual_routers": "role:admin",
+ "create_virtual_routers": "role:admin",
+ "show_virtual_router": "role:admin",
+ "update_virtual_router": "role:admin",
+ "delete_virtual_router": "role:admin",
+ "list_routing_policys": "role:admin",
+ "create_routing_policys": "role:admin",
+ "show_routing_policy": "role:admin",
+ "update_routing_policy": "role:admin",
+ "delete_routing_policy": "role:admin",
+ "list_routing_instances": "role:admin",
+ "create_routing_instances": "role:admin",
+ "show_routing_instance": "role:admin",
+ "delete_routing_instance": "role:admin",
+ "update_routing_instance": "role:admin",
+ "list_security_groups": "role:admin",
+ "show_security_group": "role:admin",
+ "delete_security_group": "role:admin",
+ "create_security_groups": "role:admin",
+ "update_security_group": "role:admin",
+ "list_service_appliances": "role:admin",
+ "create_service_appliances": "role:admin",
+ "show_service_appliance": "role:admin",
+ "update_service_appliance": "role:admin",
+ "delete_service_appliance": "role:admin",
+ "list_service_appliance_sets": "role:admin",
+ "create_service_appliance_sets": "role:admin",
+ "show_service_appliance_set": "role:admin",
+ "update_service_appliance_set": "role:admin",
+ "delete_service_appliance_set": "role:admin",
+ "list_service_templates": "role:admin",
+ "create_service_templates": "role:admin",
+ "show_service_template": "role:admin",
+ "update_service_template": "role:admin",
+ "delete_service_template": "role:admin",
+ "list_service_health_checks": "role:admin",
+ "create_service_health_checks": "role:admin",
+ "show_service_health_check": "role:admin",
+ "update_service_health_check": "role:admin",
+ "delete_service_health_check": "role:admin",
+ "create_service_instances": "role:admin",
+ "show_service_instance": "role:admin",
+ "delete_service_instance": "role:admin",
+ "list_service_instances": "role:admin",
+ "update_service_instance": "role:admin",
+ "list_subnets": "role:admin",
+ "create_subnets": "role:admin",
+ "show_subnet": "role:admin",
+ "update_subnet": "role:admin",
+ "delete_subnet": "role:admin",
+ "list_virtual_DNSs": "role:admin",
+ "create_virtual_DNSs": "role:admin",
+ "show_virtual_DNS": "role:admin",
+ "delete_virtual_DNS": "role:admin",
+ "update_virtual_DNS": "role:admin",
+ "list_virtual_DNS_records": "role:admin",
+ "create_virtual_DNS_records": "role:admin",
+ "show_virtual_DNS_record": "role:admin",
+ "delete_virtual_DNS_record": "role:admin",
+ "update_virtual_DNS_record": "role:admin",
+ "list_virtual_ips": "role:admin",
+ "create_virtual_ips": "role:admin",
+ "show_virtual_ip": "role:admin",
+ "update_virtual_ip": "role:admin",
+ "delete_virtual_ip": "role:admin",
+ "list_virtual_machine_interfaces": "role:admin",
+ "create_virtual_machine_interfaces": "role:admin",
+ "show_virtual_machine_interface": "role:admin",
+ "delete_virtual_machine_interface": "role:admin",
+ "update_virtual_machine_interface": "role:admin",
+ "list_virtual_networks": "role:admin",
+ "create_virtual_networks": "role:admin",
+ "update_virtual_network": "role:admin",
+ "delete_virtual_network": "role:admin",
+ "show_virtual_network": "role:admin"
+}
diff --git a/bin/ssh/config b/bin/ssh/config
new file mode 100644
index 0000000..6865806
--- /dev/null
+++ b/bin/ssh/config
@@ -0,0 +1,5 @@
+host gerrit.mcp.mirantis.com
+ HostName gerrit.mcp.mirantis.com
+ User mcp-jenkins
+ IdentityFile /root/.ssh/mcp-jenkins.key
+ StrictHostKeyChecking no
\ No newline at end of file
diff --git a/bin/ssh/mcp-jenkins.key b/bin/ssh/mcp-jenkins.key
new file mode 100644
index 0000000..67fcbfe
--- /dev/null
+++ b/bin/ssh/mcp-jenkins.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----