def _update_repo(self, juicer_repo, pulp_repo, env, repo_diff, query='/repositories/'):
        """
        `from_file` - JSON file of repo definitions
        `noop` - Boolean, if true don't actually create/update repos, just show what would have happened

        https://pulp-dev-guide.readthedocs.org/en/pulp-2.3/integration/rest-api/repo/cud.html#update-a-distributor-associated-with-a-repository
        https://pulp-dev-guide.readthedocs.org/en/pulp-2.3/integration/rest-api/repo/cud.html#update-an-importer-associated-with-a-repository

        Distributor update:
        Method: PUT
        Path: /pulp/api/v2/repositories/<repo_id>/distributors/<distributor_id>/

        Importer update:
        Method: PUT
        Path: /pulp/api/v2/repositories/<repo_id>/importers/<importer_id>/
        """
        repo_id = "%s-%s" % (juicer_repo['name'], env)
        distributor_id = "yum_distributor"
        importer_id = "yum_importer"
        distributor_diff = repo_diff.diff()['distributor']
        importer_diff = repo_diff.diff()['importer']

        distributor_query = query + "%s/distributors/%s/" % (repo_id, distributor_id)
        importer_query = query + "%s/importers/%s/" % (repo_id, importer_id)

        ##############################################################
        # Importer update
        _r = self.connectors[env].put(distributor_query, distributor_diff)
        if _r.status_code == Constants.PULP_PUT_OK:
            juicer.utils.Log.log_notice("Update request accepted for %s", repo_id)
        elif _r.status_code == Constants.PULP_PUT_CONFLICT:
            juicer.utils.Log.log_debug(str(_r.content))
        elif _r.status_code == Constants.PULP_PUT_NOT_FOUND:
            juicer.utils.Log.log_debug(str(_r.content))
        else:
            _r.raise_for_status()

        ##############################################################
        # Distributor update
        _r = self.connectors[env].put(importer_query, importer_diff)
        if _r.status_code == Constants.PULP_PUT_OK:
            juicer.utils.Log.log_notice("Update request accepted for %s", repo_id)
        elif _r.status_code == Constants.PULP_PUT_CONFLICT:
            juicer.utils.Log.log_debug(str(_r.content))
        elif _r.status_code == Constants.PULP_PUT_NOT_FOUND:
            juicer.utils.Log.log_debug(str(_r.content))
        else:
            _r.raise_for_status()

        return True
`from_file` - JSON file of repo definitions
        `noop` - Boolean, if true don't actually create/update repos, just show what would have happened

        https://pulp-dev-guide.readthedocs.org/en/pulp-2.3/integration/rest-api/repo/cud.html#update-a-distributor-associated-with-a-repository
        https://pulp-dev-guide.readthedocs.org/en/pulp-2.3/integration/rest-api/repo/cud.html#update-an-importer-associated-with-a-repository

        Distributor update:
        Method: PUT
        Path: /pulp/api/v2/repositories/<repo_id>/distributors/<distributor_id>/

        Importer update:
        Method: PUT
        Path: /pulp/api/v2/repositories/<repo_id>/importers/<importer_id>/