<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=P+Rivera</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=P+Rivera"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/P_Rivera"/>
		<updated>2026-07-10T15:05:47Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153348</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153348"/>
				<updated>2017-04-18T16:33:54Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */ Added PV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| COE || Container Orchestration Engine || Software to manage containers&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| CRUD || Create, Read, Update, Delete || [https://en.wikipedia.org/wiki/Create,_read,_update_and_delete CRUD as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| GKE || Google Container Engine || [https://cloud.google.com/container-engine/ GKE as defined by Google]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || See http://docs.openstack.org/project-team-guide/&lt;br /&gt;
|-&lt;br /&gt;
| PV || Persistent Volumes || See https://kubernetes.io/docs/user-guide/persistent-volumes/&lt;br /&gt;
|-&lt;br /&gt;
| RC || Replication Controller || See https://www.openstack.org/assets/presentation-media/openstack-magnum-hands-on.pdf&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153347</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153347"/>
				<updated>2017-04-18T16:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */ Added GKE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| COE || Container Orchestration Engine || Software to manage containers&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| CRUD || Create, Read, Update, Delete || [https://en.wikipedia.org/wiki/Create,_read,_update_and_delete CRUD as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| GKE || Google Container Engine || [https://cloud.google.com/container-engine/ GKE as defined by Google]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || See http://docs.openstack.org/project-team-guide/&lt;br /&gt;
|-&lt;br /&gt;
| RC || Replication Controller || See https://www.openstack.org/assets/presentation-media/openstack-magnum-hands-on.pdf&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153346</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=153346"/>
				<updated>2017-04-18T16:21:26Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| COE || Container Orchestration Engine || Software to manage containers&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| CRUD || Create, Read, Update, Delete || [https://en.wikipedia.org/wiki/Create,_read,_update_and_delete CRUD as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || See http://docs.openstack.org/project-team-guide/&lt;br /&gt;
|-&lt;br /&gt;
| RC || Replication Controller || See https://www.openstack.org/assets/presentation-media/openstack-magnum-hands-on.pdf&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=104617</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=104617"/>
				<updated>2016-02-19T22:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| COE || Container Orchestration Engine || Software to manage containers&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| CRUD || Create, Read, Update, Delete || [https://en.wikipedia.org/wiki/Create,_read,_update_and_delete CRUD as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=99674</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=99674"/>
				<updated>2015-12-15T16:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| CRUD || Create, Read, Update, Delete || [https://en.wikipedia.org/wiki/Create,_read,_update_and_delete CRUD as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=99116</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=99116"/>
				<updated>2015-12-08T16:32:19Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| WSME || Web Services Made Easy || [https://pypi.python.org/pypi/WSME Python-based framework used in OpenStack]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=97772</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=97772"/>
				<updated>2015-11-24T16:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CNM || Container Networking Model || [https://github.com/openstack/magnum/blob/master/specs/container-networking-model.rst Container Networking Model]&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=91830</id>
		<title>Magnum</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=91830"/>
				<updated>2015-10-06T16:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Magnum is an OpenStack API service developed by the [[Teams/Containers|OpenStack Containers Team]] making container orchestration engines such as Docker and Kubernetes available as first class resources in OpenStack.  Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration. Click below for a 5 minute demo of how Magnum works.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Demo-Preview-Frame.png|none|link=https://vimeo.com/128538940|frame|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* 2015-08-26 Magnum will be presenting [http://sched.co/49xE a session on Magnum] at the 2015 OpenStack Summit in Tokyo on October 28 4:40pm - 5:20pm&lt;br /&gt;
* 2015-05-21 We presented [https://openstacksummitmay2015vancouver.sched.org/event/ec3936678ef22681408088ec52a4e80b a session on Magnum] at the 2015 OpenStack Summit in Vancouver on Thursday, May 21 9:00am - 9:40am US/Pacific. [https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/magnum-containers-as-a-service-for-openstack Video]&lt;br /&gt;
* 2015-03-24 Magnum has [https://review.openstack.org/161080 officially joined] the OpenStack project list upon approval by a unanimous vote by the Technical Committee.&lt;br /&gt;
* 2015-03-09 Our Kilo-2 release is now [https://github.com/stackforge/magnum/releases/tag/2015.1.0b2 available for download]&lt;br /&gt;
* 2015-01-20 We [http://lists.openstack.org/pipermail/openstack-dev/2015-January/054848.html have announced] Magnum's first release, now [https://github.com/stackforge/magnum/releases/tag/m1 available for download].&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
To get started with Magnum, see: [http://docs.openstack.org/developer/magnum/dev/dev-quickstart.html Our Quickstart Guide]&lt;br /&gt;
&lt;br /&gt;
= Contributing =&lt;br /&gt;
&lt;br /&gt;
The project is under active development by our OpenStack Containers Team. We [[Meetings/Containers|meet weekly by IRC]]. Magnum's meetings are normally chaired by our PTL [https://launchpad.net/~aotto Adrian Otto].&lt;br /&gt;
&lt;br /&gt;
* We want you to [[Magnum/Contributing|contribute to Magnum]]!&lt;br /&gt;
&lt;br /&gt;
= Architecture =&lt;br /&gt;
&lt;br /&gt;
[[File:Magnum_architecture.png|center|800px|Magnum Architeture Diagram]]&lt;br /&gt;
Bay Create/Update/Delete&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* Launchpad Project Pages&lt;br /&gt;
** [http://launchpad.net/magnum Magnum Launchpad Project] for Blueprints&lt;br /&gt;
** [http://launchpad.net/python-magnumclient python-magnumclient Launchpad Project] for Blueprints&lt;br /&gt;
* Mailing List&lt;br /&gt;
** [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Mailing List] for project related discussion&lt;br /&gt;
*** Add [Magnum] to the subject line of new posts about this project.&lt;br /&gt;
** [http://lists.openstack.org/pipermail/openstack-dev/ OpenStack Mailing List Archives] for current discussion.&lt;br /&gt;
* Code Reviews&lt;br /&gt;
** [https://review.openstack.org/#/q/status:open+magnum,n,z Gerrit Reviews]&lt;br /&gt;
* Code Repository&lt;br /&gt;
** git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
* Specification&lt;br /&gt;
** [https://review.openstack.org/136103 Containers Service Spec]&lt;br /&gt;
* References&lt;br /&gt;
**[[Magnum/Acronyms|Acronyms]]&lt;br /&gt;
**[http://eavesdrop.openstack.org/irclogs/%23openstack-containers/ IRC Logs - OpenStack Containers]&lt;br /&gt;
**[http://eavesdrop.openstack.org/meetings/containers/2015/ Meeting Minutes - OpenStack Containers]&lt;br /&gt;
&lt;br /&gt;
= IRC =&lt;br /&gt;
&lt;br /&gt;
Our developers use IRC in #openstack-containers on freenode for development discussion.&lt;br /&gt;
&lt;br /&gt;
= Meetings =&lt;br /&gt;
&lt;br /&gt;
* The weekly Containers [[Meetings/Containers|IRC meeting]] is held on Tuesdays at 1600 UTC [[Meetings/Containers|[schedule]]].&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/containers/2014/ 2014 Containers Meeting Archive]&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions =&lt;br /&gt;
'''1) How is Magnum is different from Nova?''' &lt;br /&gt;
&lt;br /&gt;
Magnum provides a purpose built API to manage application containers, which have a distinctly different life cycle and operations than Nova (machine) Instances. We actually use Nova instances to run our application containers.&lt;br /&gt;
&lt;br /&gt;
'''2) How is Magnum different than Docker or Kubernetes?'''&lt;br /&gt;
&lt;br /&gt;
Magnum offers an asynchronous API that's compatible with Keystone, and a complete multi-tenancy implementation. It does not perform orchestration&lt;br /&gt;
internally, and instead relies on OpenStack Orchestration. Magnum does leverage both Kubernetes and Docker as components.&lt;br /&gt;
&lt;br /&gt;
'''3) Is this the same thing as Nova-Docker?'''&lt;br /&gt;
&lt;br /&gt;
No, Nova-Docker is a virt driver for Nova that allows containers to be created as Nova instances. This is suitable for use cases when you want to treat a container like a lightweight machine. Magnum provides container specific features that are beyond the scope of Nova's API, and implements its own API to surface these features in a way that is consistent with other OpenStack services. Containers started by Magnum are run on top of Nova instances that are created using Heat.&lt;br /&gt;
&lt;br /&gt;
'''4) Who is Magnum for?'''&lt;br /&gt;
&lt;br /&gt;
Magnum is for OpenStack cloud operators (public or private) who want to offer a self-service solution to provide containers to their cloud users as a managed hosted service. Magnum simplifies the required integration with OpenStack, and allows for cloud users who can already launch cloud resources such as Nova Instances, Cinder Volumes, Trove Databases, etc. to also create application containers to run applications in an environment that provides advanced features that are beyond the scope of existing cloud resources. The same identity credentials used to create IaaS resources can be used to run containerized applications using Magnum. Some examples of advanced features available with Magnum are the ability to scale an application to a specified number of instances, to cause your application to automatically re-spawn an instance in the event of a failure, and to pack applications together more tightly than would be possible using Virtual Machines.&lt;br /&gt;
&lt;br /&gt;
'''5) Will I get the same thing if I use the Docker resource in Heat?'''&lt;br /&gt;
&lt;br /&gt;
No, the Docker Heat resource does not provide a resource scheduler, or a choice of container technology used. It is specific to Docker, and uses Glance to store container images. It does not currently allow for layered image features, which can cause containers to take longer to start than if layered images are used with a locally cached base image. Magnum leverages all of the speed benefits that Docker offers.&lt;br /&gt;
&lt;br /&gt;
'''6) What does multi-tenancy mean in Magnum (Is Magnum Secure)?'''&lt;br /&gt;
&lt;br /&gt;
Resources such as Containers, Services, Pods, Bays, etc. started by Magnum can only be viewed and accessed by users of the tenant that created them. Bays are not shared, meaning that containers will not run on the same kernel as neighboring tenants. This is a key security feature that allows containers belonging to the same tenant to be tightly packed within the same Pods and Bays, but runs separate kernels (in separate Nova Instances) between different tenants. This is different than using a system like Kubernetes without Magnum, which is intended to be used only by a single tenant, and leaves the security isolation design up to the implementer. Using Magnum provides the same level of security isolation as Nova provides when running Virtual Machines belonging to different tenants on the same compute nodes.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=90832</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=90832"/>
				<updated>2015-09-22T22:44:36Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| BP || Blueprint || [https://wiki.openstack.org/wiki/Blueprints OpenStack Blueprints]&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| LB || Load Balancer || [http://paulbakker.io/kubernetes/load-balancing-kubernetes/ Load Balancing Kubernetes]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=90831</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=90831"/>
				<updated>2015-09-22T22:25:06Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| CR || Core Reviewer || [http://docs.openstack.org/infra/manual/core.html Core Reviewer's Guide]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=86030</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=86030"/>
				<updated>2015-07-15T00:33:42Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Write some awesome code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide] and [https://github.com/openstack/magnum/blob/master/doc/source/dev/dev-manual-devstack.rst Manually Adding Magnum to DevStack Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend that you spend 40 minutes watching the [https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors 7 Habits of Highly Effective Contributors] video. This is Adrian Otto's philosophy on the behaviors that you should exhibit to become a valued member of our contributor community. Adrian is the founding PTL of Magnum.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name (see below...)]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
To find out what branch names are valid, try out one of the useful git branch commands here: http://gitready.com/intermediate/2009/02/13/list-remote-branches.html&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
# The order these lines is important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you'd like specific details of how to assemble your commit message,&lt;br /&gt;
see the message structure guideline document here:&lt;br /&gt;
https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case, a possible message might look like:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-Bug: #&amp;lt;some bug/task ticket number&amp;gt;&lt;br /&gt;
  Change-Id: &amp;lt;some lengthy hexadecimal string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' Be sure to include the pound (#) symbol in the Closes-Bug line, e.g. Closes-Bug: #111111&lt;br /&gt;
&lt;br /&gt;
Once you organize the above information, perform the following command to type it in:&lt;br /&gt;
  git commit -a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, submit the review:&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, first navigate back to your development area:&lt;br /&gt;
  cd ~/magnum [or wherever that is for your setup...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the change. Be sure to use the review number and NOT the bug number:&lt;br /&gt;
  git review -d &amp;lt;review number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, make your changes, and update the commit message using the aforementioned commit guidelines:&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
=== Need somewhere to start writing code? ===&lt;br /&gt;
&lt;br /&gt;
You can also contribute to the quality of the code by looking at the coverage of current Magnum unit tests and improving the code coverage.&lt;br /&gt;
The following code has under 30% code coverage.&lt;br /&gt;
&lt;br /&gt;
 Name                                                                                 Stmts   Miss Branch BrMiss  Cover   Missing&lt;br /&gt;
 magnum/base                                                                             56     56     16     16     0%   13-113&lt;br /&gt;
 magnum/cloud/nova_driver                                                                20     20      0      0     0%   13-45&lt;br /&gt;
 magnum/cmd/api                                                                          23     23      2      2     0%   15-54&lt;br /&gt;
 magnum/cmd/conductor                                                                    28     28      3      3     0%   15-65&lt;br /&gt;
 magnum/cmd/db_manage                                                                    42     42      2      2     0%   14-91&lt;br /&gt;
 magnum/cmd/template_manage                                                              49     49     15     15     0%   14-96&lt;br /&gt;
 magnum/common/pythonk8sclient/client/ApivbetaApi                                      4570   4415   1656   1656     2%   30, 55-109, ...&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Binding                             18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Container                           21     18      0      0    14%   29-179&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated            12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus                     13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints                           18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Event                               24     21      0      0    13%   29-206&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange                          18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Namespace                           19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Node                                19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition                       11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo                      13     10      0      0    23%   29-105&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference                     12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume                    19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim               19     16      0      0    16%   29-160&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Pod                                 19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec                             12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus                           11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec                     16     13      0      0    19%   29-134&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController               19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota                       19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Secret                              19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Service                             19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec                         11      8      0      0    27%   29-88&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Volume                              13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/swagger                                           154    125     74     74    13%   33-40, 44, 48,  ...&lt;br /&gt;
 magnum/common/service                                                                    5      5      0      0     0%   15-22&lt;br /&gt;
 magnum/config                                                                            8      8      0      0     0%   15-78&lt;br /&gt;
 magnum/db/migration                                                                     19     19      2      2     0%   17-52&lt;br /&gt;
 magnum/opts                                                                             16     16      0      0     0%   16-34&lt;br /&gt;
 TOTAL                                                                                10985   5975   2908   2063    42%&lt;br /&gt;
&lt;br /&gt;
You can review the code coverage of your currently checked out code with:&lt;br /&gt;
  $ tox -e cover&lt;br /&gt;
&lt;br /&gt;
This will produce a '''cover''' directory that provides HTML output showing the code coverage as well as the specific lines of code that are not covered.&lt;br /&gt;
&lt;br /&gt;
==== Low Hanging Fruit ====&lt;br /&gt;
Some bugs have been identified by the bug manager as appropriate for first time contributors. These bugs should require small patches, and don't require an extensive understanding of Magnum to work on. Find them [https://bugs.launchpad.net/magnum/+bugs?field.tag=low-hanging-fruit tagged with the low-hanging-fruit tag in the bug system].&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=86029</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=86029"/>
				<updated>2015-07-15T00:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Write some awesome code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide] and [https://github.com/openstack/magnum/blob/master/doc/source/dev/dev-manual-devstack.rst Manually Adding Magnum to DevStack Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend that you spend 40 minutes watching the [https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors 7 Habits of Highly Effective Contributors] video. This is Adrian Otto's philosophy on the behaviors that you should exhibit to become a valued member of our contributor community. Adrian is the founding PTL of Magnum.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name (see below...)]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
To find out what branch names are valid, try out one of the useful git branch commands here: http://gitready.com/intermediate/2009/02/13/list-remote-branches.html&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
# The order these lines is important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you'd like specific details of how to assemble your commit message,&lt;br /&gt;
see the message structure guideline document here:&lt;br /&gt;
https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case, a possible message might look like:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-Bug: #&amp;lt;some bug/task ticket number&amp;gt;&lt;br /&gt;
  Change-Id: &amp;lt;some lengthy hexadecimal string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' Be sure to include the pound (#) symbol in the Closes-Bug line!&lt;br /&gt;
&lt;br /&gt;
Once you organize the above information, perform the following command to type it in:&lt;br /&gt;
  git commit -a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, submit the review:&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, first navigate back to your development area:&lt;br /&gt;
  cd ~/magnum [or wherever that is for your setup...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the change. Be sure to use the review number and NOT the bug number:&lt;br /&gt;
  git review -d &amp;lt;review number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, make your changes, and update the commit message using the aforementioned commit guidelines:&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
=== Need somewhere to start writing code? ===&lt;br /&gt;
&lt;br /&gt;
You can also contribute to the quality of the code by looking at the coverage of current Magnum unit tests and improving the code coverage.&lt;br /&gt;
The following code has under 30% code coverage.&lt;br /&gt;
&lt;br /&gt;
 Name                                                                                 Stmts   Miss Branch BrMiss  Cover   Missing&lt;br /&gt;
 magnum/base                                                                             56     56     16     16     0%   13-113&lt;br /&gt;
 magnum/cloud/nova_driver                                                                20     20      0      0     0%   13-45&lt;br /&gt;
 magnum/cmd/api                                                                          23     23      2      2     0%   15-54&lt;br /&gt;
 magnum/cmd/conductor                                                                    28     28      3      3     0%   15-65&lt;br /&gt;
 magnum/cmd/db_manage                                                                    42     42      2      2     0%   14-91&lt;br /&gt;
 magnum/cmd/template_manage                                                              49     49     15     15     0%   14-96&lt;br /&gt;
 magnum/common/pythonk8sclient/client/ApivbetaApi                                      4570   4415   1656   1656     2%   30, 55-109, ...&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Binding                             18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Container                           21     18      0      0    14%   29-179&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated            12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus                     13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints                           18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Event                               24     21      0      0    13%   29-206&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange                          18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Namespace                           19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Node                                19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition                       11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo                      13     10      0      0    23%   29-105&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference                     12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume                    19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim               19     16      0      0    16%   29-160&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Pod                                 19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec                             12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus                           11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec                     16     13      0      0    19%   29-134&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController               19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota                       19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Secret                              19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Service                             19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec                         11      8      0      0    27%   29-88&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Volume                              13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/swagger                                           154    125     74     74    13%   33-40, 44, 48,  ...&lt;br /&gt;
 magnum/common/service                                                                    5      5      0      0     0%   15-22&lt;br /&gt;
 magnum/config                                                                            8      8      0      0     0%   15-78&lt;br /&gt;
 magnum/db/migration                                                                     19     19      2      2     0%   17-52&lt;br /&gt;
 magnum/opts                                                                             16     16      0      0     0%   16-34&lt;br /&gt;
 TOTAL                                                                                10985   5975   2908   2063    42%&lt;br /&gt;
&lt;br /&gt;
You can review the code coverage of your currently checked out code with:&lt;br /&gt;
  $ tox -e cover&lt;br /&gt;
&lt;br /&gt;
This will produce a '''cover''' directory that provides HTML output showing the code coverage as well as the specific lines of code that are not covered.&lt;br /&gt;
&lt;br /&gt;
==== Low Hanging Fruit ====&lt;br /&gt;
Some bugs have been identified by the bug manager as appropriate for first time contributors. These bugs should require small patches, and don't require an extensive understanding of Magnum to work on. Find them [https://bugs.launchpad.net/magnum/+bugs?field.tag=low-hanging-fruit tagged with the low-hanging-fruit tag in the bug system].&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=85286</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=85286"/>
				<updated>2015-07-07T06:13:33Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Set up your local branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide] and [https://github.com/openstack/magnum/blob/master/doc/source/dev/dev-manual-devstack.rst Manually Adding Magnum to DevStack Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend that you spend 40 minutes watching the [https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors 7 Habits of Highly Effective Contributors] video. This is Adrian Otto's philosophy on the behaviors that you should exhibit to become a valued member of our contributor community. Adrian is the founding PTL of Magnum.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name (see below...)]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
To find out what branch names are valid, try out one of the useful git branch commands here: http://gitready.com/intermediate/2009/02/13/list-remote-branches.html&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
# The order these lines is important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you'd like specific details of how to assemble your commit message,&lt;br /&gt;
see the message structure guideline document here:&lt;br /&gt;
https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case, a possible message might look like:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-Bug: &amp;lt;some bug/task ticket number&amp;gt;&lt;br /&gt;
  Change-Id: &amp;lt;some lengthy hexadecimal string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you organize the above information, perform the following command to type it in:&lt;br /&gt;
  git commit -a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, submit the review:&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, first navigate back to your development area:&lt;br /&gt;
  cd ~/magnum [or wherever that is for your setup...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the change. Be sure to use the review number and NOT the bug number:&lt;br /&gt;
  git review -d &amp;lt;review number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, make your changes, and update the commit message using the aforementioned commit guidelines:&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
=== Need somewhere to start writing code? ===&lt;br /&gt;
&lt;br /&gt;
You can also contribute to the quality of the code by looking at the coverage of current Magnum unit tests and improving the code coverage.&lt;br /&gt;
The following code has under 30% code coverage.&lt;br /&gt;
&lt;br /&gt;
 Name                                                                                 Stmts   Miss Branch BrMiss  Cover   Missing&lt;br /&gt;
 magnum/base                                                                             56     56     16     16     0%   13-113&lt;br /&gt;
 magnum/cloud/nova_driver                                                                20     20      0      0     0%   13-45&lt;br /&gt;
 magnum/cmd/api                                                                          23     23      2      2     0%   15-54&lt;br /&gt;
 magnum/cmd/conductor                                                                    28     28      3      3     0%   15-65&lt;br /&gt;
 magnum/cmd/db_manage                                                                    42     42      2      2     0%   14-91&lt;br /&gt;
 magnum/cmd/template_manage                                                              49     49     15     15     0%   14-96&lt;br /&gt;
 magnum/common/pythonk8sclient/client/ApivbetaApi                                      4570   4415   1656   1656     2%   30, 55-109, ...&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Binding                             18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Container                           21     18      0      0    14%   29-179&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated            12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus                     13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints                           18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Event                               24     21      0      0    13%   29-206&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange                          18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Namespace                           19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Node                                19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition                       11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo                      13     10      0      0    23%   29-105&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference                     12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume                    19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim               19     16      0      0    16%   29-160&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Pod                                 19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec                             12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus                           11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec                     16     13      0      0    19%   29-134&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController               19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota                       19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Secret                              19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Service                             19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec                         11      8      0      0    27%   29-88&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Volume                              13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/swagger                                           154    125     74     74    13%   33-40, 44, 48,  ...&lt;br /&gt;
 magnum/common/service                                                                    5      5      0      0     0%   15-22&lt;br /&gt;
 magnum/config                                                                            8      8      0      0     0%   15-78&lt;br /&gt;
 magnum/db/migration                                                                     19     19      2      2     0%   17-52&lt;br /&gt;
 magnum/opts                                                                             16     16      0      0     0%   16-34&lt;br /&gt;
 TOTAL                                                                                10985   5975   2908   2063    42%&lt;br /&gt;
&lt;br /&gt;
You can review the code coverage of your currently checked out code with:&lt;br /&gt;
  $ tox -e cover&lt;br /&gt;
&lt;br /&gt;
This will produce a '''cover''' directory that provides HTML output showing the code coverage as well as the specific lines of code that are not covered.&lt;br /&gt;
&lt;br /&gt;
==== Low Hanging Fruit ====&lt;br /&gt;
Some bugs have been identified by the bug manager as appropriate for first time contributors. These bugs should require small patches, and don't require an extensive understanding of Magnum to work on. Find them [https://bugs.launchpad.net/magnum/+bugs?field.tag=low-hanging-fruit tagged with the low-hanging-fruit tag in the bug system].&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=84437</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=84437"/>
				<updated>2015-06-28T07:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Write some awesome code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide] and [https://github.com/openstack/magnum/blob/master/doc/source/dev/dev-manual-devstack.rst Manually Adding Magnum to DevStack Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend that you spend 40 minutes watching the [https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors 7 Habits of Highly Effective Contributors] video. This is Adrian Otto's philosophy on the behaviors that you should exhibit to become a valued member of our contributor community. Adrian is the founding PTL of Magnum.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
# The order these lines is important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you'd like specific details of how to assemble your commit message,&lt;br /&gt;
see the message structure guideline document here:&lt;br /&gt;
https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case, a possible message might look like:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-Bug: &amp;lt;some bug/task ticket number&amp;gt;&lt;br /&gt;
  Change-Id: &amp;lt;some lengthy hexadecimal string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you organize the above information, perform the following command to type it in:&lt;br /&gt;
  git commit -a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, submit the review:&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, first navigate back to your development area:&lt;br /&gt;
  cd ~/magnum [or wherever that is for your setup...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the change. Be sure to use the review number and NOT the bug number:&lt;br /&gt;
  git review -d &amp;lt;review number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, make your changes, and update the commit message using the aforementioned commit guidelines:&lt;br /&gt;
 git commit --amend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
=== Need somewhere to start writing code? ===&lt;br /&gt;
&lt;br /&gt;
You can also contribute to the quality of the code by looking at the coverage of current Magnum unit tests and improving the code coverage.&lt;br /&gt;
The following code has under 30% code coverage.&lt;br /&gt;
&lt;br /&gt;
 Name                                                                                 Stmts   Miss Branch BrMiss  Cover   Missing&lt;br /&gt;
 magnum/base                                                                             56     56     16     16     0%   13-113&lt;br /&gt;
 magnum/cloud/nova_driver                                                                20     20      0      0     0%   13-45&lt;br /&gt;
 magnum/cmd/api                                                                          23     23      2      2     0%   15-54&lt;br /&gt;
 magnum/cmd/conductor                                                                    28     28      3      3     0%   15-65&lt;br /&gt;
 magnum/cmd/db_manage                                                                    42     42      2      2     0%   14-91&lt;br /&gt;
 magnum/cmd/template_manage                                                              49     49     15     15     0%   14-96&lt;br /&gt;
 magnum/common/pythonk8sclient/client/ApivbetaApi                                      4570   4415   1656   1656     2%   30, 55-109, ...&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Binding                             18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Container                           21     18      0      0    14%   29-179&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated            12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus                     13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints                           18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Event                               24     21      0      0    13%   29-206&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange                          18     15      0      0    17%   29-152&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Namespace                           19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Node                                19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition                       11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo                      13     10      0      0    23%   29-105&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference                     12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume                    19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim               19     16      0      0    16%   29-160&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Pod                                 19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec                             12      9      0      0    25%   29-98&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus                           11      8      0      0    27%   29-89&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec                     16     13      0      0    19%   29-134&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController               19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota                       19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Secret                              19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Service                             19     16      0      0    16%   29-161&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec                         11      8      0      0    27%   29-88&lt;br /&gt;
 magnum/common/pythonk8sclient/client/models/V1beta3_Volume                              13     10      0      0    23%   29-107&lt;br /&gt;
 magnum/common/pythonk8sclient/client/swagger                                           154    125     74     74    13%   33-40, 44, 48,  ...&lt;br /&gt;
 magnum/common/service                                                                    5      5      0      0     0%   15-22&lt;br /&gt;
 magnum/config                                                                            8      8      0      0     0%   15-78&lt;br /&gt;
 magnum/db/migration                                                                     19     19      2      2     0%   17-52&lt;br /&gt;
 magnum/opts                                                                             16     16      0      0     0%   16-34&lt;br /&gt;
 TOTAL                                                                                10985   5975   2908   2063    42%&lt;br /&gt;
&lt;br /&gt;
You can review the code coverage of your currently checked out code with:&lt;br /&gt;
  $ tox -e cover&lt;br /&gt;
&lt;br /&gt;
This will produce a '''cover''' directory that provides HTML output showing the code coverage as well as the specific lines of code that are not covered.&lt;br /&gt;
&lt;br /&gt;
==== Low Hanging Fruit ====&lt;br /&gt;
Some bugs have been identified by the bug manager as appropriate for first time contributors. These bugs should require small patches, and don't require an extensive understanding of Magnum to work on. Find them [https://bugs.launchpad.net/magnum/+bugs?field.tag=low-hanging-fruit tagged with the low-hanging-fruit tag in the bug system].&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=83013</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=83013"/>
				<updated>2015-06-09T17:23:15Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| AI || Action Item || [http://whatis.techtarget.com/definition/action-item What is an action item?]&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=82296</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=82296"/>
				<updated>2015-06-02T00:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| PTL || Project Team Lead || [[PTL Guide]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=80083</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=80083"/>
				<updated>2015-05-05T06:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Before You Begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide] and [https://github.com/openstack/magnum/blob/master/doc/source/dev/dev-manual-devstack.rst Manually Adding Magnum to DevStack Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-bug: &amp;lt;bug/task ticket number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then,&lt;br /&gt;
&lt;br /&gt;
  git commit -a&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, make your changes, then use:&lt;br /&gt;
 git commit -a --amend&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=77492</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=77492"/>
				<updated>2015-04-14T17:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| PBR || Python Build Reasonableness || [https://pypi.python.org/pypi/pbr Python Build Reasonableness]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=77147</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=77147"/>
				<updated>2015-04-07T23:24:33Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| TLS || Transport Layer Security || [http://en.wikipedia.org/wiki/Transport_Layer_Security Transport_Layer_Security as defined by Wikipedia]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76642</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76642"/>
				<updated>2015-03-31T17:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| ATC || Active Technical Contributor || [https://ask.openstack.org/en/question/1629/how-do-i-become-an-active-technical-contributor/ How do I become an Active Technical Contributor?]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| TBD || To Be Determined ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76639</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76639"/>
				<updated>2015-03-31T16:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| K8S || Kubernetes || [http://kubernetes.io/ Kubernetes by Google]&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| TBD || To Be Determined ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=76468</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=76468"/>
				<updated>2015-03-28T05:09:39Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Before You Begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/openstack/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/openstack/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/openstack/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/openstack/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-bug: &amp;lt;bug/task ticket number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then,&lt;br /&gt;
&lt;br /&gt;
  git commit -a&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, make your changes, then use:&lt;br /&gt;
 git commit -a --amend&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/openstack/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76067</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76067"/>
				<updated>2015-03-22T09:03:12Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Table of Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| API || Application Programmer Interface || [http://en.wikipedia.org/wiki/Application_programming_interface API as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IaaS || Infrastructure as a Service || [http://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS as defined by Wikipedia]&lt;br /&gt;
|-&lt;br /&gt;
| IRC || Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| TBD || To Be Determined ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=76066</id>
		<title>Magnum</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=76066"/>
				<updated>2015-03-22T08:45:26Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* 2015-03-20 We will be presenting [https://openstacksummitmay2015vancouver.sched.org/event/ec3936678ef22681408088ec52a4e80b a session on Magnum] at the 2015 OpenStack Summit in Vancouver on Thursday, May 21 9:00am - 9:40am US/Pacific.&lt;br /&gt;
* 2015-03-09 Our Kilo-2 release is now [https://github.com/stackforge/magnum/releases/tag/2015.1.0b2 available for download]&lt;br /&gt;
* 2015-01-20 We [http://lists.openstack.org/pipermail/openstack-dev/2015-January/054848.html have announced] Magnum's first release, now [https://github.com/stackforge/magnum/releases/tag/m1 available for download].&lt;br /&gt;
&lt;br /&gt;
= Contributing =&lt;br /&gt;
&lt;br /&gt;
* We want you to [[Magnum/Contributing|contribute to Magnum]]!&lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
&lt;br /&gt;
Magnum is an API service developed by the [[Teams/Containers|OpenStack Containers Team]] for OpenStack to make container management tools such as Docker and Kubernetes available as first class resources in OpenStack.  Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration.&lt;br /&gt;
&lt;br /&gt;
The project is under active development by our OpenStack Containers Team. We [[Meetings/Containers|meet weekly by IRC]]. Magnum's meetings are normally chaired by our PTL [https://launchpad.net/~aotto Adrian Otto].&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* Launchpad Project Pages&lt;br /&gt;
** [http://launchpad.net/magnum Magnum Launchpad Project] for Blueprints&lt;br /&gt;
** [http://launchpad.net/python-magnumclient python-magnumclient Launchpad Project] for Blueprints&lt;br /&gt;
* Mailing List&lt;br /&gt;
** [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Mailing List] for project related discussion&lt;br /&gt;
*** Add [Magnum] to the subject line of new posts about this project.&lt;br /&gt;
** [http://lists.openstack.org/pipermail/openstack-dev/ OpenStack Mailing List Archives] for current discussion.&lt;br /&gt;
* Code Reviews&lt;br /&gt;
** [https://review.openstack.org/#/q/status:open+magnum,n,z Gerrit Reviews]&lt;br /&gt;
* Code Repository&lt;br /&gt;
** git clone git://git.openstack.org/stackforge/magnum&lt;br /&gt;
* Specification&lt;br /&gt;
** [https://review.openstack.org/136103 Containers Service Spec]&lt;br /&gt;
* References&lt;br /&gt;
**[[Magnum/Acronyms|Acronyms]]&lt;br /&gt;
**[http://eavesdrop.openstack.org/irclogs/%23openstack-containers/ IRC Logs - OpenStack Containers]&lt;br /&gt;
**[http://eavesdrop.openstack.org/meetings/containers/2015/ Meeting Minutes - OpenStack Containers]&lt;br /&gt;
&lt;br /&gt;
= IRC =&lt;br /&gt;
&lt;br /&gt;
Our developers use IRC in #openstack-containers on freenode for development discussion.&lt;br /&gt;
&lt;br /&gt;
= Meetings =&lt;br /&gt;
&lt;br /&gt;
* The weekly Containers [[Meetings/Containers|IRC meeting]] is held on Tuesdays at 1600 UTC and 2200 UTC on alternating weeks [[Meetings/Containers|[schedule]]].&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/containers/2014/ 2014 Containers Meeting Archive]&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions =&lt;br /&gt;
'''1) How is Magnum is different from Nova?''' &lt;br /&gt;
&lt;br /&gt;
Magnum provides a purpose built API to manage application containers, which have a distinctly different life cycle and operations than Nova (machine) Instances. We actually use Nova instances to run our application containers.&lt;br /&gt;
&lt;br /&gt;
'''2) How is Magnum different than Docker or Kubernetes?'''&lt;br /&gt;
&lt;br /&gt;
Magnum offers an asynchronous API that's compatible with Keystone, and a complete multi-tenancy implementation. It does not perform orchestration&lt;br /&gt;
internally, and instead relies on OpenStack Orchestration. Magnum does leverage both Kubernetes and Docker as components.&lt;br /&gt;
&lt;br /&gt;
'''3) Is this the same thing as Nova-Docker?'''&lt;br /&gt;
&lt;br /&gt;
No, Nova-Docker is a virt driver for Nova that allows containers to be created as Nova instances. This is suitable for use cases when you want to treat a container like a lightweight machine. Magnum provides container specific features that are beyond the scope of Nova's API, and implements its own API to surface these features in a way that is consistent with other OpenStack services. Containers started by Magnum are run on top of Nova instances that are created using Heat.&lt;br /&gt;
&lt;br /&gt;
'''4) Who is Magnum for?'''&lt;br /&gt;
&lt;br /&gt;
Magnum is for OpenStack cloud operators (public or private) who want to offer a self-service solution to provide containers to their cloud users as a managed hosted service. Magnum simplifies the required integration with OpenStack, and allows for cloud users who can already launch cloud resources such as Nova Instances, Cinder Volumes, Trove Databases, etc. to also create application containers to run applications in an environment that provides advanced features that are beyond the scope of existing cloud resources. The same identity credentials used to create IaaS resources can be used to run containerized applications using Magnum. Some examples of advanced features available with Magnum are the ability to scale an application to a specified number of instances, to cause your application to automatically re-spawn an instance in the event of a failure, and to pack applications together more tightly than would be possible using Virtual Machines.&lt;br /&gt;
&lt;br /&gt;
'''5) Will I get the same thing if I use the Docker resource in Heat?'''&lt;br /&gt;
&lt;br /&gt;
No, the Docker Heat resource does not provide a resource scheduler, or a choice of container technology used. It is specific to Docker, and uses Glance to store container images. It does not currently allow for layered image features, which can cause containers to take longer to start than if layered images are used with a locally cached base image. Magnum leverages all of the speed benefits that Docker offers.&lt;br /&gt;
&lt;br /&gt;
'''6) What does multi-tenancy mean in Magnum (Is Magnum Secure)?'''&lt;br /&gt;
&lt;br /&gt;
Resources such as Containers, Services, Pods, Bays, etc. started by Magnum can only be viewed and accessed by users of the tenant that created them. Bays are not shared, meaning that containers will not run on the same kernel as neighboring tenants. This is a key security feature that allows containers belonging to the same tenant to be tightly packed within the same Pods and Bays, but runs separate kernels (in separate Nova Instances) between different tenants. This is different than using a system like Kubernetes without Magnum, which is intended to be used only by a single tenant, and leaves the security isolation design up to the implementer. Using Magnum provides the same level of security isolation as Nova provides when running Virtual Machines belonging to different tenants on the same compute nodes.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76065</id>
		<title>Magnum/Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Acronyms&amp;diff=76065"/>
				<updated>2015-03-22T08:34:11Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: Creating Acronym subpage to Magnum main.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Table of Acronyms =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Acronym !! Full Name !! Notes / Helpful Links&lt;br /&gt;
|-&lt;br /&gt;
| IRC|| Internet Relay Chat || Our way of communicating via instant messages&lt;br /&gt;
|-&lt;br /&gt;
| ML || Mailing List || [[Magnum/Contributing#Sign_Up_for_the_OpenStack_Development_Mailing_List|OpenStack_Development_Mailing_List]]&lt;br /&gt;
|-&lt;br /&gt;
| TBD || To Be Determined ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=76064</id>
		<title>Magnum</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum&amp;diff=76064"/>
				<updated>2015-03-22T08:17:43Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* 2015-03-20 We will be presenting [https://openstacksummitmay2015vancouver.sched.org/event/ec3936678ef22681408088ec52a4e80b a session on Magnum] at the 2015 OpenStack Summit in Vancouver on Thursday, May 21 9:00am - 9:40am US/Pacific.&lt;br /&gt;
* 2015-03-09 Our Kilo-2 release is now [https://github.com/stackforge/magnum/releases/tag/2015.1.0b2 available for download]&lt;br /&gt;
* 2015-01-20 We [http://lists.openstack.org/pipermail/openstack-dev/2015-January/054848.html have announced] Magnum's first release, now [https://github.com/stackforge/magnum/releases/tag/m1 available for download].&lt;br /&gt;
&lt;br /&gt;
= Contributing =&lt;br /&gt;
&lt;br /&gt;
* We want you to [[Magnum/Contributing|contribute to Magnum]]!&lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
&lt;br /&gt;
Magnum is an API service developed by the [[Teams/Containers|OpenStack Containers Team]] for OpenStack to make container management tools such as Docker and Kubernetes available as first class resources in OpenStack.  Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration.&lt;br /&gt;
&lt;br /&gt;
The project is under active development by our OpenStack Containers Team. We [[Meetings/Containers|meet weekly by IRC]]. Magnum's meetings are normally chaired by our PTL [https://launchpad.net/~aotto Adrian Otto].&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* Launchpad Project Pages&lt;br /&gt;
** [http://launchpad.net/magnum Magnum Launchpad Project] for Blueprints&lt;br /&gt;
** [http://launchpad.net/python-magnumclient python-magnumclient Launchpad Project] for Blueprints&lt;br /&gt;
* Mailing List&lt;br /&gt;
** [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Mailing List] for project related discussion&lt;br /&gt;
*** Add [Magnum] to the subject line of new posts about this project.&lt;br /&gt;
** [http://lists.openstack.org/pipermail/openstack-dev/ OpenStack Mailing List Archives] for current discussion.&lt;br /&gt;
* Code Reviews&lt;br /&gt;
** [https://review.openstack.org/#/q/status:open+magnum,n,z Gerrit Reviews]&lt;br /&gt;
* Code Repository&lt;br /&gt;
** git clone git://git.openstack.org/stackforge/magnum&lt;br /&gt;
* Specification&lt;br /&gt;
** [https://review.openstack.org/136103 Containers Service Spec]&lt;br /&gt;
* References&lt;br /&gt;
**[[Magnum/Acronyms|Acronyms]]&lt;br /&gt;
&lt;br /&gt;
= IRC =&lt;br /&gt;
&lt;br /&gt;
Our developers use IRC in #openstack-containers on freenode for development discussion.&lt;br /&gt;
&lt;br /&gt;
= Meetings =&lt;br /&gt;
&lt;br /&gt;
* The weekly Containers [[Meetings/Containers|IRC meeting]] is held on Tuesdays at 1600 UTC and 2200 UTC on alternating weeks [[Meetings/Containers|[schedule]]].&lt;br /&gt;
* [http://eavesdrop.openstack.org/meetings/containers/2014/ 2014 Containers Meeting Archive]&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions =&lt;br /&gt;
'''1) How is Magnum is different from Nova?''' &lt;br /&gt;
&lt;br /&gt;
Magnum provides a purpose built API to manage application containers, which have a distinctly different life cycle and operations than Nova (machine) Instances. We actually use Nova instances to run our application containers.&lt;br /&gt;
&lt;br /&gt;
'''2) How is Magnum different than Docker or Kubernetes?'''&lt;br /&gt;
&lt;br /&gt;
Magnum offers an asynchronous API that's compatible with Keystone, and a complete multi-tenancy implementation. It does not perform orchestration&lt;br /&gt;
internally, and instead relies on OpenStack Orchestration. Magnum does leverage both Kubernetes and Docker as components.&lt;br /&gt;
&lt;br /&gt;
'''3) Is this the same thing as Nova-Docker?'''&lt;br /&gt;
&lt;br /&gt;
No, Nova-Docker is a virt driver for Nova that allows containers to be created as Nova instances. This is suitable for use cases when you want to treat a container like a lightweight machine. Magnum provides container specific features that are beyond the scope of Nova's API, and implements its own API to surface these features in a way that is consistent with other OpenStack services. Containers started by Magnum are run on top of Nova instances that are created using Heat.&lt;br /&gt;
&lt;br /&gt;
'''4) Who is Magnum for?'''&lt;br /&gt;
&lt;br /&gt;
Magnum is for OpenStack cloud operators (public or private) who want to offer a self-service solution to provide containers to their cloud users as a managed hosted service. Magnum simplifies the required integration with OpenStack, and allows for cloud users who can already launch cloud resources such as Nova Instances, Cinder Volumes, Trove Databases, etc. to also create application containers to run applications in an environment that provides advanced features that are beyond the scope of existing cloud resources. The same identity credentials used to create IaaS resources can be used to run containerized applications using Magnum. Some examples of advanced features available with Magnum are the ability to scale an application to a specified number of instances, to cause your application to automatically re-spawn an instance in the event of a failure, and to pack applications together more tightly than would be possible using Virtual Machines.&lt;br /&gt;
&lt;br /&gt;
'''5) Will I get the same thing if I use the Docker resource in Heat?'''&lt;br /&gt;
&lt;br /&gt;
No, the Docker Heat resource does not provide a resource scheduler, or a choice of container technology used. It is specific to Docker, and uses Glance to store container images. It does not currently allow for layered image features, which can cause containers to take longer to start than if layered images are used with a locally cached base image. Magnum leverages all of the speed benefits that Docker offers.&lt;br /&gt;
&lt;br /&gt;
'''6) What does multi-tenancy mean in Magnum (Is Magnum Secure)?'''&lt;br /&gt;
&lt;br /&gt;
Resources such as Containers, Services, Pods, Bays, etc. started by Magnum can only be viewed and accessed by users of the tenant that created them. Bays are not shared, meaning that containers will not run on the same kernel as neighboring tenants. This is a key security feature that allows containers belonging to the same tenant to be tightly packed within the same Pods and Bays, but runs separate kernels (in separate Nova Instances) between different tenants. This is different than using a system like Kubernetes without Magnum, which is intended to be used only by a single tenant, and leaves the security isolation design up to the implementer. Using Magnum provides the same level of security isolation as Nova provides when running Virtual Machines belonging to different tenants on the same compute nodes.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75907</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75907"/>
				<updated>2015-03-19T03:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Write some awesome code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/stackforge/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/stackforge/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/stackforge/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/stackforge/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-bug: &amp;lt;bug/task ticket number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then,&lt;br /&gt;
&lt;br /&gt;
  git commit -a&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, make your changes, then use:&lt;br /&gt;
 git commit -a --amend&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/stackforge/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75905</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75905"/>
				<updated>2015-03-19T02:36:05Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Write some awesome code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/stackforge/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/stackforge/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/stackforge/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/stackforge/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each commit line should conform with the OpenStack style guidelines. Some highlights:&lt;br /&gt;
# The first line of the commit message should be &amp;lt;=50 characters. &lt;br /&gt;
# The subsequent lines can be &amp;lt;= 78 characters.&lt;br /&gt;
# Lines 2 onward are a blank line followed by a more verbose description of the first commit line (as needed).&lt;br /&gt;
# The last commit line needs to link to either a blueprint or bug/task ticket number.&lt;br /&gt;
# There should be no whitespace at the end of all lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the example case:&lt;br /&gt;
  Adjust Gerrit workflow Link&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  The Gerrit workflow link in the previous version is no longer valid.&lt;br /&gt;
  This patch updates documentation to the current link.&lt;br /&gt;
  &amp;lt;blank line&amp;gt;&lt;br /&gt;
  Closes-bug: 1433709&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then,&lt;br /&gt;
&lt;br /&gt;
  git commit -a&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, make your changes, then use:&lt;br /&gt;
 git commit -a --amend&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/stackforge/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75904</id>
		<title>Magnum/Contributing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Magnum/Contributing&amp;diff=75904"/>
				<updated>2015-03-19T02:16:53Z</updated>
		
		<summary type="html">&lt;p&gt;P Rivera: /* Your first commit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Before You Begin =&lt;br /&gt;
To familiarize yourself with Magnum, try it out using the information in our [http://git.openstack.org/cgit/stackforge/magnum/tree/doc/source/dev/dev-quickstart.rst Dev Quickstart Guide]. When you are ready to start contributing, you will need to execute an [[How_To_Contribute#Contributors_License_Agreement|OpenStack CLA]]. This is required before you can submit reviews to our [https://github.com/stackforge/magnum Magnum Repo]. For information about how prepare for contribution, please consult the [[How_To_Contribute |How To Contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Sign Up for the OpenStack Development Mailing List ==&lt;br /&gt;
Head on over to [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack Dev Mailing List], fill out the fields under &amp;quot;Subscribing to OpenStack-dev&amp;quot; and click Subscribe.&lt;br /&gt;
&lt;br /&gt;
== Learn About Gerrit ==&lt;br /&gt;
Be sure to read the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide] for information about how to submit your commit for review so it can be merged into the Magnum code base.&lt;br /&gt;
&lt;br /&gt;
If you do not have a gerrit username setup or do not remember it,&lt;br /&gt;
verify and configure it here: https://review.openstack.org/#/settings/&lt;br /&gt;
&lt;br /&gt;
Keep that handy for the &amp;quot;git review -s&amp;quot; command later in the https://wiki.openstack.org/wiki/Magnum/Contributing#Setting_up_your_git_review_settings and https://wiki.openstack.org/wiki/Magnum/Contributing#Set_up_your_local_branch sections below...&lt;br /&gt;
&lt;br /&gt;
You'll also need to upload an SSH public key, specifically for Gerrit:&lt;br /&gt;
https://review.openstack.org/#/settings/ssh-keys&lt;br /&gt;
&lt;br /&gt;
== Setting up your git review settings ==&lt;br /&gt;
New to git? Try the 15-minute high-level interactive Git demo [http://try.github.com/ GitHub Demo]&lt;br /&gt;
&lt;br /&gt;
Need a git refresher? Download a git reference direct from the source: [https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf GitHub Git Cheat Sheet]&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
  git config --global user.name &amp;quot;Firstname Lastname&amp;quot;&lt;br /&gt;
  git config --global user.email &amp;quot;your_email@youremail.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In the event your launchpad and gerrit usernames are identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_launchpad_username&amp;quot;&lt;br /&gt;
In the event your launchpad and gerrit usernames are not identical: &lt;br /&gt;
  git config --global gitreview.username &amp;quot;your_gerrit_username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To check your git configuration:&lt;br /&gt;
&lt;br /&gt;
  git config --list&lt;br /&gt;
&lt;br /&gt;
== Installing git-review ==&lt;br /&gt;
On Ubuntu, MacOSx, or most other Unix-like systems, it is as simple as:&lt;br /&gt;
  pip install git-review&lt;br /&gt;
&lt;br /&gt;
There are other installation options detailed in the [http://docs.openstack.org/infra/manual/developers.html Developer's Guide]. You can now check out the Magnum code and begin working on it:&lt;br /&gt;
&lt;br /&gt;
= Your first commit =&lt;br /&gt;
&lt;br /&gt;
== Set up your local branch ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.openstack.org/stackforge/magnum&lt;br /&gt;
  cd magnum&lt;br /&gt;
  git checkout -b [branch name]&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  We don't know where your gerrit is. Please manually create a remote&lt;br /&gt;
  named &amp;quot;gerrit&amp;quot; and try again.&lt;br /&gt;
&lt;br /&gt;
Perform the following (substituting &amp;lt;your gerrit username&amp;gt; with your specific gerrit username...):&lt;br /&gt;
  git remote add gerrit ssh://&amp;lt;your gerrit username&amp;gt;@review.openstack.org:29418/stackforge/magnum.git&lt;br /&gt;
  git review -s&lt;br /&gt;
&lt;br /&gt;
If you receive the following error when running the &amp;quot;git review -s&amp;quot; command:&lt;br /&gt;
  Agent admitted failure to sign using the key&lt;br /&gt;
&lt;br /&gt;
See this support page: https://help.github.com/articles/error-agent-admitted-failure-to-sign/&lt;br /&gt;
&lt;br /&gt;
== Identify bugs ==&lt;br /&gt;
Observe a bug? Report it here: https://launchpad.net/magnum&lt;br /&gt;
# Click the '''Report a Bug''' button.&lt;br /&gt;
# Enter a Summary in the field and click Next. Here's an example: Stale link to Gerrit Workflow&lt;br /&gt;
# Review the choices you've been given. If you spot your bug, click on the bug and review its status; proceed to the awesome code section below if there's more to do..  If you do not spot your bug, proceed to the next step.&lt;br /&gt;
# Click the '''No, I need to report a new bug''' button.&lt;br /&gt;
# Type in a detailed description of the bug in the &amp;quot;Further information&amp;quot; field and click '''Submit bug report'''. Here's an example description for our previous example: In doc/source/dev/dev-quickstart.rst the link to the Gerrit workflow is incorrect. It should be: http://docs.openstack.org/infra/manual/developers.html&lt;br /&gt;
&lt;br /&gt;
== Write some awesome code ==&lt;br /&gt;
&lt;br /&gt;
At this point can write your code and push it to Gerrit for review.  &lt;br /&gt;
&lt;br /&gt;
  git add &amp;lt;list of files you added/changed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you submitted a bug in the previous section, be sure to add the bug link in the commit message.&lt;br /&gt;
Be sure to split the commit line so that it doesn't exceed 50 characters.&lt;br /&gt;
&lt;br /&gt;
Then,&lt;br /&gt;
&lt;br /&gt;
  git commit -a&lt;br /&gt;
  git review -v --draft&lt;br /&gt;
&lt;br /&gt;
Once you are happy with your code and want it to be reviewed you want to convert it from a Draft.   &amp;quot;Sign In&amp;quot; at https://review.openstack.org/ and after verifying the review yourself hit the &amp;quot;Publish&amp;quot; button on the page.&lt;br /&gt;
&lt;br /&gt;
If you know you are ready for others to review your code, you can skip the draft step and just do:&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
By this point, your code will be reviewed by the Openstack automatic testing frameworks and, potentially, your peers on the project.&lt;br /&gt;
&lt;br /&gt;
If you want to revise your patchset in the review system in response to feedback, make your changes, then use:&lt;br /&gt;
 git commit -a --amend&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
Upon approval of the review your code will be automatically merged.&lt;br /&gt;
&lt;br /&gt;
= How to Resolve Merge Conflicts =&lt;br /&gt;
&lt;br /&gt;
If another patch changes the same line of code as your patch, and it gets merged before yours, your patch may get a &amp;lt;code&amp;gt;patch in merge conflict&amp;lt;/code&amp;gt; status in red. If that happens, here is how you can resolve it. You will need the patch number from the Gerrit URL https://review.openstack.org/NNNNN to make your rebase a revision of the previous review.&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/stackforge/magnum&lt;br /&gt;
 cd magnum&lt;br /&gt;
 git review -d NNNNN&lt;br /&gt;
 git rebase master&lt;br /&gt;
&lt;br /&gt;
Now edit all files with merge conflicts to resolve them by making the code look the way it should both with the recently merged code, and your own. Then &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; each of the files you edited.&lt;br /&gt;
&lt;br /&gt;
 git add path/to/file/you/edited&lt;br /&gt;
 git rebase --continue&lt;br /&gt;
 git review -v&lt;br /&gt;
&lt;br /&gt;
That will resubmit your patch with the original commit message, and the rebased code with your merge fix as a new patch set.&lt;br /&gt;
&lt;br /&gt;
= Reviews =&lt;br /&gt;
&lt;br /&gt;
The OpenStack CI system uses the concept of core reviewers. These are individuals who have consistently reviewed code for the project, and helped over a considerable period of time to improve the quality and consistency of what we merge into the code base. Project contributors will feel that this reviewer is a positive influence on the team and that they maintain the values and traditions of the OpenStack development community. &lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
Existing core reviewers may nominate new ones in an ML thread. Consent among the current reviewers shall result in the declaration of the new core reviewer by the PTL. Lack of unanimous consent shall be carefully considered, and a final decision informed by input from from active team members shall be made by the PTL. Core reviewers who are judged by their peers in the core review group to fall short of the expectations for contribution of a core reviewer may be nominated for return to regular reviewer status.&lt;br /&gt;
&lt;br /&gt;
Patches require a core reviewer to mark a review as &amp;quot;Approved&amp;quot; before they are merged.&lt;br /&gt;
&lt;br /&gt;
== Review Guidelines ==&lt;br /&gt;
=== Code Approval for Merge ===&lt;br /&gt;
* For Approval, two core reviewers shall supply a &amp;lt;code&amp;gt;+2&amp;lt;/code&amp;gt;. &lt;br /&gt;
=== Continuing Someone Else's Contribution ===&lt;br /&gt;
* If a patch submitted by one contributor is picked up and completed by another contributor, [http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg05998.html special handling] of the resolution should be used.&lt;br /&gt;
=== Advice for Reviewers ===&lt;br /&gt;
* A &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote is an opportunity to make our code better before it is merged. Please do your best to make helpful, actionable -1 votes. &lt;br /&gt;
* Avoid the temptation to blindly &amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt; code without reviewing it in sufficient detail to form an opinion.&lt;br /&gt;
* When voting &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; on a patch, it means that you want the submitter to make a revision in accordance with your feedback before core reviewers should consider this code for merge.&lt;br /&gt;
* If you ask a question, you should vote &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; unless you anticipate that the answer to that question is likely to cause you to vote against the patch without further revisions.&lt;br /&gt;
* If you use a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; vote for a question, and the contributor answers the question, please respond acknowledging the question. Either change your vote or follow up with additional rationale for why this should remain a &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; comment.&lt;br /&gt;
* A &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote is a veto by a single core reviewer. It is sticky. That means that even if you revise your patch, that vote will persist. To allow your patch to merge, that same reviewer must clear the &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote first. This vote is used when you have contributed something that is not in alignment with the current project vision, or is implemented in a way that can not be accepted. For example, security concerns that a core reviewer wants to individually re-evaluate before allowing the contribution to continue. It can also be used as a way to halt further gate testing of a patch, if something is included that may break the gate. It works even after a &amp;lt;code&amp;gt;2*+2,+A&amp;lt;/code&amp;gt; approval for merge, but before the patch reaches MERGED state. &lt;br /&gt;
* To avoid a &amp;lt;code&amp;gt;-2&amp;lt;/code&amp;gt; vote, discuss your plans with the development team prior to writing code, and post a WIP (workflow-1) patch while you are working on it, and ask for input before you submit it for merge review.&lt;/div&gt;</summary>
		<author><name>P Rivera</name></author>	</entry>

	</feed>