code: def set_initial_status(self, response):
          
          self._raise_if_bad_http_status_and_method(response)
  
          if self._is_empty(response):
              self.resource = None
          else:
              try:
                  self.resource = self._deserialize(response)
              except DeserializationError:
                  self.resource = None
  
          self.set_async_url_if_present(response)
  
          if response.status_code in {200, 201, 202, 204}:
              if self.async_url or self.location_url or response.status_code == 202:
                  self.status = 'InProgress'
              elif response.status_code == 201:
                  status = self._get_provisioning_state(response)
                  self.status = status or 'InProgress'
              elif response.status_code == 200:
                  status = self._get_provisioning_state(response)
                  self.status = status or 'Succeeded'
              elif response.status_code == 204:
                  self.status = 'Succeeded'
                  self.resource = None
              else:
                  raise OperationFailed("Invalid status found")
              return
          raise OperationFailed("Operation failed or cancelled")
docs: Process first response after initiating long running
          operation and set self.status attribute.
  
          :param requests.Response response: initial REST call response.