Skip to content

Commit

Permalink
implement enablerepo disablerepo options, fix repolist status
Browse files Browse the repository at this point in the history
Change-Id: I1a402e790c4d946107a6feb76f22f1c0d64ce5ac
  • Loading branch information
Priyesh Padmavilasom committed Nov 4, 2016
1 parent e255292 commit ef4f547
Show file tree
Hide file tree
Showing 10 changed files with 394 additions and 23 deletions.
63 changes: 58 additions & 5 deletions client/api.c
Original file line number Diff line number Diff line change
Expand Up @@ -515,10 +515,13 @@ TDNFOpenHandle(

dwError = TDNFLoadRepoData(
pTdnf,
REPOLISTFILTER_ENABLED,
REPOLISTFILTER_ALL,
&pTdnf->pRepos);
BAIL_ON_TDNF_ERROR(dwError);

dwError = TDNFRepoListFinalize(pTdnf);
BAIL_ON_TDNF_ERROR(dwError);

dwError = TDNFRefreshSack(pTdnf, pTdnf->pArgs->nRefresh);
BAIL_ON_TDNF_ERROR(dwError);

Expand Down Expand Up @@ -624,22 +627,69 @@ TDNFRepoList(
{
uint32_t dwError = 0;
PTDNF_REPO_DATA pReposAll = NULL;
PTDNF_REPO_DATA pRepoTemp = NULL;
PTDNF_REPO_DATA pRepoCurrent = NULL;
PTDNF_REPO_DATA pRepos = NULL;
int nAdd = 0;

if(!pTdnf || !pTdnf->pConf || !ppReposAll)
if(!pTdnf || !pTdnf->pRepos || !ppReposAll)
{
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}

dwError = TDNFLoadRepoData(pTdnf, nFilter, &pReposAll);
BAIL_ON_TDNF_ERROR(dwError);
pRepos = pTdnf->pRepos;

while(pRepos)
{
nAdd = 0;
if(nFilter == REPOLISTFILTER_ALL)
{
nAdd = 1;
}
else if(nFilter == REPOLISTFILTER_ENABLED && pRepos->nEnabled)
{
nAdd = 1;
}
else if(nFilter == REPOLISTFILTER_DISABLED && !pRepos->nEnabled)
{
nAdd = 1;
}
if(nAdd)
{
dwError = TDNFCloneRepo(pRepos, &pRepoTemp);
BAIL_ON_TDNF_ERROR(dwError);

if(!pReposAll)
{
pReposAll = pRepoTemp;
pRepoCurrent = pReposAll;
}
else
{
pRepoCurrent->pNext = pRepoTemp;
pRepoCurrent = pRepoCurrent->pNext;
}
pRepoTemp = NULL;
}

pRepos = pRepos->pNext;
}

*ppReposAll = pReposAll;

cleanup:
return dwError;

error:
if(ppReposAll)
{
*ppReposAll = NULL;
}
if(pReposAll)
{
TDNFFreeRepos(pReposAll);
}
goto cleanup;
}

Expand Down Expand Up @@ -1064,7 +1114,10 @@ TDNFFreeCmdArgs(
TDNF_SAFE_FREE_MEMORY(pCmdArgs->pszConfFile);
TDNF_SAFE_FREE_MEMORY(pCmdArgs->pszReleaseVer);

TDNF_SAFE_FREE_MEMORY(pCmdArgs->pSetOpt);
if(pCmdArgs->pSetOpt)
{
TDNFFreeCmdOpt(pCmdArgs->pSetOpt);
}
TDNF_SAFE_FREE_MEMORY(pCmdArgs);
}
}
Expand Down
1 change: 1 addition & 0 deletions client/includes.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include <fnmatch.h>
//
#include <sys/utsname.h>
//glib
Expand Down
56 changes: 56 additions & 0 deletions client/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,13 @@ TDNFCloneCmdArgs(
BAIL_ON_TDNF_ERROR(dwError);
}

if(pCmdArgsIn->pSetOpt)
{
dwError = TDNFCloneSetOpts(pCmdArgsIn->pSetOpt,
&pCmdArgs->pSetOpt);
BAIL_ON_TDNF_ERROR(dwError);
}

*ppCmdArgs = pCmdArgs;

cleanup:
Expand All @@ -185,6 +192,55 @@ TDNFCloneCmdArgs(
goto cleanup;
}

uint32_t
TDNFCloneSetOpts(
PTDNF_CMD_OPT pCmdOptIn,
PTDNF_CMD_OPT* ppCmdOpt
)
{
uint32_t dwError = 0;
PTDNF_CMD_OPT pCmdOpt = NULL;
PTDNF_CMD_OPT pCmdOptCurrent = NULL;
PTDNF_CMD_OPT* ppCmdOptCurrent = NULL;

if(!pCmdOptIn || !ppCmdOpt)
{
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}

ppCmdOptCurrent = &pCmdOpt;
while(pCmdOptIn)
{
dwError = TDNFAllocateMemory(1,
sizeof(TDNF_CMD_OPT),
(void**)ppCmdOptCurrent);
BAIL_ON_TDNF_ERROR(dwError);

pCmdOptCurrent = *ppCmdOptCurrent;

pCmdOptCurrent->nType = pCmdOptIn->nType;

dwError = TDNFAllocateString(pCmdOptIn->pszOptName,
&pCmdOptCurrent->pszOptName);
BAIL_ON_TDNF_ERROR(dwError);

dwError = TDNFAllocateString(pCmdOptIn->pszOptValue,
&pCmdOptCurrent->pszOptValue);
BAIL_ON_TDNF_ERROR(dwError);

ppCmdOptCurrent = &(pCmdOptCurrent->pNext);
pCmdOptIn = pCmdOptIn->pNext;
}

*ppCmdOpt = pCmdOpt;
cleanup:
return dwError;

error:
goto cleanup;
}

uint32_t
TDNFRefreshSack(
PTDNF pTdnf,
Expand Down
24 changes: 24 additions & 0 deletions client/prototypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ TDNFCloneCmdArgs(
PTDNF_CMD_ARGS* ppCmdArgs
);

uint32_t
TDNFCloneSetOpts(
PTDNF_CMD_OPT pCmdOptIn,
PTDNF_CMD_OPT* ppCmdOpt
);

uint32_t
TDNFInitSack(
PTDNF pTdnf,
Expand Down Expand Up @@ -433,6 +439,24 @@ TDNFLoadRepoData(
PTDNF_REPO_DATA* ppReposAll
);

uint32_t
TDNFRepoListFinalize(
PTDNF pTdnf
);

uint32_t
TDNFAlterRepoState(
PTDNF_REPO_DATA pRepos,
int nEnable,
const char* pszId
);

uint32_t
TDNFCloneRepo(
PTDNF_REPO_DATA pRepoIn,
PTDNF_REPO_DATA* ppRepo
);

//resolve.c
HySubject
hy_subject_create(
Expand Down
Loading

0 comments on commit ef4f547

Please sign in to comment.