aurora-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maxim Khutornenko (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AURORA-84) Deprecate the Identity struct
Date Fri, 03 Oct 2014 22:39:34 GMT

    [ https://issues.apache.org/jira/browse/AURORA-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14158596#comment-14158596
] 

Maxim Khutornenko edited comment on AURORA-84 at 10/3/14 10:38 PM:
-------------------------------------------------------------------

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 {{key}} field into {{TaskConfig}}; 
* Rename {{owner}} to {{ownerDEPRECATED}};
* Rename {{environment}} to {{environmentDEPRECATED}};
* Rename {{jobName}} to {{jobNameDEPRECATED}};
* Backfill all fields on startup;
* Populate {{key}} from deprecated fields in {{ConfigurationManager}}.

h5. Client
h6. Old client 
Thrift drops the new {{key}} field and correctly processes the renamed ones. 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 all fields anywhere a {{TaskConfig}} is sent to the scheduler;
* Populate all fields in {{TaskConfig}} coming from scheduler before attempting a diff.

h5. UI
Update UI to use {{key}} field instead of deprecated {{TaskConfig}} fields.


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.



was (Author: maximk):
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)

Mime
View raw message