* [RFC][PATCH] Enhance XenAPI for pvSCSI
@ 2008-09-03 6:57 Masaki Kanno
2008-09-05 8:52 ` Yosuke Iwamatsu
0 siblings, 1 reply; 7+ messages in thread
From: Masaki Kanno @ 2008-09-03 6:57 UTC (permalink / raw)
To: xen-devel; +Cc: kama, t.horikoshi
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 2982 bytes --]
Hi,
I would like to enhance XenAPI for pvSCSI.
At the beginning, I updated only the document of XenAPI. I'm going
to implement XenAPI of pvSCSI along the document. Could you comment?
The following classes and RPCs are added by the enhancement.
Classes:
- VSCSI class
This is a class for virtual SCSI devices.
- PSCSI class
This is a class for physical SCSI devices.
RPCs:
- VSCSI class
-- get_all
A list of all VSCSIs known to the system is gotten.
-- get_uuid
An UUID of the VSCSI is gotten.
-- get_VM
A VM ref of the VSCSI is gotten.
-- get_PSCSI
A PSCSI ref of the VSCSI is gotten.
-- get_virtual_host
A virtual host number of the VSCSI is gotten.
-- get_virtual_channel
A virtual channel number of the VSCSI is gotten.
-- get_virtual_target
A virtual target number of the VSCSI is gotten.
-- get_virtual_lun
A virtual logical unit number of the VSCSI is gotten.
-- get_virtual_HCTL
A virtual HCTL (string of "<host>:<channel>:<target>:<lun>")
of the VSCSI is gotten.
-- create
A new VSCSI instance is created.
-- destroy
The VSCSI instance is destroyed.
-- get_by_uuid
A VSCSI ref of the UUID is gotten.
-- get_record
A VSCSI record of the VSCSI is gotten.
- PSCSI class
-- get_all
A list of all PSCSIs known to the system is gotten.
-- get_uuid
An UUID of the PSCSI is gotten.
-- get_host
A host ref of the PSCSI is gotten.
-- get_physical_host
A physical host number of the PSCSI is gotten.
-- get_physical_channel
A physical channel number of the PSCSI is gotten.
-- get_physical_target
A physical target number of the PSCSI is gotten.
-- get_physical_lun
A physical logical unit number of the PSCSI is gotten.
-- get_physical_HCTL
A physical HCTL (string of "<host>:<channel>:<target>:<lun>")
of the PSCSI is gotten.
-- get_vendor_name
A vendor name of the PSCSI is gotten.
-- get_model
A model name of the PSCSI is gotten.
-- get_type_id
An ID of device types of the PSCSI is gotten. (If disk, the ID
is 0. If tape, the ID is 1.)
-- get_type
A device type string of the PSCSI is gotten.
-- get_sg_name
A SCSI generic (sg) device name of the PSCSI is gotten.
-- get_revision
A revision string of the PSCSI is gotten.
-- get_scsi_id
A SCSI ID string of the PSCSI is gotten. The string is a result
of 'scsi_id -gu -s'.
-- get_scsi_level
A SCSI level of the PSCSI is gotten.
-- get_by_uuid
A PSCSI ref of the UUID is gotten.
-- get_record
A PSCSI record of the PSCSI is gotten.
- VM class
-- get_VSCSIs
VSCSI refs of the VM are gotten.
- host class
-- get_PSCSIs
PSCSI refs of the host are gotten.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Best regards,
Kan
[-- Attachment #2: xenapi_scsi_docs.patch --]
[-- Type: application/octet-stream, Size: 27647 bytes --]
diff -r 7eefe6399bcd docs/xen-api/coversheet.tex
--- a/docs/xen-api/coversheet.tex Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/coversheet.tex Tue Sep 02 10:44:32 2008 +0900
@@ -51,6 +51,7 @@ Mike Day, IBM & Daniel Veillard, Red Hat
Mike Day, IBM & Daniel Veillard, Red Hat \\
Jim Fehlig, Novell & Tom Wilkie, University of Cambridge \\
Jon Harrop, XenSource & Yosuke Iwamatsu, NEC \\
+Masaki Kanno, FUJITSU \\
\end{tabular}
\end{large}
diff -r 7eefe6399bcd docs/xen-api/revision-history.tex
--- a/docs/xen-api/revision-history.tex Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/revision-history.tex Tue Sep 02 10:45:50 2008 +0900
@@ -56,5 +56,14 @@
\end{flushleft}
\end{minipage}\\
\hline
+ 1.0.7 & 2nd Sep. 08 & M. Kanno &
+ \begin{minipage}[t]{7cm}
+ \begin{flushleft}
+ Added definitions of new classes VSCSI and PSCSI. Updated the table
+ and the diagram representing relationships between classes.
+ Added host.PSCSIs and VM.VSCSIs fields.
+ \end{flushleft}
+ \end{minipage}\\
+ \hline
\end{tabular}
\end{center}
diff -r 7eefe6399bcd docs/xen-api/xenapi-coversheet.tex
--- a/docs/xen-api/xenapi-coversheet.tex Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-coversheet.tex Tue Sep 02 10:46:39 2008 +0900
@@ -17,12 +17,12 @@
\newcommand{\coversheetlogo}{xen.eps}
%% Document date
-\newcommand{\datestring}{24th July 2008}
+\newcommand{\datestring}{2nd September 2008}
\newcommand{\releasestatement}{Stable Release}
%% Document revision
-\newcommand{\revstring}{API Revision 1.0.6}
+\newcommand{\revstring}{API Revision 1.0.7}
%% Document authors
\newcommand{\docauthors}{
diff -r 7eefe6399bcd docs/xen-api/xenapi-datamodel-graph.dot
--- a/docs/xen-api/xenapi-datamodel-graph.dot Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-datamodel-graph.dot Tue Sep 02 10:47:39 2008 +0900
@@ -12,9 +12,11 @@ digraph "Xen-API Class Diagram" {
digraph "Xen-API Class Diagram" {
fontname="Verdana";
-node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user XSPolicy ACMPolicy;
-node [shape=ellipse]; PIF_metrics VIF_metrics VM_metrics VBD_metrics PBD_metrics VM_guest_metrics host_metrics;
-node [shape=box]; DPCI PPCI host_cpu console VTPM
+node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user;
+node [ shape=box ]; XSPolicy ACMPolicy DPCI PPCI host_cpu console VTPM;
+node [ shape=box ]; VSCSI PSCSI;
+node [ shape=ellipse ]; VM_metrics VM_guest_metrics host_metrics;
+node [ shape=ellipse ]; PIF_metrics VIF_metrics VBD_metrics PBD_metrics;
session -> host [ arrowhead="none" ]
session -> user [ arrowhead="none" ]
VM -> VM_metrics [ arrowhead="none" ]
@@ -41,4 +43,7 @@ DPCI -> VM [ arrowhead="none", arrowtail
DPCI -> VM [ arrowhead="none", arrowtail="crow" ]
DPCI -> PPCI [ arrowhead="none" ]
PPCI -> host [ arrowhead="none", arrowtail="crow" ]
+VSCSI -> VM [ arrowhead="none", arrowtail="crow" ]
+VSCSI -> PSCSI [ arrowhead="none" ]
+PSCSI -> host [ arrowhead="none", arrowtail="crow" ]
}
diff -r 7eefe6399bcd docs/xen-api/xenapi-datamodel.tex
--- a/docs/xen-api/xenapi-datamodel.tex Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-datamodel.tex Tue Sep 02 10:48:44 2008 +0900
@@ -46,6 +46,8 @@ Name & Description \\
{\tt console} & A console \\
{\tt DPCI} & A pass-through PCI device \\
{\tt PPCI} & A physical PCI device \\
+{\tt VSCSI} & A virtual SCSI device \\
+{\tt PSCSI} & A physical SCSI device \\
{\tt user} & A user of the system \\
{\tt debug} & A basic class for testing \\
{\tt XSPolicy} & A class for handling Xen Security Policies \\
@@ -74,6 +76,8 @@ console.VM & VM.consoles & one-to-many\\
console.VM & VM.consoles & one-to-many\\
DPCI.VM & VM.DPCIs & one-to-many\\
PPCI.host & host.PPCIs & one-to-many\\
+VSCSI.VM & VM.VSCSIs & one-to-many\\
+PSCSI.host & host.PSCSIs & one-to-many\\
host.resident\_VMs & VM.resident\_on & many-to-one\\
host.host\_CPUs & host\_cpu.host & many-to-one\\
\hline
@@ -1407,6 +1411,7 @@ Quals & Field & Type & Description \\
$\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
$\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
$\mathit{RO}_\mathit{run}$ & {\tt DPCIs} & (DPCI ref) Set & pass-through PCI devices \\
+$\mathit{RO}_\mathit{run}$ & {\tt VSCSIs} & (VSCSI ref) Set & virtual SCSI devices \\
$\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
$\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
$\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
@@ -3443,6 +3448,38 @@ Get the DPCIs field of the given VM.
\noindent {\bf Return Type:}
{\tt
(DPCI ref) Set
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_VSCSIs}
+
+{\bf Overview:}
+Get the VSCSIs field of the given VM.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} ((VSCSI ref) Set) get_VSCSIs (session_id s, VM ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VM ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+(VSCSI ref) Set
}
@@ -5518,6 +5555,7 @@ Quals & Field & Type & Description \\
$\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
$\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
$\mathit{RO}_\mathit{run}$ & {\tt PPCIs} & (PPCI ref) Set & physical PCI devices \\
+$\mathit{RO}_\mathit{run}$ & {\tt PSCSIs} & (PSCSI ref) Set & physical SCSI devices \\
$\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host \\
\hline
@@ -6837,6 +6875,38 @@ Get the PPCIs field of the given host.
\noindent {\bf Return Type:}
{\tt
(PPCI ref) Set
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_PSCSIs}
+
+{\bf Overview:}
+Get the PSCSIs field of the given host.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, host ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt host ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+(PSCSI ref) Set
}
@@ -15723,6 +15793,1030 @@ all fields from the object
\vspace{1cm}
\newpage
+\section{Class: VSCSI}
+\subsection{Fields for class: VSCSI}
+\begin{longtable}{|lllp{0.38\textwidth}|}
+\hline
+\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VSCSI} \\
+\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
+virtual SCSI device.}} \\
+\hline
+Quals & Field & Type & Description \\
+\hline
+$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
+$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
+$\mathit{RO}_\mathit{inst}$ & {\tt PSCSI} & PSCSI ref & the physical SCSI device \\
+$\mathit{RO}_\mathit{run}$ & {\tt virtual\_host} & int & the virtual host number \\
+$\mathit{RO}_\mathit{run}$ & {\tt virtual\_channel} & int & the virtual channel number \\
+$\mathit{RO}_\mathit{run}$ & {\tt virtual\_target} & int & the virtual target number \\
+$\mathit{RO}_\mathit{run}$ & {\tt virtual\_lun} & int & the virtual logical unit number \\
+$\mathit{RO}_\mathit{run}$ & {\tt virtual\_HCTL} & string & the virtual HCTL \\
+\hline
+\end{longtable}
+\subsection{RPCs associated with class: VSCSI}
+\subsubsection{RPC name:~get\_all}
+
+{\bf Overview:}
+Return a list of all the VSCSIs known to the system.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} ((VSCSI ref) Set) get_all (session_id s)\end{verbatim}
+
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+(VSCSI ref) Set
+}
+
+
+references to all objects
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_uuid}
+
+{\bf Overview:}
+Get the uuid field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_uuid (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_VM}
+
+{\bf Overview:}
+Get the VM field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (VM ref) get_VM (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+VM ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_PSCSI}
+
+{\bf Overview:}
+Get the PSCSI field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (PSCSI ref) get_PSCSI (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+PSCSI ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_host}
+
+{\bf Overview:}
+Get the virtual\_host field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_virtual_host (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_channel}
+
+{\bf Overview:}
+Get the virtual\_channel field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_virtual_channel (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_target}
+
+{\bf Overview:}
+Get the virtual\_target field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_virtual_target (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_lun}
+
+{\bf Overview:}
+Get the virtual\_lun field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_virtual_lun (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_HCTL}
+
+{\bf Overview:}
+Get the virtual\_HCTL field of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_virtual_HCTL (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~create}
+
+{\bf Overview:}
+Create a new VSCSI instance, and return its handle.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (VSCSI ref) create (session_id s, VSCSI record args)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI record } & args & All constructor arguments \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+VSCSI ref
+}
+
+
+reference to the newly created object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~destroy}
+
+{\bf Overview:}
+Destroy the specified VSCSI instance.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} void destroy (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+void
+}
+
+
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_by\_uuid}
+
+{\bf Overview:}
+Get a reference to the VSCSI instance with the specified UUID.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (VSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt string } & uuid & UUID of object to return \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+VSCSI ref
+}
+
+
+reference to the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_record}
+
+{\bf Overview:}
+Get a record containing the current state of the given VSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (VSCSI record) get_record (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+VSCSI record
+}
+
+
+all fields from the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+
+\vspace{1cm}
+\newpage
+\section{Class: PSCSI}
+\subsection{Fields for class: PSCSI}
+\begin{longtable}{|lllp{0.38\textwidth}|}
+\hline
+\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI} \\
+\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
+physical SCSI device.}} \\
+\hline
+Quals & Field & Type & Description \\
+\hline
+$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
+$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PSCSI is connected \\
+$\mathit{RO}_\mathit{run}$ & {\tt physical\_host} & int & the physical host number \\
+$\mathit{RO}_\mathit{run}$ & {\tt physical\_channel} & int & the physical channel number \\
+$\mathit{RO}_\mathit{run}$ & {\tt physical\_target} & int & the physical target number \\
+$\mathit{RO}_\mathit{run}$ & {\tt physical\_lun} & int & the physical logical unit number \\
+$\mathit{RO}_\mathit{run}$ & {\tt physical\_HCTL} & string & the physical HCTL \\
+$\mathit{RO}_\mathit{run}$ & {\tt vendor\_name} & string & the vendor name \\
+$\mathit{RO}_\mathit{run}$ & {\tt model} & string & the model \\
+$\mathit{RO}_\mathit{run}$ & {\tt type\_id} & int & the SCSI type ID \\
+$\mathit{RO}_\mathit{run}$ & {\tt type} & string & the SCSI type \\
+$\mathit{RO}_\mathit{run}$ & {\tt sg\_name} & string & the SCSI generic device name \\
+$\mathit{RO}_\mathit{run}$ & {\tt revision} & string & the revision \\
+$\mathit{RO}_\mathit{run}$ & {\tt scsi\_id} & string & the SCSI ID \\
+$\mathit{RO}_\mathit{run}$ & {\tt scsi\_level} & int & the SCSI level \\
+\hline
+\end{longtable}
+\subsection{RPCs associated with class: PSCSI}
+\subsubsection{RPC name:~get\_all}
+
+{\bf Overview:}
+Return a list of all the PSCSIs known to the system.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} ((PSCSI ref) Set) get_all (session_id s)\end{verbatim}
+
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+(PSCSI ref) Set
+}
+
+
+references to all objects
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_uuid}
+
+{\bf Overview:}
+Get the uuid field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_uuid (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_host}
+
+{\bf Overview:}
+Get the host field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (host ref) get_host (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+host ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_host}
+
+{\bf Overview:}
+Get the physical\_host field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_physical_host (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_channel}
+
+{\bf Overview:}
+Get the physical\_channel field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_physical_channel (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_target}
+
+{\bf Overview:}
+Get the physical\_target field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_physical_target (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_lun}
+
+{\bf Overview:}
+Get the physical\_lun field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_physical_lun (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_HCTL}
+
+{\bf Overview:}
+Get the physical\_HCTL field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_physical_HCTL (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_vendor\_name}
+
+{\bf Overview:}
+Get the vendor\_name field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_vendor_name (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_model}
+
+{\bf Overview:}
+Get the model field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_model (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_type\_id}
+
+{\bf Overview:}
+Get the type\_id field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_type_id (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_type}
+
+{\bf Overview:}
+Get the type field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_type (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_sg\_name}
+
+{\bf Overview:}
+Get the sg\_name field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_sg_name (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_revision}
+
+{\bf Overview:}
+Get the revision field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_revision (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_scsi\_id}
+
+{\bf Overview:}
+Get the scsi\_id field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} string get_scsi_id (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_scsi\_level}
+
+{\bf Overview:}
+Get the scsi\_level field of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} int get_scsi_level (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_by\_uuid}
+
+{\bf Overview:}
+Get a reference to the PSCSI instance with the specified UUID.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (PSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt string } & uuid & UUID of object to return \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+PSCSI ref
+}
+
+
+reference to the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_record}
+
+{\bf Overview:}
+Get a record containing the current state of the given PSCSI.
+
+ \noindent {\bf Signature:}
+\begin{verbatim} (PSCSI record) get_record (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:}
+{\tt
+PSCSI record
+}
+
+
+all fields from the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+
+\vspace{1cm}
+\newpage
\section{Class: user}
\subsection{Fields for class: user}
\begin{longtable}{|lllp{0.38\textwidth}|}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
2008-09-03 6:57 [RFC][PATCH] Enhance XenAPI for pvSCSI Masaki Kanno
@ 2008-09-05 8:52 ` Yosuke Iwamatsu
2008-09-08 2:31 ` Jun Kamada
2008-09-08 5:03 ` Masaki Kanno
0 siblings, 2 replies; 7+ messages in thread
From: Yosuke Iwamatsu @ 2008-09-05 8:52 UTC (permalink / raw)
To: Masaki Kanno; +Cc: kama, t.horikoshi, xen-devel, xen-api
Hi,
Masaki Kanno wrote:
> Hi,
>
> I would like to enhance XenAPI for pvSCSI.
> At the beginning, I updated only the document of XenAPI. I'm going
> to implement XenAPI of pvSCSI along the document. Could you comment?
>
> The following classes and RPCs are added by the enhancement.
> Classes:
> - VSCSI class
> This is a class for virtual SCSI devices.
It's nice to keep xen-api updated with new features :-)
One thing I want to point out is about the class name.
I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
because pvSCSI driver doesn't really provide virtual scsi luns but
passes through scsi commands to real scsi luns, as far as I understand.
Regards,
-- Yosuke Iwamatsu
> - PSCSI class
> This is a class for physical SCSI devices.
>
> RPCs:
> - VSCSI class
> -- get_all
> A list of all VSCSIs known to the system is gotten.
> -- get_uuid
> An UUID of the VSCSI is gotten.
> -- get_VM
> A VM ref of the VSCSI is gotten.
> -- get_PSCSI
> A PSCSI ref of the VSCSI is gotten.
> -- get_virtual_host
> A virtual host number of the VSCSI is gotten.
> -- get_virtual_channel
> A virtual channel number of the VSCSI is gotten.
> -- get_virtual_target
> A virtual target number of the VSCSI is gotten.
> -- get_virtual_lun
> A virtual logical unit number of the VSCSI is gotten.
> -- get_virtual_HCTL
> A virtual HCTL (string of "<host>:<channel>:<target>:<lun>")
> of the VSCSI is gotten.
> -- create
> A new VSCSI instance is created.
> -- destroy
> The VSCSI instance is destroyed.
> -- get_by_uuid
> A VSCSI ref of the UUID is gotten.
> -- get_record
> A VSCSI record of the VSCSI is gotten.
>
> - PSCSI class
> -- get_all
> A list of all PSCSIs known to the system is gotten.
> -- get_uuid
> An UUID of the PSCSI is gotten.
> -- get_host
> A host ref of the PSCSI is gotten.
> -- get_physical_host
> A physical host number of the PSCSI is gotten.
> -- get_physical_channel
> A physical channel number of the PSCSI is gotten.
> -- get_physical_target
> A physical target number of the PSCSI is gotten.
> -- get_physical_lun
> A physical logical unit number of the PSCSI is gotten.
> -- get_physical_HCTL
> A physical HCTL (string of "<host>:<channel>:<target>:<lun>")
> of the PSCSI is gotten.
> -- get_vendor_name
> A vendor name of the PSCSI is gotten.
> -- get_model
> A model name of the PSCSI is gotten.
> -- get_type_id
> An ID of device types of the PSCSI is gotten. (If disk, the ID
> is 0. If tape, the ID is 1.)
> -- get_type
> A device type string of the PSCSI is gotten.
> -- get_sg_name
> A SCSI generic (sg) device name of the PSCSI is gotten.
> -- get_revision
> A revision string of the PSCSI is gotten.
> -- get_scsi_id
> A SCSI ID string of the PSCSI is gotten. The string is a result
> of 'scsi_id -gu -s'.
> -- get_scsi_level
> A SCSI level of the PSCSI is gotten.
> -- get_by_uuid
> A PSCSI ref of the UUID is gotten.
> -- get_record
> A PSCSI record of the PSCSI is gotten.
>
> - VM class
> -- get_VSCSIs
> VSCSI refs of the VM are gotten.
>
> - host class
> -- get_PSCSIs
> PSCSI refs of the host are gotten.
>
>
> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>
> Best regards,
> Kan
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
2008-09-05 8:52 ` Yosuke Iwamatsu
@ 2008-09-08 2:31 ` Jun Kamada
[not found] ` <20080908112241.8179.EB2C8575-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-09-08 5:03 ` Masaki Kanno
1 sibling, 1 reply; 7+ messages in thread
From: Jun Kamada @ 2008-09-08 2:31 UTC (permalink / raw)
To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, Masaki Kanno, xen-api
Hi Iwamatsu-san,
The pvSCSI driver provides virtualized SCSI tree to guest domains.
(You can specify arbitrary IDs (Host:Channel:Target:Lun) mapping
between Dom0 and the guests.)
In addition to that, some SCSI commands, for example REPORT_LUN, may
be emulated on backend driver but simply passthroughed to physical
device.
So, class name 'VSCSI' is appropriate, in my personal opinion.
Best regards,
On Fri, 05 Sep 2008 17:52:42 +0900
Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com> wrote:
> Hi,
>
> Masaki Kanno wrote:
> > Hi,
> >
> > I would like to enhance XenAPI for pvSCSI.
> > At the beginning, I updated only the document of XenAPI. I'm going
> > to implement XenAPI of pvSCSI along the document. Could you comment?
> >
> > The following classes and RPCs are added by the enhancement.
> > Classes:
> > - VSCSI class
> > This is a class for virtual SCSI devices.
>
> It's nice to keep xen-api updated with new features :-)
> One thing I want to point out is about the class name.
> I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
> because pvSCSI driver doesn't really provide virtual scsi luns but
> passes through scsi commands to real scsi luns, as far as I understand.
>
> Regards,
> -- Yosuke Iwamatsu
>
> > - PSCSI class
> > This is a class for physical SCSI devices.
> >
> > RPCs:
> > - VSCSI class
> > -- get_all
> > A list of all VSCSIs known to the system is gotten.
> > -- get_uuid
> > An UUID of the VSCSI is gotten.
> > -- get_VM
> > A VM ref of the VSCSI is gotten.
> > -- get_PSCSI
> > A PSCSI ref of the VSCSI is gotten.
> > -- get_virtual_host
> > A virtual host number of the VSCSI is gotten.
> > -- get_virtual_channel
> > A virtual channel number of the VSCSI is gotten.
> > -- get_virtual_target
> > A virtual target number of the VSCSI is gotten.
> > -- get_virtual_lun
> > A virtual logical unit number of the VSCSI is gotten.
> > -- get_virtual_HCTL
> > A virtual HCTL (string of "<host>:<channel>:<target>:<lun>")
> > of the VSCSI is gotten.
> > -- create
> > A new VSCSI instance is created.
> > -- destroy
> > The VSCSI instance is destroyed.
> > -- get_by_uuid
> > A VSCSI ref of the UUID is gotten.
> > -- get_record
> > A VSCSI record of the VSCSI is gotten.
> >
> > - PSCSI class
> > -- get_all
> > A list of all PSCSIs known to the system is gotten.
> > -- get_uuid
> > An UUID of the PSCSI is gotten.
> > -- get_host
> > A host ref of the PSCSI is gotten.
> > -- get_physical_host
> > A physical host number of the PSCSI is gotten.
> > -- get_physical_channel
> > A physical channel number of the PSCSI is gotten.
> > -- get_physical_target
> > A physical target number of the PSCSI is gotten.
> > -- get_physical_lun
> > A physical logical unit number of the PSCSI is gotten.
> > -- get_physical_HCTL
> > A physical HCTL (string of "<host>:<channel>:<target>:<lun>")
> > of the PSCSI is gotten.
> > -- get_vendor_name
> > A vendor name of the PSCSI is gotten.
> > -- get_model
> > A model name of the PSCSI is gotten.
> > -- get_type_id
> > An ID of device types of the PSCSI is gotten. (If disk, the ID
> > is 0. If tape, the ID is 1.)
> > -- get_type
> > A device type string of the PSCSI is gotten.
> > -- get_sg_name
> > A SCSI generic (sg) device name of the PSCSI is gotten.
> > -- get_revision
> > A revision string of the PSCSI is gotten.
> > -- get_scsi_id
> > A SCSI ID string of the PSCSI is gotten. The string is a result
> > of 'scsi_id -gu -s'.
> > -- get_scsi_level
> > A SCSI level of the PSCSI is gotten.
> > -- get_by_uuid
> > A PSCSI ref of the UUID is gotten.
> > -- get_record
> > A PSCSI record of the PSCSI is gotten.
> >
> > - VM class
> > -- get_VSCSIs
> > VSCSI refs of the VM are gotten.
> >
> > - host class
> > -- get_PSCSIs
> > PSCSI refs of the host are gotten.
> >
> >
> > Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
> >
> > Best regards,
> > Kan
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xensource.com
> > http://lists.xensource.com/xen-devel
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
-----
Jun Kamada
Linux Software Development Div.
Server Systems Unit
Fujitsu Ltd.
kama@jp.fujitsu.com
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
2008-09-05 8:52 ` Yosuke Iwamatsu
2008-09-08 2:31 ` Jun Kamada
@ 2008-09-08 5:03 ` Masaki Kanno
2008-09-08 7:47 ` Masaki Kanno
1 sibling, 1 reply; 7+ messages in thread
From: Masaki Kanno @ 2008-09-08 5:03 UTC (permalink / raw)
To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, xen-api
Hi Yosuke,
Thanks for your comment.
As Kamada said, the pvSCSI driver emulates some SCSI commands,
the pvSCSI driver does not always pass through SCSI commands.
So I hesitate to call pvSCSI "direct".
Best regards,
Kan
Fri, 05 Sep 2008 17:52:42 +0900, Yosuke Iwamatsu wrote:
>Hi,
>
>Masaki Kanno wrote:
>> Hi,
>>
>> I would like to enhance XenAPI for pvSCSI.
>> At the beginning, I updated only the document of XenAPI. I'm going
>> to implement XenAPI of pvSCSI along the document. Could you comment?
>>
>> The following classes and RPCs are added by the enhancement.
>> Classes:
>> - VSCSI class
>> This is a class for virtual SCSI devices.
>
>It's nice to keep xen-api updated with new features :-)
>One thing I want to point out is about the class name.
>I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>because pvSCSI driver doesn't really provide virtual scsi luns but
>passes through scsi commands to real scsi luns, as far as I understand.
>
>Regards,
>-- Yosuke Iwamatsu
>
>> - PSCSI class
>> This is a class for physical SCSI devices.
>>
>> RPCs:
>> - VSCSI class
>> -- get_all
>> A list of all VSCSIs known to the system is gotten.
>> -- get_uuid
>> An UUID of the VSCSI is gotten.
>> -- get_VM
>> A VM ref of the VSCSI is gotten.
>> -- get_PSCSI
>> A PSCSI ref of the VSCSI is gotten.
>> -- get_virtual_host
>> A virtual host number of the VSCSI is gotten.
>> -- get_virtual_channel
>> A virtual channel number of the VSCSI is gotten.
>> -- get_virtual_target
>> A virtual target number of the VSCSI is gotten.
>> -- get_virtual_lun
>> A virtual logical unit number of the VSCSI is gotten.
>> -- get_virtual_HCTL
>> A virtual HCTL (string of "<host>:<channel>:<target>:<lun>")
>> of the VSCSI is gotten.
>> -- create
>> A new VSCSI instance is created.
>> -- destroy
>> The VSCSI instance is destroyed.
>> -- get_by_uuid
>> A VSCSI ref of the UUID is gotten.
>> -- get_record
>> A VSCSI record of the VSCSI is gotten.
>>
>> - PSCSI class
>> -- get_all
>> A list of all PSCSIs known to the system is gotten.
>> -- get_uuid
>> An UUID of the PSCSI is gotten.
>> -- get_host
>> A host ref of the PSCSI is gotten.
>> -- get_physical_host
>> A physical host number of the PSCSI is gotten.
>> -- get_physical_channel
>> A physical channel number of the PSCSI is gotten.
>> -- get_physical_target
>> A physical target number of the PSCSI is gotten.
>> -- get_physical_lun
>> A physical logical unit number of the PSCSI is gotten.
>> -- get_physical_HCTL
>> A physical HCTL (string of "<host>:<channel>:<target>:<lun>")
>> of the PSCSI is gotten.
>> -- get_vendor_name
>> A vendor name of the PSCSI is gotten.
>> -- get_model
>> A model name of the PSCSI is gotten.
>> -- get_type_id
>> An ID of device types of the PSCSI is gotten. (If disk, the ID
>> is 0. If tape, the ID is 1.)
>> -- get_type
>> A device type string of the PSCSI is gotten.
>> -- get_sg_name
>> A SCSI generic (sg) device name of the PSCSI is gotten.
>> -- get_revision
>> A revision string of the PSCSI is gotten.
>> -- get_scsi_id
>> A SCSI ID string of the PSCSI is gotten. The string is a result
>> of 'scsi_id -gu -s'.
>> -- get_scsi_level
>> A SCSI level of the PSCSI is gotten.
>> -- get_by_uuid
>> A PSCSI ref of the UUID is gotten.
>> -- get_record
>> A PSCSI record of the PSCSI is gotten.
>>
>> - VM class
>> -- get_VSCSIs
>> VSCSI refs of the VM are gotten.
>>
>> - host class
>> -- get_PSCSIs
>> PSCSI refs of the host are gotten.
>>
>>
>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>>
>> Best regards,
>> Kan
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
2008-09-08 5:03 ` Masaki Kanno
@ 2008-09-08 7:47 ` Masaki Kanno
0 siblings, 0 replies; 7+ messages in thread
From: Masaki Kanno @ 2008-09-08 7:47 UTC (permalink / raw)
To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, xen-api
Hi Yosuke,
My mail seems to have crossed your mail. Let me think a little.
Best regards,
Kan
Mon, 08 Sep 2008 14:03:27 +0900, Masaki Kanno wrote:
>Hi Yosuke,
>
>Thanks for your comment.
>
>As Kamada said, the pvSCSI driver emulates some SCSI commands,
>the pvSCSI driver does not always pass through SCSI commands.
>So I hesitate to call pvSCSI "direct".
>
>Best regards,
> Kan
>
>Fri, 05 Sep 2008 17:52:42 +0900, Yosuke Iwamatsu wrote:
>
>>Hi,
>>
>>Masaki Kanno wrote:
>>> Hi,
>>>
>>> I would like to enhance XenAPI for pvSCSI.
>>> At the beginning, I updated only the document of XenAPI. I'm going
>>> to implement XenAPI of pvSCSI along the document. Could you comment?
>>>
>>> The following classes and RPCs are added by the enhancement.
>>> Classes:
>>> - VSCSI class
>>> This is a class for virtual SCSI devices.
>>
>>It's nice to keep xen-api updated with new features :-)
>>One thing I want to point out is about the class name.
>>I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>>because pvSCSI driver doesn't really provide virtual scsi luns but
>>passes through scsi commands to real scsi luns, as far as I understand.
>>
>>Regards,
>>-- Yosuke Iwamatsu
>>
>>> - PSCSI class
>>> This is a class for physical SCSI devices.
>>>
>>> RPCs:
>>> - VSCSI class
>>> -- get_all
>>> A list of all VSCSIs known to the system is gotten.
>>> -- get_uuid
>>> An UUID of the VSCSI is gotten.
>>> -- get_VM
>>> A VM ref of the VSCSI is gotten.
>>> -- get_PSCSI
>>> A PSCSI ref of the VSCSI is gotten.
>>> -- get_virtual_host
>>> A virtual host number of the VSCSI is gotten.
>>> -- get_virtual_channel
>>> A virtual channel number of the VSCSI is gotten.
>>> -- get_virtual_target
>>> A virtual target number of the VSCSI is gotten.
>>> -- get_virtual_lun
>>> A virtual logical unit number of the VSCSI is gotten.
>>> -- get_virtual_HCTL
>>> A virtual HCTL (string of "<host>:<channel>:<target>:<lun>")
>>> of the VSCSI is gotten.
>>> -- create
>>> A new VSCSI instance is created.
>>> -- destroy
>>> The VSCSI instance is destroyed.
>>> -- get_by_uuid
>>> A VSCSI ref of the UUID is gotten.
>>> -- get_record
>>> A VSCSI record of the VSCSI is gotten.
>>>
>>> - PSCSI class
>>> -- get_all
>>> A list of all PSCSIs known to the system is gotten.
>>> -- get_uuid
>>> An UUID of the PSCSI is gotten.
>>> -- get_host
>>> A host ref of the PSCSI is gotten.
>>> -- get_physical_host
>>> A physical host number of the PSCSI is gotten.
>>> -- get_physical_channel
>>> A physical channel number of the PSCSI is gotten.
>>> -- get_physical_target
>>> A physical target number of the PSCSI is gotten.
>>> -- get_physical_lun
>>> A physical logical unit number of the PSCSI is gotten.
>>> -- get_physical_HCTL
>>> A physical HCTL (string of "<host>:<channel>:<target>:<lun>")
>>> of the PSCSI is gotten.
>>> -- get_vendor_name
>>> A vendor name of the PSCSI is gotten.
>>> -- get_model
>>> A model name of the PSCSI is gotten.
>>> -- get_type_id
>>> An ID of device types of the PSCSI is gotten. (If disk, the ID
>>> is 0. If tape, the ID is 1.)
>>> -- get_type
>>> A device type string of the PSCSI is gotten.
>>> -- get_sg_name
>>> A SCSI generic (sg) device name of the PSCSI is gotten.
>>> -- get_revision
>>> A revision string of the PSCSI is gotten.
>>> -- get_scsi_id
>>> A SCSI ID string of the PSCSI is gotten. The string is a result
>>> of 'scsi_id -gu -s'.
>>> -- get_scsi_level
>>> A SCSI level of the PSCSI is gotten.
>>> -- get_by_uuid
>>> A PSCSI ref of the UUID is gotten.
>>> -- get_record
>>> A PSCSI record of the PSCSI is gotten.
>>>
>>> - VM class
>>> -- get_VSCSIs
>>> VSCSI refs of the VM are gotten.
>>>
>>> - host class
>>> -- get_PSCSIs
>>> PSCSI refs of the host are gotten.
>>>
>>>
>>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>>>
>>> Best regards,
>>> Kan
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>
>>
>>
>>_______________________________________________
>>Xen-devel mailing list
>>Xen-devel@lists.xensource.com
>>http://lists.xensource.com/xen-devel
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-09-08 11:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-03 6:57 [RFC][PATCH] Enhance XenAPI for pvSCSI Masaki Kanno
2008-09-05 8:52 ` Yosuke Iwamatsu
2008-09-08 2:31 ` Jun Kamada
[not found] ` <20080908112241.8179.EB2C8575-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-09-08 5:00 ` [Xen-devel] " Yosuke Iwamatsu
2008-09-08 11:47 ` Masaki Kanno
2008-09-08 5:03 ` Masaki Kanno
2008-09-08 7:47 ` Masaki Kanno
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.