@@ -24,7 +24,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2424 /// <summary>
2525 /// Get list of jobs
2626 /// </summary>
27- [ Cmdlet ( VerbsCommon . Get , "AzureRmRecoveryServicesBackupJob" ) ,
27+ [ Cmdlet ( VerbsCommon . Get , "AzureRmRecoveryServicesBackupJob" ) ,
2828 OutputType ( typeof ( JobBase ) , typeof ( IList < JobBase > ) ) ]
2929 public class GetAzureRmRecoveryServicesBackupJob : RecoveryServicesBackupCmdletBase
3030 {
@@ -112,57 +112,66 @@ public override void ExecuteCmdlet()
112112
113113 List < JobBase > result = new List < JobBase > ( ) ;
114114
115- WriteDebug ( string . Format ( "Filters provided are: StartTime - {0} " +
115+ WriteDebug ( string . Format ( "Filters provided are: StartTime - {0} " +
116116 "EndTime - {1} Status - {2} Operation - {3} Type - {4}" ,
117117 From ,
118118 To ,
119119 Status ,
120120 Operation ,
121121 BackupManagementType ) ) ;
122122
123- int resultCount = 0 ;
124- var adapterResponse = ServiceClientAdapter . GetJobs ( JobId ,
125- Status . HasValue ? Status . ToString ( ) : null ,
126- Operation . HasValue ? Operation . ToString ( ) : null ,
127- rangeStart ,
128- rangeEnd ,
129- BackupManagementType . HasValue ?
130- Helpers . JobConversions . GetJobTypeForService ( BackupManagementType . Value ) : null ) ;
131- JobConversions . AddServiceClientJobsToPSList ( adapterResponse , result , ref resultCount ) ;
132-
133- while ( ! string . IsNullOrEmpty ( adapterResponse . ItemList . NextLink ) )
123+ if ( JobId == null )
134124 {
135- if ( resultCount >= JobConstants . MaximumJobsToFetch )
125+ int resultCount = 0 ;
126+ var adapterResponse = ServiceClientAdapter . GetJobs ( JobId ,
127+ Status . HasValue ? Status . ToString ( ) : null ,
128+ Operation . HasValue ? Operation . ToString ( ) : null ,
129+ rangeStart ,
130+ rangeEnd ,
131+ BackupManagementType . HasValue ?
132+ Helpers . JobConversions . GetJobTypeForService ( BackupManagementType . Value ) : null ) ;
133+
134+ JobConversions . AddServiceClientJobsToPSList ( adapterResponse , result , ref resultCount ) ;
135+
136+ while ( ! string . IsNullOrEmpty ( adapterResponse . ItemList . NextLink ) )
136137 {
137- // trace a warning that there are more jobs and user has to refine filters.
138- WriteWarning ( Resources . JobRefineFilters ) ;
139- break ;
138+ if ( resultCount >= JobConstants . MaximumJobsToFetch )
139+ {
140+ // trace a warning that there are more jobs and user has to refine filters.
141+ WriteWarning ( Resources . JobRefineFilters ) ;
142+ break ;
143+ }
144+
145+ string skipToken ;
146+ ServiceClientHelpers . GetSkipTokenFromNextLink (
147+ adapterResponse . ItemList . NextLink , out skipToken ) ;
148+ if ( skipToken != null )
149+ {
150+ adapterResponse = ServiceClientAdapter . GetJobs ( JobId ,
151+ Status . HasValue ? Status . ToString ( ) : null ,
152+ Operation . HasValue ? Operation . ToString ( ) : null ,
153+ rangeStart ,
154+ rangeEnd ,
155+ BackupManagementType . HasValue ?
156+ Helpers . JobConversions . GetJobTypeForService ( BackupManagementType . Value ) : null ,
157+ null ,
158+ skipToken ) ;
159+ JobConversions . AddServiceClientJobsToPSList ( adapterResponse , result , ref resultCount ) ;
160+ }
161+ else
162+ {
163+ break ;
164+ }
140165 }
141166
142- string skipToken ;
143- ServiceClientHelpers . GetSkipTokenFromNextLink (
144- adapterResponse . ItemList . NextLink , out skipToken ) ;
145- if ( skipToken != null )
146- {
147- adapterResponse = ServiceClientAdapter . GetJobs ( JobId ,
148- Status . HasValue ? Status . ToString ( ) : null ,
149- Operation . HasValue ? Operation . ToString ( ) : null ,
150- rangeStart ,
151- rangeEnd ,
152- BackupManagementType . HasValue ?
153- Helpers . JobConversions . GetJobTypeForService ( BackupManagementType . Value ) : null ,
154- null ,
155- skipToken ) ;
156- JobConversions . AddServiceClientJobsToPSList ( adapterResponse , result , ref resultCount ) ;
157- }
158- else
159- {
160- break ;
161- }
167+ WriteDebug ( "Number of jobs fetched: " + result . Count ) ;
168+ WriteObject ( result , enumerateCollection : true ) ;
169+ }
170+ else
171+ {
172+ // When JobId is non null call GetJob instead of ListJobs
173+ WriteObject ( GetJobObject ( JobId ) ) ;
162174 }
163-
164- WriteDebug ( "Number of jobs fetched: " + result . Count ) ;
165- WriteObject ( result , enumerateCollection : true ) ;
166175 } ) ;
167176 }
168177 }
0 commit comments