Fix netapp_spec and pass a correct url

The netapp network device initialize method expects a NetApp filer and
no URL. This is now respected in the spec test.

Note: You might see some "Error : " messages messing the rspec output.
This is because the NetApp SDK likes to talk about the expected
exceptions.
Make it easier to execute NetApp API calls

The netapp provider now offers a method `netapp_commands` that works
similar to the `commands` provider method:

1) It makes it possible to define seperate methods for each api call you
   want to use
2) it will print a debug message for each api call
3) it raises an expection whenever the api call fails

Example: Inside your provider you can define a seperate method for the
`qtree-create` api call:

    netapp_commands :add => 'qtree-create'

in your `create` method you can now write the following:

    add 'qtree', 'q1',  'volume', 'vol1'

which will automatically invoke the `qtree-create` api call and pass all
the arguments to it.
(#33) Needed to add an additional def which referenced
self.netapp_command.
(#33) Removing un-necessary def.
Add new type: netapp_quota
Reload quota if necessary

Modifying a quota has no effect until the next time quota-on or quota-
resize is called. The API call quota-resize is supposed to be faster but
does only work if an existing entry was modified. If we have created a
new quota that was absent before, we'll have to turn quota off and than
turn it back on.

This is now realized in the flush method: flush is called after every
property has been synced and is only called if at least one property
was out of sync: this is exactly what we want.
Implement prefetching of netapp_quota provider
Add integration tests for netapp_quota provider
Revert "Updated .gitignore to ignore spec/fixtures dir."

This reverts commit 95535f64750e63fb93c864d7a940d79ea68e28f7.
Add Puppet 2.7.x support for netapp_commands

The netapp_commands method can be used to add class and instances
wrapper methods to invoke the NetApp API calls. The methods were created
with the `create_class_and_instance_method` method that was added in
puppet 3.0.0 and is not available when running puppet 2.7.x

Detect the missing `create_class_and_instances_method` method and use a
work around to archieve the same result. As the result the code now
works for puppet 3.x as well as puppet 2.7.x
Merge pull request #43 from stschulte/ticket/master/netapp_commands_puppet27_support

Add Puppet 2.7.x support for netapp_commands
Remove the special config file

To execute Puppet for a NetApp device it is necessary to add an entry
to the device configuration file. This device configuration file holds
the certificate name of the device and the type of the device (in this
case netapp)

In the past you had to edit a second `netapp.yml` file where you can drop
the correct user credentials for your NetApp device. This does seem
redundant as the device configuration already specifies an url attribute
that can easily be used to store a username, a password and the hostname
of the device.

Use the URI instead and drop the special configuration file. This does
also make testing easier as you can overwrite the URI with a facts

Example

    FACTER_url=https://admin:secret@pfiler.example.com puppet resource netapp_user
Remove trailing whitespace in README.markdown
Update README to show a valid configuration example

After the special configuration file netapp.yml has been dropped, the
username and the password has to be included in the connection url.

Remove the part about the netapp.yml from the README and give a valid
example in how to specify an url
Remove obsolete tip in README.md

The netapp.yml is not necessary anymore as all connection attributes are
extracted from the configured url.
Merge pull request #41 from stschulte/feature/master/netapp_quota

Add new type: netapp_quota
Fix typo
Use proper indention in facts.rb
Always convert hostname to lowercase

The `system-name` attribute of a NetApp filer can contain uppercase
letters but the normal convention of a hostname and a fqdn is to be in
lowercase letters.

Explicitly convert hostname and fqnd in lowercase
Rename memory and cpu type facts

We should try to map the device attributes as closely to well-known
facter facts as possible. Facter 1.7. has a `memorysize_mb` fact to
reflect the size in MiB as a number with no unit and a `memorysize`
fact to store the value with a proper unit (in this case "MB"). Use
these two facts to hold the memorysize of a NetApp device.

Facter 1.7 does only have a `processor<INDEX>` fact, but no `processor`
fact. But it defines another fact called `hardwareisa` that contains
the processor type.

Use the name `hardwareisa` to hold the current CPU type on a NetApp
devices and drop the `processor` fact.