def execute(self, server_id, data_volume_id, config):
        logging.debug("Attach data volume for server %s" % server_id)

        if data_volume_id:
            nc = get_openstack_nova_client(config)
            retries = 0

            while nc.servers.get(server_id).status is "BUILDING" or not nc.servers.get(server_id).networks:
                logging.debug("...waiting for server to be ready")
                time.sleep(5)
                retries += 1
                if retries > 30:
                    raise RuntimeError('Server %s is stuck in building' % server_id)

            nc.volumes.create_server_volume(server_id, data_volume_id, '/dev/vdc')