[
https://issues.apache.org/jira/browse/AURORA-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14158596#comment-14158596
]
Maxim Khutornenko commented on AURORA-84:
-----------------------------------------
Here is the implementation plan:
h4. TaskConfig
h5. Scheduler
Have to carry both deprecated and new replacement fields to ensure older
clients are supported.
* Add a new {{role}} field into {{TaskConfig}};
* Rename {{owner}} to {{ownerDEPRECATED}};
* Backfill both fields on startup;
* Populate {{role}} from {{ownerDEPRECATED}} in {{ConfigurationManager}}.
h5. Client
h6. Old client
Thrift drops the new {{role}} field and correctly processes the renamed
{{ownerDEPRECATED}} one. Both client diffs are unaffected.
h6. New client
Have to support both deprecated and new replacement fields to ensure client
works against old and new scheduler:
* Populate both fields anywhere a {{TaskConfig}} is sent to the scheduler;
* Populate both fields in {{TaskConfig}} coming from scheduler before
attempting a diff.
h5. UI
Does not use {{TaskConfig.owner}} field.
h4. JobConfiguration
h5. Scheduler
The {{owner}} field is redundant as the {{role}} is already represented by the
job {{key}} field.
* Rename {{owner}} to {{ownerDEPRECATED}};
* Switch all use cases to {{key}}.
h5. Client
h6. Old client
Renamed field is correctly used by thrift.
h6. New client
Have to keep using {{ownerDEPRECATED}} to ensure client works against old and
new scheduler.
* UI. Does not use {{JobConfiguration.owner}} field.
h4. TaskQuery
h5. Scheduler
Have to carry both deprecated and new replacement fields to ensure older
clients are supported.
* Add a new {{role}} field into {{TaskConfig}};
* Switch from {{ownerDEPRECATED}} to {{role}} internally by backfilling
{{role}} in {{Query.Builder}}.
h5. Client
h6. Old client
Keeps sending {{owner}} field to the scheduler.
h6. New client
Have to support both deprecated and new replacement fields to ensure client
works against old and new scheduler:
* Populate both fields anywhere a {{TaskQuery}} is created.
h5. UI
Update {{services.js}} to populate {{role}} field instead.
> Deprecate the Identity struct
> -----------------------------
>
> Key: AURORA-84
> URL: https://issues.apache.org/jira/browse/AURORA-84
> Project: Aurora
> Issue Type: Task
> Components: Client, Scheduler
> Reporter: Bill Farner
> Assignee: Maxim Khutornenko
>
> The Identity field is nested in several structs, and the {{role}} field it
> contains is ~always redundant to a field in {{JobKey}}. Consider removing
> Identity and using (or adding) a non-user-bearing field like JobKey.
> An open question is whether whether {{Identity.user}} should be retained.
> Most likely yes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)