[openstack-tuskar-ui] New patch for IPMI form, tweaking instack instruction output

Jordan O'Mara jomara at fedoraproject.org
Fri May 9 15:44:29 UTC 2014


commit 64fef00f8e137890212caf94f7106fd3c0a95c0b
Author: Jordan OMara <jomara at redhat.com>
Date:   Fri May 9 11:44:46 2014 -0400

    New patch for IPMI form, tweaking instack instruction output

 0004-Adding-missing-setup-for-instack.patch        |  238 +++++++++++++++-----
 ...Ensure-ipmi-username-and-password-are-set.patch |  124 ++++++++++
 openstack-tuskar-ui.spec                           |    7 +-
 3 files changed, 307 insertions(+), 62 deletions(-)
---
diff --git a/0004-Adding-missing-setup-for-instack.patch b/0004-Adding-missing-setup-for-instack.patch
index cb21e70..4a15d63 100644
--- a/0004-Adding-missing-setup-for-instack.patch
+++ b/0004-Adding-missing-setup-for-instack.patch
@@ -1,78 +1,194 @@
-From ee57c569b66f4c7329ccbfca7403173e658d4bdf Mon Sep 17 00:00:00 2001
+From f74abe4a2ec0bdc7dce13a992b5938341b96fcb6 Mon Sep 17 00:00:00 2001
 From: Ladislav Smola <lsmola at redhat.com>
 Date: Tue, 29 Apr 2014 17:27:11 +0200
 Subject: [PATCH] Adding missing setup for instack
 
--adding setup of neutron and workaround for flavors
+-adding setup of neutron and workaround for flavors.
+also removed whitespace
 
 Change-Id: I59fc22b60938ad9f548cab2990ca9f1f45d8a1f7
 ---
- .../templates/overcloud/_detail_overview.html      | 31 +++++++++++++++++++---
- 1 file changed, 28 insertions(+), 3 deletions(-)
+ .../templates/overcloud/_detail_overview.html      | 163 ++++++++++++---------
+ 1 file changed, 94 insertions(+), 69 deletions(-)
 
 diff --git a/tuskar_ui/infrastructure/overcloud/templates/overcloud/_detail_overview.html b/tuskar_ui/infrastructure/overcloud/templates/overcloud/_detail_overview.html
-index 7957972..771f8e3 100644
+index 7957972..18686ac 100644
 --- a/tuskar_ui/infrastructure/overcloud/templates/overcloud/_detail_overview.html
 +++ b/tuskar_ui/infrastructure/overcloud/templates/overcloud/_detail_overview.html
-@@ -81,7 +81,7 @@
- 
-   OVERCLOUD_ENDPOINT="http://$OVERCLOUD_IP:5000/v2.0"
-   NEW_JSON=$(jq '.overcloud.password="'${OVERCLOUD_ADMIN_PASSWORD}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'${OVERCLOUD_IP}'"' $TE_DATAFILE)
+@@ -58,45 +58,45 @@
+         {% endblocktrans %}
+         <div id="devtest" class="collapse">
+           <pre>
+-  # You need to run the following commands from a machine where you have a checkout of the tripleo source code
+-  # and direct access via SSH to your Overcloud control node ({{overcloud.keystone_ip}}).
+-
+-  export TRIPLEO_ROOT=~/tripleo
+-  cd $TRIPLEO_ROOT
+-
+-  # Be careful to source tripleorc here, some variables are rewritten below
+-  source $TRIPLEO_ROOT/tripleorc
+-
+-  export OVERCLOUD_IP={{overcloud.keystone_ip}}
+-
+-  export OVERCLOUD_ADMIN_TOKEN={{overcloud.attributes.AdminToken}}
+-  export OVERCLOUD_ADMIN_PASSWORD={{overcloud.attributes.AdminPassword}}
+-  export OVERCLOUD_CINDER_PASSWORD={{overcloud.attributes.CinderPassword}}
+-  export OVERCLOUD_GLANCE_PASSWORD={{overcloud.attributes.GlancePassword}}
+-  export OVERCLOUD_HEAT_PASSWORD={{overcloud.attributes.HeatPassword}}
+-  export OVERCLOUD_NEUTRON_PASSWORD={{overcloud.attributes.NeutronPassword}}
+-  export OVERCLOUD_NOVA_PASSWORD={{overcloud.attributes.NovaPassword}}
+-  export OVERCLOUD_SWIFT_PASSWORD={{overcloud.attributes.SwiftPassword}}
+-  export OVERCLOUD_SWIFT_HASH={{overcloud.attributes.SwiftHashSuffix}}
+-
+-  OVERCLOUD_ENDPOINT="http://$OVERCLOUD_IP:5000/v2.0"
+-  NEW_JSON=$(jq '.overcloud.password="'${OVERCLOUD_ADMIN_PASSWORD}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'${OVERCLOUD_IP}'"' $TE_DATAFILE)
 -  echo $NEW_JSON > $TE_DATAFILE
-+  echo $NEW_JSON &gt; $TE_DATAFILE
- 
-   source ./tripleo-incubator/overcloudrc
- 
-@@ -109,11 +109,17 @@
-   # You need to run the following commands from a Undercloud node where you have
-   # direct access via SSH to your Overcloud control node ({{overcloud.keystone_ip}}).
- 
+-
+-  source ./tripleo-incubator/overcloudrc
+-
+-  init-keystone -p $OVERCLOUD_ADMIN_PASSWORD $OVERCLOUD_ADMIN_TOKEN \
+-      $OVERCLOUD_IP admin at example.com heat-admin@$OVERCLOUD_IP \
+-      ${SSLBASE:+--ssl $PUBLIC_API_URL}
+-  setup-endpoints $OVERCLOUD_IP --cinder-password $OVERCLOUD_CINDER_PASSWORD \
+-      --glance-password $OVERCLOUD_GLANCE_PASSWORD \
+-      --heat-password $OVERCLOUD_HEAT_PASSWORD \
+-      --neutron-password $OVERCLOUD_NEUTRON_PASSWORD \
+-      --nova-password $OVERCLOUD_NOVA_PASSWORD \
+-      --swift-password $OVERCLOUD_SWIFT_PASSWORD \
+-      --enable-horizon \
+-      ${SSLBASE:+--ssl $PUBLIC_API_URL}
+-  keystone role-create --name heat_stack_user
++# You need to run the following commands from a machine where you have a checkout of the tripleo source code
++# and direct access via SSH to your Overcloud control node ({{overcloud.keystone_ip}}).
++
++export TRIPLEO_ROOT=~/tripleo
++cd $TRIPLEO_ROOT
++
++# Be careful to source tripleorc here, some variables are rewritten below
++source $TRIPLEO_ROOT/tripleorc
++
++export OVERCLOUD_IP={{overcloud.keystone_ip}}
++
++export OVERCLOUD_ADMIN_TOKEN={{overcloud.attributes.AdminToken}}
++export OVERCLOUD_ADMIN_PASSWORD={{overcloud.attributes.AdminPassword}}
++export OVERCLOUD_CINDER_PASSWORD={{overcloud.attributes.CinderPassword}}
++export OVERCLOUD_GLANCE_PASSWORD={{overcloud.attributes.GlancePassword}}
++export OVERCLOUD_HEAT_PASSWORD={{overcloud.attributes.HeatPassword}}
++export OVERCLOUD_NEUTRON_PASSWORD={{overcloud.attributes.NeutronPassword}}
++export OVERCLOUD_NOVA_PASSWORD={{overcloud.attributes.NovaPassword}}
++export OVERCLOUD_SWIFT_PASSWORD={{overcloud.attributes.SwiftPassword}}
++export OVERCLOUD_SWIFT_HASH={{overcloud.attributes.SwiftHashSuffix}}
++
++OVERCLOUD_ENDPOINT="http://$OVERCLOUD_IP:5000/v2.0"
++NEW_JSON=$(jq '.overcloud.password="'${OVERCLOUD_ADMIN_PASSWORD}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'${OVERCLOUD_IP}'"' $TE_DATAFILE)
++echo $NEW_JSON &gt; $TE_DATAFILE
++
++source ./tripleo-incubator/overcloudrc
++
++init-keystone -p $OVERCLOUD_ADMIN_PASSWORD $OVERCLOUD_ADMIN_TOKEN \
++    $OVERCLOUD_IP admin at example.com heat-admin@$OVERCLOUD_IP \
++    ${SSLBASE:+--ssl $PUBLIC_API_URL}
++setup-endpoints $OVERCLOUD_IP --cinder-password $OVERCLOUD_CINDER_PASSWORD \
++    --glance-password $OVERCLOUD_GLANCE_PASSWORD \
++    --heat-password $OVERCLOUD_HEAT_PASSWORD \
++    --neutron-password $OVERCLOUD_NEUTRON_PASSWORD \
++    --nova-password $OVERCLOUD_NOVA_PASSWORD \
++    --swift-password $OVERCLOUD_SWIFT_PASSWORD \
++    --enable-horizon \
++    ${SSLBASE:+--ssl $PUBLIC_API_URL}
++keystone role-create --name heat_stack_user
+           </pre>
+         </div>
+       </li>
+@@ -106,36 +106,61 @@
+         {% endblocktrans %}
+         <div id="instack" class="collapse">
+           <pre>
+-  # You need to run the following commands from a Undercloud node where you have
+-  # direct access via SSH to your Overcloud control node ({{overcloud.keystone_ip}}).
+-
 -  # Usually stack user has access to Overcloud control node, so switch to stack user
 -  su stack
-+  # Run these commands as the user you used to install the undercloud, likely the stack
-+  # user if you followed the recommendations from http://openstack.redhat.com/Deploying_RDO_using_Instack.
-+  # The commands should also be run from the home directory of that user.
-+
-+  # Source your deploy-overcloudrc
-+  # This file was created when you followed http://openstack.redhat.com/Deploying_an_RDO_Overcloud_with_Instack
-+  source deploy-overcloudrc
- 
-   export OVERCLOUD_IP={{overcloud.keystone_ip}}
- 
-+  cat &gt; tripleo-overcloud-passwords &lt;&lt;EOF
-   export OVERCLOUD_ADMIN_TOKEN={{overcloud.attributes.AdminToken}}
-   export OVERCLOUD_ADMIN_PASSWORD={{overcloud.attributes.AdminPassword}}
-   export OVERCLOUD_CINDER_PASSWORD={{overcloud.attributes.CinderPassword}}
-@@ -123,6 +129,18 @@
-   export OVERCLOUD_NOVA_PASSWORD={{overcloud.attributes.NovaPassword}}
-   export OVERCLOUD_SWIFT_PASSWORD={{overcloud.attributes.SwiftPassword}}
-   export OVERCLOUD_SWIFT_HASH={{overcloud.attributes.SwiftHashSuffix}}
-+  EOF
-+
-+  source tripleo-overcloud-passwords
-+
-+  JSONFILE=nodes.json
-+  if [ ! -f $JSONFILE ]; then
-+    echo '{}' &gt; $JSONFILE
-+  fi
-+  OVERCLOUD_ENDPOINT="http://{{overcloud.keystone_ip}}:5000/v2.0"
-+  NEW_JSON=$(jq '.overcloud.password="'{{overcloud.attributes.AdminPassword}}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'{{overcloud.keystone_ip}}'"' $JSONFILE)
-+  echo $NEW_JSON &gt; $JSONFILE
-+  export TE_DATAFILE=$JSONFILE
- 
-   source /etc/tripleo/overcloudrc
- 
-@@ -136,6 +154,13 @@
-       --swift-password $OVERCLOUD_SWIFT_PASSWORD \
-       --enable-horizon
-   keystone role-create --name heat_stack_user
-+
-+  # Setup the neutron
-+  tripleo setup-neutron "" "" $NETWORK_CIDR "" "" "" $FLOATING_IP_START $FLOATING_IP_END $FLOATING_IP_CIDR
-+
-+  # Workaround https://bugs.launchpad.net/diskimage-builder/+bug/1211165
-+  nova flavor-delete m1.tiny
-+  nova flavor-create m1.tiny 1 512 2 1
+-
+-  export OVERCLOUD_IP={{overcloud.keystone_ip}}
+-
+-  export OVERCLOUD_ADMIN_TOKEN={{overcloud.attributes.AdminToken}}
+-  export OVERCLOUD_ADMIN_PASSWORD={{overcloud.attributes.AdminPassword}}
+-  export OVERCLOUD_CINDER_PASSWORD={{overcloud.attributes.CinderPassword}}
+-  export OVERCLOUD_GLANCE_PASSWORD={{overcloud.attributes.GlancePassword}}
+-  export OVERCLOUD_HEAT_PASSWORD={{overcloud.attributes.HeatPassword}}
+-  export OVERCLOUD_NEUTRON_PASSWORD={{overcloud.attributes.NeutronPassword}}
+-  export OVERCLOUD_NOVA_PASSWORD={{overcloud.attributes.NovaPassword}}
+-  export OVERCLOUD_SWIFT_PASSWORD={{overcloud.attributes.SwiftPassword}}
+-  export OVERCLOUD_SWIFT_HASH={{overcloud.attributes.SwiftHashSuffix}}
+-
+-  source /etc/tripleo/overcloudrc
+-
+-  tripleo init-keystone -p $OVERCLOUD_ADMIN_PASSWORD $OVERCLOUD_ADMIN_TOKEN \
+-      $OVERCLOUD_IP admin at example.com heat-admin@$OVERCLOUD_IP
+-  tripleo setup-endpoints $OVERCLOUD_IP --cinder-password $OVERCLOUD_CINDER_PASSWORD \
+-      --glance-password $OVERCLOUD_GLANCE_PASSWORD \
+-      --heat-password $OVERCLOUD_HEAT_PASSWORD \
+-      --neutron-password $OVERCLOUD_NEUTRON_PASSWORD \
+-      --nova-password $OVERCLOUD_NOVA_PASSWORD \
+-      --swift-password $OVERCLOUD_SWIFT_PASSWORD \
+-      --enable-horizon
+-  keystone role-create --name heat_stack_user
++# You need to run the following commands from a Undercloud node where you have
++# direct access via SSH to your Overcloud control node ({{overcloud.keystone_ip}}).
++
++# Run these commands as the user you used to install the undercloud, likely the stack
++# user if you followed the recommendations from http://openstack.redhat.com/Deploying_RDO_using_Instack.
++# The commands should also be run from the home directory of that user.
++
++# Source your deploy-overcloudrc
++# This file was created when you followed http://openstack.redhat.com/Deploying_an_RDO_Overcloud_with_Instack
++source deploy-overcloudrc
++
++export OVERCLOUD_IP={{overcloud.keystone_ip}}
++
++cat &gt; tripleo-overcloud-passwords &lt;&lt;EOF
++export OVERCLOUD_ADMIN_TOKEN={{overcloud.attributes.AdminToken}}
++export OVERCLOUD_ADMIN_PASSWORD={{overcloud.attributes.AdminPassword}}
++export OVERCLOUD_CINDER_PASSWORD={{overcloud.attributes.CinderPassword}}
++export OVERCLOUD_GLANCE_PASSWORD={{overcloud.attributes.GlancePassword}}
++export OVERCLOUD_HEAT_PASSWORD={{overcloud.attributes.HeatPassword}}
++export OVERCLOUD_NEUTRON_PASSWORD={{overcloud.attributes.NeutronPassword}}
++export OVERCLOUD_NOVA_PASSWORD={{overcloud.attributes.NovaPassword}}
++export OVERCLOUD_SWIFT_PASSWORD={{overcloud.attributes.SwiftPassword}}
++export OVERCLOUD_SWIFT_HASH={{overcloud.attributes.SwiftHashSuffix}}
++EOF
++
++source tripleo-overcloud-passwords
++
++JSONFILE=nodes.json
++if [ ! -f $JSONFILE ]; then
++  echo '{}' &gt; $JSONFILE
++fi
++OVERCLOUD_ENDPOINT="http://{{overcloud.keystone_ip}}:5000/v2.0"
++NEW_JSON=$(jq '.overcloud.password="'{{overcloud.attributes.AdminPassword}}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'{{overcloud.keystone_ip}}'"' $JSONFILE)
++echo $NEW_JSON &gt; $JSONFILE
++export TE_DATAFILE=$JSONFILE
++
++source /etc/tripleo/overcloudrc
++
++tripleo init-keystone -p $OVERCLOUD_ADMIN_PASSWORD $OVERCLOUD_ADMIN_TOKEN \
++    $OVERCLOUD_IP admin at example.com heat-admin@$OVERCLOUD_IP
++tripleo setup-endpoints $OVERCLOUD_IP --cinder-password $OVERCLOUD_CINDER_PASSWORD \
++    --glance-password $OVERCLOUD_GLANCE_PASSWORD \
++    --heat-password $OVERCLOUD_HEAT_PASSWORD \
++    --neutron-password $OVERCLOUD_NEUTRON_PASSWORD \
++    --nova-password $OVERCLOUD_NOVA_PASSWORD \
++    --swift-password $OVERCLOUD_SWIFT_PASSWORD \
++    --enable-horizon
++keystone role-create --name heat_stack_user
++
++# Setup the neutron
++tripleo setup-neutron "" "" $NETWORK_CIDR "" "" "" $FLOATING_IP_START $FLOATING_IP_END $FLOATING_IP_CIDR
++
++# Workaround https://bugs.launchpad.net/diskimage-builder/+bug/1211165
++nova flavor-delete m1.tiny
++nova flavor-create m1.tiny 1 512 2 1
            </pre>
          </div>
        </li>
diff --git a/0007-Ensure-ipmi-username-and-password-are-set.patch b/0007-Ensure-ipmi-username-and-password-are-set.patch
new file mode 100644
index 0000000..9343ad7
--- /dev/null
+++ b/0007-Ensure-ipmi-username-and-password-are-set.patch
@@ -0,0 +1,124 @@
+From b875449a8cd3a3b0b7e10a35844030136aeb15c2 Mon Sep 17 00:00:00 2001
+From: Tzu-Mainn Chen <tzumainn at redhat.com>
+Date: Fri, 9 May 2014 16:34:42 +0200
+Subject: [PATCH] Ensure ipmi username and password are set
+
+The UI was explicitly setting these values to 'None'; the
+ipmi_username field was also misnamed.  This change allows
+the ipmi username and password to be properly passed down.
+
+Closes-Bug: #1317922
+Change-Id: I195e6f5399ac932d5427d742679df2d4a22dd114
+---
+ tuskar_ui/api.py                                     |  2 +-
+ tuskar_ui/infrastructure/nodes/forms.py              |  7 +++++--
+ .../nodes/templates/nodes/_nodes_formset_form.html   |  2 +-
+ tuskar_ui/infrastructure/nodes/tests.py              | 20 ++++++++++++--------
+ 4 files changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/tuskar_ui/api.py b/tuskar_ui/api.py
+index e2c47bd..be4e21c 100644
+--- a/tuskar_ui/api.py
++++ b/tuskar_ui/api.py
+@@ -665,7 +665,7 @@ class Node(base.APIResourceWrapper):
+         #     )
+         node = baremetalclient(request).create(**cls.nova_baremetal_format(
+             ipmi_address, cpu, ram, local_disk, mac_addresses,
+-            ipmi_username=None, ipmi_password=None))
++            ipmi_username=ipmi_username, ipmi_password=ipmi_password))
+ 
+         return cls(node)
+ 
+diff --git a/tuskar_ui/infrastructure/nodes/forms.py b/tuskar_ui/infrastructure/nodes/forms.py
+index ad4ed35..d58555e 100644
+--- a/tuskar_ui/infrastructure/nodes/forms.py
++++ b/tuskar_ui/infrastructure/nodes/forms.py
+@@ -31,7 +31,7 @@ class NodeForm(django.forms.Form):
+         required=False,
+         widget=django.forms.TextInput(attrs={'class': 'input input-medium'}),
+     )
+-    ipmi_user = django.forms.CharField(
++    ipmi_username = django.forms.CharField(
+         label=_("IPMI User"),
+         required=False,
+         widget=django.forms.TextInput(attrs={'class': 'input input-medium'}),
+@@ -114,7 +114,10 @@ class BaseNodeFormset(django.forms.formsets.BaseFormSet):
+             if not form.cleaned_data:
+                 raise django.forms.ValidationError(
+                     _("Please provide node data for all nodes."))
+-
++            if not form.cleaned_data.get('ipmi_username'):
++                form.cleaned_data['ipmi_username'] = None
++            if not form.cleaned_data.get('ipmi_password'):
++                form.cleaned_data['ipmi_password'] = None
+ 
+ NodeFormset = django.forms.formsets.formset_factory(NodeForm, extra=1,
+                                                     formset=BaseNodeFormset)
+diff --git a/tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_form.html b/tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_form.html
+index 32ae201..7083034 100644
+--- a/tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_form.html
++++ b/tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_form.html
+@@ -8,7 +8,7 @@
+     <div class="row-fluid">
+       <h5>Power Management</h5>
+       {% include 'infrastructure/nodes/_nodes_formset_field.html' with field=form.ipmi_address %}
+-      {% include 'infrastructure/nodes/_nodes_formset_field.html' with field=form.ipmi_user %}
++      {% include 'infrastructure/nodes/_nodes_formset_field.html' with field=form.ipmi_username %}
+       {% include 'infrastructure/nodes/_nodes_formset_field.html' with field=form.ipmi_password %}
+     </div>
+     <div class="row-fluid">
+diff --git a/tuskar_ui/infrastructure/nodes/tests.py b/tuskar_ui/infrastructure/nodes/tests.py
+index 1dfbf5a..ef298c2 100644
+--- a/tuskar_ui/infrastructure/nodes/tests.py
++++ b/tuskar_ui/infrastructure/nodes/tests.py
+@@ -156,6 +156,8 @@ class NodesTests(test.BaseAdminViewTests):
+             'register_nodes-MAX_NUM_FORMS': 1000,
+ 
+             'register_nodes-0-ipmi_address': '127.0.0.1',
++            'register_nodes-0-ipmi_username': 'username',
++            'register_nodes-0-ipmi_password': 'password',
+             'register_nodes-0-mac_address': 'de:ad:be:ef:ca:fe',
+             'register_nodes-0-cpus': '1',
+             'register_nodes-0-memory': '2',
+@@ -174,10 +176,10 @@ class NodesTests(test.BaseAdminViewTests):
+             res = self.client.post(REGISTER_URL, data)
+             request = Node.create.call_args_list[0][0][0]  # This is a hack.
+             self.assertListEqual(Node.create.call_args_list, [
+-                call(request, '127.0.0.1', 1, 2, 3,
+-                     'DE:AD:BE:EF:CA:FE', None, u''),
+-                call(request, '127.0.0.2', 4, 5, 6,
+-                     'DE:AD:BE:EF:CA:FF', None, u''),
++                call(request, u'127.0.0.1', 1, 2, 3,
++                     'DE:AD:BE:EF:CA:FE', u'username', u'password'),
++                call(request, u'127.0.0.2', 4, 5, 6,
++                     'DE:AD:BE:EF:CA:FF', None, None),
+             ])
+         self.assertRedirectsNoFollow(res, INDEX_URL)
+ 
+@@ -188,6 +190,8 @@ class NodesTests(test.BaseAdminViewTests):
+             'register_nodes-MAX_NUM_FORMS': 1000,
+ 
+             'register_nodes-0-ipmi_address': '127.0.0.1',
++            'register_nodes-0-ipmi_username': 'username',
++            'register_nodes-0-ipmi_password': 'password',
+             'register_nodes-0-mac_address': 'de:ad:be:ef:ca:fe',
+             'register_nodes-0-cpus': '1',
+             'register_nodes-0-memory': '2',
+@@ -206,10 +210,10 @@ class NodesTests(test.BaseAdminViewTests):
+             res = self.client.post(REGISTER_URL, data)
+             request = Node.create.call_args_list[0][0][0]  # This is a hack.
+             self.assertListEqual(Node.create.call_args_list, [
+-                call(request, '127.0.0.1', 1, 2, 3,
+-                     'DE:AD:BE:EF:CA:FE', None, u''),
+-                call(request, '127.0.0.2', 4, 5, 6,
+-                     'DE:AD:BE:EF:CA:FF', None, u''),
++                call(request, u'127.0.0.1', 1, 2, 3,
++                     'DE:AD:BE:EF:CA:FE', u'username', u'password'),
++                call(request, u'127.0.0.2', 4, 5, 6,
++                     'DE:AD:BE:EF:CA:FF', None, None),
+             ])
+         self.assertTemplateUsed(
+             res, 'infrastructure/nodes/register.html')
+-- 
+1.8.1.4
+
diff --git a/openstack-tuskar-ui.spec b/openstack-tuskar-ui.spec
index 65e249d..74a33f9 100644
--- a/openstack-tuskar-ui.spec
+++ b/openstack-tuskar-ui.spec
@@ -1,6 +1,6 @@
 Name:	      openstack-tuskar-ui
 Version:	  0.1.0
-Release:	  14%{?dist}
+Release:	  15%{?dist}
 Summary:	  The UI component for Tuskar
 
 Group:		  Applications/System
@@ -13,6 +13,7 @@ Patch1:     0003-Init-code-for-Instack-Undercloud.patch
 Patch2:     0004-Adding-missing-setup-for-instack.patch
 Patch3:     0005-Default-GlanceLogFile-template-parameter-value.patch
 Patch4:     0006-Import-keystoneclient.apiclient.exceptions.patch
+Patch5:     0007-Ensure-ipmi-username-and-password-are-set.patch
 
 BuildArch:     noarch
 
@@ -75,6 +76,7 @@ deployments. It is a plugin for OpenStack Horizon.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 rm -rf tuskar_ui.egg-info/
 
 # Remove the requirements file so that pbr hooks don't add it
@@ -125,6 +127,9 @@ export PYTHONPATH=$PYTHONPATH:%{_datadir}/openstack-dashboard
 %endif
 
 %changelog
+* Fri May 09 2014 Jordan OMara <jomara at redhat.com> - 0.1.0-15
+- IPMI form patch (jomara at redhat.com)
+
 * Tue May 06 2014 Jordan OMara <jomara at redhat.com> - 0.1.0-14
 - updated upstream patch w/ fixed escaping (jomara at redhat.com)
 


More information about the scm-commits mailing list