Rather than hard code the service_type and service_name would you be up for making init options for these?

Similar to what we do for the compute provider? For example:

            options = {
              :openstack_api_key    => @openstack_api_key,
              :openstack_username   => @openstack_username,
              :openstack_auth_token => @auth_token,
              :openstack_auth_uri   => @openstack_auth_uri,
              :openstack_region     => @openstack_region,
              :openstack_tenant     => @openstack_tenant,
              :openstack_service_type => @openstack_service_type,
              :openstack_service_name => @openstack_service_name,
              :openstack_identity_service_type => @openstack_identity_service_type
            }

In doing this type should probably default to 'object_store' and then leave the default service_name Nil (it is hard to set a good default for this because providers might use difference names where the type should be more consistently used as object_store I think).

Also, nice to add in the tenant, region support as well. Unlike compute you probably won't need openstack_identity_service_type though.