2
0
Quellcode durchsuchen

ZF-8149: Fix a problem with the CloudWatch Dimensions not working properly.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19066 44c647ce-9c0f-0410-b52a-842ac1e357ba
sidhighwind vor 16 Jahren
Ursprung
Commit
6a5e980b5c

+ 5 - 1
library/Zend/Service/Amazon/Ec2/CloudWatch.php

@@ -277,8 +277,12 @@ class Zend_Service_Amazon_Ec2_CloudWatch extends Zend_Service_Amazon_Ec2_Abstrac
             $x = 1;
             foreach($options['Dimensions'] as $dimKey=>$dimVal) {
                 if(!in_array($dimKey, $this->_validDimensionsKeys, true)) continue;
-                $options[$dimKey . '.member.' . $x++] = $dimVal;
+                $options['Dimensions.member.' . $x . '.Name'] = $dimKey;
+                $options['Dimensions.member.' . $x . '.Value'] = $dimVal;
+                $x++;
             }
+            
+            unset($options['Dimensions']);
         }
 
         $params = array_merge($params, $options);

+ 109 - 2
tests/Zend/Service/Amazon/Ec2/CloudWatchTest.php

@@ -209,8 +209,115 @@ class Zend_Service_Amazon_Ec2_CloudWatchTest extends PHPUnit_Framework_TestCase
         );
 
         $this->assertSame($arrReturn, $return);
-
-
+    }
+    
+    public function testZF8149()
+    {
+        
+        $rawHttpResponse = "HTTP/1.1 200 OK\r\n"
+                    . "Date: Fri, 24 Oct 2008 17:24:52 GMT\r\n"
+                    . "Server: hi\r\n"
+                    . "Last-modified: Fri, 24 Oct 2008 17:24:52 GMT\r\n"
+                    . "Status: 200 OK\r\n"
+                    . "Content-type: application/xml; charset=utf-8\r\n"
+                    . "Expires: Tue, 31 Mar 1981 05:00:00 GMT\r\n"
+                    . "Connection: close\r\n"
+                    . "\r\n"
+                    ."<GetMetricStatisticsResponse xmlns=\"http://monitoring.amazonaws.com/doc/2009-05-15/\">\r\n"
+                    ."  <GetMetricStatisticsResult>\r\n"
+                    ."    <Datapoints>\r\n"
+                    ."      <member>\r\n"
+                    ."        <Timestamp>2009-11-19T21:52:00Z</Timestamp>\r\n"
+                    ."        <Unit>Percent</Unit>\r\n"
+                    ."        <Samples>1.0</Samples>\r\n"
+                    ."        <Average>0.09</Average>\r\n"
+                    ."      </member>\r\n"
+                    ."      <member>\r\n"
+                    ."        <Timestamp>2009-11-19T21:55:00Z</Timestamp>\r\n"
+                    ."        <Unit>Percent</Unit>\r\n"
+                    ."        <Samples>1.0</Samples>\r\n"
+                    ."        <Average>0.18</Average>\r\n"
+                    ."      </member>\r\n"
+                    ."      <member>\r\n"
+                    ."        <Timestamp>2009-11-19T21:54:00Z</Timestamp>\r\n"
+                    ."        <Unit>Percent</Unit>\r\n"
+                    ."        <Samples>1.0</Samples>\r\n"
+                    ."        <Average>0.09</Average>\r\n"
+                    ."      </member>\r\n"
+                    ."      <member>\r\n"
+                    ."        <Timestamp>2009-11-19T21:51:00Z</Timestamp>\r\n"
+                    ."        <Unit>Percent</Unit>\r\n"
+                    ."        <Samples>1.0</Samples>\r\n"
+                    ."        <Average>0.18</Average>\r\n"
+                    ."      </member>\r\n"
+                    ."      <member>\r\n"
+                    ."        <Timestamp>2009-11-19T21:53:00Z</Timestamp>\r\n"
+                    ."        <Unit>Percent</Unit>\r\n"
+                    ."        <Samples>1.0</Samples>\r\n"
+                    ."        <Average>0.09</Average>\r\n"
+                    ."      </member>\r\n"
+                    ."    </Datapoints>\r\n"
+                    ."    <Label>CPUUtilization</Label>\r\n"
+                    ."  </GetMetricStatisticsResult>\r\n"
+                    ."  <ResponseMetadata>\r\n"
+                    ."    <RequestId>6fb864fd-d557-11de-ac37-475775222f21</RequestId>\r\n"
+                    ."  </ResponseMetadata>\r\n"
+                    ."</GetMetricStatisticsResponse>";
+        $this->adapter->setResponse($rawHttpResponse);
+        
+        $return = $this->Zend_Service_Amazon_Ec2_CloudWatch->getMetricStatistics(
+            array(
+            	'MeasureName' => 'CPUUtilization',
+             	'Statistics' =>  array('Average'),
+             	'Dimensions'=>   array('InstanceId'=>'i-93ba31fa'),
+             	'StartTime'=>    '2009-11-19T21:51:57+00:00',
+             	'EndTime'=>      '2009-11-19T21:56:57+00:00'
+           )
+        );
+        
+        $arrReturn = array (
+          'label' => 'CPUUtilization',
+          'datapoints' => 
+          array (
+            0 => 
+            array (
+              'Timestamp' => '2009-11-19T21:52:00Z',
+              'Unit' => 'Percent',
+              'Samples' => '1.0',
+              'Average' => '0.09',
+            ),
+            1 => 
+            array (
+              'Timestamp' => '2009-11-19T21:55:00Z',
+              'Unit' => 'Percent',
+              'Samples' => '1.0',
+              'Average' => '0.18',
+            ),
+            2 => 
+            array (
+              'Timestamp' => '2009-11-19T21:54:00Z',
+              'Unit' => 'Percent',
+              'Samples' => '1.0',
+              'Average' => '0.09',
+            ),
+            3 => 
+            array (
+              'Timestamp' => '2009-11-19T21:51:00Z',
+              'Unit' => 'Percent',
+              'Samples' => '1.0',
+              'Average' => '0.18',
+            ),
+            4 => 
+            array (
+              'Timestamp' => '2009-11-19T21:53:00Z',
+              'Unit' => 'Percent',
+              'Samples' => '1.0',
+              'Average' => '0.09',
+            ),
+          ),
+        );
+        
+        $this->assertSame($arrReturn, $return);
     }
 
 }