Message ID | 20240626110124.374336-6-vsementsov@yandex-team.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | introduce job-change qmp command | expand |
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes: > Add a new-style command job-change, doing same thing as > block-job-change. The aim is finally deprecate block-job-* APIs and > move to job-* APIs. > > We add a new command to qapi/block-core.json, not to > qapi/job.json to avoid resolving json file including loops for now. > This all would be a lot simple to refactor when we finally drop > deprecated block-job-* APIs. > > @type argument of the new command immediately becomes deprecated. Where? > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> > --- > job-qmp.c | 14 ++++++++++++++ > qapi/block-core.json | 10 ++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/job-qmp.c b/job-qmp.c > index c764bd3801..248e68f554 100644 > --- a/job-qmp.c > +++ b/job-qmp.c > @@ -139,6 +139,20 @@ void qmp_job_dismiss(const char *id, Error **errp) > job_dismiss_locked(&job, errp); > } > > +void qmp_job_change(JobChangeOptions *opts, Error **errp) > +{ > + Job *job; > + > + JOB_LOCK_GUARD(); > + job = find_job_locked(opts->id, errp); > + > + if (!job) { > + return; > + } > + > + job_change_locked(job, opts, errp); > +} > + > /* Called with job_mutex held. */ > static JobInfo *job_query_single_locked(Job *job, Error **errp) > { > diff --git a/qapi/block-core.json b/qapi/block-core.json > index 660c7f4a48..9087ce300c 100644 > --- a/qapi/block-core.json > +++ b/qapi/block-core.json > @@ -3104,6 +3104,16 @@ > { 'command': 'block-job-change', > 'data': 'JobChangeOptions', 'boxed': true } > > +## > +# @job-change: > +# > +# Change the block job's options. > +# > +# Since: 9.1 > +## > +{ 'command': 'job-change', > + 'data': 'JobChangeOptions', 'boxed': true } > + > ## > # @BlockdevDiscardOptions: > #
On 18.07.24 13:59, Markus Armbruster wrote: > Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes: > >> Add a new-style command job-change, doing same thing as >> block-job-change. The aim is finally deprecate block-job-* APIs and >> move to job-* APIs. >> >> We add a new command to qapi/block-core.json, not to >> qapi/job.json to avoid resolving json file including loops for now. >> This all would be a lot simple to refactor when we finally drop >> deprecated block-job-* APIs. >> >> @type argument of the new command immediately becomes deprecated. > > Where? Oops, that type-based union was dropped, so this sentence should be dropped as well. > >> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> >> --- >> job-qmp.c | 14 ++++++++++++++ >> qapi/block-core.json | 10 ++++++++++ >> 2 files changed, 24 insertions(+) >> >> diff --git a/job-qmp.c b/job-qmp.c >> index c764bd3801..248e68f554 100644 >> --- a/job-qmp.c >> +++ b/job-qmp.c >> @@ -139,6 +139,20 @@ void qmp_job_dismiss(const char *id, Error **errp) >> job_dismiss_locked(&job, errp); >> } >> >> +void qmp_job_change(JobChangeOptions *opts, Error **errp) >> +{ >> + Job *job; >> + >> + JOB_LOCK_GUARD(); >> + job = find_job_locked(opts->id, errp); >> + >> + if (!job) { >> + return; >> + } >> + >> + job_change_locked(job, opts, errp); >> +} >> + >> /* Called with job_mutex held. */ >> static JobInfo *job_query_single_locked(Job *job, Error **errp) >> { >> diff --git a/qapi/block-core.json b/qapi/block-core.json >> index 660c7f4a48..9087ce300c 100644 >> --- a/qapi/block-core.json >> +++ b/qapi/block-core.json >> @@ -3104,6 +3104,16 @@ >> { 'command': 'block-job-change', >> 'data': 'JobChangeOptions', 'boxed': true } >> >> +## >> +# @job-change: >> +# >> +# Change the block job's options. >> +# >> +# Since: 9.1 >> +## >> +{ 'command': 'job-change', >> + 'data': 'JobChangeOptions', 'boxed': true } >> + >> ## >> # @BlockdevDiscardOptions: >> # >
diff --git a/job-qmp.c b/job-qmp.c index c764bd3801..248e68f554 100644 --- a/job-qmp.c +++ b/job-qmp.c @@ -139,6 +139,20 @@ void qmp_job_dismiss(const char *id, Error **errp) job_dismiss_locked(&job, errp); } +void qmp_job_change(JobChangeOptions *opts, Error **errp) +{ + Job *job; + + JOB_LOCK_GUARD(); + job = find_job_locked(opts->id, errp); + + if (!job) { + return; + } + + job_change_locked(job, opts, errp); +} + /* Called with job_mutex held. */ static JobInfo *job_query_single_locked(Job *job, Error **errp) { diff --git a/qapi/block-core.json b/qapi/block-core.json index 660c7f4a48..9087ce300c 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -3104,6 +3104,16 @@ { 'command': 'block-job-change', 'data': 'JobChangeOptions', 'boxed': true } +## +# @job-change: +# +# Change the block job's options. +# +# Since: 9.1 +## +{ 'command': 'job-change', + 'data': 'JobChangeOptions', 'boxed': true } + ## # @BlockdevDiscardOptions: #
Add a new-style command job-change, doing same thing as block-job-change. The aim is finally deprecate block-job-* APIs and move to job-* APIs. We add a new command to qapi/block-core.json, not to qapi/job.json to avoid resolving json file including loops for now. This all would be a lot simple to refactor when we finally drop deprecated block-job-* APIs. @type argument of the new command immediately becomes deprecated. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> --- job-qmp.c | 14 ++++++++++++++ qapi/block-core.json | 10 ++++++++++ 2 files changed, 24 insertions(+)