Wraps :meth:`bang.providers.openstack.Nova.create_server` to apply
        hpcloud specialization, namely pulling IP addresses from the hpcloud's
        non-standard return values.

def create_server(self, *args, **kwargs):
        """
        Wraps :meth:`bang.providers.openstack.Nova.create_server` to apply
        hpcloud specialization, namely pulling IP addresses from the hpcloud's
        non-standard return values.

        """
        # hpcloud's management console stuffs all of its tags in a "tags" tag.
        # populate it with the stack and role values here only at server
        # creation time.  what users do with it after server creation is up to
        # them.
        tags = kwargs['tags']
        tags[A.tags.TAGS] = ','.join([
                tags.get(A.tags.STACK, ''),
                tags.get(A.tags.ROLE, ''),
                ])
        # Don't create an explicit floating IP; gets one 
        # automatically
        if 'floating_ip' not in kwargs:
            kwargs['floating_ip'] = False
        s = super(HPNova, self).create_server(*args, **kwargs)
        return fix_hp_addrs(s)