public class Image
extends java.lang.Object
Image
is a directory tree containing the laid-down contents
of a self-consistent graph of Packages.
An Image has a root path.
Modifier and Type | Class and Description |
---|---|
static class |
Image.FmriState
An
FmriState represents the current state of an Fmri within
the image. |
class |
Image.ImagePlan
An
ImagePlan takes a list of requested packages, an Image (and its
policy restrictions), and returns the set of package operations needed
to transform the Image to the list of requested packages. |
Modifier and Type | Field and Description |
---|---|
static int |
IMG_ENTIRE |
static int |
IMG_PARTIAL |
static int |
IMG_USER |
Constructor and Description |
---|
Image(java.io.File path)
Open an Image object for an existing user image based on a File.
|
Image(java.lang.String path)
Create an Image object for an existing user image based on a String
|
Modifier and Type | Method and Description |
---|---|
void |
completeInstall() |
static Image |
create(java.io.File path,
java.lang.String authName,
java.net.URL origin)
Creates a new user image at the specified path.
|
java.lang.String[] |
getAuthorityNames()
Return the authority names defined for this image.
|
java.util.List<Image.FmriState> |
getInventory(java.lang.String[] pkg_list,
boolean all_known)
Get the inventory of packages and their associated state.
|
Manifest |
getManifest(Fmri fmri)
Get the manifest for a package.
|
java.util.HashMap<java.lang.String,java.lang.String> |
getMetaData() |
java.lang.String |
getPreferredAuthorityName() |
java.io.File |
getRootDirectory()
Obtain the root directory for this image.
|
int |
getURLConnectTimeout() |
int |
getURLReadmTimeout() |
Fmri |
getVersionInstalled(java.lang.String pkgName)
Given just the package name (e.g., "SUNWbash"), find the version currently installed
in this image, and returns its
Fmri with the version number. |
java.util.List<Fmri> |
getVersionsInstalled(java.util.Collection<java.lang.String> pkgNames)
Plural version of
getVersionInstalled(String) . |
void |
hideMetaDirectory()
Change the permissions on the Image meta data directory so that the
directory will be hidden.
|
void |
installPackages(boolean download,
boolean apply,
java.util.List<Fmri> pkgs)
Install packages and any required dependencies.
|
void |
installPackages(boolean download,
boolean apply,
java.lang.String... pkgNames) |
void |
installPackages(ImagePlanProgressTracker tracker,
boolean download,
boolean apply,
java.lang.String... pkgNames)
Install packages and any required dependencies.
|
void |
installPackages(java.util.List<Fmri> pkgs)
Install packages and any required dependencies.
|
void |
installPackages(java.lang.String... pkgNames)
Install packages and any required dependencies.
|
boolean |
isTherePendingInstall() |
Image.ImagePlan |
makeInstallPlan(java.util.Collection<java.lang.String> pkgNames)
Create an plan for installing packages and any required dependencies.
|
Image.ImagePlan |
makeInstallPlan(java.util.Collection<java.lang.String> pkgNames,
java.lang.String operation)
Create an plan for installing packages and any required dependencies.
|
Image.ImagePlan |
makeInstallPlan(java.util.List<Fmri> pkgs)
Create an plan for installing packages and any required dependencies.
|
Image.ImagePlan |
makeInstallPlan(java.lang.String... pkgNames)
Create an plan for installing packages and any required dependencies.
|
Image.ImagePlan |
makeInstallPlan(java.lang.String[] pkgNames,
java.lang.String operation) |
Image.ImagePlan |
makeUninstallPlan(java.util.Collection<Fmri> pkgs)
Create a plan for removing packages.
|
void |
refreshCatalog(java.lang.String authname)
Call refresh on the Catalog for the given authority.
|
void |
refreshCatalogs()
Call refresh on all of the Catalogs for this image.
|
void |
saveConfig()
Save the configuration for the image.
|
void |
setAuthority(java.lang.String authname,
java.net.URL origin,
java.lang.String uuid)
Set image authority attributes.
|
void |
setClientName(java.lang.String clientname)
Set the client name to be used in connections to repositories.
|
static void |
setDefaultClientName(java.lang.String clientname)
Set the default client name for all Image objects created in this VM.
|
void |
setMetaData(java.util.HashMap<java.lang.String,java.lang.String> attrs)
If provided this metadata is included in any catalog requests via
the X-JPkg-MetaData property on the HTTP GET request.
|
void |
setProperty(java.lang.String pname,
java.lang.String pvalue)
Set image property value.
|
void |
setProxy(java.net.Proxy p)
Set the proxy to be used by connenctions to repositories.
|
void |
setURLConnectTimeout(int timeout_ms) |
void |
setURLReadmTimeout(int timeout_ms) |
void |
setVariant(java.lang.String name,
java.lang.String value)
Set image variant value.
|
void |
uninstallPackages(java.util.List<Fmri> pkgs)
Uninstall packages.
|
void |
uninstallPackages(java.lang.String... pkgNames)
Uninstall packages.
|
public static final int IMG_ENTIRE
public static final int IMG_PARTIAL
public static final int IMG_USER
public Image(java.lang.String path) throws java.lang.Exception
path
- The path for a file or directory within the image.java.lang.Exception
public Image(java.io.File path) throws java.lang.Exception
path
- A File within the image.java.lang.Exception
create(File, String, URL)
public static Image create(java.io.File path, java.lang.String authName, java.net.URL origin) throws java.lang.Exception
path
- Directory that will become an image. If no such directory exists,
it'll be created.authName
- The name of the initial authority to be added.origin
- The URL of the initial authority.java.lang.Exception
public java.io.File getRootDirectory()
public void hideMetaDirectory() throws java.io.IOException
java.io.IOException
public void setProxy(java.net.Proxy p)
The proxy for an Image is initialized to be the return value from SystemInfo.getProxy. This method can be used to set the proxy to some other value or to null if the desire is to use the system defaults.
p
- - the proxy to usepublic void setClientName(java.lang.String clientname)
The client name is included in the User-Agent header following the image type. The default value is "pkg-java" if setClientName is not called or another value as set by the setDefaultClientName method.
clientname
- the name of the client that is using this image objectpublic static void setDefaultClientName(java.lang.String clientname)
See the setClientName method for information on how the client name value is used.
clientname
- the default value to use for client namepublic void saveConfig() throws java.io.IOException
java.io.IOException
public java.lang.String getPreferredAuthorityName()
public java.lang.String[] getAuthorityNames()
public void setAuthority(java.lang.String authname, java.net.URL origin, java.lang.String uuid) throws java.io.IOException
When adding an authority, the origin URL is required while uuid may be null. If the uuid is passed as null, a new uuid will be generated and assigned to the authority.
When modifying an existing authority, the origin and uuid parameters may be passed as nulls. In this case:
authname
- - the name of the authority to changeorigin
- - the origin URL for the authorityuuid
- - the UUID for the authorityjava.lang.IllegalArgumentException
- - if the authority is not currently in the
image and origin is null.java.io.IOException
public void setProperty(java.lang.String pname, java.lang.String pvalue)
pname
- - the name of the property to setpvalue
- - the value of the propertypublic void setVariant(java.lang.String name, java.lang.String value)
name
- - the name of the variant to setvalue
- - the value of the variantpublic void refreshCatalogs() throws java.io.IOException
java.io.IOException
public void refreshCatalog(java.lang.String authname) throws java.io.IOException
java.io.IOException
public java.util.List<Image.FmriState> getInventory(java.lang.String[] pkg_list, boolean all_known)
pkg_list
- Limit the inventory to packages that match entries in the
list of package namesall_known
- If true, return all package versions. Otherwise only
return the most recent version of each package.public Image.ImagePlan makeInstallPlan(java.util.Collection<java.lang.String> pkgNames) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
pkgNames
- names of packages to installjava.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public Image.ImagePlan makeInstallPlan(java.util.Collection<java.lang.String> pkgNames, java.lang.String operation) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
pkgNames
- names of packages to installoperation
- identify the operation (install, list, uninstall)java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public Image.ImagePlan makeInstallPlan(java.lang.String... pkgNames) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
pkgNames
- names of packages to installjava.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public Image.ImagePlan makeInstallPlan(java.lang.String[] pkgNames, java.lang.String operation) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public Image.ImagePlan makeInstallPlan(java.util.List<Fmri> pkgs) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
pkgs
- List of valid Fmris from the image inventory for packages to
install.java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public Image.ImagePlan makeUninstallPlan(java.util.Collection<Fmri> pkgs) throws java.io.IOException
pkgs
- Fmri
s to be removed.java.io.IOException
public boolean isTherePendingInstall() throws java.io.IOException
java.io.IOException
public void completeInstall() throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public void installPackages(java.lang.String... pkgNames) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
The catalogs are searched for a matching package for each entry in the pkgNames array. If multiple packages match an entry, the most recent package is installed. If no matching package is found, an IllegalArgumentException is thrown.
This method is shorthand for:
makeInstallPlan(pkgNames).execute();
pkgNames
- names of packages to installjava.io.IOException
java.lang.IllegalArgumentException
- if a matching package cannot be foundcom.sun.pkg.client.Constraint.ConstraintException
public void installPackages(ImagePlanProgressTracker tracker, boolean download, boolean apply, java.lang.String... pkgNames) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
The catalogs are searched for a matching package for each entry in the pkgNames array. If multiple packages match an entry, the most recent package is installed. If no matching package is found, an IllegalArgumentException is thrown.
This method is shorthand for:
makeInstallPlan(pkgNames).execute();
pkgNames
- names of packages to installdownload
- boolean variable to trigger downloadapply
- boolean variable to trigger installtion for downloaded packagestracker
- Progress tracker. May be null.java.io.IOException
java.lang.IllegalArgumentException
- if a matching package cannot be foundcom.sun.pkg.client.Constraint.ConstraintException
public void installPackages(boolean download, boolean apply, java.lang.String... pkgNames) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public void installPackages(java.util.List<Fmri> pkgs) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
This method is shorthand for:
makeInstallPlan(pkgs).execute();
pkgs
- List of valid Fmris from the image inventory for packages to
install.java.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public void installPackages(boolean download, boolean apply, java.util.List<Fmri> pkgs) throws java.io.IOException, com.sun.pkg.client.Constraint.ConstraintException
This method is shorthand for:
makeInstallPlan(pkgs).execute();
pkgs
- List of valid Fmris from the image inventory for packages to
install.download
- boolean variable to trigger downloadapply
- boolean variable to trigger installtion for downloaded packagesjava.io.IOException
com.sun.pkg.client.Constraint.ConstraintException
public void uninstallPackages(java.lang.String... pkgNames) throws java.io.IOException
pkgNames
- names of packages to uninstalljava.io.IOException
public void uninstallPackages(java.util.List<Fmri> pkgs) throws java.io.IOException
pkgs
- List of valid Fmris to uninstall.java.io.IOException
public Manifest getManifest(Fmri fmri) throws java.io.IOException
java.io.IOException
public Fmri getVersionInstalled(java.lang.String pkgName) throws java.io.IOException
Fmri
with the version number.java.io.IOException
public java.util.List<Fmri> getVersionsInstalled(java.util.Collection<java.lang.String> pkgNames) throws java.io.IOException
getVersionInstalled(String)
.
If a package specified isn't installed, it'll be just ignored.
java.io.IOException
public void setURLConnectTimeout(int timeout_ms)
public int getURLConnectTimeout()
public void setURLReadmTimeout(int timeout_ms)
public int getURLReadmTimeout()
public void setMetaData(java.util.HashMap<java.lang.String,java.lang.String> attrs)
public java.util.HashMap<java.lang.String,java.lang.String> getMetaData()