/**
  * @static
  * @param OpenStackNovaInstanceType $a
  * @param OpenStackNovaInstanceType $b
  * @return bool
  */
 public static function sorter($a, $b)
 {
     return $a->getInstanceTypeId() > $b->getInstanceTypeId();
 }
	/**
	 * @param  $sort
	 * @return array
	 */
	function getInstanceTypes( $sort = true ) {
		global $wgOpenStackManagerNovaResourcePrefix;
		global $wgOpenStackManagerNovaAdminResourcePrefix;

		$this->novaConnection->set_resource_prefix( $wgOpenStackManagerNovaAdminResourcePrefix );
		$response = $this->novaConnection->authenticate( 'DescribeInstanceTypes', array(), $this->novaConnection->hostname );
		$instanceTypes = $response->body->instanceTypeSet->item;
		foreach ( $instanceTypes as $instanceType ) {
			$instanceType = new OpenStackNovaInstanceType( $instanceType );
			$instanceTypeName = $instanceType->getInstanceTypeName();
			$this->instanceTypes["$instanceTypeName"] = $instanceType;
		}
		$this->novaConnection->set_resource_prefix( $wgOpenStackManagerNovaResourcePrefix );
		if ( $sort ) {
			OpenStackNovaInstanceType::sort( $this->instanceTypes );
		}
		return $this->instanceTypes;
	}
 /**
  * @return array
  */
 function getInstanceTypes()
 {
     $ret = $this->restCall('compute', '/flavors/detail', 'GET');
     $instanceTypesarr = array();
     $instanceTypes = self::_get_property($ret['body'], 'flavors');
     if (!$instanceTypes) {
         return $instanceTypesarr;
     }
     foreach ($instanceTypes as $instanceType) {
         $instanceType = new OpenStackNovaInstanceType($instanceType);
         $instanceTypeName = $instanceType->getInstanceTypeName();
         $instanceTypesarr[$instanceTypeName] = $instanceType;
     }
     OpenStackNovaInstanceType::sort($instanceTypesarr);
     return $instanceTypesarr;
 }